diff --git a/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar b/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar index 92e1ebc..6178d0f 100644 Binary files a/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar and b/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar differ diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/EaglerXBungee.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/EaglerXBungee.java index 79c592d..e6157e4 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/EaglerXBungee.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/EaglerXBungee.java @@ -28,10 +28,12 @@ import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.handlers.EaglerPa import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.handlers.EaglerPluginEventListener; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server.EaglerPipeline; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server.web.HttpWebServer; +import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.shit.CompatWarning; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.skins.BinaryHttpClient; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.skins.ISkinService; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.skins.SkinService; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.skins.SkinServiceOffline; +import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.PluginManager; import net.md_5.bungee.netty.PipelineUtils; @@ -51,6 +53,14 @@ import net.md_5.bungee.BungeeCord; * */ public class EaglerXBungee extends Plugin { + + public static final String NATIVE_BUNGEECORD_BUILD = "1.20-R0.2-SNAPSHOT:231024b:1777"; + public static final String NATIVE_WATERFALL_BUILD = "1.20-R0.2-SNAPSHOT:d85fe36:556"; + public static final String NATIVE_FLAMECORD_BUILD = "1.1.1"; + + static { + CompatWarning.displayCompatWarning(); + } private static EaglerXBungee instance = null; private EaglerBungeeConfig conf = null; diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerChannelWrapper.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerChannelWrapper.java index 0aa095a..6d87519 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerChannelWrapper.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerChannelWrapper.java @@ -3,6 +3,7 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server; import io.netty.channel.ChannelHandlerContext; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server.bungeeprotocol.EaglerBungeeProtocol; import net.md_5.bungee.netty.ChannelWrapper; +import net.md_5.bungee.protocol.Protocol; /** * Copyright (c) 2022-2023 LAX1DUDE. All Rights Reserved. @@ -32,6 +33,22 @@ public class EaglerChannelWrapper extends ChannelWrapper { getHandle().pipeline().get(EaglerMinecraftEncoder.class).setProtocolVersion(protocol); getHandle().pipeline().get(EaglerMinecraftDecoder.class).setProtocolVersion(protocol); } + + public Protocol getEncodeProtocol() { + EaglerBungeeProtocol eaglerProtocol = this.getHandle().pipeline().get(EaglerMinecraftEncoder.class).getProtocol(); + switch(eaglerProtocol) { + case GAME: + return Protocol.GAME; + case HANDSHAKE: + return Protocol.HANDSHAKE; + case LOGIN: + return Protocol.LOGIN; + case STATUS: + return Protocol.STATUS; + default: + return null; + } + } public void close(Object o) { super.close(o); diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerMinecraftDecoder.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerMinecraftDecoder.java index c2569b5..aa4f0c4 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerMinecraftDecoder.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerMinecraftDecoder.java @@ -1,5 +1,7 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.List; import io.netty.buffer.ByteBuf; @@ -14,6 +16,7 @@ import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server.bungeeprot import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.server.bungeeprotocol.EaglerProtocolAccessProxy; import net.md_5.bungee.protocol.DefinedPacket; import net.md_5.bungee.protocol.PacketWrapper; +import net.md_5.bungee.protocol.Protocol; import net.md_5.bungee.protocol.ProtocolConstants.Direction; /** @@ -33,6 +36,7 @@ public class EaglerMinecraftDecoder extends MessageToMessageDecoder packetWrapperConstructor = null; @Override protected void decode(ChannelHandlerContext ctx, WebSocketFrame frame, List out) throws Exception { @@ -46,16 +50,30 @@ public class EaglerMinecraftDecoder extends MessageToMessageDecoder 500l) { @@ -82,5 +100,47 @@ public class EaglerMinecraftDecoder extends MessageToMessageDecoder:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>", + ":> ", + ":> EAGLERCRAFTXBUNGEE WARNING:", + ":> ", + ":> This plugin wasn\'t tested to be \'working\'", + ":> with ANY version of BungeeCord (and forks)", + ":> apart from the versions listed below:", + ":> ", + ":> - BungeeCord: " + EaglerXBungee.NATIVE_BUNGEECORD_BUILD, + ":> - Waterfall: " + EaglerXBungee.NATIVE_WATERFALL_BUILD, + ":> - FlameCord: " + EaglerXBungee.NATIVE_FLAMECORD_BUILD, + ":> ", + ":> This is not a Bukkit/Spigot plugin!", + ":> ", + ":> Use \"-Deaglerxbungee.stfu=true\" to hide", + ":> ", + ":>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>:>" + }; + + try { + Logger fuck = ProxyServer.getInstance().getLogger(); + for(int i = 0; i < compatWarnings.length; ++i) { + fuck.warning(compatWarnings[i]); + } + }catch(Throwable t) { + for(int i = 0; i < compatWarnings.length; ++i) { + System.err.println(compatWarnings[i]); + } + } + } + +} diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/shit/MainClass.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/shit/MainClass.java new file mode 100644 index 0000000..98ecaa6 --- /dev/null +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/shit/MainClass.java @@ -0,0 +1,39 @@ +package net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.shit; + +import java.awt.GraphicsEnvironment; + +import javax.swing.JOptionPane; + +/** + * Copyright (c) 2023 LAX1DUDE. All Rights Reserved. + * + * WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES + * NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED + * TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE + * SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR. + * + * NOT FOR COMMERCIAL OR MALICIOUS USE + * + * (please read the 'LICENSE' file this repo's root directory for more info) + * + */ +public class MainClass { + + public static void main(String[] args) { + System.err.println(); + System.err.println("ERROR: The EaglerXBungee 1.8 jar file is a PLUGIN intended to be used with BungeeCord!"); + System.err.println("Place this file in the \"plugins\" directory of your BungeeCord installation"); + System.err.println(); + try { + tryShowPopup(); + }catch(Throwable t) { + } + System.exit(0); + } + + private static void tryShowPopup() throws Throwable { + if(!GraphicsEnvironment.isHeadless()) { + JOptionPane.showMessageDialog(null, "ERROR: The EaglerXBungee 1.8 jar file is a PLUGIN intended to be used with BungeeCord!\nPlace this file in the \"plugins\" directory of your BungeeCord installation", "EaglerXBungee", JOptionPane.ERROR_MESSAGE); + } + } +} diff --git a/gateway/EaglercraftXBungee/src/main/resources/plugin.yml b/gateway/EaglercraftXBungee/src/main/resources/plugin.yml index 4e97728..cb3b2ae 100644 --- a/gateway/EaglercraftXBungee/src/main/resources/plugin.yml +++ b/gateway/EaglercraftXBungee/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: EaglercraftXBungee main: net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.EaglerXBungee -version: 1.0.6 +version: 1.0.9 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 author: lax1dude \ No newline at end of file diff --git a/gateway_version b/gateway_version index ece61c6..e5a4a5e 100644 --- a/gateway_version +++ b/gateway_version @@ -1 +1 @@ -1.0.6 \ No newline at end of file +1.0.9 \ No newline at end of file