CommandScroll.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package me.km.scrolls;
  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.api.Utils;
  8. import me.km.effects.ActiveEffectBase;
  9. import me.km.effects.Effect;
  10. import me.km.effects.EffectUtils;
  11. import me.km.items.ModItems;
  12. import me.km.permissions.Permissions;
  13. import me.km.utils.ItemStackBuilder;
  14. import net.minecraft.command.ICommandSender;
  15. import net.minecraft.entity.player.EntityPlayer;
  16. public class CommandScroll extends ModuleTabCommand
  17. {
  18. public CommandScroll(Module m)
  19. {
  20. super("magicscroll", m, Arrays.stream(Effect.values()).map(n -> n.getEffectString()).filter(o -> o != null).collect(Collectors.toList()), 0);
  21. super.setDescription("Erstellt Schriftrollen");
  22. super.setUsage("/magicscroll <name> [level] [amount]");
  23. super.setPermission(Permissions.SCROLL);
  24. super.addAlias("msc");
  25. }
  26. @Override
  27. public boolean execute(ICommandSender cs, String[] arg)
  28. {
  29. if(arg.length < 1)
  30. {
  31. return false;
  32. }
  33. if(!(cs instanceof EntityPlayer))
  34. {
  35. this.getModule().send(cs, GlobalText.onlyPlayer());
  36. return true;
  37. }
  38. EntityPlayer p = (EntityPlayer) cs;
  39. Class<? extends ActiveEffectBase> c = EffectUtils.getEffectClass(arg[0]);
  40. if(c == null)
  41. {
  42. this.getModule().send(cs, "Dieser aktive Effekt existiert nicht.");
  43. return true;
  44. }
  45. int level = 1;
  46. try
  47. {
  48. level = Integer.parseInt(arg[1]);
  49. if(level <= 0)
  50. {
  51. this.getModule().send(cs, GlobalText.noPositiveNaturalNumber());
  52. return true;
  53. }
  54. }
  55. catch(NumberFormatException | ArrayIndexOutOfBoundsException ex)
  56. {
  57. }
  58. int amount = 1;
  59. try
  60. {
  61. amount = Integer.parseInt(arg[2]);
  62. if(amount <= 0)
  63. {
  64. this.getModule().send(cs, GlobalText.noPositiveNaturalNumber());
  65. return true;
  66. }
  67. }
  68. catch(NumberFormatException | ArrayIndexOutOfBoundsException ex)
  69. {
  70. }
  71. new ItemStackBuilder(ModItems.scroll, amount).setName(arg[0] + " " + Utils.intToRoman(level)).drop(p.world, p.getPosition());
  72. return true;
  73. }
  74. }