From d426df91f04779a79a013c66a11ed1a795012215 Mon Sep 17 00:00:00 2001 From: flashwave Date: Fri, 24 May 2024 13:11:21 +0000 Subject: [PATCH] Made the channel event log code similar to the normal event handling code. --- SharpChat.SockChat/SockChatContext.cs | 42 +++++++++------------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/SharpChat.SockChat/SockChatContext.cs b/SharpChat.SockChat/SockChatContext.cs index 38eaaef..d0bcf5c 100644 --- a/SharpChat.SockChat/SockChatContext.cs +++ b/SharpChat.SockChat/SockChatContext.cs @@ -262,19 +262,12 @@ namespace SharpChat { public void HandleChannelEventLog(string channelName, Action handler) { foreach(ChatEventInfo info in EventStorage.GetChannelEventLog(channelName)) { - ISockChatS2CPacket? packet; - switch(info.Type) { case "msg:add": - string maText = string.Empty; - bool maAction = false; + if(info.Data is not MessageAddEventData msgAdd) + break; - if(info.Data is MessageAddEventData messageAdd) { - maText = messageAdd.Text; - maAction = messageAdd.IsAction; - } - - packet = new MessageAddLogS2CPacket( + handler(new MessageAddLogS2CPacket( info.Id, info.Created, info.SenderId, @@ -282,54 +275,47 @@ namespace SharpChat { info.SenderColour, info.SenderRank, info.SenderPerms, - maText, - maAction, + msgAdd.Text, + msgAdd.IsAction, info.ChannelName.StartsWith('@'), info.IsBroadcast, false - ); + )); break; case "user:connect": - packet = new UserConnectLogS2CPacket( + handler(new UserConnectLogS2CPacket( info.Id, info.Created, SockChatUtility.GetUserName(info) - ); + )); break; case "user:disconnect": - packet = new UserDisconnectLogS2CPacket( + handler(new UserDisconnectLogS2CPacket( info.Id, info.Created, SockChatUtility.GetUserName(info), info.Data is UserDisconnectEventData userDisconnect ? userDisconnect.Reason : UserDisconnectReason.Leave - ); + )); break; case "chan:join": - packet = new UserChannelJoinLogS2CPacket( + handler(new UserChannelJoinLogS2CPacket( info.Id, info.Created, SockChatUtility.GetUserName(info) - ); + )); break; case "chan:leave": - packet = new UserChannelLeaveLogS2CPacket( + handler(new UserChannelLeaveLogS2CPacket( info.Id, info.Created, SockChatUtility.GetUserName(info) - ); - break; - - default: - packet = null; + )); break; } - - if(packet != null) - handler(packet); } }