CommandTempBan.java 2.8 KB

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