Doc ID: SIRC-066

SuperiorSkyblock2 API 知识文档

SuperiorSkyblock2 提供了一个强大的 API,允许开发者编写自定义模块、修改插件行为、注册自定义命令等。

Overview

SuperiorSkyblock2 API 文档

概述

SuperiorSkyblock2 提供了一个强大的 API,允许开发者编写自定义模块、修改插件行为、注册自定义命令等。

核心包结构

主要包

  • com.bgsoftware.superiorskyblock.api – 核心 API 类
  • com.bgsoftware.superiorskyblock.api.commands – 命令相关
  • com.bgsoftware.superiorskyblock.api.config – 配置相关
  • com.bgsoftware.superiorskyblock.api.data – 数据相关
  • com.bgsoftware.superiorskyblock.api.enums – 枚举类型
  • com.bgsoftware.superiorskyblock.api.events – 事件系统
  • com.bgsoftware.superiorskyblock.api.factory – 工厂模式
  • com.bgsoftware.superiorskyblock.api.handlers – 管理器接口
  • com.bgsoftware.superiorskyblock.api.hooks – 钩子接口
  • com.bgsoftware.superiorskyblock.api.island – 岛屿相关
  • com.bgsoftware.superiorskyblock.api.key – 键值系统
  • com.bgsoftware.superiorskyblock.api.menu – 菜单系统
  • com.bgsoftware.superiorskyblock.api.missions – 任务系统
  • com.bgsoftware.superiorskyblock.api.modules – 模块系统
  • com.bgsoftware.superiorskyblock.api.objects – 对象定义
  • com.bgsoftware.superiorskyblock.api.persistence – 持久化
  • com.bgsoftware.superiorskyblock.api.player – 玩家相关
  • com.bgsoftware.superiorskyblock.api.schematic – 结构相关
  • com.bgsoftware.superiorskyblock.api.scripts – 脚本引擎
  • com.bgsoftware.superiorskyblock.api.service – 服务接口
  • com.bgsoftware.superiorskyblock.api.upgrades – 升级系统
  • com.bgsoftware.superiorskyblock.api.world – 世界相关
  • com.bgsoftware.superiorskyblock.api.wrappers – 包装器类

核心 API 类

SuperiorSkyblockAPI

所有 API 方法都通过 SuperiorSkyblockAPI 类调用。

主要方法

玩家相关

// 获取 SuperiorPlayer 对象
SuperiorPlayer getPlayer(Player player)
SuperiorPlayer getPlayer(String name)
SuperiorPlayer getPlayer(UUID uuid)

// 获取玩家管理器
PlayersManager getPlayers()

岛屿相关

// 创建岛屿
void createIsland(SuperiorPlayer superiorPlayer, String schemName, BigDecimal bonus, Biome biome, String islandName)
void createIsland(SuperiorPlayer superiorPlayer, String schemName, BigDecimal bonusWorth, BigDecimal bonusLevel, Biome biome, String islandName, boolean offset)

// 删除岛屿
void deleteIsland(Island island)

// 获取岛屿
Island getIsland(String islandName)
Island getIslandByUUID(UUID uuid)
Island getIslandAt(Location location)
Island getSpawnIsland()

// 获取网格管理器
GridManager getGrid()

管理器获取

// 各种管理器
BlockValuesManager getBlockValues()
CommandsManager getCommands()
FactoriesManager getFactory()
KeysManager getKeys()
MenusManager getMenus()
MissionsManager getMissions()
ModulesManager getModules()
ProvidersManager getProviders()
RolesManager getRoles()
SchematicManager getSchematics()
SettingsManager getSettings()
StackedBlocksManager getStackedBlocks()
UpgradesManager getUpgrades()

其他功能

// 计算所有岛屿价值
void calcAllIslands()

// 注册自定义命令
void registerCommand(SuperiorCommand superiorCommand)

// 获取结构
Schematic getSchematic(String name)

// 获取插件实例
SuperiorSkyblock getSuperiorSkyblock()
int getAPIVersion()

