/* * PwnChat -- A Bukkit/Spigot plugin for multi-channel cross-server (via bungeecord) chat. * Copyright (c) 2013 Pwn9.com. Sage905 <ptoal@takeflight.ca> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. */ package com.pwn9.pwnchat.commands; import com.pwn9.pwnchat.Channel; import com.pwn9.pwnchat.ChannelManager; import com.pwn9.pwnchat.PwnChat; import com.pwn9.pwnchat.commands.subcommands.*; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.player.AsyncPlayerChatEvent; import static org.bukkit.ChatColor.GOLD; /** * Main command handler for all /pr commands. */ public class pchat extends BaseCommandExecutor { public pchat(PwnChat instance) { super(instance); addSubCommand(new reload(instance)); addSubCommand(new list(instance)); addSubCommand(new listen(instance)); addSubCommand(new silence(instance)); addSubCommand(new talk(instance)); addSubCommand(new dumpdata(instance)); } @Override public boolean onCommand(CommandSender sender, Command command, String alias, String[] args) { // If this is a channel prefix, then send the message to that channel. if (args.length > 1) { for (Channel c : ChannelManager.getInstance().getChannelList()) { if (c.getPrefix() != null && c.getPrefix().equalsIgnoreCase(args[0]) && sender.hasPermission(c.getPermission())) { int i; StringBuilder message = new StringBuilder(); for ( i = 1 ; i < args.length ; i++ ) { message.append(args[i]).append(" "); } // TODO: Fix this. if (sender instanceof Player) { AsyncPlayerChatEvent e = new AsyncPlayerChatEvent(false, (Player)sender, message.toString(), c.getRecipients()); Bukkit.getServer().getPluginManager().callEvent(e); } return true; } } } return super.onCommand(sender, command, alias, args); } @Override public boolean sendHelpMsg(CommandSender sender, String alias) { sender.sendMessage(GOLD + "PwnChat Commands:"); return super.sendHelpMsg(sender, alias); } }