package me.km.commands; import me.km.api.Utils; import me.km.api.GlobalText; import me.km.api.Module; import me.km.api.ModuleCommand; import me.km.exception.PlayerNotFoundException; import me.km.permissions.Permissions; import me.km.utils.ReflectionUtils; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class CommandSpeed extends ModuleCommand { public CommandSpeed(Module m) { super("speed", m); super.setDescription("Setzt das Tempo eines Spielers"); super.setUsage("/speed <1-10> [player]"); super.setPermission(Permissions.SPEED); } @Override public boolean execute(ICommandSender cs, String[] arg) { if(arg.length == 0) { return false; } int i; try { i = Integer.parseInt(arg[0]); if(i < 1) { throw new NumberFormatException(); } } catch(NumberFormatException ex) { this.getModule().send(cs, GlobalText.noPositiveNaturalNumber()); return true; } if(i > 10) { i = 10; } float f = i / 20f; EntityPlayer affectedPlayer; try { affectedPlayer = Utils.getPlayerByName(arg[1]); ReflectionUtils.setFlySpeed(affectedPlayer.capabilities, f); ReflectionUtils.setWalkSpeed(affectedPlayer.capabilities, f * 2); this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + "."); this.getModule().send(cs, affectedPlayer.getName() + " hat nun Tempo " + i + "."); } catch(PlayerNotFoundException ex) { this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1])); return true; } catch(IndexOutOfBoundsException ex) { if(!(cs instanceof EntityPlayer)) { this.getModule().send(cs, GlobalText.missingParameter()); return true; } affectedPlayer = (EntityPlayer) cs; ReflectionUtils.setFlySpeed(affectedPlayer.capabilities, f); ReflectionUtils.setWalkSpeed(affectedPlayer.capabilities, f * 2); this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + "."); } affectedPlayer.sendPlayerAbilities(); return true; } }