diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index f2595f37b..71b126109 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -677,13 +677,19 @@ public class AuthMe extends JavaPlugin { inventoryProtector.unregister(); inventoryProtector = null; } - if (tabComplete == null && newSettings.getProperty(RestrictionSettings.DENY_TABCOMPLETE_BEFORE_LOGIN)) { + if (newSettings.getProperty(RestrictionSettings.DENY_TABCOMPLETE_BEFORE_LOGIN) && tabComplete == null) { tabComplete = new AuthMeTabCompletePacketAdapter(this); tabComplete.register(); + } else if (inventoryProtector != null) { + tabComplete.unregister(); + tabComplete = null; } - if (tablistHider == null && newSettings.getProperty(RestrictionSettings.HIDE_TABLIST_BEFORE_LOGIN)) { + if (newSettings.getProperty(RestrictionSettings.HIDE_TABLIST_BEFORE_LOGIN) && tablistHider == null) { tablistHider = new AuthMeTablistPacketAdapter(this); tablistHider.register(); + } else if (inventoryProtector != null) { + tablistHider.unregister(); + tablistHider = null; } } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java index 5d080ef65..54cce57a9 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java @@ -81,6 +81,8 @@ public class AuthMeServerListener implements Listener { } if (pluginName.equalsIgnoreCase("ProtocolLib")) { plugin.inventoryProtector = null; + plugin.tablistHider = null; + plugin.tabComplete = null; ConsoleLogger.showError("ProtocolLib has been disabled, unhook packet inventory protection!"); } } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeTabCompletePacketAdapter.java b/src/main/java/fr/xephi/authme/listener/AuthMeTabCompletePacketAdapter.java index 3bb083592..ad3402d6e 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeTabCompletePacketAdapter.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeTabCompletePacketAdapter.java @@ -6,32 +6,27 @@ import com.comphenix.protocol.events.ListenerPriority; import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.reflect.FieldAccessException; - import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerCache; public class AuthMeTabCompletePacketAdapter extends PacketAdapter { - public AuthMeTabCompletePacketAdapter(AuthMe plugin) { - super(plugin, ListenerPriority.NORMAL, PacketType.Play.Client.TAB_COMPLETE); - } + public AuthMeTabCompletePacketAdapter(AuthMe plugin) { + super(plugin, ListenerPriority.NORMAL, PacketType.Play.Client.TAB_COMPLETE); + } - @Override - public void onPacketReceiving(PacketEvent event) - { - if (event.getPacketType() == PacketType.Play.Client.TAB_COMPLETE) { - try - { - if (!PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase())) { - event.setCancelled(true); - } + @Override + public void onPacketReceiving(PacketEvent event) { + if (event.getPacketType() == PacketType.Play.Client.TAB_COMPLETE) { + try { + if (!PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase())) { + event.setCancelled(true); + } + } catch (FieldAccessException e) { + ConsoleLogger.showError("Couldn't access field."); + } } - catch (FieldAccessException e) - { - ConsoleLogger.showError("Couldn't access field."); - } - } } public void register() { diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeTablistPacketAdapter.java b/src/main/java/fr/xephi/authme/listener/AuthMeTablistPacketAdapter.java index ea8effd00..d85a5c5e9 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeTablistPacketAdapter.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeTablistPacketAdapter.java @@ -6,32 +6,27 @@ import com.comphenix.protocol.events.ListenerPriority; import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.reflect.FieldAccessException; - import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerCache; public class AuthMeTablistPacketAdapter extends PacketAdapter { - public AuthMeTablistPacketAdapter(AuthMe plugin) { - super(plugin, ListenerPriority.NORMAL, PacketType.Play.Server.PLAYER_INFO); - } + public AuthMeTablistPacketAdapter(AuthMe plugin) { + super(plugin, ListenerPriority.NORMAL, PacketType.Play.Server.PLAYER_INFO); + } - @Override - public void onPacketSending(PacketEvent event) - { - if (event.getPacketType() == PacketType.Play.Server.PLAYER_INFO) { - try - { - if (!PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase())) { - event.setCancelled(true); - } + @Override + public void onPacketSending(PacketEvent event) { + if (event.getPacketType() == PacketType.Play.Server.PLAYER_INFO) { + try { + if (!PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase())) { + event.setCancelled(true); + } + } catch (FieldAccessException e) { + ConsoleLogger.showError("Couldn't access field."); + } } - catch (FieldAccessException e) - { - ConsoleLogger.showError("Couldn't access field."); - } - } } public void register() {