From 84e8c877239c8144e63400b2418a0593a8d8b41a Mon Sep 17 00:00:00 2001 From: cheaterpaul Date: Wed, 5 Jun 2024 21:15:29 +0200 Subject: [PATCH] fix refinement saving --- .../entity/player/skills/SkillHandler.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/teamlapen/vampirism/entity/player/skills/SkillHandler.java b/src/main/java/de/teamlapen/vampirism/entity/player/skills/SkillHandler.java index 4d558a264..90cc788e1 100755 --- a/src/main/java/de/teamlapen/vampirism/entity/player/skills/SkillHandler.java +++ b/src/main/java/de/teamlapen/vampirism/entity/player/skills/SkillHandler.java @@ -315,7 +315,7 @@ public void deserializeNBT(HolderLookup.@NotNull Provider provider, @NotNull Com for (int i = 0; i < refinements.size(); i++) { CompoundTag stackNbt = refinements.getCompound(i); int slot = stackNbt.getInt("slot"); - ItemStack stack = ItemStack.parseOptional(provider, stackNbt); + ItemStack stack = ItemStack.parseOptional(provider, stackNbt.getCompound("stack")); if (stack.getItem() instanceof IRefinementItem refinementItem) { IFaction exclusiveFaction = refinementItem.getExclusiveFaction(stack); if (exclusiveFaction == null || this.faction.equals(exclusiveFaction)) { @@ -360,11 +360,11 @@ public void deserializeUpdateNBT(HolderLookup.Provider provider, @NotNull Compou } if (nbt.contains("refinement_items", Tag.TAG_LIST)) { - ListTag refinements = nbt.getList("refinement_items", 10); + ListTag refinements = nbt.getList("refinement_items", Tag.TAG_LIST); for (int i = 0; i < refinements.size(); i++) { CompoundTag stackNbt = refinements.getCompound(i); int slot = stackNbt.getInt("slot"); - ItemStack stack = ItemStack.parseOptional(provider, stackNbt); + ItemStack stack = ItemStack.parseOptional(provider, stackNbt.getCompound("stack")); if (stack.getItem() instanceof IRefinementItem refinementItem) { IFaction exclusiveFaction = refinementItem.getExclusiveFaction(stack); if (exclusiveFaction == null || this.faction.equals(exclusiveFaction)) { @@ -384,7 +384,11 @@ public void deserializeUpdateNBT(HolderLookup.Provider provider, @NotNull Compou @Override public void resetRefinements() { + for (int i = 0; i < this.refinementItems.size(); i++) { + removeRefinementItem(i); + } this.refinementItems.clear(); + this.dirty = true; } public void resetSkills() { @@ -405,7 +409,8 @@ public void resetSkills() { if (!stack.isEmpty()) { CompoundTag stackNbt = new CompoundTag(); stackNbt.putInt("slot", i); - stack.save(provider, stackNbt); + var tag = stack.save(provider); + stackNbt.put("stack", tag); refinements.add(stackNbt); } } @@ -432,7 +437,8 @@ public void resetSkills() { if (!stack.isEmpty()) { CompoundTag stackNbt = new CompoundTag(); stackNbt.putInt("slot", i); - stack.save(provider, stackNbt); + var tag = stack.save(provider); + stackNbt.put("stack", tag); refinementItems.add(stackNbt); } }