package wtf.beatrice.limbomanager.listeners; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.inventory.*; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import wtf.beatrice.limbomanager.LimboManager; public class PlayerChecker implements Listener { // this class performs various checks on player join and quit to ensure general safety. @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { // remove join msg event.setJoinMessage(null); LimboManager plugin = LimboManager.getInstance(); Player joiner = event.getPlayer(); // hide player from everyone and hide everyone from player for(Player otherPlayer : Bukkit.getServer().getOnlinePlayers()) { otherPlayer.hidePlayer(plugin, joiner); joiner.hidePlayer(plugin, otherPlayer); } // disable flight joiner.setAllowFlight(false); joiner.setFlying(false); // set gamemode joiner.setGameMode(GameMode.CREATIVE); // clear inventory joiner.getInventory().clear(); } @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { event.setQuitMessage(null); } @EventHandler public void onEntityCreate(EntitySpawnEvent event) { // disable ALL entities if(event.getEntity().getType() != EntityType.PLAYER) { event.setCancelled(true); } } @EventHandler public void onEntityDamage(EntityDamageEvent event) { event.setCancelled(true); } }