Doc ID: SIRC-079

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支持以下权限类型:

  1. BLOCK_BREAK – 破坏方块
  2. BLOCK_PLACE – 放置方块
  3. BUCKET – 使用桶
  4. CHANGE_PERMISSIONS – 更改权限
  5. CLAIM – 认领
  6. DEMOTE – 降级
  7. DESCRIPTION – 描述
  8. DOORS – 门
  9. INVITE – 邀请
  10. TRUST – 信任
  11. KICK – 踢出
  12. KILL_MOBS – 杀死生物
  13. OPEN_CONTAINERS – 打开容器
  14. PROMOTE – 升级
  15. REDSTONE – 红石
  16. RENAME – 重命名
  17. SETHOME – 设置家
  18. MANAGE_WARPS – 管理传送点
  19. SPAWNERS – 刷怪笼
  20. 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;
}

注意事项

  1. API可用性:确保在IridiumSkyblock完全启动后再调用API方法
  2. 版本兼容性:注意API方法的版本标记(Since标签)
  3. 空值处理:所有返回Optional的方法都需要正确处理空值情况
  4. 权限检查:使用权限前确保用户和岛屿对象有效
  5. 事件处理:正确处理岛屿创建和删除事件

版本信息

支持与资源

  • Discord社区:Join our Discord!
  • Patreon支持:Support us on Patreon!
  • Spigot页面:Spigot Page
  • Hangar页面:Hangar Page
  • Modrinth页面:Modrinth Page