CommandHome.java 3.1 KB

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