跳到主要内容

开发者 API

在 plugin.yml 加上 softdepend: [StarVocation],监听 dev.cloudplugins.classes.api 里的事件。

事件可取消说明
ClassChangeEvent✔换职业 / 转职前。getFrom() getTo()(职业 ID),isByCommand() = 管理指令
ClassExpGainEvent✔获得职业经验前(已套用加成)。getClassId() getSource() getAmount() setAmount(double)
ClassLevelUpEvent—升级后。getClassId() getOldLevel() getNewLevel()

ClassExpGainEvent.Source:KILL(击杀 MythicMobs 怪物)、SOURCE(经验来源,含原版生物)、VANILLA(原版经验转换)、COMMAND、REWARD(动作)、API。

@EventHandler
public void onExp(ClassExpGainEvent e) {
// 夜晚获得的经验 +20%
if (e.getSource() != ClassExpGainEvent.Source.COMMAND && e.getPlayer().getWorld().getTime() > 13000) {
e.setAmount(e.getAmount() * 1.2);
}
}

@EventHandler
public void onLevel(ClassLevelUpEvent e) {
if (e.getNewLevel() >= 50 && e.getOldLevel() < 50) {
Bukkit.broadcastMessage(e.getPlayer().getName() + " 的 " + e.getClassId() + " 达到 50 级!");
}
}

读取玩家职业数据请使用 PlaceholderAPI 变量(PlaceholderAPI.setPlaceholders(player, "%starvocation_level%")),或 MythicLib 的属性 API。