Files
Ragon/Ragon.Server/Sources/Lobby/RagonLobbyDispatcher.cs
T

38 lines
859 B
C#
Raw Normal View History

2024-04-13 16:17:31 +03:00
using Ragon.Protocol;
using Ragon.Server.Room;
namespace Ragon.Server.Lobby;
public class RagonLobbyDispatcher
{
private IRagonLobby _lobby;
public RagonLobbyDispatcher(IRagonLobby lobby)
{
_lobby = lobby;
}
2025-10-04 15:08:53 +03:00
public void Write(RagonBuffer writer, int projectId = 0)
2024-04-13 16:17:31 +03:00
{
writer.Clear();
2024-04-13 18:25:39 +03:00
writer.WriteOperation(RagonOperation.ROOM_LIST_UPDATED);
2024-04-13 16:17:31 +03:00
var rooms = _lobby.Rooms;
2025-10-04 15:08:53 +03:00
if (projectId > 0)
{
rooms = rooms.Where(r => r.ProjectId == projectId).ToList();
}
2024-04-13 16:17:31 +03:00
writer.WriteUShort((ushort)rooms.Count);
for (int i = 0; i < rooms.Count; i++)
{
var room = rooms[i];
writer.WriteString(room.Id);
writer.WriteString(room.Scene);
writer.WriteUShort((ushort)room.PlayerMax);
writer.WriteUShort((ushort)room.PlayerMin);
writer.WriteUShort((ushort)room.PlayerCount);
}
}
}