85 lines
4.0 KiB
Java
85 lines
4.0 KiB
Java
/*
|
|
* Copyright (c) 2018 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.core.commands;
|
|
|
|
import eu.univento.commons.player.rank.Rank;
|
|
import eu.univento.core.Core;
|
|
import eu.univento.core.api.camera.Traveller;
|
|
import eu.univento.core.api.command.Command;
|
|
import eu.univento.core.api.command.CommandArgs;
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import io.vertx.core.json.JsonObject;
|
|
import org.bukkit.Location;
|
|
|
|
public class AdminCommands {
|
|
|
|
@Command(name = "setrank", description = "set the ranks of other users", rank = Rank.Admin, inGameOnly = true)
|
|
public void setRank(CommandArgs args) {
|
|
CustomPlayer p = args.getPlayer();
|
|
if(args.length() == 2) {
|
|
if(CustomPlayer.getPlayer(args.getArg(0)) != null) {
|
|
CustomPlayer target = CustomPlayer.getPlayer(args.getArg(0));
|
|
assert target != null;
|
|
Rank rank;
|
|
try {
|
|
rank = Rank.valueOf(args.getArg(1));
|
|
if(target.getDatabasePlayer().isAllowed(rank)) {
|
|
p.sendMessage("§cDieser Spieler hat diesen Rang schon oder einen höheren");
|
|
p.sendMessage("§cÄnderungen müssen in der Datenbank stattfinden");
|
|
}else {
|
|
target.getDatabasePlayer().setRank(rank);
|
|
}
|
|
}catch (IllegalArgumentException ex) {
|
|
p.sendMessage("§cDiesen Rang gibt es nicht");
|
|
}
|
|
|
|
}else args.getPlayer().sendMessage("§cDu hast keinen Spieler angegeben");
|
|
}
|
|
}
|
|
|
|
@Command(name = "camera", description = "control the camera", rank = Rank.Admin, inGameOnly = true)
|
|
public void camera(CommandArgs args) {
|
|
args.getPlayer().sendMessage("/camera add | add a new location to the route");
|
|
args.getPlayer().sendMessage("/camera create <name> <time> | create a new route");
|
|
args.getPlayer().sendMessage("/camera start <name> | start a route");
|
|
}
|
|
|
|
@Command(name = "camera.create", description = "control the camera", rank = Rank.Admin, inGameOnly = true)
|
|
public void createCameraRoute(CommandArgs args) {
|
|
if(args.length() == 2) {
|
|
if(Integer.valueOf(args.getArg(1)) != null) {
|
|
insertCameraRoute(args.getArg(0), Integer.valueOf(args.getArg(1)));
|
|
}else args.getPlayer().sendMessage("§cArgument 2 muss eine Zahl sein");
|
|
}else args.getPlayer().sendMessage("§cFalsche Anzahl an Argumenten");
|
|
}
|
|
|
|
@Command(name = "camera.add", description = "add a new location to the route", rank = Rank.Admin, inGameOnly = true)
|
|
public void addToCameraRoute(CommandArgs args) {
|
|
if(args.length() == 1) {
|
|
addToCameraRoute(args.getArg(0), args.getPlayer().getLocation());
|
|
}else args.getPlayer().sendMessage("§cFalsche Anzahl an Argumenten");
|
|
}
|
|
|
|
@Command(name = "camera.start", description = "start a route", rank = Rank.Admin, inGameOnly = true)
|
|
public void startCameraRoute(CommandArgs args) {
|
|
if(args.length() == 1) {
|
|
new Traveller(args.getPlayer(), args.getArg(0)).travel();
|
|
}else args.getPlayer().sendMessage("§cFalsche Anzahl an Argumenten");
|
|
}
|
|
|
|
private void insertCameraRoute(String name, int time) {
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().insert("routes", new JsonObject().put("route", name).put("time", time), event -> {
|
|
if(event.failed()) event.cause().printStackTrace();
|
|
});
|
|
}
|
|
|
|
private void addToCameraRoute(String name, Location loc) {
|
|
JsonObject json = new JsonObject().put("world", loc.getWorld().getName()).put("X", loc.getX()).put("Y", loc.getY()).put("Z", loc.getZ()).put("Yaw", loc.getYaw()).put("Pitch", loc.getPitch());
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOneAndUpdate("routes", new JsonObject().put("route", name), new JsonObject().put("locations", json), event -> {
|
|
|
|
});
|
|
}
|
|
} |