核心对象

SuperiorPlayer

包装 Bukkit 玩家对象,包含玩家数据、状态及模式(例如飞行)等内容。

Island

缓存服务器上的岛屿数据。成员、封禁玩家列表、翻倍卡、升级及其他数据都存储在该对象中。

GridManager

网格管理器对象处理服务器上所有的岛屿。用于与岛屿交互或从排行榜等获取相关信息。

事件系统

岛屿事件

  • IslandCreateEvent – 创建新岛屿时触发
  • IslandDisbandEvent – 解散岛屿时触发
  • IslandJoinEvent – 玩家加入岛屿时触发
  • IslandLeaveEvent – 玩家离开岛屿时触发
  • IslandTransferEvent – 岛屿所有权转移时触发
  • IslandBanEvent – 玩家被禁止进入岛屿时触发
  • IslandUnbanEvent – 玩家被解除禁止时触发
  • IslandKickEvent – 玩家被踢出岛屿时触发
  • IslandInviteEvent – 邀请玩家加入岛屿时触发
  • IslandCoopPlayerEvent – 玩家被设为合作者时触发
  • IslandUncoopPlayerEvent – 玩家被取消合作者时触发

岛屿变更事件

  • IslandChangeBankLimitEvent – 银行限额变更
  • IslandChangeBlockLimitEvent – 方块限制变更
  • IslandChangeBorderSizeEvent – 边界大小变更
  • IslandChangeCoopLimitEvent – 合作者限制变更
  • IslandChangeCropGrowthEvent – 作物生长倍率变更
  • IslandChangeDescriptionEvent – 岛屿描述变更
  • IslandChangeDiscordEvent – Discord 链接变更
  • IslandChangeEffectLevelEvent – 效果等级变更
  • IslandChangeEntityLimitEvent – 实体限制变更
  • IslandChangeGeneratorRateEvent – 生成器速率变更
  • IslandChangeLevelBonusEvent – 等级奖励变更
  • IslandChangeMembersLimitEvent – 成员限制变更
  • IslandChangeMobDropsEvent – 生物掉落倍率变更
  • IslandChangePaypalEvent – PayPal 链接变更
  • IslandChangePlayerPrivilegeEvent – 玩家权限变更
  • IslandChangeRoleLimitEvent – 角色限制变更
  • IslandChangeRolePrivilegeEvent – 角色权限变更
  • IslandChangeSpawnerRatesEvent – 刷怪笼速率变更
  • IslandChangeWorthBonusEvent – 价值奖励变更

岛屿操作事件

  • IslandChatEvent – 岛屿聊天时触发
  • IslandEnterEvent – 进入岛屿区域时触发
  • IslandLeaveEvent – 离开岛屿区域时触发
  • IslandEnterProtectedEvent – 进入保护区域时触发
  • IslandLeaveProtectedEvent – 离开保护区域时触发
  • IslandOpenEvent – 岛屿对访客开放时触发
  • IslandCloseEvent – 岛屿关闭访客访问时触发
  • IslandRateEvent – 评价岛屿时触发
  • IslandRenameEvent – 重命名岛屿时触发
  • IslandSetHomeEvent – 设置岛屿家时触发
  • IslandSetVisitorHomeEvent – 设置访客家时触发

传送门事件

  • IslandCreateWarpEvent – 创建传送门时触发
  • IslandDeleteWarpEvent – 删除传送门时触发
  • IslandRenameWarpEvent – 重命名传送门时触发
  • IslandChangeWarpLocationEvent – 传送门位置变更时触发
  • IslandChangeWarpIconEvent – 传送门图标变更时触发
  • IslandOpenWarpEvent – 传送门公开时触发
  • IslandCloseWarpEvent – 传送门关闭时触发

传送门分类事件

  • IslandCreateWarpCategoryEvent – 创建传送门分类时触发
  • IslandRenameWarpCategoryEvent – 重命名传送门分类时触发
  • IslandChangeWarpCategoryIconEvent – 传送门分类图标变更时触发
  • IslandChangeWarpCategorySlotEvent – 传送门分类槽位变更时触发

