From 757018828d60deab57b91906b84852d8f3a3761a Mon Sep 17 00:00:00 2001 From: ayunami2000 Date: Fri, 21 Jun 2024 10:08:15 -0400 Subject: [PATCH] push update --- build.gradle | 2 +- .../EaglerServerHandler.java | 12 ++++++------ .../EaglerSkinHandler.java | 4 ++-- .../EaglerVoiceHandler.java | 4 ++-- .../EaglerXLoginHandler.java | 2 +- .../EaglerXSkinHandler.java | 2 +- .../EaglercraftHandler.java | 10 +++++----- .../EaglercraftInitialHandler.java | 19 ++++++++++++++----- .../ayunViaProxyEagUtils/FunnyConfig.java | 3 ++- .../ayunViaProxyEagUtils/Main.java | 8 ++++---- .../ayunViaProxyEagUtils/SkinService.java | 2 +- .../ayunViaProxyEagUtils/VoiceServerImpl.java | 4 ++-- .../WebSocketActiveNotifier.java | 2 +- 13 files changed, 42 insertions(+), 32 deletions(-) diff --git a/build.gradle b/build.gradle index cca3e84..5ee6c6a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,5 +10,5 @@ repositories { } dependencies { - implementation files("libs/ViaProxy-3.2.0-SNAPSHOT+java8.jar") + implementation files("libs/ViaProxy-3.3.0-SNAPSHOT+java8.jar") } \ No newline at end of file diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/EaglerServerHandler.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/EaglerServerHandler.java index e720c2b..a49ec88 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/EaglerServerHandler.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/EaglerServerHandler.java @@ -22,9 +22,9 @@ import net.raphimc.netminecraft.constants.MCPackets; import net.raphimc.netminecraft.netty.connection.NetClient; import net.raphimc.netminecraft.packet.PacketTypes; import net.raphimc.vialegacy.api.LegacyProtocolVersion; -import net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.ClientboundPackets1_5_2; -import net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.ServerboundPackets1_5_2; -import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4; +import net.raphimc.vialegacy.protocol.release.r1_5_2tor1_6_1.packet.ClientboundPackets1_5_2; +import net.raphimc.vialegacy.protocol.release.r1_5_2tor1_6_1.packet.ServerboundPackets1_5_2; +import net.raphimc.vialegacy.protocol.release.r1_6_4tor1_7_2_5.types.Types1_6_4; import net.raphimc.viaproxy.proxy.session.LegacyProxyConnection; import net.raphimc.viaproxy.proxy.session.ProxyConnection; import net.raphimc.viaproxy.proxy.util.ExceptionUtil; @@ -60,7 +60,7 @@ public class EaglerServerHandler extends MessageToMessageCodec out) { @@ -40,10 +41,11 @@ public class EaglercraftInitialHandler extends ByteToMessageDecoder { return; } if (in.readableBytes() >= 3 || in.getByte(0) != 71) { - boolean ssl = EaglercraftInitialHandler.sslContext != null && in.readableBytes() >= 3 && in.getByte(0) == 22; + renewCerts(); + boolean ssl = sslContext != null && in.readableBytes() >= 3 && in.getByte(0) == 22; if (ssl || (in.readableBytes() >= 3 && in.getCharSequence(0, 3, StandardCharsets.UTF_8).equals("GET")) || (in.readableBytes() >= 4 && in.getCharSequence(0, 4, StandardCharsets.UTF_8).equals("POST"))) { if (ssl) { - ctx.pipeline().addBefore("eaglercraft-initial-handler", "ws-ssl-handler", EaglercraftInitialHandler.sslContext.newHandler(ctx.alloc())); + ctx.pipeline().addBefore("eaglercraft-initial-handler", "ws-ssl-handler", sslContext.newHandler(ctx.alloc())); } ctx.pipeline().addBefore("eaglercraft-initial-handler", "ws-http-codec", new HttpServerCodec()); ctx.pipeline().addBefore("eaglercraft-initial-handler", "ws-http-aggregator", new HttpObjectAggregator(65535, true)); @@ -98,15 +100,22 @@ public class EaglercraftInitialHandler extends ByteToMessageDecoder { } } - static { + public static void renewCerts() { + final long currTime = System.currentTimeMillis(); + if (currTime - lastTime <= 1000 * 60 * 60) return; + lastTime = currTime; final File certFolder = new File("certs"); if (certFolder.exists()) { try { - EaglercraftInitialHandler.sslContext = SslContextBuilder.forServer(new File(certFolder, "fullchain.pem"), new File(certFolder, "privkey.pem")).build(); + sslContext = SslContextBuilder.forServer(new File(certFolder, "fullchain.pem"), new File(certFolder, "privkey.pem")).build(); } catch (Throwable e) { throw new RuntimeException("Failed to load SSL context", e); } } + } + + static { + renewCerts(); try { initChannelMethod = PassthroughClient2ProxyChannelInitializer.class.getDeclaredMethod("initChannel", Channel.class); initChannelMethod.setAccessible(true); @@ -121,6 +130,6 @@ public class EaglercraftInitialHandler extends ByteToMessageDecoder { @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - ExceptionUtil.handleNettyException(ctx, cause, null); + ExceptionUtil.handleNettyException(ctx, cause, null, true); } } diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/FunnyConfig.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/FunnyConfig.java index fc58746..292b5e5 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/FunnyConfig.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/FunnyConfig.java @@ -7,6 +7,7 @@ import java.net.URL; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.logging.Logger; public class FunnyConfig extends Config { public static boolean premiumSkins = false; @@ -15,7 +16,7 @@ public class FunnyConfig extends Config { public static int eaglerServerMode = 0; protected FunnyConfig(File configFile) { - super(configFile); + super(configFile, Logger.getLogger("FunnyConfig")); } @Override diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/Main.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/Main.java index e1a598c..f4b44ff 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/Main.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/Main.java @@ -18,7 +18,7 @@ import io.netty.util.AttributeKey; import net.lenni0451.lambdaevents.EventHandler; import net.raphimc.netminecraft.constants.MCPipeline; import net.raphimc.netminecraft.netty.connection.NetClient; -import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4; +import net.raphimc.vialegacy.protocol.release.r1_6_4tor1_7_2_5.types.Types1_6_4; import net.raphimc.viaproxy.ViaProxy; import net.raphimc.viaproxy.plugins.ViaProxyPlugin; import net.raphimc.viaproxy.plugins.events.Client2ProxyChannelInitializeEvent; @@ -175,7 +175,7 @@ public class Main extends ViaProxyPlugin { @Override public void channelInactive(ChannelHandlerContext ctx) { if (this.handshakeFuture().cause() != null) { - ExceptionUtil.handleNettyException(ctx, this.handshakeFuture().cause(), null); + ExceptionUtil.handleNettyException(ctx, this.handshakeFuture().cause(), null, true); } super.closeOutbound(); } @@ -226,7 +226,7 @@ public class Main extends ViaProxyPlugin { @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - ExceptionUtil.handleNettyException(ctx, cause, null); + ExceptionUtil.handleNettyException(ctx, cause, null, true); } } @@ -255,7 +255,7 @@ public class Main extends ViaProxyPlugin { @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - ExceptionUtil.handleNettyException(ctx, cause, null); + ExceptionUtil.handleNettyException(ctx, cause, null, true); } } } diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/SkinService.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/SkinService.java index 6f273b9..01eb927 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/SkinService.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/SkinService.java @@ -25,7 +25,7 @@ public class SkinService { private static void sendData(final ChannelHandlerContext ctx, final byte[] data) { final ByteBuf bb = ctx.alloc().buffer(); - PacketTypes.writeVarInt(bb, MCPackets.S2C_PLUGIN_MESSAGE.getId((((EaglercraftHandler) ctx.pipeline().get("eaglercraft-handler")).version).getVersion())); + PacketTypes.writeVarInt(bb, MCPackets.S2C_CUSTOM_PAYLOAD.getId((((EaglercraftHandler) ctx.pipeline().get("eaglercraft-handler")).version).getVersion())); PacketTypes.writeString(bb, "EAG|Skins-1.8"); bb.writeBytes(data); ctx.writeAndFlush(new BinaryWebSocketFrame(bb)); diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/VoiceServerImpl.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/VoiceServerImpl.java index 51ef001..c396b66 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/VoiceServerImpl.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/VoiceServerImpl.java @@ -5,7 +5,7 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import net.raphimc.netminecraft.constants.MCPackets; import net.raphimc.netminecraft.packet.PacketTypes; -import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4; +import net.raphimc.vialegacy.protocol.release.r1_6_4tor1_7_2_5.types.Types1_6_4; import java.nio.charset.StandardCharsets; import java.util.HashMap; @@ -165,7 +165,7 @@ public class VoiceServerImpl { bb.setShort(21, bb.writerIndex() - 23); } else { if (pluginMessageId <= 0) { - pluginMessageId = MCPackets.S2C_PLUGIN_MESSAGE.getId((((EaglercraftHandler) ctx.pipeline().get("eaglercraft-handler")).version).getVersion()); + pluginMessageId = MCPackets.S2C_CUSTOM_PAYLOAD.getId((((EaglercraftHandler) ctx.pipeline().get("eaglercraft-handler")).version).getVersion()); } PacketTypes.writeVarInt(bb, pluginMessageId); PacketTypes.writeString(bb, "EAG|Voice-1.8"); diff --git a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/WebSocketActiveNotifier.java b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/WebSocketActiveNotifier.java index 2090da2..efcbdef 100644 --- a/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/WebSocketActiveNotifier.java +++ b/src/main/java/me/ayunami2000/ayunViaProxyEagUtils/WebSocketActiveNotifier.java @@ -21,6 +21,6 @@ public class WebSocketActiveNotifier extends ChannelInboundHandlerAdapter { @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - ExceptionUtil.handleNettyException(ctx, cause, null); + ExceptionUtil.handleNettyException(ctx, cause, null, true); } }