IridiumSkyblock API 知识文档
IridiumSkyblock是一个Minecraft服务器插件,提供完整的岛屿系统API。本文档基于官方API文档整理,包含包名、API用法和示例代码。
Overview
IridiumSkyblock API 文档
概述
IridiumSkyblock是一个Minecraft服务器插件,提供完整的岛屿系统API。本文档基于官方API文档整理,包含包名、API用法和示例代码。
包名信息
- 主包名:
com.iridium.iridiumskyblock - Maven GroupId:
com.iridium - ArtifactId:
IridiumSkyblock - 版本: LATEST(建议指定具体版本)
依赖配置
Apache Maven
<repository>
<id>iridiumdevelopment</id>
<url>https://nexus.iridiumdevelopment.net/repository/maven-releases/</url>
</repository>
<dependency>
<groupId>com.iridium</groupId>
<artifactId>IridiumSkyblock</artifactId>
<version>LATEST</version>
</dependency>
Gradle Kotlin DSL
repositories {
maven("https://nexus.iridiumdevelopment.net/repository/maven-releases/")
}
dependencies {
implementation("com.iridium:IridiumSkyblock:LATEST")
}
主要API类
IridiumSkyblockAPI
主API类,提供所有核心功能。
Island
岛屿类,表示一个岛屿实例。
User
用户类,表示玩家数据。
Permission
权限类,表示岛屿权限。
BankItem
银行物品类。
Enhancement<?>
增强类,泛型增强系统。
API方法详解
获取API实例
public static @NotNull IridiumSkyblockAPI getInstance()
获取API实例。注意:如果在IridiumSkyblock启动方法仍在执行时调用,可能返回null。
用户管理
public @NotNull User getUser(@NotNull OfflinePlayer offlinePlayer)
获取用户信息,如果不存在则创建。
岛屿查询
public @NotNull Optional<Island> getIslandById(int id)
通过ID查找岛屿。
public @NotNull Optional<Island> getIslandByName(@NotNull String name)
通过名称查找岛屿。
public @NotNull Optional<Island> getIslandViaLocation(@NotNull Location location)
通过位置获取岛屿。
public @NotNull List<Island> getIslands(@NotNull IslandManager.SortType sortType)
获取按指定方式排序的所有岛屿列表。
权限管理
public @NotNull Optional<Permission> getPermissions(@NotNull String permissionKey)
通过权限键获取权限对象。
public @NotNull Optional<Permission> getPermissions(@NotNull PermissionType permissionType)
通过权限类型获取权限对象。
public boolean getIslandPermission(@NotNull Island island, @NotNull User user, @NotNull Permission permission, @NotNull String key)
检查用户是否在岛屿上拥有特定权限。
public boolean getIslandPermission(@NotNull Island island, @NotNull User user, @NotNull PermissionType permissionType)
检查用户是否在岛屿上拥有特定类型的权限。
世界管理
public @Nullable World getWorld()
获取主世界(覆盖世界)。
public @Nullable World getNetherWorld()
获取下界世界。
public @Nullable World getEndWorld()
获取末地世界。
public boolean isIslandWorld(@NotNull World world)
检查世界是否为IridiumSkyblock世界。
public boolean isIslandOverWorld(@NotNull World world)
检查世界是否为IridiumSkyblock主世界。
public boolean isIslandNether(@NotNull World world)
检查世界是否为IridiumSkyblock下界世界。
public boolean isIslandEnd(@NotNull World world)
检查世界是否为IridiumSkyblock末地世界。
访问控制
public boolean canVisitIsland(@NotNull User user, @NotNull Island island)
检查用户是否可以访问指定岛屿。
添加功能
public void addBankItem(@NotNull BankItem bankItem)
添加岛屿银行物品。
public void addEnhancement(@NotNull String enhancementName, @NotNull Enhancement<?> enhancement)
添加岛屿增强。
public void addPermission(@NotNull Permission permission, @NotNull String key)
添加岛屿权限。
public void addCommand(@NotNull Command<Island, User> command)
添加IridiumSkyblock命令。
权限类型
IridiumSkyblock支持以下权限类型:
- BLOCK_BREAK – 破坏方块
- BLOCK_PLACE – 放置方块
- BUCKET – 使用桶
- CHANGE_PERMISSIONS – 更改权限
- CLAIM – 认领
- DEMOTE – 降级
- DESCRIPTION – 描述
- DOORS – 门
- INVITE – 邀请
- TRUST – 信任
- KICK – 踢出
- KILL_MOBS – 杀死生物
- OPEN_CONTAINERS – 打开容器
- PROMOTE – 升级
- REDSTONE – 红石
- RENAME – 重命名
- SETHOME – 设置家
- MANAGE_WARPS – 管理传送点
- SPAWNERS – 刷怪笼
- SETTINGS – 设置
事件API
IslandCreateEvent(岛屿创建事件)
位于 IslandCreateEvent.java
可用方法:
@Nullable public String getIslandName()
获取岛屿名称,null表示使用玩家名称。
public void setIslandName(@Nullable String islandName)
设置岛屿名称,设为null则使用玩家名称。
public void setSchematicConfig(Schematics.@NotNull SchematicConfig schematicConfig)
设置新岛屿的配置方案。
IslandDeleteEvent(岛屿删除事件)
位于 IslandDeleteEvent.java
使用示例
示例1:获取玩家的岛屿
public Optional<Island> getPlayerIsland(Player player) {
User user = IridiumSkyblockAPI.getInstance().getUser(player);
Optional<Island> island = user.getIsland();
return island;
}
示例2:获取玩家当前站立的岛屿
public Optional<Island> getPlayerIsland(Player player) {
User user = IridiumSkyblock.getInstance().getIslandManager().getTeamViaPlayerLocation(player, player.getLocation());
Optional<Island> island = user.getCurrentIsland();
return island;
}
示例3:从位置获取岛屿
public Optional<Island> getIsland(Location location) {
Optional<Island> island = IridiumSkyblockAPI.getInstance().getIslandViaLocation(location);
return island;
}
示例4:从名称获取岛屿
public Optional<Island> getIsland(String name) {
Optional<Island> island = IridiumSkyblockAPI.getInstance().getIslandByName(name);
return island;
}
示例5:检查玩家是否可以在岛屿上建造
public boolean canBuild(Island island, Player player) {
User user = IridiumSkyblockAPI.getInstance().getUser(player);
boolean isAllowed = IridiumSkyblockAPI.getInstance().getIslandPermission(island, user, PermissionType.BLOCK_PLACE);
return isAllowed;
}
注意事项
- API可用性:确保在IridiumSkyblock完全启动后再调用API方法
- 版本兼容性:注意API方法的版本标记(Since标签)
- 空值处理:所有返回Optional的方法都需要正确处理空值情况
- 权限检查:使用权限前确保用户和岛屿对象有效
- 事件处理:正确处理岛屿创建和删除事件
版本信息
- 文档基于IridiumSkyblock API版本:3.0.0+
- 最新更新:2025年2月25日
- 官方文档地址:https://docs.iridiumdevelopment.net/en/API
支持与资源
- Discord社区:Join our Discord!
- Patreon支持:Support us on Patreon!
- Spigot页面:Spigot Page
- Hangar页面:Hangar Page
- Modrinth页面:Modrinth Page