玩家事件

  • PlayerChangeBorderColorEvent – 玩家边界颜色变更
  • PlayerChangeLanguageEvent – 玩家语言变更
  • PlayerChangeRoleEvent – 玩家角色变更
  • PlayerOpenMenuEvent – 玩家打开菜单
  • PlayerCloseMenuEvent – 玩家关闭菜单
  • PlayerToggleBlocksStackerEvent – 玩家切换方块堆叠器
  • PlayerToggleBorderEvent – 玩家切换世界边界
  • PlayerToggleFlyEvent – 玩家切换飞行
  • PlayerTogglePanelEvent – 玩家切换控制面板
  • PlayerToggleSpyEvent – 玩家切换聊天监视

任务事件

  • MissionCompleteEvent – 完成任务时触发
  • MissionResetEvent – 重置任务时触发

方块事件

  • BlockStackEvent – 方块堆叠时触发
  • BlockUnstackEvent – 方块取消堆叠时触发
  • IslandGenerateBlockEvent – 生成方块时触发

其他事件

  • PluginInitializeEvent – 插件初始化时触发
  • PluginInitializedEvent – 插件完全启用时触发
  • PreIslandCreateEvent – 岛屿创建前触发
  • SendMessageEvent – 发送消息时触发

岛屿相关接口

Island 接口

岛屿的主要接口,包含所有岛屿操作的方法。

IslandChest 接口

岛屿箱子系统。

IslandPreview 接口

岛屿预览任务的数据处理对象。

PermissionNode 接口

权限节点系统。

PlayerRole 接口

玩家角色系统。

IslandFlag 类

岛屿标志。

IslandPrivilege 类

岛屿权限。

SortingType 类

排序类型。

管理器接口

BlockValuesManager

方块价值管理器。

CommandsManager

命令管理器。

FactoriesManager

工厂管理器。

GridManager

网格管理器。

KeysManager

键值管理器。

MenusManager

菜单管理器。

MissionsManager

任务管理器。

ModulesManager

模块管理器。

PlayersManager

玩家管理器。

ProvidersManager

提供者管理器。

RolesManager

角色管理器。

SchematicManager

结构管理器。

StackedBlocksManager

堆叠方块管理器。

UpgradesManager

升级管理器。

包装器类

BlockOffset

表示方块的偏移量。

BlockPosition

表示世界中方块的位置。

SuperiorPlayer

玩家包装器接口。

变量系统(PlaceholderAPI)

全局变量

  • %superior_island_worth% – 岛屿总价值
  • %superior_island_level% – 岛屿等级
  • %superior_island_rating% – 岛屿评分
  • %superior_island_rating_stars% – 岛屿星级评分
  • %superior_island_rating_average% – 岛屿平均评分
  • %superior_island_rating_total% – 岛屿总评分次数
  • %superior_island_owner% – 岛屿所有者
  • %superior_island_name% – 岛屿名称
  • %superior_island_description% – 岛屿描述
  • %superior_island_creation_time% – 岛屿创建时间
  • %superior_island_discord% – 岛屿 Discord
  • %superior_island_paypal% – 岛屿 PayPal
  • %superior_island_bank% – 岛屿银行余额
  • %superior_island_bank_limit% – 岛屿银行限额
  • %superior_island_bank_raw% – 岛屿银行原始余额
  • %superior_island_bank_formatted% – 岛屿银行格式化余额
  • %superior_island_members_count% – 岛屿成员数量
  • %superior_island_members_limit% – 岛屿成员限制
  • %superior_island_coop_count% – 岛屿合作者数量
  • %superior_island_coop_limit% – 岛屿合作者限制
  • %superior_island_bans_count% – 岛屿封禁数量
  • %superior_island_warps_count% – 岛屿传送门数量
  • %superior_island_warps_limit% – 岛屿传送门限制
  • %superior_island_visitors_count% – 岛屿访客数量
  • %superior_island_visitors_limit% – 岛屿访客限制

