1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-14 18:44:48 +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; 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); 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; return;
} }
ess.getUserMap().addPrejoinedPlayer(event.getPlayer());
final IUser user = ess.getUserMap().getUser(event.getPlayer()); final IUser user = ess.getUserMap().getUser(event.getPlayer());
ess.getUserMap().removePrejoinedPlayer(event.getPlayer());
user.getData().setNpc(false); user.getData().setNpc(false);
final long currentTime = System.currentTimeMillis(); final long currentTime = System.currentTimeMillis();

View File

@@ -2,8 +2,10 @@ package net.ess3.user;
import java.io.File; import java.io.File;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
import java.util.Set; import java.util.Set;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IUser; import net.ess3.api.IUser;
@@ -16,6 +18,8 @@ import org.bukkit.entity.Player;
public class UserMap extends StorageObjectMap<IUser> implements IUserMap public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{ {
private final Map<String, Player> prejoinedPlayers = new HashMap<String, Player>();
public UserMap(final IEssentials ess) public UserMap(final IEssentials ess)
{ {
super(ess, "users"); super(ess, "users");
@@ -49,7 +53,11 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
return user; return user;
} }
} }
Player player = ess.getServer().getPlayerExact(name); Player player = prejoinedPlayers.get(name);
if (player == null)
{
player = ess.getServer().getPlayerExact(name);
}
if (player != null) if (player != null)
{ {
return new User(ess.getServer().getOfflinePlayer(player.getName()), ess); 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(); 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));
}
} }