48 lines
948 B
C#
48 lines
948 B
C#
using MMOserver.Game.Service;
|
|
using ServerLib.Service;
|
|
|
|
namespace MMOserver.Game.Channel;
|
|
|
|
public abstract class UserContainer
|
|
{
|
|
protected readonly Dictionary<int, Player> users = new();
|
|
|
|
public virtual void AddUser(int userId, Player player)
|
|
{
|
|
users.Add(userId, player);
|
|
}
|
|
|
|
public virtual void RemoveUser(int userId)
|
|
{
|
|
users.Remove(userId);
|
|
}
|
|
|
|
public virtual int HasUser(int userId)
|
|
{
|
|
return users.ContainsKey(userId) ? userId : -1;
|
|
}
|
|
|
|
public virtual Player? GetPlayer(int userId)
|
|
{
|
|
users.TryGetValue(userId, out Player? player);
|
|
return player;
|
|
}
|
|
|
|
public virtual IEnumerable<Player> GetPlayers()
|
|
{
|
|
return users.Values;
|
|
}
|
|
|
|
public IEnumerable<int> GetConnectUsers()
|
|
{
|
|
return users.Keys;
|
|
}
|
|
|
|
public Dictionary<int, Player> GetUsers()
|
|
{
|
|
return users;
|
|
}
|
|
|
|
public int UserCount => users.Count;
|
|
}
|