public void sendPrivateMessage(List<Client> targets, String message,
			Channel channel, boolean fromGame) {
		if (!fromGame
				&& channel.getGame() != null
				&& !channel.getGame().parsePrivateMessage(targets, message,
						this)) {
			return;
		}

		message = KCodeParser.parse(message, !isModerator(), 5, 10, 20);
		message = Server.get().parseSmileys(message);

		if (message.isEmpty()) {
			return;
		}

		StringBuilder recipients = new StringBuilder();

		for (Client target : targets) {
			recipients.append(target.getName());
			recipients.append(",");
		}

		String recipient = recipients.substring(0, recipients.length() - 1);

		if (!targets.contains(this)) {
			targets.add(this);
		}

		for (Client target : targets) {
			if (channel.getClients().contains(target)) {
				target.send(PacketCreator.privateMessage(name, recipient,
						channel.getName(), message, " "));
			} else {
				for (Channel ch : target.getChannels()) {
					target.send(PacketCreator.privateMessage(name, recipient,
							ch.getName(), message, channel.getName()));
				}
			}
		}
	}