diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java index 9ef60028..9852ee5b 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java +++ b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/LevelUpEventTrigger.java @@ -3,7 +3,6 @@ package net.Indyuce.mmocore.api.player.profess.event.trigger; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import net.Indyuce.mmocore.MMOCore; import net.Indyuce.mmocore.api.event.PlayerLevelUpEvent; import net.Indyuce.mmocore.api.player.PlayerData; import net.Indyuce.mmocore.api.player.profess.PlayerClass; @@ -21,17 +20,18 @@ public class LevelUpEventTrigger implements EventTriggerHandler { PlayerData player = event.getData(); PlayerClass profess = player.getProfess(); - if(event.hasProfession()) { - String prof = event.getProfession().getId().toLowerCase(); - MMOCore.debug(2, "[DEBUG] Looking for triggers: level-up-" + prof); - processTrigger(player, profess, "level-up-" + prof); - processTrigger(player, profess, "level-up-" + prof + "-" + event.getNewLevel()); - } else { - MMOCore.debug(2, "[DEBUG] Normal level up trigger."); - processTrigger(player, profess, "level-up"); - processTrigger(player, profess, "level-up-" + event.getNewLevel()); - if(profess.getMaxLevel() == event.getNewLevel()) - processTrigger(player, profess, "level-up-max"); + for(int i = event.getOldLevel(); i < event.getNewLevel(); i++) { + int level = i + 1; + if(event.hasProfession()) { + String prof = event.getProfession().getId().toLowerCase(); + processTrigger(player, profess, "level-up-" + prof); + processTrigger(player, profess, "level-up-" + prof + "-" + level); + } else { + processTrigger(player, profess, "level-up"); + processTrigger(player, profess, "level-up-" + level); + if(profess.getMaxLevel() == level) + processTrigger(player, profess, "level-up-max"); + } } } diff --git a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java index bc108e7a..b520d374 100644 --- a/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java +++ b/src/main/java/net/Indyuce/mmocore/api/player/profess/event/trigger/MultipleLevelUpEventTrigger.java @@ -20,21 +20,25 @@ public class MultipleLevelUpEventTrigger implements EventTriggerHandler { public void a(PlayerLevelUpEvent event) { PlayerData player = event.getData(); PlayerClass profess = player.getProfess(); - for (String t : profess.getEventTriggers()){ - if (t.startsWith("level-up-multiple")) { - String[] split = t.split("-"); - double multiple = Double.parseDouble(split[split.length-1]); - if (event.getNewLevel()/multiple % 1 == 0) { - DecimalFormat f = new DecimalFormat("#"); - if (event.hasProfession()) { - processTrigger(player, profess, "level-up-multiple-" + event.getProfession().getId().toLowerCase() + "-" + f.format(multiple)); - } else { - processTrigger(player, profess, "level-up-multiple-" + f.format(multiple)); - } - } - } - } + for(int i = event.getOldLevel(); i < event.getNewLevel(); i++) { + int level = i + 1; + + for (String t : profess.getEventTriggers()){ + if (t.startsWith("level-up-multiple")) { + String[] split = t.split("-"); + double multiple = Double.parseDouble(split[split.length-1]); + if (level / multiple % 1 == 0) { + DecimalFormat f = new DecimalFormat("#"); + if (event.hasProfession()) { + processTrigger(player, profess, "level-up-multiple-" + event.getProfession().getId().toLowerCase() + "-" + f.format(multiple)); + } else { + processTrigger(player, profess, "level-up-multiple-" + f.format(multiple)); + } + } + } + } + } } public void processTrigger(PlayerData player, PlayerClass profess, String trigger) {