1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-13 18:14:38 +02:00

Get Player objects of players, that are not in the game yet.

This commit is contained in:
snowleo
2012-10-09 20:39:35 +02:00
parent 2c72a6bc95
commit 62d5f63ab1
3 changed files with 28 additions and 2 deletions

View File

@@ -36,4 +36,8 @@ public interface IUserMap extends IReload
IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException;
Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline);
public void addPrejoinedPlayer(Player player);
public void removePrejoinedPlayer(Player player);
}

View File

@@ -244,7 +244,9 @@ public class EssentialsPlayerListener implements Listener
return;
}
ess.getUserMap().addPrejoinedPlayer(event.getPlayer());
final IUser user = ess.getUserMap().getUser(event.getPlayer());
ess.getUserMap().removePrejoinedPlayer(event.getPlayer());
user.getData().setNpc(false);
final long currentTime = System.currentTimeMillis();

View File

@@ -2,8 +2,10 @@ package net.ess3.user;
import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import net.ess3.api.IEssentials;
import net.ess3.api.IUser;
@@ -16,6 +18,8 @@ import org.bukkit.entity.Player;
public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{
private final Map<String, Player> prejoinedPlayers = new HashMap<String, Player>();
public UserMap(final IEssentials ess)
{
super(ess, "users");
@@ -49,7 +53,11 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
return user;
}
}
Player player = ess.getServer().getPlayerExact(name);
Player player = prejoinedPlayers.get(name);
if (player == null)
{
player = ess.getServer().getPlayerExact(name);
}
if (player != null)
{
return new User(ess.getServer().getOfflinePlayer(player.getName()), ess);
@@ -239,4 +247,16 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{
return ess.getSettings().getData().getChat().getNicknamePrefix();
}
@Override
public void addPrejoinedPlayer(Player player)
{
prejoinedPlayers.put(player.getName().toLowerCase(Locale.ENGLISH), player);
}
@Override
public void removePrejoinedPlayer(Player player)
{
prejoinedPlayers.remove(player.getName().toLowerCase(Locale.ENGLISH));
}
}