Bungeecord support added x3
This commit is contained in:
parent
df01b38949
commit
b5c97995e9
@ -2,8 +2,7 @@ package com.alterdekim.xcraft.auth.bungee;
|
|||||||
|
|
||||||
import com.alterdekim.xcraft.auth.SaltNic;
|
import com.alterdekim.xcraft.auth.SaltNic;
|
||||||
import net.md_5.bungee.api.connection.PendingConnection;
|
import net.md_5.bungee.api.connection.PendingConnection;
|
||||||
import net.md_5.bungee.api.event.LoginEvent;
|
import net.md_5.bungee.api.event.PreLoginEvent;
|
||||||
import net.md_5.bungee.api.event.PlayerHandshakeEvent;
|
|
||||||
import net.md_5.bungee.api.plugin.Listener;
|
import net.md_5.bungee.api.plugin.Listener;
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
import net.md_5.bungee.config.Configuration;
|
import net.md_5.bungee.config.Configuration;
|
||||||
@ -55,15 +54,22 @@ public class XCraft extends Plugin implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onLogin(LoginEvent event) {
|
public void onPreLogin(PreLoginEvent event) {
|
||||||
try {
|
try {
|
||||||
if( server.getSessionValue(event.getConnection().getUniqueId().toString()) ) {
|
PendingConnection connection = event.getConnection();
|
||||||
server.deleteSessionRequest(event.getConnection().getUniqueId().toString());
|
|
||||||
UUID customUUID = UUID.nameUUIDFromBytes(("xcraft-" + event.getConnection().getName()).getBytes());
|
// Ensure we are dealing with InitialHandler
|
||||||
event.setCancelled(false);
|
if (!connection.getClass().getName().equals("net.md_5.bungee.connection.InitialHandler")) {
|
||||||
event.getConnection().setUniqueId(customUUID);
|
return;
|
||||||
getLogger().info("Player " + event.getConnection().getName() + " is now using UUID: " + customUUID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class<?> initialHandlerClass = connection.getClass();
|
||||||
|
|
||||||
|
Field onlineModeField = initialHandlerClass.getDeclaredField("onlineMode");
|
||||||
|
onlineModeField.setAccessible(true);
|
||||||
|
onlineModeField.set(connection, false); // Disable Mojang auth
|
||||||
|
|
||||||
|
getLogger().info("Bypassed Mojang authentication for " + connection.getName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user