CommandWarp.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package me.km.commands;
  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import me.km.api.GlobalText;
  6. import me.km.api.Module;
  7. import me.km.api.ModuleCommand;
  8. import me.km.api.SimpleConfig;
  9. import me.km.api.Utils;
  10. import me.km.exception.PlayerNotFoundException;
  11. import java.util.List;
  12. import java.util.stream.Collectors;
  13. import me.km.api.Location;
  14. import me.km.permissions.Permissions;
  15. import net.minecraft.command.ICommandSender;
  16. import net.minecraft.entity.player.EntityPlayer;
  17. public class CommandWarp extends ModuleCommand
  18. {
  19. public CommandWarp(Module m)
  20. {
  21. super("warp", m);
  22. super.setDescription("Teleportiert einen Spieler zum Warp");
  23. super.setUsage("/warp <warpname> [player]");
  24. super.setPermission(Permissions.WARP);
  25. super.addAlias("warps");
  26. }
  27. public List<String> getWarps()
  28. {
  29. File[] files = SimpleConfig.getFiles("warp");
  30. if(files == null)
  31. {
  32. return new ArrayList<>();
  33. }
  34. return Arrays.stream(files).map(w -> w.getName().substring(0, w.getName().length() - 6)).collect(Collectors.toList());
  35. }
  36. @Override
  37. public boolean execute(ICommandSender cs, String[] arg)
  38. {
  39. if(arg.length < 1)
  40. {
  41. this.getModule().send(cs, "Die folgenden Warps stehen zur Verfügung:");
  42. this.getModule().send(cs, String.join("§7, §r", getWarps()));
  43. return true;
  44. }
  45. Location l = Utils.getWarp(this.getModule(), arg[0]);
  46. if(l == null)
  47. {
  48. this.getModule().send(cs, "Der Warp existiert nicht.");
  49. return true;
  50. }
  51. else if(l.getWorld() == null)
  52. {
  53. this.getModule().send(cs, "Die Welt des Warps existiert nicht.");
  54. return true;
  55. }
  56. EntityPlayer affectedPlayer;
  57. try
  58. {
  59. affectedPlayer = Utils.getPlayerByName(arg[1]);
  60. Utils.teleportEntity(affectedPlayer, l);
  61. this.getModule().send(affectedPlayer, "Du wurdest zum Warp " + arg[0] + " teleportiert.");
  62. this.getModule().send(cs, affectedPlayer.getName() + " wurde zum Warp " + arg[0] + " teleportiert.");
  63. }
  64. catch(PlayerNotFoundException ex)
  65. {
  66. this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
  67. return true;
  68. }
  69. catch(IndexOutOfBoundsException ex)
  70. {
  71. if(!(cs instanceof EntityPlayer))
  72. {
  73. this.getModule().send(cs, GlobalText.missingParameter());
  74. return true;
  75. }
  76. affectedPlayer = (EntityPlayer) cs;
  77. Utils.teleportEntity(affectedPlayer, l);
  78. this.getModule().send(cs, "Du wurdest zum Warp " + arg[0] + " teleportiert.");
  79. }
  80. return true;
  81. }
  82. }