TCPShield / RealIP

The Spigot, Bungee and Velocity plugin that parses client IP addresses passed from the TCPShield network.
https://tcpshield.com
MIT License
151 stars 53 forks source link

Exception when loading on Spigot 1.16.3 #20

Closed Jake-Thomas-Hall closed 4 years ago

Jake-Thomas-Hall commented 4 years ago

Short and simple; the plugin throws an exception when attempting to load on a spigot 1.16.3 server:

[22:30:43] [Server thread/INFO]: [TCPShield] Enabling TCPShield v2.2
[22:30:43] [Server thread/ERROR]: Error occurred while enabling TCPShield v2.2 (Is it up to date?)
java.lang.NoClassDefFoundError: com/comphenix/protocol/events/PacketListener
        at net.tcpshield.tcpshield.bukkit.TCPShieldBukkit.onEnable(TCPShieldBukkit.java:14) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugin(CraftServer.java:494) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugins(CraftServer.java:408) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at net.minecraft.server.v1_16_R2.MinecraftServer.loadWorld(MinecraftServer.java:435) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:216) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:808) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.events.PacketListener
        at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_261]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:167) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:96) ~[spigot-1.16.3.jar:git-Spigot-17d78db-a339310]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_261]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_261]
        ... 11 more

To replicate just set up a spigot 1.16.3 server, and try to use the plugin - no other special setup should be required.

JosiahWhite commented 4 years ago

Please install ProtocolLib :)

Jake-Thomas-Hall commented 4 years ago

Yep! Thank you @JosiahWhite That's fixed things, sorry about that, didn't realise that would be needed.

Now isn't possible to connect using the direct IP, only works via the TCPshield address - brilliant.

Thank you guys for your hard work on this, I can't believe this is a freely available to use system - would have been a nightmare to try and setup a cloud hosted SSLH (I'm guessing that is what this is using in the background?) proxy to do this instead! So thank you guys for your hard work (and very prompt response to this issue!).

Jake-Thomas-Hall commented 4 years ago

@JosiahWhite An additional question in fact; how can I tell that it's routing requests to your western datacentre rather than to one of the others? Or is that something it just handles automatically based on where the incoming IP is connecting from?

Also, I'm guessing it's normal that the latency is a little higher for a home hosted server when connecting via this proxy service. What protection is lost if I disable the only-allow-proxy-connections: true setting so that for me and other local players, they can still connect via the local address?

ghost commented 4 years ago

@Diedinium By default, requests are routed by geography, based on the region the player is closest to. We do offer the ability to change this, but only upon request and in certain situations.

If you disable that option, you are disabling very important features TCPShield provides you.

Also, please continue this conversation in our support discord. Thank you.