@Override
 public void readGuiData(DataInputStream data, EntityPlayer sender) throws IOException {
   byte lock = data.readByte();
   if (sender == null || canAccess(sender.getGameProfile())) lockController.setCurrentState(lock);
 }
 @Override
 public boolean isSecure() {
   return lockController.getButtonState() == LockButtonState.LOCKED;
 }
 @Override
 public void writeGuiData(DataOutputStream data) throws IOException {
   data.writeByte(lockController.getCurrentState());
 }
 @Override
 public void readPacketData(DataInputStream data) throws IOException {
   super.readPacketData(data);
   lockController.setCurrentState(data.readByte());
 }
 @Override
 public void writePacketData(DataOutputStream data) throws IOException {
   super.writePacketData(data);
   data.writeByte(lockController.getCurrentState());
 }
 @Override
 public void readFromNBT(NBTTagCompound data) {
   super.readFromNBT(data);
   lockController.readFromNBT(data, "lock");
 }
 @Override
 public void writeToNBT(NBTTagCompound data) {
   super.writeToNBT(data);
   lockController.writeToNBT(data, "lock");
 }