52 lines
1.8 KiB
Java
52 lines
1.8 KiB
Java
|
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<Integer, String> 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;
|
||
|
}
|
||
|
}
|