From 6eb00136cf3d021e067d36ad0f29c99a9a4edaa3 Mon Sep 17 00:00:00 2001 From: SarahKirksey Date: Mon, 10 Jan 2022 23:37:59 -0800 Subject: [PATCH 1/4] Osmotic Enchanter doesn't lose your settings when you add/remove a wand before starting enchantment --- .../java/thaumic/tinkerer/common/block/tile/TileEnchanter.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java index d09284ea9..e555032f1 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java @@ -232,8 +232,6 @@ public boolean consumeAllVisCrafting(ItemStack is, EntityPlayer player, AspectLi public void markDirty() { super.markDirty(); if (!worldObj.isRemote && !working) { - enchantments.clear(); - levels.clear(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } From f02c345e29cd1bfcdecc0e5945a8ae2a5bb40704 Mon Sep 17 00:00:00 2001 From: SarahKirksey Date: Mon, 10 Jan 2022 23:37:59 -0800 Subject: [PATCH 2/4] Osmotic Enchanter doesn't lose your settings when you add/remove a wand before starting enchantment Revert "Osmotic Enchanter doesn't lose your settings when you add/remove a wand before starting enchantment" This reverts commit 6eb00136cf3d021e067d36ad0f29c99a9a4edaa3. Revert "Revert "Osmotic Enchanter doesn't lose your settings when you add/remove a wand before starting enchantment"" This reverts commit 01f6bd80f2511bccee723a396c1b74381c3b410f. --- .../java/thaumic/tinkerer/common/block/tile/TileEnchanter.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java index d09284ea9..e555032f1 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java @@ -232,8 +232,6 @@ public boolean consumeAllVisCrafting(ItemStack is, EntityPlayer player, AspectLi public void markDirty() { super.markDirty(); if (!worldObj.isRemote && !working) { - enchantments.clear(); - levels.clear(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } From 34532808b9f286f78ea467700f77de49c3165b1a Mon Sep 17 00:00:00 2001 From: SarahKirksey Date: Wed, 12 Jan 2022 19:12:58 -0800 Subject: [PATCH 3/4] Osmotic Enchanter doesn't lose your settings when you add/remove a wand before starting enchantment --- .../java/thaumic/tinkerer/common/block/tile/TileEnchanter.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java index d09284ea9..e555032f1 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java @@ -232,8 +232,6 @@ public boolean consumeAllVisCrafting(ItemStack is, EntityPlayer player, AspectLi public void markDirty() { super.markDirty(); if (!worldObj.isRemote && !working) { - enchantments.clear(); - levels.clear(); worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } } From ce381c2ee6032f6b6a52f8e7e9ee48aad24dcccd Mon Sep 17 00:00:00 2001 From: SarahKirksey Date: Fri, 14 Jan 2022 09:00:34 -0800 Subject: [PATCH 4/4] Should fix hotswap exploit for Osmotic Enchanter For some unidentified reason, the last attempt broke the enchanter entirely. This approach should function as intended and offer better performance. --- .../thaumic/tinkerer/common/block/tile/TileEnchanter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java index e555032f1..53b9727ea 100644 --- a/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java +++ b/src/main/java/thaumic/tinkerer/common/block/tile/TileEnchanter.java @@ -388,13 +388,13 @@ public ItemStack decrStackSize(int i, int j) { if (inventorySlots[i].stackSize <= j) { stackAt = inventorySlots[i]; - inventorySlots[i] = null; + setInventorySlotContents(i, null); return stackAt; } else { stackAt = inventorySlots[i].splitStack(j); if (inventorySlots[i].stackSize == 0) - inventorySlots[i] = null; + setInventorySlotContents(i, null); return stackAt; } @@ -411,6 +411,8 @@ public ItemStack getStackInSlotOnClosing(int i) { @Override public void setInventorySlotContents(int i, ItemStack itemstack) { inventorySlots[i] = itemstack; + if(i==0) + clearEnchants(); } @Override