/// <summary> /// Tries to get an access to a room with a given room id, password, /// and some other <paramref name="customOptions"/>, which will be visible to the room (game server) /// </summary> /// <param name="roomId"></param> /// <param name="password"></param> /// <param name="customOptions"></param> /// <param name="callback"></param> /// <param name="connection"></param> public void GetAccess(int roomId, string password, MstProperties customOptions, RoomAccessCallback callback, IClientSocket connection) { if (!connection.IsConnected) { callback.Invoke(null, "Not connected"); return; } var roomAccessRequestPacket = new RoomAccessRequestPacket() { RoomId = roomId, CustomOptions = customOptions, Password = password }; connection.SendMessage((short)MstMessageCodes.GetRoomAccessRequest, roomAccessRequestPacket, (status, response) => { if (status != ResponseStatus.Success) { callback.Invoke(null, response.AsString("Unknown Error")); return; } var access = response.Deserialize(new RoomAccessPacket()); LastReceivedAccess = access; callback.Invoke(access, null); OnAccessReceivedEvent?.Invoke(access); }); }
/// <summary> /// This method triggers the <see cref="OnAccessReceivedEvent"/> event. Call this, /// if you made some custom functionality to get access to rooms /// </summary> /// <param name="access"></param> public void TriggerAccessReceivedEvent(RoomAccessPacket access) { LastReceivedAccess = access; OnAccessReceivedEvent?.Invoke(access); }