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.Permission; import me.km.permissions.Permissions; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class CommandFly extends ModuleCommand { public CommandFly(Module m) { super("fly", m); super.setDescription("Lässt einen Spieler fliegen"); super.setUsage("/fly [player] [on|off]"); super.setPermission(Permissions.FLY); } @Override public boolean execute(ICommandSender cs, String[] arg) { EntityPlayer affectedPlayer; try { if(arg.length >= 1 && !Permission.hasPermission(cs, Permissions.FLY_OTHER)) { this.getModule().send(cs, "Du darfst nur deinen eigenen Fly setzen."); return true; } affectedPlayer = Utils.getPlayerByName(arg[0]); } catch(PlayerNotFoundException ex) { this.getModule().send(cs, GlobalText.cantFindPlayer(arg[0])); return true; } catch(IndexOutOfBoundsException ex) { if(!(cs instanceof EntityPlayer)) { this.getModule().send(cs, GlobalText.missingParameter()); return true; } affectedPlayer = (EntityPlayer) cs; } boolean fly = !affectedPlayer.capabilities.allowFlying; if(arg.length >= 2) { if(arg[1].equals("on")) { fly = true; } else if(arg[1].equals("off")) { fly = false; } } affectedPlayer.capabilities.allowFlying = fly; if(fly) { this.getModule().send(affectedPlayer, "Du kannst nun fliegen."); if(!cs.equals(affectedPlayer)) { this.getModule().send(cs, affectedPlayer.getName() + " kann nun fliegen."); } return true; } this.getModule().send(affectedPlayer, "Du kannst nicht mehr fliegen."); if(!cs.equals(affectedPlayer)) { this.getModule().send(cs, affectedPlayer.getName() + " kann nicht mehr fliegen."); } return true; } }