package xyz.etztech.qol.commands; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import xyz.etztech.qol.QoL; import xyz.etztech.qol.EtzTechUtil; import xyz.etztech.qol.Lang; import java.util.Map; import java.lang.*; public class MoonCommand implements CommandExecutor { QoL plugin; private final Map moonPhases = Map.of( 0, "Full moon", 1, "Waning gibbous", 2, "Third quarter", 3, "Waning crescent", 4, "New moon", 5, "Waxing crescent", 6, "First quarter", 7, "Waxing gibbous" ); public MoonCommand(QoL paramQoL) { this.plugin = paramQoL; plugin.getCommand("moon").setExecutor(this); } @Override public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { if (!commandSender.hasPermission("qol.moon")) { EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef()); return true; } String playername = commandSender.getName(); long time = commandSender.getServer().getPlayer(playername).getWorld().getFullTime(); double day = Math.floor(time / 24000); int moonPhase = (int)(day % 8); StringBuilder message = new StringBuilder(ChatColor.GOLD + "===== Moon Phase Utility ====="); message.append("\n" + ChatColor.GREEN + "Current moon phase: " + moonPhases.get(moonPhase) + "."); message.append("\n" + ChatColor.GREEN + "Full moon is " + (moonPhase == 0 ? "tonight." : "in " + (8 - moonPhase) + ((moonPhase == 7) ? " day." : " days."))); EtzTechUtil.sms(commandSender, message.toString()); return true; } }