Fix npc issues (#320)

This will fix 1 bug..... and will generate new ones! :P
This commit is contained in:
Gabriele C 2015-12-08 20:52:45 +01:00
parent 6ee07160bb
commit e4fbe4ec53
7 changed files with 158 additions and 20 deletions

View File

@ -32,6 +32,12 @@ public class AuthMeBlockListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -45,6 +51,12 @@ public class AuthMeBlockListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -49,7 +49,12 @@ public class AuthMeEntityListener implements Listener {
} }
Player player = (Player) entity; Player player = (Player) entity;
if (Utils.checkAuth(player)) { if (Utils.checkAuth(player) ) {
return;
}
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(player)) {
return; return;
} }
player.setFireTicks(0); player.setFireTicks(0);
@ -73,6 +78,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) entity)) {
return;
}
event.setTarget(null); event.setTarget(null);
event.setCancelled(true); event.setCancelled(true);
} }
@ -83,7 +93,7 @@ public class AuthMeEntityListener implements Listener {
* @param event EntityDamageByEntityEvent * @param event EntityDamageByEntityEvent
*/ */
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onDmg(EntityDamageByEntityEvent event) { public void onDamage(EntityDamageByEntityEvent event) {
Entity entity = event.getDamager(); Entity entity = event.getDamager();
if (entity == null || !(entity instanceof Player)) { if (entity == null || !(entity instanceof Player)) {
return; return;
@ -94,6 +104,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(player)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -113,6 +128,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) entity)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -132,6 +152,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) entity)) {
return;
}
event.setAmount(0); event.setAmount(0);
event.setCancelled(true); event.setCancelled(true);
} }
@ -152,6 +177,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) entity)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -171,6 +201,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) entity)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -210,6 +245,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(player)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -230,6 +270,11 @@ public class AuthMeEntityListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(player)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -70,7 +70,6 @@ public class AuthMePlayerListener implements Listener {
} }
final Player player = event.getPlayer(); final Player player = event.getPlayer();
if (Utils.checkAuth(player)) { if (Utils.checkAuth(player)) {
for (Player p : Utils.getOnlinePlayers()) { for (Player p : Utils.getOnlinePlayers()) {
if (!PlayerCache.getInstance().isAuthenticated(p.getName())) { if (!PlayerCache.getInstance().isAuthenticated(p.getName())) {
@ -81,6 +80,11 @@ public class AuthMePlayerListener implements Listener {
} }
event.setCancelled(true); event.setCancelled(true);
sendLoginRegisterMSG(player);
}
// TODO: new name
private void sendLoginRegisterMSG(final Player player) {
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() { plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override @Override
public void run() { public void run() {
@ -110,6 +114,7 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
sendLoginRegisterMSG(event.getPlayer());
} }
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
@ -186,17 +191,22 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
if (event.getPlayer() == null || Utils.isNPC(event.getPlayer())) { final Player player = event.getPlayer();
if (player == null) {
return; return;
} }
final Player player = event.getPlayer(); /* IMPOSSIBLE!!!! TODO: check this!
if(Utils.isNPC(player)) {
return;
}
*/
String name = player.getName().toLowerCase(); String name = player.getName().toLowerCase();
String joinMsg = event.getJoinMessage(); String joinMsg = event.getJoinMessage();
boolean delay = Settings.delayJoinLeaveMessages && joinMsg != null;
// Remove the join message while the player isn't logging in // Remove the join message while the player isn't logging in
if (delay) { if (Settings.delayJoinLeaveMessages && joinMsg != null) {
event.setJoinMessage(null); event.setJoinMessage(null);
joinMessage.put(name, joinMsg); joinMessage.put(name, joinMsg);
} }
@ -254,13 +264,13 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerLogin(PlayerLoginEvent event) { public void onPlayerLogin(PlayerLoginEvent event) {
if (event.getPlayer() == null || Utils.isUnrestricted(event.getPlayer())) { final Player player = event.getPlayer();
if (player == null || Utils.isUnrestricted(player)) {
return; return;
} }
// Get the permissions manager // Get the permissions manager
PermissionsManager permsMan = plugin.getPermissionsManager(); PermissionsManager permsMan = plugin.getPermissionsManager();
final Player player = event.getPlayer();
if (event.getResult() == PlayerLoginEvent.Result.KICK_FULL if (event.getResult() == PlayerLoginEvent.Result.KICK_FULL
&& permsMan.hasPermission(player, PlayerPermission.IS_VIP)) { && permsMan.hasPermission(player, PlayerPermission.IS_VIP)) {
@ -329,12 +339,12 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer() == null) { Player player = event.getPlayer();
if (player == null) {
return; return;
} }
Player player = event.getPlayer();
if (Settings.delayJoinLeaveMessages && !Utils.checkAuth(player)) { if (Settings.delayJoinLeaveMessages && !Utils.checkAuth(player)) {
event.setQuitMessage(null); event.setQuitMessage(null);
} }
@ -344,7 +354,9 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) { public void onPlayerKick(PlayerKickEvent event) {
if (event.getPlayer() == null) { Player player = event.getPlayer();
if (player == null) {
return; return;
} }
@ -354,13 +366,15 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
Player player = event.getPlayer();
plugin.getManagement().performQuit(player, true); plugin.getManagement().performQuit(player, true);
} }
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onPlayerPickupItem(PlayerPickupItemEvent event) { public void onPlayerPickupItem(PlayerPickupItemEvent event) {
if (Utils.checkAuth(event.getPlayer())) { Player player = event.getPlayer();
// TODO: npc status can be used to bypass security!!!
if (Utils.checkAuth(player) || Utils.isNPC(player)) {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
@ -368,7 +382,10 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onPlayerInteract(PlayerInteractEvent event) { public void onPlayerInteract(PlayerInteractEvent event) {
if (Utils.checkAuth(event.getPlayer())) { Player player = event.getPlayer();
// TODO: npc status can be used to bypass security!!!
if (Utils.checkAuth(player) || Utils.isNPC(player)) {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
@ -376,7 +393,10 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerConsumeItem(PlayerItemConsumeEvent event) { public void onPlayerConsumeItem(PlayerItemConsumeEvent event) {
if (Utils.checkAuth(event.getPlayer())) { Player player = event.getPlayer();
// TODO: npc status can be used to bypass security!!!
if (Utils.checkAuth(player) || Utils.isNPC(player)) {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
@ -385,7 +405,9 @@ public class AuthMePlayerListener implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onPlayerInventoryOpen(InventoryOpenEvent event) { public void onPlayerInventoryOpen(InventoryOpenEvent event) {
final Player player = (Player) event.getPlayer(); final Player player = (Player) event.getPlayer();
if (Utils.checkAuth(player)) {
// TODO: npc status can be used to bypass security!!!
if (Utils.checkAuth(player) || Utils.isNPC(player)) {
return; return;
} }
event.setCancelled(true); event.setCancelled(true);
@ -410,6 +432,10 @@ public class AuthMePlayerListener implements Listener {
return; return;
if (Utils.checkAuth((Player) event.getWhoClicked())) if (Utils.checkAuth((Player) event.getWhoClicked()))
return; return;
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) event.getWhoClicked()))
return;
event.setCancelled(true); event.setCancelled(true);
} }
@ -422,6 +448,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth((Player) damager)) { if (Utils.checkAuth((Player) damager)) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC((Player) damager)) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -430,6 +461,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -438,6 +474,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -446,6 +487,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -454,6 +500,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -463,6 +514,11 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
Player player = event.getPlayer(); Player player = event.getPlayer();
String name = player.getName().toLowerCase(); String name = player.getName().toLowerCase();
Location spawn = plugin.getSpawnLocation(player); Location spawn = plugin.getSpawnLocation(player);
@ -481,6 +537,11 @@ public class AuthMePlayerListener implements Listener {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
Player player = event.getPlayer(); Player player = event.getPlayer();
if (plugin.getPermissionsManager().hasPermission(player, PlayerPermission.BYPASS_FORCE_SURVIVAL)) { if (plugin.getPermissionsManager().hasPermission(player, PlayerPermission.BYPASS_FORCE_SURVIVAL)) {
return; return;
@ -499,6 +560,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }
@ -507,6 +573,11 @@ public class AuthMePlayerListener implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -32,6 +32,11 @@ public class AuthMePlayerListener16 implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -32,6 +32,11 @@ public class AuthMePlayerListener18 implements Listener {
if (Utils.checkAuth(event.getPlayer())) { if (Utils.checkAuth(event.getPlayer())) {
return; return;
} }
// TODO: npc status can be used to bypass security!!!
if (Utils.isNPC(event.getPlayer())) {
return;
}
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -47,7 +47,7 @@ public class AsynchronousQuit {
public void process() { public void process() {
if (player == null) if (player == null)
return; return;
if (Utils.isNPC(player) || Utils.isUnrestricted(player)) { if (Utils.isUnrestricted(player)) {
return; return;
} }

View File

@ -137,7 +137,7 @@ public final class Utils {
// TODO: Move to a Manager // TODO: Move to a Manager
public static boolean checkAuth(Player player) { public static boolean checkAuth(Player player) {
if (player == null || Utils.isUnrestricted(player) || Utils.isNPC(player)) { if (player == null || Utils.isUnrestricted(player)) {
return true; return true;
} }