package me.km.effects; import java.util.Arrays; import java.util.stream.Collectors; import me.km.api.GlobalText; import me.km.api.Module; import me.km.api.ModuleTabCommand; import me.km.items.ItemWand; import me.km.items.ModItems; import me.km.permissions.Permissions; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class CommandWand extends ModuleTabCommand { public CommandWand(Module m) { super("magicwand", m, Arrays.stream(Effect.values()) .filter(n -> n.isActive()) .map(n -> n.toString()) .collect(Collectors.toList()), 0); super.setDescription("Belegt einen Zauberstab mit einem Effekt, Unterstriche bei werden zu Leerzeichen"); super.setUsage("/magicwand "); super.setPermission(Permissions.WAND); } @Override public boolean execute(ICommandSender cs, String[] arg) { if(!(cs instanceof EntityPlayer)) { this.getModule().send(cs, GlobalText.onlyPlayer()); return true; } EntityPlayer p = (EntityPlayer) cs; if(arg.length >= 1) { ItemStack stack = p.getHeldItemMainhand(); if(stack.getItem() instanceof ItemWand) { this.getModule().send(cs, "Du musst einen Zauberstab in der Hand halten."); return true; } Effect eff = Effect.valueOf(arg[0]); if(eff == null || !eff.isActive()) { this.getModule().send(cs, "Dieser aktive Effekt existiert nicht."); return true; } ModItems.woodenWand.setEffect(stack, eff.ordinal(), arg[1].replace('_', ' ')); return true; } return false; } }