From 2256adf30c3731f58bb1a4ed6b214b9fc8b0a75a Mon Sep 17 00:00:00 2001 From: payonel Date: Tue, 6 Nov 2018 00:56:13 -0800 Subject: [PATCH] protect lock data from being overwritten --- .../scala/li/cil/oc/server/PacketHandler.scala | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/PacketHandler.scala b/src/main/scala/li/cil/oc/server/PacketHandler.scala index fdee66cd7..4b08680c2 100644 --- a/src/main/scala/li/cil/oc/server/PacketHandler.scala +++ b/src/main/scala/li/cil/oc/server/PacketHandler.scala @@ -89,14 +89,17 @@ object PacketHandler extends CommonPacketHandler { def onDriveLock(p: PacketParser) = p.player match { case player: EntityPlayerMP => - Delegator.subItem(player.getHeldItem) match { + val heldItem = player.getHeldItem + Delegator.subItem(heldItem) match { case Some(drive: FileSystemLike) => - val data = new DriveData(player.getHeldItem) - data.lockInfo = player.getDisplayName match { - case name: String if name != null && !name.isEmpty => name - case _ => "notch" // meaning: "unknown" + val data = new DriveData(heldItem) + if (!data.isLocked) { + data.lockInfo = player.getDisplayName match { + case name: String if name != null && !name.isEmpty => name + case _ => "notch" // meaning: "unknown" + } + data.save(heldItem) } - data.save(player.getHeldItem) case _ => // Invalid packet } case _ => // Invalid Packet