public void chat(ChatPlayer player, String line, String channel) {
		ChatChannel chan = ChannelManager.getChannel(PlayerManager.getPlayer(player).channel);
		if (channel == null || channel.length() <= 0)
			channel = chan.name;
		else
			chan = ChannelManager.getChannel(channel);

		if (MCNSAChat3.permissions.getUser(player.name).has("mcnsachat3.user.cancolor") && !chan.modes.contains(ChatChannel.Mode.BORING))
			line = PluginUtil.color(line);
		else
			line = PluginUtil.stripColor(line);

		if (chan.modes.contains(ChatChannel.Mode.RANDOM))
			line = "&k" + line;
		if (chan.modes.contains(ChatChannel.Mode.LOUD))
			line = PluginUtil.color("&l" + line).toUpperCase();
		if (chan.modes.contains(ChatChannel.Mode.RAVE))
			line = PluginUtil.raveColor(line);

		String message = plugin.getConfig().getString("strings.message");
		message = message.replace("%server%", player.server);
		message = message.replace("%channel%", chan.color + chan.name);
		message = message.replace("%rank%", PluginUtil.formatRank(player.name));
		message = message.replace("%prefix%", MCNSAChat3.permissions.getUser(player.name).getPrefix());
		message = message.replace("%player%", player.name);
		message = message.replace("%message%", line);

		info(player, message, chan.name, !(player.server.equals(plugin.name)), player.name);
	}