feat: plugin api for replication of data
This commit is contained in:
@@ -80,6 +80,7 @@ public sealed class RoomCreateOperation : BaseOperation
|
||||
var roomPlugin = _serverPlugin.CreateRoomPlugin(information);
|
||||
var room = new RagonRoom(roomId, information, roomPlugin);
|
||||
|
||||
room.Plugin.OnAttached(room);
|
||||
roomPlayer.OnAttached(room);
|
||||
|
||||
context.Scheduler.Run(room);
|
||||
|
||||
@@ -42,8 +42,11 @@ public sealed class RoomDataOperation : BaseOperation
|
||||
sendData[1] = (byte)peerId;
|
||||
sendData[2] = (byte)(peerId >> 8);
|
||||
|
||||
var pluginData = new byte[dataSize];
|
||||
Array.Copy(data, 1, pluginData, 0, dataSize);
|
||||
room.Plugin.OnData(player, pluginData);
|
||||
|
||||
Array.Copy(data, 1, sendData, headerSize, dataSize);
|
||||
|
||||
room.Broadcast(sendData, channel);
|
||||
room.Broadcast(sendData, room.ReadyPlayersList, NetworkChannel.RELIABLE);
|
||||
}
|
||||
}
|
||||
@@ -79,6 +79,8 @@ public sealed class RoomJoinOrCreateOperation : BaseOperation
|
||||
|
||||
_ragonWebHookPlugin.RoomCreated(context, room, roomPlayer);
|
||||
|
||||
room.Plugin.OnAttached(room);
|
||||
|
||||
context.Lobby.Persist(room);
|
||||
context.Scheduler.Run(room);
|
||||
context.SetRoom(room, roomPlayer);
|
||||
|
||||
Reference in New Issue
Block a user