Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions Source/ACE.Server/Managers/PlayerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,19 @@ public static List<IPlayer> GetAllPlayers()
return allPlayers;
}

public static List<IPlayer> GetAllPlayers(ushort realmId)
{
var offlinePlayers = GetAllOffline(realmId);
var onlinePlayers = GetAllOnline(realmId);

var allPlayers = new List<IPlayer>();

allPlayers.AddRange(offlinePlayers);
allPlayers.AddRange(onlinePlayers);

return allPlayers;
}

public static Dictionary<ulong, IPlayer> GetAccountPlayers(uint accountId)
{
playersLock.EnterReadLock();
Expand All @@ -258,6 +271,18 @@ public static int GetOfflineCount()
playersLock.ExitReadLock();
}
}
public static int GetOfflineCount(ushort realmId)
{
playersLock.EnterReadLock();
try
{
return GetAllOffline(realmId).Count;
}
finally
{
playersLock.ExitReadLock();
}
}

public static List<OfflinePlayer> GetAllOffline()
{
Expand All @@ -277,6 +302,28 @@ public static List<OfflinePlayer> GetAllOffline()
return results;
}

public static List<OfflinePlayer> GetAllOffline(ushort realmId)
{
var results = new List<OfflinePlayer>();

playersLock.EnterReadLock();
try
{
foreach (var player in offlinePlayers.Values)
{
var homeRealm = player.GetProperty(PropertyInt.HomeRealm);
if (homeRealm != null && (ushort)homeRealm == realmId)
results.Add(player);
}
}
finally
{
playersLock.ExitReadLock();
}

return results;
}

public static int GetOnlineCount()
{
playersLock.EnterReadLock();
Expand All @@ -290,6 +337,19 @@ public static int GetOnlineCount()
}
}

public static int GetOnlineCount(ushort realmId)
{
playersLock.EnterReadLock();
try
{
return GetAllOnline(realmId).Count;
}
finally
{
playersLock.ExitReadLock();
}
}

/// <summary>
/// This will return null if the player wasn't found.
/// </summary>
Expand Down Expand Up @@ -357,6 +417,28 @@ public static List<Player> GetAllOnline()

return results;
}
public static List<Player> GetAllOnline(ushort realmId)
{
var results = new List<Player>();

playersLock.EnterReadLock();
try
{
foreach (var player in onlinePlayers.Values)
{
var homeRealm = player.GetProperty(PropertyInt.HomeRealm);
if (homeRealm != null && (ushort)homeRealm == realmId)
results.Add(player);
}
}
finally
{
playersLock.ExitReadLock();
}

return results;
}



/// <summary>
Expand Down