package me.km.commands; import me.km.permissions.Permissions; 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 net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class CommandExp extends ModuleCommand { public CommandExp(Module m) { super("exp", m); super.setDescription("Befehle um die EXP eines Spielers zu verändern"); super.setUsage("/exp für die Hilfe"); super.setPermission(Permissions.EXP); } @Override public boolean execute(ICommandSender cs, String[] arg) { Module m = this.getModule(); if(arg.length >= 1) { switch(arg[0]) { case "show": { EntityPlayer p; try { p = Utils.getPlayerByName(arg[1]); m.send(cs, p.getName() + " hat " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ")."); } catch(PlayerNotFoundException ex) { m.send(cs, GlobalText.cantFindPlayer(arg[1])); return true; } catch(IndexOutOfBoundsException ex) { if(!(cs instanceof EntityPlayer)) { m.send(cs, GlobalText.missingParameter()); return true; } p = (EntityPlayer) cs; m.send(cs, "Du hast " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ")."); } return true; } case "set": { if(arg.length >= 2) { EntityPlayer p; try { p = Utils.getPlayerByName(arg[2]); try { int i = Integer.parseInt(arg[1]); if(i < 0) { throw new NumberFormatException(); } p.experienceLevel = 0; p.experience = 0; p.experienceTotal = 0; p.addExperience(i); m.send(cs, p.getName() + " hat nun " + arg[1] + " XP."); m.send(p, "Deine XP wurden auf " + arg[1] + " gesetzt."); } catch(NumberFormatException ex) { m.send(cs, GlobalText.noNaturalNumber()); return true; } } catch(PlayerNotFoundException ex) { m.send(cs, GlobalText.cantFindPlayer(arg[2])); return true; } catch(IndexOutOfBoundsException ex) { if(!(cs instanceof EntityPlayer)) { m.send(cs, GlobalText.missingParameter()); return true; } p = (EntityPlayer) cs; try { int i = Integer.parseInt(arg[1]); if(i <= 0) { throw new NumberFormatException(); } p.experienceLevel = 0; p.experience = 0; p.experienceTotal = 0; p.addExperience(i); m.send(p, "Deine XP wurden auf " + arg[1] + " gesetzt."); } catch(NumberFormatException ex2) { m.send(cs, GlobalText.noPositiveNaturalNumber()); return true; } } return true; } } case "give": { if(arg.length >= 2) { EntityPlayer p; try { p = Utils.getPlayerByName(arg[2]); try { int i = Integer.parseInt(arg[1]); if(i <= 0) { throw new NumberFormatException(); } p.addExperience(i); m.send(cs, p.getName() + " wurden " + arg[1] + " XP gegeben."); m.send(p, "Dir wurden " + arg[1] + " XP gegeben."); } catch(NumberFormatException ex) { m.send(cs, GlobalText.noPositiveNaturalNumber()); return true; } } catch(PlayerNotFoundException ex) { m.send(cs, GlobalText.cantFindPlayer(arg[2])); return true; } catch(IndexOutOfBoundsException ex) { if(!(cs instanceof EntityPlayer)) { m.send(cs, GlobalText.missingParameter()); return true; } p = (EntityPlayer) cs; try { int i = Integer.parseInt(arg[1]); if(i <= 0) { throw new NumberFormatException(); } p.addExperience(i); m.send(p, "Dir wurden " + arg[1] + " XP gegeben."); } catch(NumberFormatException ex2) { m.send(cs, GlobalText.noPositiveNaturalNumber()); return true; } } return true; } } } } m.send(cs, "/exp ..."); m.sendHelpListElement(cs, "show [player]", "Zeigt die EXP eines Spielers"); m.sendHelpListElement(cs, "set [player]", "Setzt die EXP eines Spielers"); m.sendHelpListElement(cs, "give [player]", "Gibt dem Spieler EXP"); return true; } }