More debug calls to set the premiumUUID

This commit is contained in:
games647
2018-05-06 11:20:52 +02:00
parent 084afef899
commit 39be806ae7

View File

@@ -16,6 +16,7 @@ import com.github.games647.fastlogin.bukkit.EncryptionUtil;
import com.github.games647.fastlogin.bukkit.FastLoginBukkit; import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.InetAddress; import java.net.InetAddress;
@@ -106,14 +107,17 @@ public class VerifyResponseTask implements Runnable {
InetAddress address = socketAddress.getAddress(); InetAddress address = socketAddress.getAddress();
Optional<Verification> response = resolver.hasJoined(username, serverId, address); Optional<Verification> response = resolver.hasJoined(username, serverId, address);
if (response.isPresent()) { if (response.isPresent()) {
plugin.getLog().info("GameProfile {} has a verified premium account", username); Verification verification = response.get();
UUID id = verification.getId();
Property[] properties = response.get().getProperties(); plugin.getLog().info("GameProfile {} with {} has a verified premium account", username, id);
Property[] properties = verification.getProperties();
if (properties.length > 0) { if (properties.length > 0) {
session.setSkinProperty(properties[0]); session.setSkinProperty(properties[0]);
} }
session.setUuid(response.get().getId()); session.setUuid(id);
session.setVerified(true); session.setVerified(true);
setPremiumUUID(session.getUuid()); setPremiumUUID(session.getUuid());
@@ -130,7 +134,19 @@ public class VerifyResponseTask implements Runnable {
} }
private void setPremiumUUID(UUID premiumUUID) { private void setPremiumUUID(UUID premiumUUID) {
if (plugin.getConfig().getBoolean("premiumUuid") && premiumUUID != null) { boolean uuidEnabled = plugin.getConfig().getBoolean("premiumUuid");
plugin.getLog().info("Setting UUID {} based on config: {}", premiumUUID, uuidEnabled);
try {
Object networkManager = getNetworkManager();
Field uuidField = FieldUtils.getField(networkManager.getClass(), "spoofedUUID");
Object oldValue = uuidField.get(player);
plugin.getLog().info("spoofed UUID field exits? {} with {}", uuidField, oldValue);
} catch (ReflectiveOperationException e) {
plugin.getLog().error("Failed to query field of {}", player);
}
if (uuidEnabled && premiumUUID != null) {
try { try {
Object networkManager = getNetworkManager(); Object networkManager = getNetworkManager();
//https://github.com/bergerkiller/CraftSource/blob/master/net.minecraft.server/NetworkManager.java#L69 //https://github.com/bergerkiller/CraftSource/blob/master/net.minecraft.server/NetworkManager.java#L69