/* * Copyright (c) 2018 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.teamvento.commands; import eu.univento.commons.player.rank.Rank; import eu.univento.core.api.command.Command; import eu.univento.core.api.command.CommandArgs; import eu.univento.core.api.command.Completer; import eu.univento.teamvento.TeamVento; import eu.univento.teamvento.generator.GeneratorManager; import org.bukkit.Bukkit; import org.bukkit.World; import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; /** * @author joethei * @version 1.0 */ public class WorldCommands { @Command(name ="world", description = "all world commands", usage = "/world", rank = Rank.Sound) public void world(CommandArgs args) { args.getSender().sendMessage("/world list"); args.getSender().sendMessage("/world teleport "); args.getSender().sendMessage("/world create "); args.getSender().sendMessage("/world import "); } @Command(name = "world.teleport", aliases = {"wtp"}, description = "teleport through the worlds", usage = "/world teleport ", rank = Rank.Sound, inGameOnly = true) public void teleport(CommandArgs args) { if(args.length() == 1) { if(Bukkit.getWorld(args.getArg(0)) != null) { args.getPlayer().teleport(Bukkit.getWorld(args.getArg(0)).getSpawnLocation()); args.getPlayer().sendMessage("§aDu hast die Welt gewechselt"); }else { args.getPlayer().sendMessage("§cDie Welt " + args.getArg(0) + " exsistiert nicht"); } }else args.getPlayer().sendMessage("§cDie Anzahl der Argumente stimmt nicht"); } @Completer(name = "world.teleport", aliases = "wtp") public List teleportCompletor(CommandArgs args) { return Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toCollection(LinkedList::new)); } @Command(name = "world.list", aliases = {"wl"}, description = "list all worlds", usage = "/world list", rank = Rank.Sound) public void list(CommandArgs args) { args.getSender().sendMessage("§cAll worlds"); for(String world : TeamVento.getCfg().getKeys(true)) { args.getSender().sendMessage("§a-" + world); } } @Command(name = "world.import", aliases = {"wi"} , description = "import already existing worlds", usage = "/world import ", rank = Rank.Admin) public void importWorld(CommandArgs args) { if(args.length() == 2) { if(Bukkit.getWorld(args.getArg(0)) == null && new File(args.getArg(0)).exists()) { Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1))); TeamVento.getCfg().set(args.getArg(0), args.getArg(1)); try { TeamVento.getCfg().save(TeamVento.getConfigFile()); } catch (IOException e) { e.printStackTrace(); } args.getSender().sendMessage("§ayour world has been imported"); }else args.getSender().sendMessage("§cthe chosen world already exists"); }else { args.getSender().sendMessage("§cplease use /world import "); } } @Command(name = "world.create", aliases = {"wc"}, description = "create new worlds", usage = "/world create ", rank = Rank.SrBuilder) public void create(CommandArgs args) { if(args.length() == 2) { if(Bukkit.getWorld(args.getArg(0)) == null && GeneratorManager.getWorldCreator(args.getArg(1), args.getArg(1)) != null) { Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1))); TeamVento.getCfg().set(args.getArg(0), args.getArg(1)); try { TeamVento.getCfg().save(TeamVento.getConfigFile()); } catch (IOException e) { e.printStackTrace(); } args.getSender().sendMessage("§aYour world has been created"); } }else args.getSender().sendMessage("§cPlease use /world create "); } }