AdminChatCommand.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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
  22. @Conditions(CommandManager.ADMIN_CONDITION)
  23. public void processCommand(String[] args) {
  24. final BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
  25. if (args == null || args.length == 0) {
  26. //Process with no arguments
  27. if (bukkitCommandIssuer.isPlayer()) {
  28. final McMMOPlayer mmoPlayer = UserManager.getPlayer(
  29. bukkitCommandIssuer.getPlayer());
  30. pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
  31. } else {
  32. //Not support for console
  33. mcMMO.p.getLogger()
  34. .info("You cannot switch chat channels as console, please provide full arguments.");
  35. }
  36. } else {
  37. if (bukkitCommandIssuer.isPlayer()) {
  38. final McMMOPlayer mmoPlayer = UserManager.getPlayer(
  39. bukkitCommandIssuer.getPlayer());
  40. if (mmoPlayer == null) {
  41. return;
  42. }
  43. //Message contains the original command so it needs to be passed to this method to trim it
  44. pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);
  45. } else {
  46. pluginRef.getChatManager().processConsoleMessage(args);
  47. }
  48. //Arguments are greater than 0, therefore directly send message and skip toggles
  49. }
  50. }
  51. }