private void handlePublicChat(Player player, Packet packet) {
		    int colour = packet.readByte();
		    int effects  = packet.readByte();
		    byte[] packedChatData = packet.getRemainingData();
		    string unpacked = misc.textUnpack(packedChatData);
            ChatMessage message;

		    if (unpacked.StartsWith("/") && player.getClan() != null) {
                packedChatData = misc.textPack(unpacked.Substring(1));
			    message = new ChatMessage(colour, unpacked.Substring(1), effects, player, packedChatData);
			    Server.getClanManager().newClanMessage(player.getClan(), message);
			    return;
		    }
		    message = new ChatMessage(colour, unpacked, effects, player, packedChatData);
		    player.setLastChatMessage(message);
	    }
	    private void handleSendPm(Player player, Packet packet) {
		    long name = packet.readLong();
		    byte[] privateMsgPacked = packet.getRemainingData();
            string privateMsg = misc.textUnpack(privateMsgPacked);
		    if (privateMsg != null && name > 0) {
                player.getFriends().sendMessage(name, privateMsg, privateMsgPacked);
		    }
	    }