public MessageBuilder build() {
			for (String sender : this.senders) {
				String message = this.message;
				Config messages_config = this.message_config;
				String finalmessage;

				if (messages_config != null) {
					if (messages_config.getFile().get(message) != null) {
						finalmessage = (String) messages_config.getFile().get(
								message);
					} else {
						finalmessage = "&9[" + AdminEye.pdfFile.getName()
								+ "] &cERROR: Message string &e" + message
								+ "&c has not been found in the &e"
								+ messages_config.name + ".yml&c config.";
					}
				} else {
					finalmessage = message;
				}

				for (Map.Entry<String, String> replacement_pairs : this.replacements
						.entrySet()) {
					finalmessage = finalmessage.replaceAll("%"
							+ replacement_pairs.getKey(),
							replacement_pairs.getValue());
				}

				finalmessage = MessageHandler.replacePrefixes(finalmessage);
				finalmessage = MessageHandler.replaceColours(finalmessage);

				if (!finalmessage.startsWith("-")) {
					if (sender == "*") {
						for (Player player : Bukkit.getOnlinePlayers()) {
							player.sendMessage(finalmessage);
						}
					} else if (sender == "$") {
						Bukkit.getConsoleSender().sendMessage(finalmessage);
					} else {
						Player player = Bukkit.getPlayer(sender);
						if (player != null) {
							player.sendMessage(finalmessage);
						}
					}
				}
			}

			this.replacements = new HashMap<String, String>();
			return this;
		}