@Override
	public void onPluginMessageReceived(String channel, Player player, byte[] message) {
		if(!channel.equals(MESSAGING_CHANNEL)) return;
		DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
	    try {
	    	String subchannel = in.readUTF();
			if(subchannel.equals("Forward")) {
			    String mychannel = in.readUTF();
			    if(mychannel.equals(DONATION_MESSAGING_CHANNEL)) {
			        byte[] msgbytes = new byte[in.readShort()];
			        in.readFully(msgbytes);
			        
			        DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes));
			        plugin.getDonationManager().tryDonation(DonationID.getByID(msgin.readInt()), msgin.readUTF());
			    } else if(mychannel.equals(VOTE_MESSAGING_CHANNEL)) {
			        byte[] msgbytes = new byte[in.readShort()];
			        in.readFully(msgbytes);
			        
			        DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes));
			        UEVote vote = new UEVote(msgin.readUTF(), msgin.readUTF(), msgin.readUTF(), msgin.readUTF());
                    plugin.getServer().getPluginManager().callEvent(new UEVoteReceiveEvent(vote));
			    }
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}