Core/src/main/java/eu/univento/core/commands/BuilderCommands.java

79 lines
2.7 KiB
Java

/*
* Copyright (c) 2017 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.api.command.Command;
import eu.univento.core.api.command.CommandArgs;
import eu.univento.core.api.command.Completer;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.server.ServerSettings;
import lombok.Getter;
import org.bukkit.GameMode;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* @author joethei
* @version 1.0
*/
public class BuilderCommands {
@Getter private static HashMap<CustomPlayer, ItemStack[]> buildPlayers = new HashMap<>();
@Command(name = "build", description = "set yourself into build mode", rank = Rank.JrBuilder, inGameOnly = true)
public void build(CommandArgs args) {
if(buildPlayers.containsKey(args.getPlayer())) {
args.getPlayer().getInventory().setContents(buildPlayers.get(args.getPlayer()));
buildPlayers.remove(args.getPlayer());
args.getPlayer().setGameMode(ServerSettings.getGameMode());
}else {
buildPlayers.put(args.getPlayer(), args.getPlayer().getInventory().getContents());
args.getPlayer().getInventory().clear();
args.getPlayer().setGameMode(GameMode.CREATIVE);
}
}
@Command(name = "gamemode", aliases = {"gm"}, description = "change your gamemode", rank = Rank.Builder, inGameOnly = true)
public void gamemode(CommandArgs args) {
if(args.length() == 1) {
args.getPlayer().setGameMode(getModeFromString(args.getArg(0)));
}
}
@Completer(name = "gamemode", aliases = {"gm"})
public List<String> gameModeCompletor(CommandArgs args) {
List<String> list = new ArrayList<>();
list.add("0");
list.add("1");
list.add("2");
list.add("3");
list.add("Survival");
list.add("Creative");
list.add("Adventure");
list.add("Spectator");
return list;
}
private GameMode getModeFromString(String string) {
switch(string) {
case "0" : return GameMode.SURVIVAL;
case "1" : return GameMode.CREATIVE;
case "2": return GameMode.ADVENTURE;
case "3" : return GameMode.SPECTATOR;
case "Survial" : return GameMode.SURVIVAL;
case "Creative" : return GameMode.CREATIVE;
case "Adventure" : return GameMode.ADVENTURE;
case "Spectator" : return GameMode.SPECTATOR;
default: return GameMode.SPECTATOR;
}
}
}