QoL/src/main/java/xyz/etztech/qol/commands/PortalCommand.java

64 lines
2.2 KiB
Java

package xyz.etztech.qol.commands;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import xyz.etztech.qol.QoL;
import xyz.etztech.qol.EtzTechUtil;
import xyz.etztech.qol.Lang;
public class PortalCommand implements CommandExecutor {
QoL plugin;
public PortalCommand(QoL paramQoL)
{
this.plugin = paramQoL;
}
@Override
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
if (!( commandSender instanceof Player)) {
EtzTechUtil.sms(commandSender, Lang.NO_CONSOLE.getDef());
return true;
}
if (!commandSender.hasPermission("qol.portal")) {
EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef());
return true;
}
Player player = (Player) commandSender;
Location location = player.getLocation();
int x = location.getBlockX();
int y = location.getBlockY();
int z = location.getBlockZ();
World.Environment world = player.getWorld().getEnvironment();
if (world.equals(World.Environment.THE_END)) {
EtzTechUtil.sms(commandSender, ChatColor.RED + "This command doesn't work in The End!");
}
int newX = 0, newZ = 0;
String worldStr = "";
if (world.equals(World.Environment.NORMAL)) {
// Calculate Nether coordinates
newX = x/8;
newZ = z/8;
worldStr = "Nether";
} else if (world.equals(World.Environment.NETHER)) {
// Calculate Overworld coordinates
newX = x*8;
newZ = z*8;
worldStr = "Overworld";
}
StringBuilder message = new StringBuilder(ChatColor.GOLD + "===== Nether Portal Utility =====");
message.append("\n" + ChatColor.GREEN + "Current Location: " + x + ", " + y + ", " + z);
message.append("\n" + ChatColor.GREEN + "Location in the " + worldStr + ": " + newX + ", " + y + ", " + newZ);
EtzTechUtil.sms(commandSender, message.toString());
return true;
}
}