CommandHome.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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.api.SimpleConfig;
  7. import java.io.File;
  8. import java.util.List;
  9. import me.km.api.Location;
  10. import me.km.api.Utils;
  11. import me.km.permissions.Permission;
  12. import me.km.permissions.Permissions;
  13. import net.minecraft.command.ICommandSender;
  14. import net.minecraft.entity.player.EntityPlayer;
  15. public class CommandHome extends ModuleCommand
  16. {
  17. public CommandHome(Module m)
  18. {
  19. super("home", m);
  20. super.setDescription("Teleportiert einen Spieler zu einem Home-Punkt");
  21. super.setUsage("/home [name / player:name]");
  22. super.setPermission(Permissions.HOME);
  23. }
  24. @Override
  25. public boolean execute(ICommandSender cs, String[] arg)
  26. {
  27. if(!(cs instanceof EntityPlayer))
  28. {
  29. this.getModule().send(cs, GlobalText.onlyPlayer());
  30. return true;
  31. }
  32. EntityPlayer p = (EntityPlayer) cs;
  33. String playeruuid = p.getUniqueID().toString();
  34. String homename = "";
  35. if(arg.length >= 1)
  36. {
  37. homename = arg[0];
  38. if(arg[0].contains(":") && Permission.hasPermission(cs, Permissions.HOME_OTHER))
  39. {
  40. String[] split = homename.split(":");
  41. String uuid = KajetansMod.playerbank.getDataBank().getUUID(split[0]);
  42. if(uuid != null && split.length >= 2)
  43. {
  44. homename = split[1];
  45. playeruuid = uuid;
  46. }
  47. else if(split.length == 1 && uuid != null)
  48. {
  49. homename = "";
  50. playeruuid = uuid;
  51. }
  52. }
  53. }
  54. Module m = this.getModule();
  55. List<File> homes = SimpleConfig.getFiles("home/" + playeruuid);
  56. if(homes.isEmpty())
  57. {
  58. String name = KajetansMod.playerbank.getDataBank().getName(playeruuid);
  59. if(name.equals(p.getName()))
  60. {
  61. m.send(cs, "Du hast keine Homepunkte gesetzt.");
  62. return true;
  63. }
  64. m.send(cs, name + " hat keine Homepunkte gesetzt.");
  65. return true;
  66. }
  67. if(arg.length == 0 || homename.equals(""))
  68. {
  69. m.send(cs, "Folgende Homepunkte stehen zur Verfügung:");
  70. homes.stream().forEach(h -> {m.sendListElement(cs, h.getName().replaceAll(".yml", ""));});
  71. return true;
  72. }
  73. try
  74. {
  75. SimpleConfig sc = new SimpleConfig(this.getModule(), "home/" + playeruuid + "/" + homename, true);
  76. Location l = sc.getLocation("home");
  77. if(l.getWorld() == null)
  78. {
  79. throw new NullPointerException();
  80. }
  81. Utils.teleportEntity(p, l);
  82. m.send(cs, "Du wurdest zum Home-Punkt " + homename + " teleportiert.");
  83. }
  84. catch(IllegalArgumentException ex)
  85. {
  86. m.send(cs, "Der Homepunkt wurde nicht gefunden.");
  87. return true;
  88. }
  89. catch(NullPointerException ex)
  90. {
  91. m.send(cs, "Die Welt des Homepunktes wurde nicht gefunden.");
  92. return true;
  93. }
  94. return true;
  95. }
  96. }