97 lines
4.3 KiB
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>");
|
|
}
|
|
} |