开发者 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。