97 lines
2.8 KiB
Java
97 lines
2.8 KiB
Java
package com.redstoner.modules.loginsecurity;
|
|
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
import org.bukkit.event.player.PlayerItemHeldEvent;
|
|
import org.bukkit.event.player.PlayerMoveEvent;
|
|
import org.bukkit.event.player.PlayerPickupArrowEvent;
|
|
import org.bukkit.event.player.PlayerPickupItemEvent;
|
|
|
|
@SuppressWarnings("deprecation")
|
|
public class CancelledEventsHandler implements Listener {
|
|
private LoginSecurity mainClass;
|
|
|
|
public CancelledEventsHandler(LoginSecurity mainClass) {
|
|
this.mainClass = mainClass;
|
|
}
|
|
|
|
@EventHandler
|
|
public void onMove(PlayerMoveEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.getPlayer().teleport(LoginSecurity.loggingIn.get(e.getPlayer().getUniqueId()));
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onChat(AsyncPlayerChatEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.getPlayer().sendMessage(ChatColor.RED + "You must login before you can chat!");
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onCommand(PlayerCommandPreprocessEvent e) {
|
|
String command = e.getMessage();
|
|
|
|
if (!command.startsWith("/login") && isLoggingIn(e.getPlayer())) {
|
|
e.getPlayer().sendMessage(ChatColor.RED + "You must login before you can execute commands!");
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onItemHold(PlayerItemHeldEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onItemPickup(PlayerPickupItemEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onItemDrop(PlayerDropItemEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onInteract(PlayerInteractEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onArrowPickup(PlayerPickupArrowEvent e) {
|
|
if (isLoggingIn(e.getPlayer())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGHEST)
|
|
public void onInvClick(InventoryClickEvent e) {
|
|
if (e.getWhoClicked() instanceof Player && isLoggingIn((Player) e.getWhoClicked())) {
|
|
e.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
private boolean isLoggingIn(Player player) {
|
|
return mainClass.isLoggingIn(player);
|
|
}
|
|
}
|