cancel default time and weather commands (when RTW is enabled)
This commit is contained in:
@@ -2,6 +2,11 @@ package io.github.jack1424.realtimeweather;
|
|||||||
|
|
||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
import org.bukkit.event.server.ServerCommandEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.json.simple.JSONArray;
|
import org.json.simple.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
@@ -16,12 +21,7 @@ import java.time.zone.ZoneRulesException;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public final class RealTimeWeather extends JavaPlugin {
|
public final class RealTimeWeather extends JavaPlugin implements Listener {
|
||||||
/*
|
|
||||||
TODO:
|
|
||||||
- Override default minecraft time/weather commands (when applicable)
|
|
||||||
*/
|
|
||||||
|
|
||||||
private Logger logger;
|
private Logger logger;
|
||||||
private ZoneId timezone;
|
private ZoneId timezone;
|
||||||
private boolean timeEnabled, weatherEnabled, debug;
|
private boolean timeEnabled, weatherEnabled, debug;
|
||||||
@@ -43,6 +43,8 @@ public final class RealTimeWeather extends JavaPlugin {
|
|||||||
if (weatherEnabled)
|
if (weatherEnabled)
|
||||||
setupWeather();
|
setupWeather();
|
||||||
|
|
||||||
|
getServer().getPluginManager().registerEvents(this, this);
|
||||||
|
|
||||||
logger.info("Started!");
|
logger.info("Started!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,6 +61,22 @@ public final class RealTimeWeather extends JavaPlugin {
|
|||||||
logger.info("Stopping...");
|
logger.info("Stopping...");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
|
public void onOperatorSet(PlayerCommandPreprocessEvent event) {
|
||||||
|
if ((timeEnabled && event.getMessage().contains("time set")) || (weatherEnabled && event.getMessage().contains("weather"))) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
event.getPlayer().sendMessage("Command cancelled (RealTimeWeather is controlling this)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
|
public void onOperatorSetConsole(ServerCommandEvent event) {
|
||||||
|
if ((timeEnabled && event.getCommand().contains("time set")) || (weatherEnabled && event.getCommand().contains("weather"))) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
event.getSender().sendMessage("Command cancelled (RealTimeWeather is controlling this)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setupTime() {
|
private void setupTime() {
|
||||||
try {
|
try {
|
||||||
timezone = ZoneId.of(Objects.requireNonNull(getConfig().getString("Timezone")));
|
timezone = ZoneId.of(Objects.requireNonNull(getConfig().getString("Timezone")));
|
||||||
|
Reference in New Issue
Block a user