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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
||||||
|
@@ -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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user