public void disconnect(String s) { // CraftBukkit start String leaveMessage = "\u00A7e" + this.player.name + " left the game."; PlayerKickEvent event = new PlayerKickEvent(server.getPlayer(this.player), s, leaveMessage); server.getPluginManager().callEvent(event); if (event.isCancelled()) { // Do not kick the player return; } // Send the possibly modified leave message s = event.getReason(); // CraftBukkit end this.player.A(); this.sendPacket(new Packet255KickDisconnect(s)); this.networkManager.d(); // CraftBukkit start leaveMessage = event.getLeaveMessage(); if (leaveMessage != null) { this.minecraftServer.serverConfigurationManager.sendAll(new Packet3Chat(leaveMessage)); } // CraftBukkit end this.minecraftServer.serverConfigurationManager.disconnect(this.player); this.disconnected = true; }