public void handleUpdateSign(Packet130UpdateSign packet130updatesign) { WorldServer worldserver = mcServer.getWorldManager(playerEntity.dimension); if (worldserver.blockExists( packet130updatesign.xPosition, packet130updatesign.yPosition, packet130updatesign.zPosition)) { TileEntity tileentity = worldserver.getBlockTileEntity( packet130updatesign.xPosition, packet130updatesign.yPosition, packet130updatesign.zPosition); if (tileentity instanceof TileEntitySign) { TileEntitySign tileentitysign = (TileEntitySign) tileentity; if (!tileentitysign.getIsEditAble()) { mcServer.logWarning( (new StringBuilder()) .append("Player ") .append(playerEntity.username) .append(" just tried to change non-editable sign") .toString()); return; } } for (int i = 0; i < 4; i++) { boolean flag = true; if (packet130updatesign.signLines[i].length() > 15) { flag = false; } else { for (int l = 0; l < packet130updatesign.signLines[i].length(); l++) { if (ChatAllowedCharacters.allowedCharacters.indexOf( packet130updatesign.signLines[i].charAt(l)) < 0) { flag = false; } } } if (!flag) { packet130updatesign.signLines[i] = "!?"; } } if (tileentity instanceof TileEntitySign) { int j = packet130updatesign.xPosition; int k = packet130updatesign.yPosition; int i1 = packet130updatesign.zPosition; TileEntitySign tileentitysign1 = (TileEntitySign) tileentity; for (int j1 = 0; j1 < 4; j1++) { tileentitysign1.signText[j1] = packet130updatesign.signLines[j1]; } tileentitysign1.func_32001_a(false); tileentitysign1.onInventoryChanged(); worldserver.markBlockNeedsUpdate(j, k, i1); } } }