@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
	public void onPlayerChat(AsyncPlayerChatEvent event) {
		// see if they player is entering chat
		Player player = event.getPlayer();
		if(isEnteringMultilineChat(player)) {
			// yup!
			// capture it
			String line = event.getMessage();
			
			if(line.equals("done")) {
				onDone(player);
			}
			else if(line.equals("cancel")){
				onCancel(player);
			}
			else {
				String mlText = "";
				for(MetadataValue val: player.getMetadata("mleText")) {
					mlText = val.asString();
					break;
				}
				
				mlText += " " + line;
				
				// remove the old mlText
				player.removeMetadata("mleText", MCNSAEssentials.getInstance());
				// add the new mlText
				player.setMetadata("mleText", new FixedMetadataValue(MCNSAEssentials.getInstance(), mlText));
				
				ColourHandler.sendMessage(player, "&9Added text: &f%s", line);
			}
			
			// cancel it!
			event.setCancelled(true);
		}
	}