mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-11 17:15:07 +02:00
Try to use consistent UUIDs and not rely on Bukkit lookup while saving.
This commit is contained in:
@@ -12,8 +12,8 @@ import org.bukkit.Bukkit;
|
|||||||
|
|
||||||
public class EssentialsUserConf extends EssentialsConf
|
public class EssentialsUserConf extends EssentialsConf
|
||||||
{
|
{
|
||||||
final String username;
|
public final String username;
|
||||||
final UUID uuid;
|
public final UUID uuid;
|
||||||
|
|
||||||
public EssentialsUserConf(final String username, final UUID uuid, final File configFile)
|
public EssentialsUserConf(final String username, final UUID uuid, final File configFile)
|
||||||
{
|
{
|
||||||
|
@@ -240,7 +240,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
|||||||
{
|
{
|
||||||
if (!base.isOnline())
|
if (!base.isOnline())
|
||||||
{
|
{
|
||||||
this.base = new OfflinePlayer(base.getUniqueId(), ess.getServer());
|
this.base = new OfflinePlayer(getConfigUUID(), ess.getServer());
|
||||||
}
|
}
|
||||||
cleanup();
|
cleanup();
|
||||||
}
|
}
|
||||||
|
@@ -50,7 +50,10 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
{
|
{
|
||||||
config.forceSave();
|
config.forceSave();
|
||||||
config.getFile().delete();
|
config.getFile().delete();
|
||||||
ess.getUserMap().removeUser(this.getBase().getName());
|
if (config.username != null)
|
||||||
|
{
|
||||||
|
ess.getUserMap().removeUser(config.username);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void cleanup()
|
public final void cleanup()
|
||||||
@@ -838,7 +841,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
this.lastAccountName = lastAccountName;
|
this.lastAccountName = lastAccountName;
|
||||||
config.setProperty("lastAccountName", lastAccountName);
|
config.setProperty("lastAccountName", lastAccountName);
|
||||||
config.save();
|
config.save();
|
||||||
ess.getUserMap().trackUUID(base.getUniqueId(), lastAccountName);
|
ess.getUserMap().trackUUID(getConfigUUID(), lastAccountName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNPC(boolean set)
|
public void setNPC(boolean set)
|
||||||
@@ -968,6 +971,11 @@ public abstract class UserData extends PlayerExtension implements IConf
|
|||||||
return new HashMap<String, Object>();
|
return new HashMap<String, Object>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getConfigUUID()
|
||||||
|
{
|
||||||
|
return config.uuid;
|
||||||
|
}
|
||||||
|
|
||||||
public void save()
|
public void save()
|
||||||
{
|
{
|
||||||
config.save();
|
config.save();
|
||||||
|
@@ -183,6 +183,11 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
|||||||
|
|
||||||
public void removeUser(final String name)
|
public void removeUser(final String name)
|
||||||
{
|
{
|
||||||
|
if (names == null)
|
||||||
|
{
|
||||||
|
ess.getLogger().warning("Name collection is null, cannot remove user.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
UUID uuid = names.get(name);
|
UUID uuid = names.get(name);
|
||||||
if (uuid != null)
|
if (uuid != null)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user