CommandTempBan.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package me.km.commands;
  2. import com.mojang.authlib.GameProfile;
  3. import me.km.api.Utils;
  4. import me.km.api.GlobalText;
  5. import me.km.api.Module;
  6. import me.km.api.ModuleCommand;
  7. import java.util.Date;
  8. import me.km.KajetansMod;
  9. import me.km.permissions.Permissions;
  10. import net.minecraft.command.ICommandSender;
  11. import net.minecraft.entity.player.EntityPlayerMP;
  12. import net.minecraft.server.management.UserListBansEntry;
  13. import net.minecraft.util.text.TextComponentString;
  14. public class CommandTempBan extends ModuleCommand
  15. {
  16. public CommandTempBan(Module m)
  17. {
  18. super("tempban", m);
  19. super.setDescription("Bannt einen Spiele temporär");
  20. super.setUsage("/tempban <name> <days> <hours> <minutes> <reason>");
  21. super.setPermission(Permissions.TEMP_BAN);
  22. }
  23. @Override
  24. public boolean execute(ICommandSender cs, String[] arg)
  25. {
  26. if(arg.length <= 4)
  27. {
  28. return false;
  29. }
  30. Date date = new Date(System.currentTimeMillis());
  31. try
  32. {
  33. long days = Integer.parseInt(arg[1]) * 86400000l;
  34. long hours = Integer.parseInt(arg[2]) * 3600000l;
  35. long minutes = Integer.parseInt(arg[3]) * 60000l;
  36. if(days < 0 || hours < 0 || minutes < 0)
  37. {
  38. throw new NumberFormatException();
  39. }
  40. date.setTime(date.getTime() + days + hours + minutes);
  41. }
  42. catch(NumberFormatException ex)
  43. {
  44. this.getModule().send(cs, GlobalText.noNaturalNumber());
  45. return true;
  46. }
  47. GameProfile affectedPlayer = KajetansMod.playerbank.getDataBank().getOfflinePlayer(arg[0]);
  48. if(affectedPlayer == null)
  49. {
  50. this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0]));
  51. return true;
  52. }
  53. String time = arg[1] + " Tage, " + arg[2] + " Stunden und " + arg[3] + " Minuten";
  54. if(arg[1].equals("1"))
  55. {
  56. time = time.replace("Tage", "Tag");
  57. }
  58. if(arg[2].equals("1"))
  59. {
  60. time = time.replace("Stunden", "Stunde");
  61. }
  62. if(arg[3].equals("1"))
  63. {
  64. time = time.replace("Minuten", "Minute");
  65. }
  66. String message = Utils.connectSpaces(arg, 4);
  67. this.getModule().sendBroadcast("§4" + affectedPlayer.getName() + " §cwurde von §4" + cs.getName() + "§c für " + time + " gebannt, weil: §4" + message);
  68. UserListBansEntry bans = new UserListBansEntry(affectedPlayer, null, cs.getName(), date, message);
  69. KajetansMod.server.getPlayerList().getBannedPlayers().addEntry(bans);
  70. EntityPlayerMP p = KajetansMod.server.getPlayerList().getPlayerByUUID(affectedPlayer.getId());
  71. if(p != null)
  72. {
  73. p.connection.disconnect(new TextComponentString("§4Du §cwurdest von §4" + cs.getName() + "§c für " + time + " gebannt, weil: §4" + message));
  74. }
  75. return true;
  76. }
  77. }