diff --git a/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java b/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java index dde4a8f3e..585dce876 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java @@ -32,15 +32,15 @@ public class PerkItem extends Item { @Override public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltips, TooltipFlag isAdvanced) { - ChatFormatting chatFormatting = switch (this.getPerk().type.getSlot()) { - case 0 -> ChatFormatting.YELLOW; - case 1 -> ChatFormatting.GREEN; - default -> ChatFormatting.RED; + ChatFormatting chatFormatting = switch (this.getPerk().type) { + case AMMO -> ChatFormatting.YELLOW; + case FUNCTIONAL -> ChatFormatting.GREEN; + case DAMAGE -> ChatFormatting.RED; }; tooltips.add(Component.translatable("perk.superbwarfare." + this.getPerk().descriptionId + ".desc").withStyle(ChatFormatting.GRAY)); tooltips.add(Component.literal("")); tooltips.add(Component.translatable("perk.superbwarfare.slot").withStyle(ChatFormatting.GOLD) - .append(Component.translatable("perk.superbwarfare.slot_" + this.getPerk().type.getSlot()).withStyle(chatFormatting))); + .append(Component.translatable("perk.superbwarfare.slot_" + this.getPerk().type.getName()).withStyle(chatFormatting))); } } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java index 6c0b1100f..4f7c216a8 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/GunItem.java @@ -178,7 +178,7 @@ public abstract class GunItem extends Item { } } - public boolean canApplyPerk(ItemStack stack, Perk perk, int slot) { - return perk.type.getSlot() == slot; + public boolean canApplyPerk(ItemStack stack, Perk perk, Perk.Type slot) { + return perk.type == slot; } } diff --git a/src/main/java/net/mcreator/superbwarfare/perk/Perk.java b/src/main/java/net/mcreator/superbwarfare/perk/Perk.java index 6729cb036..ca9ddd5d8 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/Perk.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/Perk.java @@ -10,17 +10,17 @@ public class Perk { } public enum Type { - AMMO(0), - FUNCTIONAL(1), - DAMAGE(2); - private final int slot; + AMMO("Ammo"), + FUNCTIONAL("Func"), + DAMAGE("Damage"); + private final String type; - Type(int slot) { - this.slot = slot; + Type(String type) { + this.type = type; } - public int getSlot() { - return slot; + public String getName() { + return type; } } } diff --git a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java index 644a82837..01825cba7 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java @@ -2,7 +2,6 @@ package net.mcreator.superbwarfare.perk; import net.mcreator.superbwarfare.init.ModPerks; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; @@ -50,22 +49,16 @@ public class PerkHelper { return 0; } - ResourceLocation perkId = getPerkId(perk); - ListTag perkTags = getPerkTags(stack); - - for (int i = 0; i < perkTags.size(); ++i) { - CompoundTag compoundtag = perkTags.getCompound(i); - ResourceLocation tagPerkId = getPerkId(compoundtag); - if (tagPerkId != null && tagPerkId.equals(perkId)) { - return getPerkLevel(compoundtag); - } - } - - return 0; + return getPerkLevel(getPerkTag(stack, perk.type)); } - public static ListTag getPerkTags(ItemStack stack) { - return stack.getTag() != null ? stack.getTag().getList(TAG_PERK, 10) : new ListTag(); + public static CompoundTag getPerkTag(ItemStack stack, Perk.Type type) { + var tag = stack.getTag(); + if (tag == null) return new CompoundTag(); + + var tagPerk = tag.getCompound(TAG_PERK); + if (!tagPerk.contains(type.getName())) return new CompoundTag(); + return tag.getCompound(type.getName()); } }