public void a(Packet130UpdateSign packet130updatesign) { // CraftBukkit start if (this.player.dead) { return; } // CraftBukkit end // WorldServer worldserver = this.minecraftServer.a(this.player.dimension); if (worldserver.isLoaded(packet130updatesign.x, packet130updatesign.y, packet130updatesign.z)) { TileEntity tileentity = worldserver.getTileEntity( packet130updatesign.x, packet130updatesign.y, packet130updatesign.z); if (tileentity instanceof TileEntitySign) { TileEntitySign tileentitysign = (TileEntitySign) tileentity; if (!tileentitysign.a()) { this.minecraftServer.c( "Player " + this.player.name + " just tried to change non-editable sign"); // CraftBukkit this.sendPacket( new Packet130UpdateSign( packet130updatesign.x, packet130updatesign.y, packet130updatesign.z, tileentitysign.lines)); return; } } int i; int j; for (j = 0; j < 4; ++j) { boolean flag = true; if (packet130updatesign.lines[j].length() > 15) { flag = false; } else { for (i = 0; i < packet130updatesign.lines[j].length(); ++i) { if (FontAllowedCharacters.a.indexOf(packet130updatesign.lines[j].charAt(i)) < 0) { flag = false; } } } if (!flag) { packet130updatesign.lines[j] = "!?"; } } if (tileentity instanceof TileEntitySign) { j = packet130updatesign.x; int k = packet130updatesign.y; i = packet130updatesign.z; TileEntitySign tileentitysign1 = (TileEntitySign) tileentity; // CraftBukkit start Player player = server.getPlayer(this.player); SignChangeEvent event = new SignChangeEvent( (CraftBlock) player.getWorld().getBlockAt(j, k, i), server.getPlayer(this.player), packet130updatesign.lines); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { for (int l = 0; l < 4; ++l) { tileentitysign1.lines[l] = event.getLine(l); } tileentitysign1.setEditable(false); } // CraftBukkit end tileentitysign1.update(); worldserver.notify(j, k, i); } } }