TeamVento/src/main/java/eu/univento/teamvento/commands/WorldCommands.java

97 lines
4.3 KiB
Java

/*
* 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 <world>");
args.getSender().sendMessage("/world create <name> <generator>");
args.getSender().sendMessage("/world import <name> <generator>");
}
@Command(name = "world.teleport", aliases = {"wtp"}, description = "teleport through the worlds", usage = "/world teleport <World>", 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<String> 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 <name> <generator>", 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 <name> <generator>");
}
}
@Command(name = "world.create", aliases = {"wc"}, description = "create new worlds", usage = "/world create <name> <generator>", 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 <name> <generator>");
}
}