package me.totalfreedom.totalfreedommod.freeze; import lombok.Getter; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerMoveEvent; public class Freezer extends FreedomService { @Getter private boolean globalFreeze = false; public Freezer(TotalFreedomMod plugin) { super(plugin); } @Override protected void onStart() { globalFreeze = false; } @Override protected void onStop() { } public void setGlobalFreeze(boolean frozen) { this.globalFreeze = true; } public void purge() { setGlobalFreeze(false); for (Player player : server.getOnlinePlayers()) { plugin.pl.getPlayer(player).getFreezeData().setFrozen(false); } } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onPlayerMove(PlayerMoveEvent event) { final Player player = event.getPlayer(); if (!plugin.al.isAdmin(player)) { return; } final FreezeData fd = plugin.pl.getPlayer(player).getFreezeData(); if (globalFreeze || fd.isFrozen()) { FUtil.setFlying(player, true); event.setTo(fd.getLocation()); } } }