🚧 plugin system, webhook system

This commit is contained in:
2023-04-09 10:52:18 +04:00
parent f2edc94958
commit bfd6c1b54b
60 changed files with 762 additions and 267 deletions
+18 -5
View File
@@ -14,33 +14,46 @@
* limitations under the License.
*/
using Ragon.Core.Time;
using Ragon.Server;
using Ragon.Server.IO;
using Ragon.Server.Lobby;
using Ragon.Server.Time;
using Ragon.Server.Room;
namespace Ragon.Server;
public class RagonContext
{
public INetworkConnection Connection { get; }
public ConnectionStatus ConnectionStatus { get; set; }
public IExecutor Executor { get; private set; }
public IRagonLobby Lobby { get; private set; }
public RagonLobbyPlayer LobbyPlayer { get; private set; }
public RagonLobbyPlayer? LobbyPlayer { get; private set; }
public RagonRoom? Room { get; private set; }
public RagonRoomPlayer? RoomPlayer { get; private set; }
public RagonScheduler Scheduler { get; private set; }
public RagonContext(INetworkConnection connection, IExecutor executor, IRagonLobby lobby, RagonScheduler scheduler, RagonLobbyPlayer lobbyPlayer)
public RagonContext(
INetworkConnection connection,
IExecutor executor,
IRagonLobby lobby,
RagonScheduler scheduler)
{
ConnectionStatus = ConnectionStatus.Unauthorized;
Connection = connection;
Executor = executor;
Lobby = lobby;
Scheduler = scheduler;
LobbyPlayer = lobbyPlayer;
}
internal void SetPlayer(RagonLobbyPlayer player)
{
LobbyPlayer = player;
}
internal void SetRoom(RagonRoom room, RagonRoomPlayer player)
{
Room?.DetachPlayer(RoomPlayer);