55 lines
2.2 KiB
Java
55 lines
2.2 KiB
Java
package io.github.jack1424.realtimeweather;
|
|
|
|
import org.bukkit.World;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.player.PlayerBedEnterEvent;
|
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
import org.bukkit.event.server.ServerCommandEvent;
|
|
|
|
public class EventHandlers implements Listener {
|
|
private final ConfigManager config;
|
|
|
|
public EventHandlers(RealTimeWeather rtw) {
|
|
config = rtw.getConfigurator();
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
|
public void onCommandPreprocess(PlayerCommandPreprocessEvent event) {
|
|
if ((config.getBlockTimeSetCommand() && config.isTimeEnabled() && event.getMessage().contains("time set"))
|
|
|| (config.getBlockWeatherCommand() && config.isWeatherEnabled() && event.getMessage().contains("weather"))) {
|
|
event.setCancelled(true);
|
|
event.getPlayer().sendMessage("Command disabled by RealTimeWeather");
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
|
public void onConsoleCommand(ServerCommandEvent event) {
|
|
if ((config.getBlockTimeSetCommand() && config.isTimeEnabled() && event.getCommand().contains("time set"))
|
|
|| (config.getBlockWeatherCommand() && config.isWeatherEnabled() && event.getCommand().contains("weather"))) {
|
|
event.setCancelled(true);
|
|
event.getSender().sendMessage("Command disabled by RealTimeWeather");
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
|
public void onPlayerBedEnter(PlayerBedEnterEvent event) {
|
|
Player player = event.getPlayer();
|
|
World playerWorld = player.getWorld();
|
|
long worldTime = playerWorld.getTime();
|
|
|
|
if (config.isTimeEnabled() && config.getDisableBedsAtNight() && ((!playerWorld.hasStorm() && worldTime >= 12542 && worldTime <= 23459)
|
|
|| (playerWorld.hasStorm() && worldTime >= 12010 && worldTime <= 23991))) {
|
|
event.setCancelled(true);
|
|
player.sendMessage(config.getDisableBedsAtNightMessage());
|
|
}
|
|
|
|
if (config.isWeatherEnabled() && config.getDisableBedsDuringThunder() && playerWorld.isThundering()) {
|
|
event.setCancelled(true);
|
|
player.sendMessage(config.getDisableBedsDuringThunderMessage());
|
|
}
|
|
}
|
|
}
|