From f544173ad0e7c953a0355e36bece0d51127be7c4 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Wed, 14 Aug 2024 16:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E9=80=A0=E6=A8=A1=E5=BC=8F=E4=B8=8B?= =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E4=BC=9A=E6=97=A0=E8=A7=86=E5=BC=BA=E5=8C=96?= =?UTF-8?q?=E7=82=B9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/menu/ReforgingTableMenu.java | 13 ++++++++----- .../network/message/SetPerkLevelMessage.java | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/block/menu/ReforgingTableMenu.java b/src/main/java/net/mcreator/superbwarfare/block/menu/ReforgingTableMenu.java index 11aed4122..27ddaaef2 100644 --- a/src/main/java/net/mcreator/superbwarfare/block/menu/ReforgingTableMenu.java +++ b/src/main/java/net/mcreator/superbwarfare/block/menu/ReforgingTableMenu.java @@ -172,12 +172,12 @@ public class ReforgingTableMenu extends AbstractContainerMenu { }); } - public void setPerkLevel(Perk.Type type, boolean upgrade) { - if (upgrade && this.upgradePoint.get() <= 0) { + public void setPerkLevel(Perk.Type type, boolean upgrade, boolean isCreative) { + if (upgrade && this.upgradePoint.get() <= 0 && !isCreative) { return; } - if (!upgrade && this.upgradePoint.get() >= 100) { + if (!upgrade && this.upgradePoint.get() >= 100 && !isCreative) { return; } @@ -190,7 +190,9 @@ public class ReforgingTableMenu extends AbstractContainerMenu { this.damagePerkLevel.set(upgrade ? Math.min(10, this.damagePerkLevel.get() + 1) : Math.max(1, this.damagePerkLevel.get() - 1)); } - this.upgradePoint.set(Mth.clamp(this.upgradePoint.get() + (upgrade ? -1 : 1), 0, 100)); + if (!isCreative) { + this.upgradePoint.set(Mth.clamp(this.upgradePoint.get() + (upgrade ? -1 : 1), 0, 100)); + } } public void handleUpgradePoint(ItemStack stack) { @@ -285,7 +287,8 @@ public class ReforgingTableMenu extends AbstractContainerMenu { ItemStack output = gun.copy(); PerkHelper.removePerkByType(output, perkItem.getPerk().type); - output.getOrCreateTag().putDouble("UpgradePoint", Math.min(100, level + output.getOrCreateTag().getDouble("UpgradePoint"))); + output.getOrCreateTag().putDouble("UpgradePoint", Math.min(100, level - 1 + output.getOrCreateTag().getDouble("UpgradePoint"))); + this.upgradePoint.set((int) output.getOrCreateTag().getDouble("UpgradePoint")); this.container.setItem(INPUT_SLOT, output); this.container.setChanged(); diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/SetPerkLevelMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/SetPerkLevelMessage.java index b7bcf829e..9f0f2079d 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/SetPerkLevelMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/SetPerkLevelMessage.java @@ -40,7 +40,7 @@ public class SetPerkLevelMessage { return; } - menu.setPerkLevel(Perk.Type.values()[message.type], message.add); + menu.setPerkLevel(Perk.Type.values()[message.type], message.add, player.getAbilities().instabuild); } }); ctx.get().setPacketHandled(true);