AdminChatCommand.java 2.2 KB

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