mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-13 01:54:25 +02:00
Get Player objects of players, that are not in the game yet.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -243,8 +243,10 @@ public class EssentialsPlayerListener implements Listener
|
||||
default:
|
||||
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();
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user