package me.km.commands; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import me.km.api.GlobalText; import me.km.api.Module; import me.km.api.ModuleCommand; import me.km.api.SimpleConfig; import me.km.api.Utils; import me.km.exception.PlayerNotFoundException; import java.util.List; import java.util.stream.Collectors; import me.km.api.Location; import me.km.permissions.Permissions; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class CommandWarp extends ModuleCommand { public CommandWarp(Module m) { super("warp", m); super.setDescription("Teleportiert einen Spieler zum Warp"); super.setUsage("/warp [player]"); super.setPermission(Permissions.WARP); super.addAlias("warps"); } public List getWarps() { File[] files = SimpleConfig.getFiles("warp"); if(files == null) { return new ArrayList<>(); } return Arrays.stream(files).map(w -> w.getName().substring(0, w.getName().length() - 6)).collect(Collectors.toList()); } @Override public boolean execute(ICommandSender cs, String[] arg) { if(arg.length < 1) { this.getModule().send(cs, "Die folgenden Warps stehen zur Verfügung:"); this.getModule().send(cs, String.join("§7, §r", getWarps())); return true; } Location l = Utils.getWarp(this.getModule(), arg[0]); if(l == null) { this.getModule().send(cs, "Der Warp existiert nicht."); return true; } else if(l.getWorld() == null) { this.getModule().send(cs, "Die Welt des Warps existiert nicht."); return true; } EntityPlayer affectedPlayer; try { affectedPlayer = Utils.getPlayerByName(arg[1]); Utils.teleportEntity(affectedPlayer, l); this.getModule().send(affectedPlayer, "Du wurdest zum Warp " + arg[0] + " teleportiert."); this.getModule().send(cs, affectedPlayer.getName() + " wurde zum Warp " + arg[0] + " teleportiert."); } 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; Utils.teleportEntity(affectedPlayer, l); this.getModule().send(cs, "Du wurdest zum Warp " + arg[0] + " teleportiert."); } return true; } }