Bungeecord support added x5
This commit is contained in:
parent
4293752e41
commit
9fd2dc825a
@ -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
|
||||
|
@ -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() ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user