AdminChatCommand.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.gmail.nossr50.commands.chat;
  2. import co.aikar.commands.BaseCommand;
  3. import co.aikar.commands.BukkitCommandIssuer;
  4. import co.aikar.commands.annotation.CommandAlias;
  5. import co.aikar.commands.annotation.CommandPermission;
  6. import co.aikar.commands.annotation.Conditions;
  7. import co.aikar.commands.annotation.Default;
  8. import com.gmail.nossr50.commands.CommandManager;
  9. import com.gmail.nossr50.datatypes.chat.ChatChannel;
  10. import com.gmail.nossr50.datatypes.player.McMMOPlayer;
  11. import com.gmail.nossr50.mcMMO;
  12. import com.gmail.nossr50.util.player.UserManager;
  13. import org.jetbrains.annotations.NotNull;
  14. @CommandPermission("mcmmo.chat.adminchat")
  15. @CommandAlias("ac|a|adminchat|achat") //Kept for historical reasons
  16. public class AdminChatCommand extends BaseCommand {
  17. private final @NotNull mcMMO pluginRef;
  18. public AdminChatCommand(@NotNull mcMMO pluginRef) {
  19. this.pluginRef = pluginRef;
  20. }
  21. @Default @Conditions(CommandManager.ADMIN_CONDITION)
  22. public void processCommand(String[] args) {
  23. BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
  24. if(args == null || args.length == 0) {
  25. //Process with no arguments
  26. if(bukkitCommandIssuer.isPlayer()) {
  27. McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
  28. pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
  29. } else {
  30. //Not support for console
  31. mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
  32. }
  33. } else {
  34. if(bukkitCommandIssuer.isPlayer()) {
  35. McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
  36. if(mmoPlayer == null)
  37. return;
  38. //Message contains the original command so it needs to be passed to this method to trim it
  39. pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);
  40. } else {
  41. pluginRef.getChatManager().processConsoleMessage(args);
  42. }
  43. //Arguments are greater than 0, therefore directly send message and skip toggles
  44. }
  45. }
  46. }