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();
// 处理岛屿创建逻辑
}
注意事项
- 不要直接使用岛屿对象的删除方法 – 如
deleteIsland()方法只应由岛屿对象自身使用 - 使用 API 方法进行岛屿操作 – 通过
SuperiorSkyblockAPI类提供的方法进行操作 - 正确处理事件 – 根据需要监听相应的事件来扩展插件功能
- 使用管理器接口 – 通过相应的管理器接口访问插件功能
开发建议
- 依赖管理 – 在插件中正确声明对 SuperiorSkyblock2 的依赖
- API 版本检查 – 使用
getAPIVersion()检查 API 兼容性 - 错误处理 – 正确处理可能出现的空值和异常情况
- 性能考虑 – 避免在频繁调用的方法中进行昂贵的操作
内容来自 SnowCutieOwO – Wiki