internal void SendToPlayers(List <Player> players, NetMessage msg, ReliabilityMode mode) { _roomServer.SendToPlayers(players, msg, mode); }
internal void SendToConnections(List <object> connections, NetMessage msg, ReliabilityMode reliable) { _roomServer.SendToConnections(connections, msg, reliable); }
internal void SendExcept(NetMessage msg, Player except, ReliabilityMode mode) { _roomServer.SendExcept(msg, except, mode); }
partial void ImplSendToAll(NetMessage msg, ReliabilityMode mode);
void ImplSend(NetMessage msg, ReliabilityMode mode, bool recycle = true) { Server.SendPlayerMessage(this, msg, mode, recycle); }
partial void ImplSendMessageToOthers(NetMessage msg, ReliabilityMode mode);
internal void SendToAll(NetMessage msg, ReliabilityMode mode) { ImplSendToAll(msg, mode); }
protected internal abstract void SendToConnections(List <object> connections, NetMessage msg, ReliabilityMode reliable);
internal void SendMessageToOthers(NetMessage msg, ReliabilityMode mode) { ImplSendMessageToOthers(msg, mode); }
protected internal abstract void SendSceneView(NetMessage msg, ReliabilityMode mode);
protected internal abstract void SendExcept(NetMessage msg, Player except, ReliabilityMode mode);
protected internal abstract void SendToPlayer(Player player, NetMessage msg, ReliabilityMode mode);
protected internal abstract void SendToPlayers(List <Player> players, NetMessage msg, ReliabilityMode mode);
private void ProcessInternal(BroadcastMode broadcast, ReliabilityMode reliability, NetMessage msg) { if (!msg.ReadByte(out var rpc)) { Debug.LogError("Malformed internal rpc"); return; } try { ushort pid; Player player; switch (rpc) { case DandRRpcs.RoomSwitch: pid = msg.ReadUInt16(); var room = msg.ReadString(); player = _server.GetPlayer(pid); if (player != null) { player.ChangeRoom(room); } else { Debug.LogError("Attempted to switch a null player"); } break; case DandRRpcs.SyncNetUser: pid = msg.ReadUInt16(); player = _server.GetPlayer(pid); if (player != null && player.NetUserData != null) { player.NetUserData.OnDeserialize(msg); player.OnNetUserDataChanged(); } break; case DandRRpcs.PlayerConnected: pid = msg.ReadUInt16(); player = _server.GetPlayer(pid); if (player != null) { player.FinishedRoomSwitch(); } break; case DandRRpcs.DisconnectMessage: string reason; if (!msg.ReadString(out reason)) { reason = "Shutting down"; } Debug.Log($"Room disconnecting: {reason}"); Running = false; break; } } catch (Exception e) { Debug.LogException(e); } }