mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 23:48:45 -07:00
fix: address review on the notification pushes
- Force-join's RoomUpdate carries the room's role grants, so it no longer wipes them from the client's cached room. - The consumable push reports IsTransferable the same as the inventory list does. - A rejected private-instance join sends the owner at most one "wants to join" message per requester and instance every 5 minutes. - SubscribeToPlayers ignores sets over 5,000 ids and keeps the current subscriptions. - The subscriber exclusion list looks up online friends' connections in one pipelined Redis batch instead of one call per friend.
This commit is contained in:
@@ -143,8 +143,11 @@ public sealed class PresenceBroadcastService(
|
||||
// offline frame otherwise. Friends were served above and the
|
||||
// subject must never get a frame about themselves, so their
|
||||
// connections are excluded.
|
||||
var exclude = connections.GetConnections(playerId)
|
||||
.Concat(friendIds.SelectMany(connections.GetConnections))
|
||||
// Only friends who are online have connections; one call for the
|
||||
// online set, then one pipelined lookup for all of them.
|
||||
var onlineIds = connections.OnlinePlayerIds().ToHashSet();
|
||||
var exclude = (await connections.GetConnectionsAsync(
|
||||
friendIds.Where(onlineIds.Contains).Append(playerId)))
|
||||
.Distinct()
|
||||
.ToList();
|
||||
var publicToAll = visibility == PresenceVisibility.Public && online;
|
||||
|
||||
Reference in New Issue
Block a user