mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-12-26 19:18:17 +01:00
Provide an even more detailed warning message when other uuids are present for a username
We can use the data we have about the UUID and the platform LP is running on to infer more information about what the problem (potentially) is.
This commit is contained in:
parent
a90e59ec97
commit
b7de0e6901
@ -26,6 +26,7 @@
|
||||
package me.lucko.luckperms.common.listener;
|
||||
|
||||
import me.lucko.luckperms.api.PlayerSaveResult;
|
||||
import me.lucko.luckperms.api.platform.PlatformType;
|
||||
import me.lucko.luckperms.common.assignments.AssignmentRule;
|
||||
import me.lucko.luckperms.common.config.ConfigKeys;
|
||||
import me.lucko.luckperms.common.model.User;
|
||||
@ -56,25 +57,44 @@ public abstract class AbstractConnectionListener implements ConnectionListener {
|
||||
this.uniqueConnections.add(uuid);
|
||||
}
|
||||
|
||||
public User loadUser(UUID u, String username) {
|
||||
public User loadUser(UUID uuid, String username) {
|
||||
final long startTime = System.currentTimeMillis();
|
||||
|
||||
// register with the housekeeper to avoid accidental unloads
|
||||
this.plugin.getUserManager().getHouseKeeper().registerUsage(u);
|
||||
this.plugin.getUserManager().getHouseKeeper().registerUsage(uuid);
|
||||
|
||||
// save uuid data.
|
||||
PlayerSaveResult saveResult = this.plugin.getStorage().savePlayerData(u, username).join();
|
||||
PlayerSaveResult saveResult = this.plugin.getStorage().savePlayerData(uuid, username).join();
|
||||
|
||||
// fire UserFirstLogin event
|
||||
if (saveResult.includes(PlayerSaveResultImpl.Status.CLEAN_INSERT)) {
|
||||
this.plugin.getEventFactory().handleUserFirstLogin(u, username);
|
||||
this.plugin.getEventFactory().handleUserFirstLogin(uuid, username);
|
||||
}
|
||||
|
||||
if (saveResult.includes(PlayerSaveResultImpl.Status.OTHER_UUIDS_PRESENT_FOR_USERNAME)) {
|
||||
this.plugin.getLogger().warn("LuckPerms already has data for player '" + username + "' - but this data is stored under a different uuid.");
|
||||
this.plugin.getLogger().warn("'" + username + "' has previously used the unique ids " + saveResult.getOtherUuids() + " but is now connecting with '" + u + "'");
|
||||
this.plugin.getLogger().warn("This is usually because the server is not authenticating correctly. If you're using BungeeCord, please ensure that IP-Forwarding is setup correctly!");
|
||||
// most likely because ip forwarding is not setup correctly
|
||||
// print a warning to the console
|
||||
if (saveResult.includes(PlayerSaveResult.Status.OTHER_UUIDS_PRESENT_FOR_USERNAME)) {
|
||||
Set<UUID> otherUuids = saveResult.getOtherUuids();
|
||||
|
||||
this.plugin.getLogger().warn("LuckPerms already has data for player '" + username + "' - but this data is stored under a different UUID.");
|
||||
this.plugin.getLogger().warn("'" + username + "' has previously used the unique ids " + otherUuids + " but is now connecting with '" + uuid + "'");
|
||||
|
||||
if (uuid.version() == 4) {
|
||||
if (this.plugin.getBootstrap().getType() == PlatformType.BUNGEE) {
|
||||
this.plugin.getLogger().warn("The UUID the player is connecting with now is Mojang-assigned (type 4). This implies that BungeeCord's IP-Forwarding has not been setup correctly on one (or more) of the backend servers.");
|
||||
} else {
|
||||
this.plugin.getLogger().warn("The UUID the player is connecting with now is Mojang-assigned (type 4). This implies that one of the other servers in your network is not authenticating correctly.");
|
||||
this.plugin.getLogger().warn("If you're using BungeeCord, please ensure that IP-Forwarding is setup correctly on all of your backend servers!");
|
||||
}
|
||||
} else {
|
||||
this.plugin.getLogger().warn("The UUID the player is connecting with now is NOT Mojang-assigned (type " + uuid.version() + "). This implies that THIS server is not authenticating correctly, but one (or more) of the other servers/proxies in the network are.");
|
||||
this.plugin.getLogger().warn("If you're using BungeeCord, please ensure that IP-Forwarding is setup correctly on all of your backend servers!");
|
||||
}
|
||||
|
||||
User user = this.plugin.getStorage().loadUser(u, username).join();
|
||||
this.plugin.getLogger().warn("See here for more info: https://github.com/lucko/LuckPerms/wiki/Network-Installation#pre-setup");
|
||||
}
|
||||
|
||||
User user = this.plugin.getStorage().loadUser(uuid, username).join();
|
||||
if (user == null) {
|
||||
throw new NullPointerException("User is null");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user