diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index eef4cf5..a26c029 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -42,7 +42,7 @@ dependencies { exclude("com.convallyria.languagy.libs") } implementation("org.bstats:bstats-bukkit:3.0.2") - implementation("com.github.retrooper.packetevents:spigot:${properties["packetevents_version"]}") + implementation("com.github.retrooper:packetevents-spigot:${properties["packetevents_version"]}") } tasks { diff --git a/spigot/src/main/java/com/convallyria/forcepack/spigot/util/ProtocolUtil.java b/spigot/src/main/java/com/convallyria/forcepack/spigot/util/ProtocolUtil.java index de29212..3bb4880 100644 --- a/spigot/src/main/java/com/convallyria/forcepack/spigot/util/ProtocolUtil.java +++ b/spigot/src/main/java/com/convallyria/forcepack/spigot/util/ProtocolUtil.java @@ -13,10 +13,19 @@ public class ProtocolUtil { public static int getProtocolVersion(Player player) { - final boolean viaversion = Bukkit.getPluginManager().isPluginEnabled("ViaVersion"); - return viaversion - ? Via.getAPI().getPlayerVersion(player) - : PacketEvents.getAPI().getPlayerManager().getUser(player).getClientVersion().getProtocolVersion(); + if(Bukkit.getPluginManager().isPluginEnabled("ViaVersion")) { + return Via.getAPI().getPlayerVersion(player); + } + + final User user = PacketEvents.getAPI().getPlayerManager().getUser(player); + + // PacketEvents will not create users for fake online players + // so we can safely assume that if the user is null, the player is fake + if(user == null) { + return -1; + } + + return user.getClientVersion().getProtocolVersion(); } private static boolean warnedBadPlugin;