kenshinshideandseek/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java

76 lines
2.5 KiB
Java
Raw Normal View History

/*
* This file is part of Kenshins Hide and Seek
*
* Copyright (c) 2021 Tyler Murphy.
*
* Kenshins Hide and Seek free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
2021-12-27 19:14:32 +00:00
* he Free Software Foundation version 3.
*
* Kenshins Hide and Seek is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
2021-10-11 21:06:21 +00:00
package net.tylermurphy.hideAndSeek.command;
2021-10-23 00:03:15 +00:00
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
2021-10-11 21:06:21 +00:00
2021-12-26 22:58:18 +00:00
import net.tylermurphy.hideAndSeek.game.Game;
import net.tylermurphy.hideAndSeek.util.Status;
import org.bukkit.World;
2021-10-11 21:06:21 +00:00
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
2021-10-23 00:03:15 +00:00
import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
2021-10-11 21:06:21 +00:00
public class SetLobbyLocation implements ICommand {
public void execute(CommandSender sender, String[] args) {
2021-12-26 22:58:18 +00:00
if(Game.status != Status.STANDBY) {
2021-10-31 15:25:27 +00:00
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
2021-10-11 21:06:21 +00:00
Vector newLobbyPosition = new Vector();
Player player = (Player) sender;
2021-10-31 15:25:27 +00:00
if(player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
return;
}
2021-10-11 21:06:21 +00:00
newLobbyPosition.setX(player.getLocation().getBlockX());
newLobbyPosition.setY(player.getLocation().getBlockY());
newLobbyPosition.setZ(player.getLocation().getBlockZ());
2021-12-26 22:58:18 +00:00
World world = player.getLocation().getWorld();
if(world == null){
throw new RuntimeException("Unable to get world: " + spawnWorld);
}
lobbyWorld = world.getName();
2021-10-11 21:06:21 +00:00
lobbyPosition = newLobbyPosition;
2021-10-23 00:03:15 +00:00
sender.sendMessage(messagePrefix + message("LOBBY_SPAWN"));
2021-10-29 03:09:28 +00:00
addToConfig("spawns.lobby.x", lobbyPosition.getX());
addToConfig("spawns.lobby.y", lobbyPosition.getY());
addToConfig("spawns.lobby.z", lobbyPosition.getZ());
addToConfig("spawns.lobby.world", player.getLocation().getWorld().getName());
2021-10-11 21:06:21 +00:00
saveConfig();
}
public String getLabel() {
return "setlobby";
}
public String getUsage() {
return "";
}
public String getDescription() {
return "Sets hide and seeks lobby location to current position";
}
}