CommandAFK.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package me.km.afk;
  2. import me.km.KajetansMod;
  3. import me.km.api.GlobalText;
  4. import me.km.api.Module;
  5. import me.km.api.ModuleCommand;
  6. import me.km.api.Utils;
  7. import me.km.exception.PlayerNotFoundException;
  8. import me.km.permissions.Permissions;
  9. import net.minecraft.command.ICommandSender;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. public class CommandAFK extends ModuleCommand
  12. {
  13. public CommandAFK(Module m)
  14. {
  15. super("afk", m);
  16. super.setDescription("Schaltet den AFK-Zustand ein / aus");
  17. super.setUsage("/afk [player]");
  18. super.setPermission(Permissions.AFK);
  19. }
  20. @Override
  21. public boolean execute(ICommandSender cs, String[] arg)
  22. {
  23. EntityPlayer affectedPlayer;
  24. try
  25. {
  26. if(!KajetansMod.perms.hasPermission(cs, Permissions.AFK))
  27. {
  28. throw new IndexOutOfBoundsException();
  29. }
  30. affectedPlayer = Utils.getPlayerByName(arg[0]);
  31. }
  32. catch(PlayerNotFoundException ex)
  33. {
  34. this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
  35. return true;
  36. }
  37. catch(IndexOutOfBoundsException ex)
  38. {
  39. if(!(cs instanceof EntityPlayer))
  40. {
  41. this.getModule().send(cs, GlobalText.missingParameter());
  42. return true;
  43. }
  44. affectedPlayer = (EntityPlayer) cs;
  45. }
  46. AfkListener man = KajetansMod.afkManager.getEvent(AfkListener.class);
  47. if(man.isAfk(affectedPlayer))
  48. {
  49. man.setAfk(affectedPlayer, false);
  50. this.getModule().send(affectedPlayer, "Du bist nicht mehr AFK.");
  51. if(!cs.equals(affectedPlayer))
  52. {
  53. this.getModule().send(cs, affectedPlayer.getName() + " ist nicht mehr AFK.");
  54. }
  55. return true;
  56. }
  57. man.setAfk(affectedPlayer, true);
  58. this.getModule().send(affectedPlayer, "Du bist nun AFK.");
  59. if(!cs.equals(affectedPlayer))
  60. {
  61. this.getModule().send(cs, affectedPlayer.getName() + " ist nun AFK.");
  62. }
  63. return true;
  64. }
  65. }