开发者 API
CMI-API 源码和 .jar 文件可在 github.com/Zrips/CMI-API 获取。
Maven 依赖:
<dependency>
<groupId>com.github.Zrips</groupId>
<artifactId>CMI-API</artifactId>
<version>9.8.6.4</version>
<scope>provided</scope>
</dependency>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
玩家/用户对象
大部分玩家相关功能可通过 user 对象访问:
某些罕见情况下可能返回 NULL,需进行 NPE 检查。
获取离线玩家对象:
可用于访问离线玩家数据,但会加载玩家信息,强烈不建议批量加载数百/数千个玩家。更新离线玩家数据后需保存(仅限玩家离线时):
管理器
大部分功能通过对应的管理器访问:
价值系统
获取物品价值:
ItemStack item;
WorthItem worth = CMI.getInstance().getWorthManager().getWorth(item);
if (worth == null) { return null; } // 无价值物品
Double buyPrice = worth.getBuyPrice(); // 购买价格
Double sellPrice = worth.getSellPrice(); // 出售价格
设置物品价值:
ItemStack item;
WorthItem worth = CMI.getInstance().getWorthManager().getWorth(item);
if (worth == null) {
worth = new WorthItem(item);
CMI.getInstance().getWorthManager().addWorth(worth);
}
worth.setBuyPrice(2D);
worth.setSellPrice(1D);
CMI.getInstance().getWorthManager().updatePriceInFile(worth);
自定义事件
- CMIAfkEnterEvent — 玩家进入 AFK 模式
- CMIAfkKickEvent — 玩家因 AFK 被踢出服务器
- CMIAfkLeaveEvent — 玩家离开 AFK 模式
- CMIAnvilItemRenameEvent — 铁砧物品重命名
- CMIAnvilItemRepairEvent — 铁砧物品修复
- CMIArmorChangeEvent — 玩家更换盔甲槽物品
- CMIAsyncPlayerTeleportEvent — 异步传送(可取消)
- CMIBackpackOpenEvent — 打开背包
- CMIChequeCreationEvent — 支票创建前
- CMIChequeUsageEvent — 支票使用
- CMIChunkChangeEvent — 玩家切换区块
- CMIConfigReloadEvent — 配置重载
- CMIEventCommandEvent — 事件命令执行
- CMIIpBanEvent / CMIIpUnBanEvent — IP 封禁/解封
- CMIHologramClickEvent — 交互式全息文字点击
- CMIPlayerBanEvent / CMIPlayerUnBanEvent — 玩家封禁/解封
- CMIPlayerFakeEntityInteractEvent — 与假实体交互(全息按钮)
- CMIPlayerItemsSellEvent — 出售物品
- CMIPlayerJailEvent / CMIPlayerUnjailEvent — 监禁/释放
- CMIPlayerKickEvent — 踢出玩家
- CMIPlayerNickNameChangeEvent — 昵称更改
- CMIPlayerOpenArmorStandEditorEvent — 打开盔甲架编辑器
- CMIPlayerSitEvent — 玩家坐下
- CMIPlayerTeleportRequestEvent — 传送请求
- CMIPlayerUnVanishEvent / CMIPlayerVanishEvent — 隐身/现身
- CMIPlayerWarnEvent — 警告
- CMIPlayerWarpEvent — 传送到传送点前
- CMIPortalCreateEvent / CMIPortalUseEvent — 传送门创建/使用
- CMIPvEStartEventAsync / CMIPvEEndEventAsync — PvE 开始/结束
- CMIPvPStartEventAsync / CMIPvPEndEventAsync — PvP 开始/结束
- CMISelectionEvent / CMISelectionVisualizationEvent — 选择/选择可视化
- CMIStaffMessageEvent — 管理员消息发送
- CMIUserBalanceChangeEvent — 余额变更(setBalance/Withdraw/Deposit)