Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-10-08 11:10:06 +02:00
Check SessionHandler type before getting knownChannels
Dieser Commit ist enthalten in:
Ursprung
9fe19e763a
Commit
bd7e36e38c
@ -34,6 +34,7 @@ public class VelocityServerHandler {
|
||||
private static Method getMinecraftConnection;
|
||||
private static Method getNextProtocolVersion;
|
||||
private static Method getKnownChannels;
|
||||
private static Class<?> clientPlaySessionHandler;
|
||||
|
||||
static {
|
||||
try {
|
||||
@ -45,7 +46,8 @@ public class VelocityServerHandler {
|
||||
.getDeclaredMethod("getMinecraftConnection");
|
||||
getNextProtocolVersion = Class.forName("com.velocitypowered.proxy.connection.MinecraftConnection")
|
||||
.getDeclaredMethod("getNextProtocolVersion");
|
||||
getKnownChannels = Class.forName("com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler")
|
||||
clientPlaySessionHandler = Class.forName("com.velocitypowered.proxy.connection.client.ClientPlaySessionHandler");
|
||||
getKnownChannels = clientPlaySessionHandler
|
||||
.getDeclaredMethod("getKnownChannels");
|
||||
} catch (NoSuchMethodException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
@ -144,12 +146,13 @@ public class VelocityServerHandler {
|
||||
pipeline.add(ProtocolRegistry.getBaseProtocol(protocolId));
|
||||
|
||||
// Workaround 1.13 server change
|
||||
Set<String> knownChannels = (Set<String>) getKnownChannels.invoke(
|
||||
ReflectionUtil.invoke(
|
||||
Object sessionHandler = ReflectionUtil.invoke(
|
||||
getMinecraftConnection.invoke(e.getPlayer()),
|
||||
"getSessionHandler"
|
||||
)
|
||||
);
|
||||
System.out.println(sessionHandler);
|
||||
if (clientPlaySessionHandler.isInstance(sessionHandler)) { // It may be InitialConnectSessionHandler on the first server connection
|
||||
Set<String> knownChannels = (Set<String>) getKnownChannels.invoke(sessionHandler);
|
||||
if (previousServerProtocol != -1) {
|
||||
int id1_13 = ProtocolVersion.MINECRAFT_1_13.getProtocol();
|
||||
if (previousServerProtocol < id1_13 && protocolId >= id1_13) {
|
||||
@ -174,6 +177,7 @@ public class VelocityServerHandler {
|
||||
knownChannels.addAll(newChannels);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
user.put(info);
|
||||
user.put(storage);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren