diff --git a/Ragon.Client/Sources/Handler/RoomListHandler.cs b/Ragon.Client/Sources/Handler/RoomListHandler.cs index 6656893..3150b1e 100644 --- a/Ragon.Client/Sources/Handler/RoomListHandler.cs +++ b/Ragon.Client/Sources/Handler/RoomListHandler.cs @@ -21,10 +21,10 @@ internal class RoomListHandler: IHandler { var id = reader.ReadString(); var scene = reader.ReadString(); - var players = reader.ReadUShort(); var maxPlayers = reader.ReadUShort(); var minPlayers = reader.ReadUShort(); - + var players = reader.ReadUShort(); + var roomInfo = new RagonRoomInformation() { Id = id, diff --git a/Ragon.Client/Sources/RagonClient.cs b/Ragon.Client/Sources/RagonClient.cs index a3533b8..8144981 100644 --- a/Ragon.Client/Sources/RagonClient.cs +++ b/Ragon.Client/Sources/RagonClient.cs @@ -179,6 +179,7 @@ namespace Ragon.Client public void AddListener(IRagonSceneListener listener) => _listeners.Add(listener); public void AddListener(IRagonSceneRequestListener listener) => _listeners.Add(listener); public void AddListener(IRagonDataListener listener) => _listeners.Add(listener); + public void AddListener(IRagonRoomListListener listener) => _listeners.Add(listener); public void RemoveListener(IRagonListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonAuthorizationListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonConnectionListener listener) => _listeners.Remove(listener); @@ -191,6 +192,7 @@ namespace Ragon.Client public void RemoveListener(IRagonSceneListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonSceneRequestListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonDataListener listener) => _listeners.Remove(listener); + public void RemoveListener(IRagonRoomListListener listener) => _listeners.Remove(listener); #endregion diff --git a/Ragon.Client/Sources/RagonListenerList.cs b/Ragon.Client/Sources/RagonListenerList.cs index 10b8848..c7c6053 100644 --- a/Ragon.Client/Sources/RagonListenerList.cs +++ b/Ragon.Client/Sources/RagonListenerList.cs @@ -132,6 +132,11 @@ namespace Ragon.Client _playerLeftListeners.Add(listener); } + public void Add(IRagonRoomListListener listener) + { + _roomListListeners.Add(listener); + } + public void Remove(IRagonDataListener listener) { _delayedActions.Add(() => _dataListeners.Remove(listener)); @@ -186,6 +191,11 @@ namespace Ragon.Client { _delayedActions.Add(() => _playerLeftListeners.Remove(listener)); } + + public void Remove(IRagonRoomListListener listener) + { + _delayedActions.Add(() => _roomListListeners.Remove(listener)); + } public void OnAuthorizationSuccess(string playerId, string playerName, string payload) { diff --git a/Ragon.Server/Sources/Lobby/RagonLobbyDispatcher.cs b/Ragon.Server/Sources/Lobby/RagonLobbyDispatcher.cs index e843c67..1bc0b5d 100644 --- a/Ragon.Server/Sources/Lobby/RagonLobbyDispatcher.cs +++ b/Ragon.Server/Sources/Lobby/RagonLobbyDispatcher.cs @@ -15,7 +15,7 @@ public class RagonLobbyDispatcher public void Write(RagonBuffer writer) { writer.Clear(); - writer.Write((byte)RagonOperation.ROOM_LIST_UPDATED); + writer.WriteOperation(RagonOperation.ROOM_LIST_UPDATED); var rooms = _lobby.Rooms; writer.WriteUShort((ushort)rooms.Count); diff --git a/Ragon.Server/Sources/Logging/LoggerManager.cs b/Ragon.Server/Sources/Logging/LoggerManager.cs index 466fea7..085add6 100644 --- a/Ragon.Server/Sources/Logging/LoggerManager.cs +++ b/Ragon.Server/Sources/Logging/LoggerManager.cs @@ -2,7 +2,7 @@ namespace Ragon.Server.Logging { public class LoggerManager { - private static IRagonLoggerFactory _factory; + private static IRagonLoggerFactory _factory = null!; public static void SetLoggerFactory(IRagonLoggerFactory loggerFactory) { diff --git a/Ragon.Server/Sources/RagonServer.cs b/Ragon.Server/Sources/RagonServer.cs index a504049..db57d26 100644 --- a/Ragon.Server/Sources/RagonServer.cs +++ b/Ragon.Server/Sources/RagonServer.cs @@ -111,7 +111,7 @@ public class RagonServer : IRagonServer, INetworkListener if (_timer.ElapsedMilliseconds > _tickRate) { _timer.Restart(); - _scheduler.Update(_timer.ElapsedMilliseconds / 1000.0f); + _scheduler.Update(_tickRate); SendTimestamp(); } diff --git a/Ragon.Server/Sources/Time/RagonActionTimer.cs b/Ragon.Server/Sources/Time/RagonActionTimer.cs index d9ebedf..d8af36b 100644 --- a/Ragon.Server/Sources/Time/RagonActionTimer.cs +++ b/Ragon.Server/Sources/Time/RagonActionTimer.cs @@ -16,6 +16,9 @@ public class RagonActionTimer: IRagonAction { _timer += dt; if (_timer >= _time) + { _callback?.Invoke(); + _timer = 0; + } } } \ No newline at end of file