CommandLastSeen.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package me.km.commands;
  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.playerbank.PlayerBank;
  7. import java.io.File;
  8. import java.text.SimpleDateFormat;
  9. import java.util.Date;
  10. import me.km.permissions.Permissions;
  11. import me.km.table.Table;
  12. import net.minecraft.command.ICommandSender;
  13. public class CommandLastSeen extends ModuleCommand
  14. {
  15. public CommandLastSeen(Module m)
  16. {
  17. super("lastseen", m);
  18. super.setDescription("Zeigt an welche Spieler zuletzt online waren");
  19. super.setUsage("/lastseen [amount]");
  20. super.setPermission(Permissions.LASTSEEN);
  21. }
  22. @Override
  23. public boolean execute(ICommandSender cs, String[] arg)
  24. {
  25. File[] files = new File("./saves/world/playerdata/").listFiles();
  26. String helper;
  27. String name;
  28. long longhelper;
  29. Table table = new Table(2);
  30. PlayerBank pb = KajetansMod.playerbank.getDataBank();
  31. for(File output : files)
  32. {
  33. helper = output.getName();
  34. if(!helper.endsWith(".dat"))
  35. {
  36. continue;
  37. }
  38. longhelper = output.lastModified();
  39. helper = helper.substring(0, helper.length() - 4);
  40. name = pb.getName(helper);
  41. if(name == null)
  42. {
  43. name = helper;
  44. }
  45. table.addRow(new Object[] {longhelper, name});
  46. }
  47. table.sort();
  48. table.reverse();
  49. SimpleDateFormat ft = new SimpleDateFormat ("dd.MM.yyyy '§rum§7' HH:mm:ss");
  50. Module m = this.getModule();
  51. int limit = 10;
  52. if(arg.length >= 1)
  53. {
  54. try
  55. {
  56. limit = Integer.parseInt(arg[0]);
  57. if(limit < 1)
  58. {
  59. throw new NumberFormatException();
  60. }
  61. }
  62. catch(NumberFormatException ex)
  63. {
  64. m.send(cs, GlobalText.noPositiveNaturalNumber());
  65. return true;
  66. }
  67. }
  68. if(table.getSize() < limit)
  69. {
  70. limit = table.getSize();
  71. }
  72. m.send(cs, "Zuletzt waren folgende Spieler online:");
  73. for(int i = 0; i < limit; i++)
  74. {
  75. m.sendListElement(cs, "§7" + table.getElement(i, 1) + "§r am §7" + ft.format(new Date((long) table.getElement(i, 0))));
  76. }
  77. return true;
  78. }
  79. }