跳转至

开发者 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 对象访问:

CMIUser user = CMIUser.getUser(player);

某些罕见情况下可能返回 NULL,需进行 NPE 检查。

获取离线玩家对象:

Player player = user.getPlayer();

可用于访问离线玩家数据,但会加载玩家信息,强烈不建议批量加载数百/数千个玩家。更新离线玩家数据后需保存(仅限玩家离线时):

player.saveData();
// 或更安全的方式
CMI.getInstance().save(player);

管理器

大部分功能通过对应的管理器访问:

CMI.getInstance().get[管理器名]();
// 例如传送门管理器
CMI.getInstance().getPortalManager();

价值系统

获取物品价值:

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)