From b5582099f9389450a4e92840199acc76a04065c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E5=82=91?= Date: Sat, 30 Apr 2022 15:40:53 +0800 Subject: [PATCH] Fix Give Command Promote Level Bug Should be <=40, just change the order --- .../command/commands/GiveCommand.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java index 03147a44b..52670efa7 100644 --- a/src/main/java/emu/grasscutter/command/commands/GiveCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GiveCommand.java @@ -163,20 +163,28 @@ public final class GiveCommand implements CommandHandler { List items = new LinkedList<>(); for (int i = 0; i < amount; i++) { GameItem item = new GameItem(itemData); + if (item.isEquipped()) { + // check item max level + if (item.getItemType() == ItemType.ITEM_WEAPON) { + if (lvl > 90) lvl = 90; + } else { + if (lvl > 21) lvl = 21; + } + } item.setCount(amount); item.setLevel(lvl); - if (lvl > 20 && lvl < 40) { - item.setPromoteLevel(1); - } else if (lvl > 40 && lvl <= 50) { - item.setPromoteLevel(2); - } else if (lvl > 50 && lvl <= 60) { - item.setPromoteLevel(3); - } else if (lvl > 60 && lvl <= 70) { - item.setPromoteLevel(4); - } else if (lvl > 70 && lvl <= 80) { - item.setPromoteLevel(5); - } else if (lvl > 80 && lvl <= 90) { + if (lvl > 80) { item.setPromoteLevel(6); + } else if (lvl > 70) { + item.setPromoteLevel(5); + } else if (lvl > 60) { + item.setPromoteLevel(4); + } else if (lvl > 50) { + item.setPromoteLevel(3); + } else if (lvl > 40) { + item.setPromoteLevel(2); + } else if (lvl > 20) { + item.setPromoteLevel(1); } if (item.getItemType() == ItemType.ITEM_WEAPON) { if (refinement > 0) {