69 lines
1.8 KiB
Java
69 lines
1.8 KiB
Java
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.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.entity.EntityDamageEvent;
|
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
|
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);
|
|
}
|
|
}
|