Skip to content

Commit 45b5c0b

Browse files
Prevent selecting a skilltree if a Pet's level exceeds the skilltree's max level (#1758)
* Added a Maxlevel check * added the same change to command use * fixed wrong names * Cleanup --------- Co-authored-by: UserDerezzed <me@userderezzed.dev>
1 parent 2f01cb0 commit 45b5c0b

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

plugin/src/main/java/de/Keyle/MyPet/commands/CommandChooseSkilltree.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,11 @@ public boolean onCommand(final CommandSender sender, Command command, String lab
7979
Skilltree skilltree = MyPetApi.getSkilltreeManager().getSkilltree(skilltreeName.toString());
8080
if (skilltree.getMobTypes().contains(myPet.getPetType()) && skilltree.checkRequirements(myPet)) {
8181
int requiredLevel = skilltree.getRequiredLevel();
82+
int maxLevel = skilltree.getMaxLevel();
8283
if (requiredLevel > 1 && myPet.getExperience().getLevel() < requiredLevel) {
8384
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.RequiresLevel.Message", player), myPet.getPetName(), requiredLevel));
85+
} else if (myPet.getExperience().getLevel() > maxLevel) {
86+
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.MaxLevel.Message", player), myPet.getPetName(), maxLevel));
8487
} else if (myPet.setSkilltree(skilltree, MyPetSelectSkilltreeEvent.Source.PlayerCommand)) {
8588
sender.sendMessage(Util.formatText(Translation.getString("Message.Skilltree.SwitchedTo", player), Colorizer.setColors(skilltree.getDisplayName())));
8689
if (!myPet.getOwner().isMyPetAdmin() || Configuration.Skilltree.SWITCH_FEE_ADMIN) {
@@ -130,13 +133,16 @@ public boolean onCommand(final CommandSender sender, Command command, String lab
130133
if (myPet.getSkilltree() != null && Configuration.Skilltree.CHOOSE_SKILLTREE_ONLY_ONCE && !myPet.getOwner().isMyPetAdmin()) {
131134
sender.sendMessage(Util.formatText(Translation.getString("Message.Command.ChooseSkilltree.OnlyOnce", myPet.getOwner()), myPet.getPetName()));
132135
} else if (skilltreeSlotMap.containsKey(event.getPosition())) {
133-
Skilltree selecedSkilltree = skilltreeSlotMap.get(event.getPosition());
134-
if (selecedSkilltree != null) {
135-
int requiredLevel = selecedSkilltree.getRequiredLevel();
136+
Skilltree selectedSkilltree = skilltreeSlotMap.get(event.getPosition());
137+
if (selectedSkilltree != null) {
138+
int requiredLevel = selectedSkilltree.getRequiredLevel();
139+
int maxLevel = selectedSkilltree.getMaxLevel();
136140
if (requiredLevel > 1 && myPet.getExperience().getLevel() < requiredLevel) {
137141
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.RequiresLevel.Message", myPetOwner), myPet.getPetName(), requiredLevel));
138-
} else if (myPet.setSkilltree(selecedSkilltree, MyPetSelectSkilltreeEvent.Source.PlayerCommand)) {
139-
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.SwitchedTo", myPetOwner), Colorizer.setColors(selecedSkilltree.getDisplayName())));
142+
} else if (myPet.getExperience().getLevel() > maxLevel) {
143+
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.MaxLevel.Message", myPetOwner), myPet.getPetName(), maxLevel));
144+
} else if (myPet.setSkilltree(selectedSkilltree, MyPetSelectSkilltreeEvent.Source.PlayerCommand)) {
145+
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skilltree.SwitchedTo", myPetOwner), Colorizer.setColors(selectedSkilltree.getDisplayName())));
140146
if (!myPet.getOwner().isMyPetAdmin() || Configuration.Skilltree.SWITCH_FEE_ADMIN) {
141147
double switchPenalty = Configuration.Skilltree.SWITCH_FEE_FIXED;
142148
switchPenalty += myPet.getExperience().getExp() * Configuration.Skilltree.SWITCH_FEE_PERCENT / 100.;
@@ -230,4 +236,4 @@ public List<String> onTabComplete(CommandSender sender, Command command, String
230236
}
231237
return Collections.emptyList();
232238
}
233-
}
239+
}

0 commit comments

Comments
 (0)