Bungeecord support added x5

This commit is contained in:
Michael Wain 2025-03-21 02:48:19 +03:00
parent 4293752e41
commit 9fd2dc825a
2 changed files with 27 additions and 1 deletions

View File

@ -67,12 +67,38 @@ public class XCraft extends Plugin implements Listener {
onlineModeField.setAccessible(true);
onlineModeField.set(connection, false);
injectCustomSkin(connection);
getLogger().info("Bypassed Mojang authentication for " + connection.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
private void injectCustomSkin(PendingConnection connection) {
try {
Class<?> initialHandlerClass = connection.getClass();
Field loginProfileField = initialHandlerClass.getDeclaredField("loginProfile");
loginProfileField.setAccessible(true);
Class<?> loginResultClass = Class.forName("net.md_5.bungee.connection.LoginResult");
Class<?> propertyClass = Class.forName("net.md_5.bungee.connection.LoginResult$Property");
Object[] properties = new Object[1];
properties[0] = propertyClass.getConstructor(String.class, String.class, String.class)
.newInstance("textures", server.getTextures(connection.getUniqueId().toString()).getValue(), null);
Object customLoginResult = loginResultClass
.getConstructor(String.class, UUID.class, propertyClass.arrayType())
.newInstance(connection.getName(), connection.getUniqueId(), properties);
loginProfileField.set(connection, customLoginResult);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override

View File

@ -234,7 +234,7 @@ public class SaltNic extends NanoHTTPD {
}
}
private MinecraftProperty getTextures(String uuid) {
public MinecraftProperty getTextures(String uuid) {
Map<MinecraftProfileTexture.Type, MinecraftProfileTexture> textures = new HashMap<>();
if( new File(SKIN_DIRECTORY, uuid + ".png").exists() ) {