From 0ede864f4052254cba5da2e9fce485e33e941961 Mon Sep 17 00:00:00 2001 From: edmand46 Date: Sun, 12 May 2024 11:37:44 +0300 Subject: [PATCH] refactor: updated order of plugins callbacks --- Ragon.Relay/Sources/RelayRoomPlugin.cs | 12 ++++++++++++ Ragon.Server/Sources/Handler/RoomCreateOperation.cs | 5 ++--- Ragon.Server/Sources/Handler/RoomJoinOperation.cs | 7 +++---- .../Sources/Handler/RoomJoinOrCreateOperation.cs | 10 ++++------ 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Ragon.Relay/Sources/RelayRoomPlugin.cs b/Ragon.Relay/Sources/RelayRoomPlugin.cs index ff29bd1..0ee88c8 100644 --- a/Ragon.Relay/Sources/RelayRoomPlugin.cs +++ b/Ragon.Relay/Sources/RelayRoomPlugin.cs @@ -34,9 +34,21 @@ public class RelayRoomPlugin: BaseRoomPlugin return true; } + public override bool OnPlayerJoined(RagonRoomPlayer player) + { + return false; + } + + public override bool OnPlayerLeaved(RagonRoomPlayer player) + { + return false; + } + public override bool OnData(RagonRoomPlayer player, byte[] data) { Console.WriteLine("Data received"); + + return true; } } \ No newline at end of file diff --git a/Ragon.Server/Sources/Handler/RoomCreateOperation.cs b/Ragon.Server/Sources/Handler/RoomCreateOperation.cs index a0d058f..b944523 100644 --- a/Ragon.Server/Sources/Handler/RoomCreateOperation.cs +++ b/Ragon.Server/Sources/Handler/RoomCreateOperation.cs @@ -79,9 +79,6 @@ public sealed class RoomCreateOperation : BaseOperation var roomPlugin = _serverPlugin.CreateRoomPlugin(information); var room = new RagonRoom(roomId, information, roomPlugin); - - if (!roomPlugin.OnPlayerJoined(roomPlayer)) - return; roomPlayer.OnAttached(room); @@ -95,6 +92,8 @@ public sealed class RoomCreateOperation : BaseOperation JoinSuccess(roomPlayer, room, Writer); + roomPlugin.OnPlayerJoined(roomPlayer); + _logger.Trace($"Player {context.Connection.Id}|{context.LobbyPlayer.Name} joined to room {room.Id}"); } diff --git a/Ragon.Server/Sources/Handler/RoomJoinOperation.cs b/Ragon.Server/Sources/Handler/RoomJoinOperation.cs index 336af12..e00954b 100644 --- a/Ragon.Server/Sources/Handler/RoomJoinOperation.cs +++ b/Ragon.Server/Sources/Handler/RoomJoinOperation.cs @@ -48,15 +48,14 @@ public sealed class RoomJoinOperation : BaseOperation var player = new RagonRoomPlayer(context, lobbyPlayer.Id, lobbyPlayer.Name); context.SetRoom(existsRoom, player); - - if (!existsRoom.Plugin.OnPlayerJoined(player)) - return; - + _webHook.RoomJoined(context, existsRoom, player); JoinSuccess(context, existsRoom, Writer); existsRoom.RestoreBufferedEvents(player); + + existsRoom.Plugin.OnPlayerJoined(player); _logger.Trace($"Player {context.Connection.Id}|{context.LobbyPlayer.Name} joined to {existsRoom.Id}"); } diff --git a/Ragon.Server/Sources/Handler/RoomJoinOrCreateOperation.cs b/Ragon.Server/Sources/Handler/RoomJoinOrCreateOperation.cs index 0e01876..5557869 100644 --- a/Ragon.Server/Sources/Handler/RoomJoinOrCreateOperation.cs +++ b/Ragon.Server/Sources/Handler/RoomJoinOrCreateOperation.cs @@ -54,9 +54,6 @@ public sealed class RoomJoinOrCreateOperation : BaseOperation { var player = new RagonRoomPlayer(context, lobbyPlayer.Id, lobbyPlayer.Name); - if (!existsRoom.Plugin.OnPlayerJoined(player)) - return; - context.SetRoom(existsRoom, player); _ragonWebHookPlugin.RoomJoined(context, existsRoom, player); @@ -64,6 +61,8 @@ public sealed class RoomJoinOrCreateOperation : BaseOperation JoinSuccess(player, existsRoom, Writer); existsRoom.RestoreBufferedEvents(player); + + existsRoom.Plugin.OnPlayerJoined(player); } else { @@ -78,9 +77,6 @@ public sealed class RoomJoinOrCreateOperation : BaseOperation var roomPlugin = _serverPlugin.CreateRoomPlugin(information); var room = new RagonRoom(roomId, information, roomPlugin); - if (!roomPlugin.OnPlayerJoined(roomPlayer)) - return; - _ragonWebHookPlugin.RoomCreated(context, room, roomPlayer); context.Lobby.Persist(room); @@ -90,6 +86,8 @@ public sealed class RoomJoinOrCreateOperation : BaseOperation _logger.Trace($"Player {context.Connection.Id}|{context.LobbyPlayer.Name} create room {room.Id} with scene {information.Scene}"); JoinSuccess(roomPlayer, room, Writer); + + room.Plugin.OnPlayerJoined(roomPlayer); } }