岛屿变量

  • %superior_island_worth_formatted% – 格式化岛屿价值
  • %superior_island_level_formatted% – 格式化岛屿等级
  • %superior_island_bonus_worth% – 岛屿价值奖励
  • %superior_island_bonus_level% – 岛屿等级奖励
  • %superior_island_border_size% – 岛屿边界大小
  • %superior_island_crop_growth% – 作物生长倍率
  • %superior_island_mob_drops% – 生物掉落倍率
  • %superior_island_spawner_rates% – 刷怪笼速率
  • %superior_island_entity_limits_<entity>% – 实体限制
  • %superior_island_block_limits_<block>% – 方块限制
  • %superior_island_generator_rates_<material>% – 生成器速率

玩家变量

  • %superior_player_island_worth% – 玩家岛屿价值
  • %superior_player_island_level% – 玩家岛屿等级
  • %superior_player_island_rating% – 玩家岛屿评分
  • %superior_player_island_owner% – 玩家是否为岛屿所有者
  • %superior_player_island_role% – 玩家在岛屿中的角色
  • %superior_player_island_role_weight% – 玩家角色权重
  • %superior_player_island_role_display% – 玩家角色显示名称
  • %superior_player_island_bank% – 玩家岛屿银行余额
  • %superior_player_island_bank_limit% – 玩家岛屿银行限额
  • %superior_player_island_members_count% – 玩家岛屿成员数量
  • %superior_player_island_members_limit% – 玩家岛屿成员限制
  • %superior_player_island_coop_count% – 玩家岛屿合作者数量
  • %superior_player_island_coop_limit% – 玩家岛屿合作者限制
  • %superior_player_island_bans_count% – 玩家岛屿封禁数量
  • %superior_player_island_warps_count% – 玩家岛屿传送门数量
  • %superior_player_island_warps_limit% – 玩家岛屿传送门限制
  • %superior_player_island_visitors_count% – 玩家岛屿访客数量
  • %superior_player_island_visitors_limit% – 玩家岛屿访客限制

聊天变量

  • %superior_island_chat% – 岛屿聊天格式
  • %superior_coop_chat% – 合作者聊天格式
  • %superior_visitor_chat% – 访客聊天格式

基本用法示例

获取玩家对象

SuperiorPlayer superiorPlayer = SuperiorSkyblockAPI.getPlayer(player);

获取玩家岛屿

Island island = superiorPlayer.getIsland();

创建新岛屿

SuperiorSkyblockAPI.createIsland(superiorPlayer, "default", new BigDecimal("1000"), Biome.PLAINS, "MyIsland");

注册自定义命令

public class MyCommand extends SuperiorCommand {
    // 实现命令逻辑
}

SuperiorSkyblockAPI.registerCommand(new MyCommand());

监听事件

@EventHandler
public void onIslandCreate(IslandCreateEvent event) {
    Island island = event.getIsland();
    SuperiorPlayer owner = island.getOwner();
    // 处理岛屿创建逻辑
}

注意事项

  1. 不要直接使用岛屿对象的删除方法 – 如 deleteIsland() 方法只应由岛屿对象自身使用
  2. 使用 API 方法进行岛屿操作 – 通过 SuperiorSkyblockAPI 类提供的方法进行操作
  3. 正确处理事件 – 根据需要监听相应的事件来扩展插件功能
  4. 使用管理器接口 – 通过相应的管理器接口访问插件功能

开发建议

  1. 依赖管理 – 在插件中正确声明对 SuperiorSkyblock2 的依赖
  2. API 版本检查 – 使用 getAPIVersion() 检查 API 兼容性
  3. 错误处理 – 正确处理可能出现的空值和异常情况
  4. 性能考虑 – 避免在频繁调用的方法中进行昂贵的操作

内容来自 SnowCutieOwO – Wiki