CommandWand.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package me.km.effects;
  2. import java.util.Arrays;
  3. import java.util.stream.Collectors;
  4. import me.km.api.GlobalText;
  5. import me.km.api.Module;
  6. import me.km.api.ModuleTabCommand;
  7. import me.km.items.ItemWand;
  8. import me.km.items.ModItems;
  9. import me.km.permissions.Permissions;
  10. import net.minecraft.command.ICommandSender;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.item.ItemStack;
  13. public class CommandWand extends ModuleTabCommand
  14. {
  15. public CommandWand(Module m)
  16. {
  17. super("magicwand", m, Arrays.stream(Effect.values())
  18. .filter(n -> n.isActive())
  19. .map(n -> n.toString())
  20. .collect(Collectors.toList()), 0);
  21. super.setDescription("Belegt einen Zauberstab mit einem Effekt, Unterstriche bei <dname> werden zu Leerzeichen");
  22. super.setUsage("/magicwand <effect> <dname>");
  23. super.setPermission(Permissions.WAND);
  24. }
  25. @Override
  26. public boolean execute(ICommandSender cs, String[] arg)
  27. {
  28. if(!(cs instanceof EntityPlayer))
  29. {
  30. this.getModule().send(cs, GlobalText.onlyPlayer());
  31. return true;
  32. }
  33. EntityPlayer p = (EntityPlayer) cs;
  34. if(arg.length >= 1)
  35. {
  36. ItemStack stack = p.getHeldItemMainhand();
  37. if(stack.getItem() instanceof ItemWand)
  38. {
  39. this.getModule().send(cs, "Du musst einen Zauberstab in der Hand halten.");
  40. return true;
  41. }
  42. Effect eff = Effect.valueOf(arg[0]);
  43. if(eff == null || !eff.isActive())
  44. {
  45. this.getModule().send(cs, "Dieser aktive Effekt existiert nicht.");
  46. return true;
  47. }
  48. ModItems.woodenWand.setEffect(stack, eff.ordinal(), arg[1].replace('_', ' '));
  49. return true;
  50. }
  51. return false;
  52. }
  53. }