From 846a477587f1ec122b08e687c11a08be97603b09 Mon Sep 17 00:00:00 2001 From: AlanMoonbase Date: Sun, 6 Jul 2025 10:38:22 -0700 Subject: [PATCH] Add Event For When A Guest User Joins --- QtCNETAPI/Events/GuestUserJoinEventArgs.cs | 13 +++++++++++++ QtCNETAPI/Services/GatewayService/GatewayService.cs | 2 ++ .../Services/GatewayService/IGatewayService.cs | 5 +++++ qtc-net-client-2/Forms/ChatRoom.cs | 7 +++++++ 4 files changed, 27 insertions(+) create mode 100644 QtCNETAPI/Events/GuestUserJoinEventArgs.cs diff --git a/QtCNETAPI/Events/GuestUserJoinEventArgs.cs b/QtCNETAPI/Events/GuestUserJoinEventArgs.cs new file mode 100644 index 0000000..3318a50 --- /dev/null +++ b/QtCNETAPI/Events/GuestUserJoinEventArgs.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace QtCNETAPI.Events +{ + public class GuestUserJoinEventArgs : EventArgs + { + public required string Username { get; set; } + } +} diff --git a/QtCNETAPI/Services/GatewayService/GatewayService.cs b/QtCNETAPI/Services/GatewayService/GatewayService.cs index 8410ed9..4929fdb 100644 --- a/QtCNETAPI/Services/GatewayService/GatewayService.cs +++ b/QtCNETAPI/Services/GatewayService/GatewayService.cs @@ -17,6 +17,7 @@ namespace QtCNETAPI.Services.GatewayService public event EventHandler OnRoomMessageReceived; public event EventHandler OnRoomUserListReceived; + public event EventHandler OnGuestUserJoin; public event EventHandler OnRefreshUserListsReceived; public event EventHandler OnRefreshRoomListReceived; public event EventHandler OnRefreshContactsListReceived; @@ -58,6 +59,7 @@ namespace QtCNETAPI.Services.GatewayService HubConnection.On("RefreshContactsList", () => OnRefreshContactsListReceived?.Invoke(this, EventArgs.Empty)); HubConnection.On("ReceiveServerConfig", (serverConfig) => OnServerConfigReceived?.Invoke(this, new ServerConfigEventArgs { ServerConfig = serverConfig })); HubConnection.On>("RoomUserList", (userList) => OnRoomUserListReceived?.Invoke(this, new RoomListEventArgs { UserList = userList })); + HubConnection.On("GuestJoin", (username) => OnGuestUserJoin?.Invoke(this, new GuestUserJoinEventArgs { Username = username })); HubConnection.Closed += HubConnection_Closed; HubConnection.Reconnecting += HubConnection_Reconnecting; diff --git a/QtCNETAPI/Services/GatewayService/IGatewayService.cs b/QtCNETAPI/Services/GatewayService/IGatewayService.cs index cacc8c7..85ec9a4 100644 --- a/QtCNETAPI/Services/GatewayService/IGatewayService.cs +++ b/QtCNETAPI/Services/GatewayService/IGatewayService.cs @@ -104,6 +104,11 @@ namespace QtCNETAPI.Services.GatewayService /// public event EventHandler OnRoomUserListReceived; + /// + /// Fires When A Guest User Joins Your Room + /// + public event EventHandler OnGuestUserJoin; + /// /// When A Client Function/Event Is Received, This Event Fires /// diff --git a/qtc-net-client-2/Forms/ChatRoom.cs b/qtc-net-client-2/Forms/ChatRoom.cs index 5b68c78..30148cd 100644 --- a/qtc-net-client-2/Forms/ChatRoom.cs +++ b/qtc-net-client-2/Forms/ChatRoom.cs @@ -33,6 +33,7 @@ namespace qtc_net_client_2.Forms // subscribe to server message event _gatewayService.OnRoomMessageReceived += _gatewayService_OnServerMessageReceived; _gatewayService.OnRoomUserListReceived += _gatewayService_OnRoomUserListReceived; + _gatewayService.OnGuestUserJoin += _gatewayService_OnGuestUserJoin; if (_gatewayService.CurrentRoom != null) { Text = $"QtC.NET Client - Chat Room - {_gatewayService.CurrentRoom.Name}"; lblRoomName.Text = _gatewayService.CurrentRoom.Name; } else if (_gatewayService.InLobby) { Text = $"QtC.NET Client - Chat Room - Lobby"; lblRoomName.Text = "Lobby"; } @@ -126,6 +127,12 @@ namespace qtc_net_client_2.Forms lvUserList.BeginInvoke(delegate () { lvUserList.Items.Add(user.Username, user.Status); }); } } + private void _gatewayService_OnGuestUserJoin(object? sender, EventArgs e) + { + var args = (GuestUserJoinEventArgs)e; + AddMessage($"[SERVER] Guest User {args.Username} Has Joined {_gatewayService.CurrentRoom?.Name}"); + } + private void AddMessage(string message) {