From a3c15d673beb2682523729c2a03fa1e1483c850a Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Sun, 3 Jan 2021 23:18:20 +0000 Subject: [PATCH] Set arcane lock data server-side and sync the tile entity properly, fixes #580 --- .../java/electroblob/wizardry/spell/ArcaneLock.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/electroblob/wizardry/spell/ArcaneLock.java b/src/main/java/electroblob/wizardry/spell/ArcaneLock.java index 60b5534d..7c532079 100644 --- a/src/main/java/electroblob/wizardry/spell/ArcaneLock.java +++ b/src/main/java/electroblob/wizardry/spell/ArcaneLock.java @@ -47,10 +47,12 @@ public class ArcaneLock extends SpellRay { if(caster instanceof EntityPlayer){ - if(toggleLock(world, pos, (EntityPlayer)caster)){ - BlockPos otherHalf = BlockUtils.getConnectedChest(world, pos); - if(otherHalf != null) toggleLock(world, otherHalf, (EntityPlayer)caster); - return true; + if(!world.isRemote){ + if(toggleLock(world, pos, (EntityPlayer)caster)){ + BlockPos otherHalf = BlockUtils.getConnectedChest(world, pos); + if(otherHalf != null) toggleLock(world, otherHalf, (EntityPlayer)caster); + return true; + } } } @@ -67,11 +69,13 @@ public class ArcaneLock extends SpellRay { // Unlocking if(world.getPlayerEntityByUUID(tileentity.getTileData().getUniqueId(NBT_KEY)) == player){ NBTExtras.removeUniqueId(tileentity.getTileData(), NBT_KEY); + world.markAndNotifyBlock(pos, null, world.getBlockState(pos), world.getBlockState(pos), 3); return true; } }else{ // Locking tileentity.getTileData().setUniqueId(NBT_KEY, player.getUniqueID()); + world.markAndNotifyBlock(pos, null, world.getBlockState(pos), world.getBlockState(pos), 3); return true; } }