From df01b38949ab1d81d99c899ae8256ad6a1128788 Mon Sep 17 00:00:00 2001 From: alterwain Date: Thu, 20 Mar 2025 23:15:37 +0300 Subject: [PATCH] Bungeecord support added x2 --- .../alterdekim/xcraft/auth/bungee/XCraft.java | 35 +++++++++++++------ .../com/alterdekim/xcraft/auth/SaltNic.java | 11 ++++++ 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/bungee/src/main/java/com/alterdekim/xcraft/auth/bungee/XCraft.java b/bungee/src/main/java/com/alterdekim/xcraft/auth/bungee/XCraft.java index c2ed0b2..2321e66 100644 --- a/bungee/src/main/java/com/alterdekim/xcraft/auth/bungee/XCraft.java +++ b/bungee/src/main/java/com/alterdekim/xcraft/auth/bungee/XCraft.java @@ -1,20 +1,28 @@ package com.alterdekim.xcraft.auth.bungee; import com.alterdekim.xcraft.auth.SaltNic; +import net.md_5.bungee.api.connection.PendingConnection; +import net.md_5.bungee.api.event.LoginEvent; +import net.md_5.bungee.api.event.PlayerHandshakeEvent; +import net.md_5.bungee.api.plugin.Listener; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.ConfigurationProvider; import net.md_5.bungee.config.YamlConfiguration; +import net.md_5.bungee.event.EventHandler; +import sun.misc.Unsafe; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Field; import java.nio.file.Files; +import java.util.UUID; import static com.alterdekim.xcraft.auth.lib.Patcher.patchAuthLib; -public class XCraft extends Plugin { +public class XCraft extends Plugin implements Listener { private static SaltNic server = null; @@ -25,6 +33,7 @@ public class XCraft extends Plugin { @Override public void onEnable() { + getProxy().getPluginManager().registerListener(this, this); try { Configuration config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml")); SERVER_PORT = config.getInt("public_port"); @@ -43,19 +52,25 @@ public class XCraft extends Plugin { getLogger().severe("Failed to start SaltNic server: " + e.getMessage()); } } - getLogger().info("Patching AuthLib URLs..."); - while(true) { - try { - patchAuthLib(getLogger(), INTERNAL_PORT); - getLogger().info("AuthLib URLs patched successfully!"); - return; - } catch (Exception e) { - e.printStackTrace(); - getLogger().severe("Failed to patch AuthLib: " + e.getMessage()); + } + + @EventHandler + public void onLogin(LoginEvent event) { + try { + if( server.getSessionValue(event.getConnection().getUniqueId().toString()) ) { + server.deleteSessionRequest(event.getConnection().getUniqueId().toString()); + UUID customUUID = UUID.nameUUIDFromBytes(("xcraft-" + event.getConnection().getName()).getBytes()); + event.setCancelled(false); + event.getConnection().setUniqueId(customUUID); + getLogger().info("Player " + event.getConnection().getName() + " is now using UUID: " + customUUID); } + } catch (Exception e) { + e.printStackTrace(); } } + + @Override public void onDisable() { if (server != null) { diff --git a/common/src/main/java/com/alterdekim/xcraft/auth/SaltNic.java b/common/src/main/java/com/alterdekim/xcraft/auth/SaltNic.java index fe75602..8f0f723 100644 --- a/common/src/main/java/com/alterdekim/xcraft/auth/SaltNic.java +++ b/common/src/main/java/com/alterdekim/xcraft/auth/SaltNic.java @@ -172,6 +172,17 @@ public class SaltNic extends NanoHTTPD { } } + public boolean getSessionValue(String uuid) { + if( this.sessions.containsKey(uuid) ) { + return this.sessions.get(uuid); + } + return false; + } + + public void deleteSessionRequest(String uuid) { + this.sessions.remove(uuid); + } + private Response handleSetModel(IHTTPSession session) { try { String playerUUID = session.getParameters().get("uuid").get(0);