<1.1.3> Fix protocol V4 flush issue in EaglerXVelocity
This commit is contained in:
parent
6a0a90f4ac
commit
85f4db5ac6
Binary file not shown.
|
@ -17,13 +17,13 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity;
|
||||||
*/
|
*/
|
||||||
public class EaglerXVelocityVersion {
|
public class EaglerXVelocityVersion {
|
||||||
|
|
||||||
public static final String NATIVE_VELOCITY_BUILD = "3.3.0-SNAPSHOT:2016d148:b436";
|
public static final String NATIVE_VELOCITY_BUILD = "3.4.0-SNAPSHOT:99aaf3ce:b439";
|
||||||
|
|
||||||
public static final String ID = "EaglerXVelocity";
|
public static final String ID = "EaglerXVelocity";
|
||||||
public static final String PLUGIN_ID = "eaglerxvelocity";
|
public static final String PLUGIN_ID = "eaglerxvelocity";
|
||||||
public static final String NAME = "EaglercraftXVelocity";
|
public static final String NAME = "EaglercraftXVelocity";
|
||||||
public static final String DESCRIPTION = "Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks";
|
public static final String DESCRIPTION = "Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks";
|
||||||
public static final String VERSION = "1.1.2";
|
public static final String VERSION = "1.1.3";
|
||||||
public static final String[] AUTHORS = new String[] { "lax1dude", "ayunami2000" };
|
public static final String[] AUTHORS = new String[] { "lax1dude", "ayunami2000" };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter {
|
||||||
private static final Constructor<LoginInboundConnection> stupid2Constructor;
|
private static final Constructor<LoginInboundConnection> stupid2Constructor;
|
||||||
private static final Method loginEventFiredMethod;
|
private static final Method loginEventFiredMethod;
|
||||||
private static final Constructor<ConnectedPlayer> stupid3Constructor;
|
private static final Constructor<ConnectedPlayer> stupid3Constructor;
|
||||||
|
private static final Constructor<ConnectedPlayer> stupid3Constructor_new;
|
||||||
private static final Method setPermissionFunctionMethod;
|
private static final Method setPermissionFunctionMethod;
|
||||||
private static final Field defaultPermissionsField;
|
private static final Field defaultPermissionsField;
|
||||||
private static final Constructor<InitialConnectSessionHandler> stupid4Constructor;
|
private static final Constructor<InitialConnectSessionHandler> stupid4Constructor;
|
||||||
|
@ -134,8 +135,18 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter {
|
||||||
stupid2Constructor.setAccessible(true);
|
stupid2Constructor.setAccessible(true);
|
||||||
loginEventFiredMethod = LoginInboundConnection.class.getDeclaredMethod("loginEventFired", Runnable.class);
|
loginEventFiredMethod = LoginInboundConnection.class.getDeclaredMethod("loginEventFired", Runnable.class);
|
||||||
loginEventFiredMethod.setAccessible(true);
|
loginEventFiredMethod.setAccessible(true);
|
||||||
stupid3Constructor = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, boolean.class, IdentifiedKey.class);
|
Constructor<ConnectedPlayer> c3 = null;
|
||||||
stupid3Constructor.setAccessible(true);
|
Constructor<ConnectedPlayer> c3_new = null;
|
||||||
|
try {
|
||||||
|
c3_new = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, String.class, boolean.class, IdentifiedKey.class);
|
||||||
|
c3_new.setAccessible(true);
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
c3 = ConnectedPlayer.class.getDeclaredConstructor(VelocityServer.class, GameProfile.class, MinecraftConnection.class, InetSocketAddress.class, boolean.class, IdentifiedKey.class);
|
||||||
|
c3.setAccessible(true);
|
||||||
|
c3_new = null;
|
||||||
|
}
|
||||||
|
stupid3Constructor = c3;
|
||||||
|
stupid3Constructor_new = c3_new;
|
||||||
setPermissionFunctionMethod = ConnectedPlayer.class.getDeclaredMethod("setPermissionFunction", PermissionFunction.class);
|
setPermissionFunctionMethod = ConnectedPlayer.class.getDeclaredMethod("setPermissionFunction", PermissionFunction.class);
|
||||||
setPermissionFunctionMethod.setAccessible(true);
|
setPermissionFunctionMethod.setAccessible(true);
|
||||||
defaultPermissionsField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSIONS");
|
defaultPermissionsField = ConnectedPlayer.class.getDeclaredField("DEFAULT_PERMISSIONS");
|
||||||
|
@ -1069,11 +1080,19 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectedPlayer player;
|
ConnectedPlayer player;
|
||||||
|
if(stupid3Constructor_new != null) {
|
||||||
|
try {
|
||||||
|
player = stupid3Constructor_new.newInstance(bungee, gp, con, lic.getVirtualHost().orElse(null), lic.getRawVirtualHost().orElse(null), false, lic.getIdentifiedKey());
|
||||||
|
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
try {
|
try {
|
||||||
player = stupid3Constructor.newInstance(bungee, gp, con, lic.getVirtualHost().orElse(null), false, lic.getIdentifiedKey());
|
player = stupid3Constructor.newInstance(bungee, gp, con, lic.getVirtualHost().orElse(null), false, lic.getIdentifiedKey());
|
||||||
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
|
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
con.setAssociation(player);
|
con.setAssociation(player);
|
||||||
|
|
||||||
|
|
|
@ -237,8 +237,10 @@ public class GameProtocolMessageController {
|
||||||
pkt = sendQueueV4.remove(0);
|
pkt = sendQueueV4.remove(0);
|
||||||
sendPluginMessage(owner, GamePluginMessageConstants.V4_CHANNEL, pkt);
|
sendPluginMessage(owner, GamePluginMessageConstants.V4_CHANNEL, pkt);
|
||||||
}else {
|
}else {
|
||||||
int i, j, sendCount = 0, totalLen = 0;
|
int i, j, sendCount, totalLen;
|
||||||
while(!sendQueueV4.isEmpty()) {
|
while(!sendQueueV4.isEmpty()) {
|
||||||
|
sendCount = 0;
|
||||||
|
totalLen = 0;
|
||||||
do {
|
do {
|
||||||
i = sendQueueV4.get(sendCount++).length;
|
i = sendQueueV4.get(sendCount++).length;
|
||||||
totalLen += GamePacketOutputBuffer.getVarIntSize(i) + i;
|
totalLen += GamePacketOutputBuffer.getVarIntSize(i) + i;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.2","description":"Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"}
|
{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.3","description":"Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"}
|
|
@ -1 +1 @@
|
||||||
1.1.2
|
1.1.3
|
Loading…
Reference in New Issue
Block a user