From 760d2a9fe6080be678329a5672fead9e26a5eaa7 Mon Sep 17 00:00:00 2001 From: DNx5 Date: Fri, 19 Feb 2016 22:40:37 +0700 Subject: [PATCH 1/5] I forget this one, Fix #507 --- .../java/fr/xephi/authme/listener/AuthMeServerListener.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java index e6874d4d2..5d080ef65 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java @@ -28,17 +28,13 @@ public class AuthMeServerListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onServerPing(ServerListPingEvent event) { - if (!Settings.enableProtection) { - return; - } - if (!Settings.countriesBlacklist.isEmpty() || !Settings.countries.isEmpty()){ String countryCode = GeoLiteAPI.getCountryCode(event.getAddress().getHostAddress()); if( Settings.countriesBlacklist.contains(countryCode)) { event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); return; } - if (!Settings.countries.contains(countryCode)) { + if (Settings.enableProtection && !Settings.countries.contains(countryCode)) { event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); } } From 2f75e03275e65d29d150ff76ff4cde821fb080df Mon Sep 17 00:00:00 2001 From: DNx5 Date: Sat, 20 Feb 2016 08:56:08 +0700 Subject: [PATCH 2/5] cache player's flying enabled state. --- .../authme/cache/backup/DataFileCache.java | 8 ++- .../xephi/authme/cache/backup/JsonCache.java | 69 +++++-------------- .../xephi/authme/cache/limbo/LimboCache.java | 17 ++--- .../xephi/authme/cache/limbo/LimboPlayer.java | 37 +++------- 4 files changed, 38 insertions(+), 93 deletions(-) diff --git a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java b/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java index bf5e7389b..8e056c252 100644 --- a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java +++ b/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java @@ -6,6 +6,7 @@ public class DataFileCache { private final String group; private final boolean operator; + private final boolean flyEnabled; /** * Constructor for DataFileCache. @@ -13,9 +14,10 @@ public class DataFileCache { * @param group String * @param operator boolean */ - public DataFileCache(String group, boolean operator) { + public DataFileCache(String group, boolean operator, boolean flyEnabled) { this.group = group; this.operator = operator; + this.flyEnabled = flyEnabled; } /** @@ -35,4 +37,8 @@ public class DataFileCache { public boolean getOperator() { return operator; } + + public boolean isFlyEnabled() { + return flyEnabled; + } } diff --git a/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java b/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java index 8e43241f3..f5f491af8 100644 --- a/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java +++ b/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java @@ -2,7 +2,15 @@ package fr.xephi.authme.cache.backup; import com.google.common.base.Charsets; import com.google.common.io.Files; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.settings.Settings; import org.bukkit.entity.Player; @@ -30,12 +38,6 @@ public class JsonCache { .create(); } - /** - * Method createCache. - * - * @param player Player - * @param playerData DataFileCache - */ public void createCache(Player player, DataFileCache playerData) { if (player == null) { return; @@ -65,13 +67,6 @@ public class JsonCache { } } - /** - * Method readCache. - * - * @param player Player - * - * @return DataFileCache - */ public DataFileCache readCache(Player player) { String path; try { @@ -94,11 +89,6 @@ public class JsonCache { } } - /** - * Method removeCache. - * - * @param player Player - */ public void removeCache(Player player) { String path; try { @@ -115,13 +105,6 @@ public class JsonCache { } } - /** - * Method doesCacheExist. - * - * @param player Player - * - * @return boolean - */ public boolean doesCacheExist(Player player) { String path; try { @@ -133,57 +116,39 @@ public class JsonCache { return file.exists(); } - /** - */ - private static class PlayerDataDeserializer implements JsonDeserializer { - /** - * Method deserialize. - * - * @param jsonElement JsonElement - * @param type Type - * @param jsonDeserializationContext JsonDeserializationContext - * - * @return DataFileCache * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) - */ + private class PlayerDataDeserializer implements JsonDeserializer { @Override public DataFileCache deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { JsonObject jsonObject = jsonElement.getAsJsonObject(); if (jsonObject == null) { return null; } - JsonElement e; String group = null; boolean operator = false; + boolean fly = false; + JsonElement e; if ((e = jsonObject.get("group")) != null) { group = e.getAsString(); } if ((e = jsonObject.get("operator")) != null) { operator = e.getAsBoolean(); } + if ((e = jsonObject.get("fly")) != null) { + fly = e.getAsBoolean(); + } - return new DataFileCache(group, operator); + return new DataFileCache(group, operator, fly); } } - /** - */ private class PlayerDataSerializer implements JsonSerializer { - /** - * Method serialize. - * - * @param dataFileCache DataFileCache - * @param type Type - * @param jsonSerializationContext JsonSerializationContext - * - * @return JsonElement - */ @Override public JsonElement serialize(DataFileCache dataFileCache, Type type, JsonSerializationContext jsonSerializationContext) { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("group", dataFileCache.getGroup()); jsonObject.addProperty("operator", dataFileCache.getOperator()); - + jsonObject.addProperty("fly", dataFileCache.isFlyEnabled()); return jsonObject; } } diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java index 083c962de..e2fd5f7f9 100644 --- a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java +++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java @@ -53,6 +53,7 @@ public class LimboCache { String name = player.getName().toLowerCase(); Location loc = player.getLocation(); boolean operator = false; + boolean flyEnabled = false; String playerGroup = ""; // Get the permissions manager, and make sure it's valid @@ -66,30 +67,22 @@ public class LimboCache { if (cache != null) { playerGroup = cache.getGroup(); operator = cache.getOperator(); + flyEnabled = cache.isFlyEnabled(); } } else { operator = player.isOp(); // Check whether groups are supported - if (permsMan.hasGroupSupport()) + if (permsMan.hasGroupSupport()) { playerGroup = permsMan.getPrimaryGroup(player); + } } if (player.isDead()) { loc = plugin.getSpawnLocation(player); } - cache.put(name, new LimboPlayer(name, loc, operator, playerGroup)); - } - - /** - * Method addLimboPlayer. - * - * @param player Player - * @param group String - */ - public void addLimboPlayer(Player player, String group) { - cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group)); + cache.put(name, new LimboPlayer(name, loc, operator, playerGroup, flyEnabled)); } /** diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java index f61c62469..917a22bc1 100644 --- a/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java +++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboPlayer.java @@ -8,37 +8,20 @@ import org.bukkit.scheduler.BukkitTask; public class LimboPlayer { private final String name; + private final boolean fly; private Location loc = null; private BukkitTask timeoutTaskId = null; private BukkitTask messageTaskId = null; private boolean operator = false; - private String group = ""; + private String group; - /** - * Constructor for LimboPlayer. - * - * @param name String - * @param loc Location - * @param operator boolean - * @param group String - */ - public LimboPlayer(String name, Location loc, - boolean operator, String group) { + public LimboPlayer(String name, Location loc, boolean operator, + String group, boolean fly) { this.name = name; this.loc = loc; this.operator = operator; this.group = group; - } - - /** - * Constructor for LimboPlayer. - * - * @param name String - * @param group String - */ - public LimboPlayer(String name, String group) { - this.name = name; - this.group = group; + this.fly = fly; } /** @@ -77,11 +60,10 @@ public class LimboPlayer { return group; } - /** - * Method getTimeoutTaskId. - * - * @return BukkitTask - */ + public boolean isFly() { + return fly; + } + public BukkitTask getTimeoutTaskId() { return timeoutTaskId; } @@ -121,7 +103,6 @@ public class LimboPlayer { /** * Method clearTask. - * */ public void clearTask() { if (messageTaskId != null) { From 27642dd82ce13d667d013a8c955dd40fc680368e Mon Sep 17 00:00:00 2001 From: DNx5 Date: Sat, 20 Feb 2016 09:32:08 +0700 Subject: [PATCH 3/5] Rename DataFileCache to PlayerData --- .../xephi/authme/cache/backup/JsonCache.java | 29 ++++++++--------- .../{DataFileCache.java => PlayerData.java} | 22 ++----------- .../xephi/authme/cache/limbo/LimboCache.java | 32 +++++++------------ 3 files changed, 27 insertions(+), 56 deletions(-) rename src/main/java/fr/xephi/authme/cache/backup/{DataFileCache.java => PlayerData.java} (54%) diff --git a/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java b/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java index f5f491af8..91d6482dc 100644 --- a/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java +++ b/src/main/java/fr/xephi/authme/cache/backup/JsonCache.java @@ -19,8 +19,6 @@ import java.io.File; import java.io.IOException; import java.lang.reflect.Type; -/** - */ public class JsonCache { private final Gson gson; @@ -32,13 +30,13 @@ public class JsonCache { ConsoleLogger.showError("Failed to create cache directory."); } gson = new GsonBuilder() - .registerTypeAdapter(DataFileCache.class, new PlayerDataSerializer()) - .registerTypeAdapter(DataFileCache.class, new PlayerDataDeserializer()) + .registerTypeAdapter(PlayerData.class, new PlayerDataSerializer()) + .registerTypeAdapter(PlayerData.class, new PlayerDataDeserializer()) .setPrettyPrinting() .create(); } - public void createCache(Player player, DataFileCache playerData) { + public void createCache(Player player, PlayerData playerData) { if (player == null) { return; } @@ -67,7 +65,7 @@ public class JsonCache { } } - public DataFileCache readCache(Player player) { + public PlayerData readCache(Player player) { String path; try { path = player.getUniqueId().toString(); @@ -82,7 +80,7 @@ public class JsonCache { try { String str = Files.toString(file, Charsets.UTF_8); - return gson.fromJson(str, DataFileCache.class); + return gson.fromJson(str, PlayerData.class); } catch (Exception e) { e.printStackTrace(); return null; @@ -116,9 +114,9 @@ public class JsonCache { return file.exists(); } - private class PlayerDataDeserializer implements JsonDeserializer { + private class PlayerDataDeserializer implements JsonDeserializer { @Override - public DataFileCache deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { + public PlayerData deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { JsonObject jsonObject = jsonElement.getAsJsonObject(); if (jsonObject == null) { return null; @@ -138,17 +136,18 @@ public class JsonCache { fly = e.getAsBoolean(); } - return new DataFileCache(group, operator, fly); + return new PlayerData(group, operator, fly); } } - private class PlayerDataSerializer implements JsonSerializer { + private class PlayerDataSerializer implements JsonSerializer { @Override - public JsonElement serialize(DataFileCache dataFileCache, Type type, JsonSerializationContext jsonSerializationContext) { + public JsonElement serialize(PlayerData playerData, Type type, + JsonSerializationContext jsonSerializationContext) { JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("group", dataFileCache.getGroup()); - jsonObject.addProperty("operator", dataFileCache.getOperator()); - jsonObject.addProperty("fly", dataFileCache.isFlyEnabled()); + jsonObject.addProperty("group", playerData.getGroup()); + jsonObject.addProperty("operator", playerData.getOperator()); + jsonObject.addProperty("fly", playerData.isFlyEnabled()); return jsonObject; } } diff --git a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java b/src/main/java/fr/xephi/authme/cache/backup/PlayerData.java similarity index 54% rename from src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java rename to src/main/java/fr/xephi/authme/cache/backup/PlayerData.java index 8e056c252..a41b8aa95 100644 --- a/src/main/java/fr/xephi/authme/cache/backup/DataFileCache.java +++ b/src/main/java/fr/xephi/authme/cache/backup/PlayerData.java @@ -1,39 +1,21 @@ package fr.xephi.authme.cache.backup; -/** - */ -public class DataFileCache { +public class PlayerData { private final String group; private final boolean operator; private final boolean flyEnabled; - /** - * Constructor for DataFileCache. - * - * @param group String - * @param operator boolean - */ - public DataFileCache(String group, boolean operator, boolean flyEnabled) { + public PlayerData(String group, boolean operator, boolean flyEnabled) { this.group = group; this.operator = operator; this.flyEnabled = flyEnabled; } - /** - * Method getGroup. - * - * @return String - */ public String getGroup() { return group; } - /** - * Method getOperator. - * - * @return boolean - */ public boolean getOperator() { return operator; } diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java index e2fd5f7f9..12585d018 100644 --- a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java +++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java @@ -1,9 +1,8 @@ package fr.xephi.authme.cache.limbo; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.ConsoleLogger; -import fr.xephi.authme.cache.backup.DataFileCache; import fr.xephi.authme.cache.backup.JsonCache; +import fr.xephi.authme.cache.backup.PlayerData; import fr.xephi.authme.permission.PermissionsManager; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -19,7 +18,7 @@ public class LimboCache { private volatile static LimboCache singleton; public final ConcurrentHashMap cache; public final AuthMe plugin; - private final JsonCache playerData; + private final JsonCache jsonCache; /** * Constructor for LimboCache. @@ -29,7 +28,7 @@ public class LimboCache { private LimboCache(AuthMe plugin) { this.plugin = plugin; this.cache = new ConcurrentHashMap<>(); - this.playerData = new JsonCache(); + this.jsonCache = new JsonCache(); } /** @@ -52,30 +51,21 @@ public class LimboCache { public void addLimboPlayer(Player player) { String name = player.getName().toLowerCase(); Location loc = player.getLocation(); - boolean operator = false; - boolean flyEnabled = false; + boolean operator = player.isOp(); + boolean flyEnabled = player.getAllowFlight(); String playerGroup = ""; + PermissionsManager permsMan = plugin.getPermissionsManager(); + if (permsMan.hasGroupSupport()) { + playerGroup = permsMan.getPrimaryGroup(player); + } - // Get the permissions manager, and make sure it's valid - PermissionsManager permsMan = this.plugin.getPermissionsManager(); - if (permsMan == null) - ConsoleLogger.showError("Unable to access permissions manager!"); - assert permsMan != null; - - if (playerData.doesCacheExist(player)) { - DataFileCache cache = playerData.readCache(player); + if (jsonCache.doesCacheExist(player)) { + PlayerData cache = jsonCache.readCache(player); if (cache != null) { playerGroup = cache.getGroup(); operator = cache.getOperator(); flyEnabled = cache.isFlyEnabled(); } - } else { - operator = player.isOp(); - - // Check whether groups are supported - if (permsMan.hasGroupSupport()) { - playerGroup = permsMan.getPrimaryGroup(player); - } } if (player.isDead()) { From de3fb61e6007dee7401f339303c75970aeb654de Mon Sep 17 00:00:00 2001 From: DNx5 Date: Sat, 20 Feb 2016 09:35:40 +0700 Subject: [PATCH 4/5] Clear timeout & message task on remove. --- src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java index 12585d018..2679df641 100644 --- a/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java +++ b/src/main/java/fr/xephi/authme/cache/limbo/LimboCache.java @@ -82,7 +82,11 @@ public class LimboCache { */ public void deleteLimboPlayer(String name) { checkNotNull(name); - cache.remove(name.toLowerCase()); + name = name.toLowerCase(); + if (cache.containsKey(name)) { + cache.get(name).clearTask(); + cache.remove(name); + } } /** From 757f231cebd568a0a436b8ad602b9db9b6f33062 Mon Sep 17 00:00:00 2001 From: DNx5 Date: Sat, 20 Feb 2016 10:24:45 +0700 Subject: [PATCH 5/5] more ProtocolLib reload support. --- src/main/java/fr/xephi/authme/AuthMe.java | 10 ++++-- .../authme/listener/AuthMeServerListener.java | 2 ++ .../AuthMeTabCompletePacketAdapter.java | 31 ++++++++----------- .../listener/AuthMeTablistPacketAdapter.java | 31 ++++++++----------- 4 files changed, 36 insertions(+), 38 deletions(-) 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() {