public static void LeaveFarm( final LittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr) { FarmServer.getPlayerStorage().deregisterPlayer(chr); c.updateLoginState(MapleClient.LOGIN_SERVER_TRANSITION, c.getSessionIPAddress()); try { World.ChannelChange_Data(new CharacterTransfer(chr), chr.getId(), c.getChannel()); c.getSession() .write( CField.getChannelChange( c, Integer.parseInt( ChannelServer.getInstance(c.getChannel()).getIP().split(":")[1]))); } finally { final String s = c.getSessionIPAddress(); LoginServer.addIPAuth(s.substring(s.indexOf('/') + 1, s.length())); chr.saveToDB(false, true); c.setPlayer(null); c.setReceiving(false); c.getSession().close(true); } }