2018-09-12 15:53:47 +00:00
|
|
|
package xyz.etztech.qol.commands;
|
|
|
|
|
2018-10-16 18:29:40 +00:00
|
|
|
import net.md_5.bungee.api.chat.ClickEvent;
|
|
|
|
import net.md_5.bungee.api.chat.TextComponent;
|
2018-09-12 15:53:47 +00:00
|
|
|
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;
|
|
|
|
|
2020-07-09 02:39:24 +00:00
|
|
|
public PortalCommand(QoL paramQoL) {
|
2018-09-12 15:53:47 +00:00
|
|
|
this.plugin = paramQoL;
|
2020-07-09 02:39:24 +00:00
|
|
|
plugin.getCommand("portal").setExecutor(this);
|
2018-09-12 15:53:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@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());
|
|
|
|
|
2018-10-16 18:26:36 +00:00
|
|
|
// Send link to image for setting up nether portal
|
|
|
|
TextComponent link = new TextComponent(ChatColor.GREEN + "Click here for directions on how to set up a nether portal.");
|
|
|
|
link.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://i.imgur.com/tQCbI0C.png"));
|
|
|
|
commandSender.spigot().sendMessage(link);
|
|
|
|
|
2018-09-12 15:53:47 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|