1- using System ;
2- using System . Collections . Generic ;
3- using System . Linq ;
4- using System . Text ;
5- using System . Text . Json ;
1+ using System . Text . Json ;
62using System . Threading . Tasks ;
73using Amino . Objects ;
8- using Newtonsoft . Json ;
9- using Newtonsoft . Json . Linq ;
4+
105
116namespace Amino . Events
127{
@@ -21,49 +16,63 @@ public class EventHandler
2116 /// <param name="webSocketMessage"></param>
2217 /// <param name="client"></param>
2318 /// <returns></returns>
24- public Task ReceiveEvent ( JObject webSocketMessage , Client client )
19+ public Task ReceiveEvent ( string webSocketMessage , Client client )
2520 {
2621 Client . Events eventCall = new Client . Events ( ) ;
2722 eventCall . callWebSocketMessageEvent ( client , webSocketMessage ) ;
2823 try
2924 {
3025 JsonElement root = JsonDocument . Parse ( webSocketMessage . ToString ( ) ) . RootElement ;
31- dynamic jsonObj = ( JObject ) JsonConvert . DeserializeObject ( webSocketMessage . ToString ( ) ) ;
32- if ( jsonObj [ "o" ] [ "chatMessage" ] [ "mediaType" ] != null )
26+ if ( root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetProperty ( "mediaType" ) . ValueKind != JsonValueKind . Null )
3327 {
34-
35- SocketBase sBase = System . Text . Json . JsonSerializer . Deserialize < SocketBase > ( root . GetProperty ( "o" ) ) ;
36- switch ( ( int ) jsonObj [ "o" ] [ "chatMessage" ] [ "mediaType" ] )
28+ SocketBase _socketBase = JsonSerializer . Deserialize < SocketBase > ( root . GetProperty ( "o" ) . GetRawText ( ) ) ;
29+ string element = root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetRawText ( ) ;
30+ switch ( root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetProperty ( "mediaType" ) . GetInt32 ( ) )
3731 {
3832 case 0 : //TextMessage / MessageDeleted / ChatMember Left, ChatMember Joined / ChatBackground changed / ChatTitle changed / ChatContent chaaged / ChatAnnouncementPin / ChatAnnouncementUnpin / ChatViewOnlyOn / ChatViewOnlyOff / ChatTipEnabled / ChatTipDisabled / MessageForceRemoved / ChatTip
39- switch ( ( int ) jsonObj [ "o" ] [ "chatMessage" ] [ "type" ] )
33+ switch ( root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetProperty ( "type" ) . GetInt32 ( ) )
4034 {
4135 case 0 : //Textmessage recevied
42- Amino . Objects . Message _message = new Amino . Objects . Message ( webSocketMessage ) ;
36+ Objects . Message _message = JsonSerializer . Deserialize < Message > ( element ) ;
37+ _message . Json = webSocketMessage ;
38+ _message . SocketBase = _socketBase ;
39+
4340 eventCall . callMessageEvent ( client , this , _message ) ;
4441 break ;
4542 case 100 : // Textmessage deleted
46- Amino . Objects . DeletedMessage _deletedMessage = new Objects . DeletedMessage ( webSocketMessage ) ;
43+ Amino . Objects . DeletedMessage _deletedMessage = JsonSerializer . Deserialize < DeletedMessage > ( element ) ;
44+ _deletedMessage . SocketBase = _socketBase ;
45+ _deletedMessage . Json = webSocketMessage ;
4746 eventCall . callMessageDeletedEvent ( client , _deletedMessage ) ;
4847 break ;
4948 case 101 : // ChatMember Joined
50- Amino . Objects . JoinedChatMember _joinedMember = new Objects . JoinedChatMember ( webSocketMessage ) ;
49+ Amino . Objects . JoinedChatMember _joinedMember = JsonSerializer . Deserialize < JoinedChatMember > ( element ) ;
50+ _joinedMember . Json = webSocketMessage ;
51+ _joinedMember . SocketBase = _socketBase ;
5152 eventCall . callChatMemberJoinEvent ( client , _joinedMember ) ;
5253 break ;
5354 case 102 : // ChatMember Left
54- Amino . Objects . LeftChatMember _leftMember = new Objects . LeftChatMember ( webSocketMessage ) ;
55+ Amino . Objects . LeftChatMember _leftMember = JsonSerializer . Deserialize < LeftChatMember > ( element ) ;
56+ _leftMember . Json = webSocketMessage ;
57+ _leftMember . SocketBase = _socketBase ;
5558 eventCall . callChatMemberLeaveEvent ( client , _leftMember ) ;
5659 break ;
5760 case 104 : // ChatBackground changed
58- Amino . Objects . ChatEvent _chatBackgroundChanged = new Objects . ChatEvent ( webSocketMessage ) ;
61+ Amino . Objects . ChatEvent _chatBackgroundChanged = JsonSerializer . Deserialize < ChatEvent > ( element ) ;
62+ _chatBackgroundChanged . SocketBase = _socketBase ;
63+ _chatBackgroundChanged . Json = webSocketMessage ;
5964 eventCall . callChatBackgroundChangedEvent ( client , _chatBackgroundChanged ) ;
6065 break ;
6166 case 105 : // ChatTitle changed
62- Amino . Objects . ChatEvent _chatTitleChanged = new Objects . ChatEvent ( webSocketMessage ) ;
67+ Amino . Objects . ChatEvent _chatTitleChanged = JsonSerializer . Deserialize < ChatEvent > ( element ) ;
68+ _chatTitleChanged . SocketBase = _socketBase ;
69+ _chatTitleChanged . Json = webSocketMessage ;
6370 eventCall . callChatTitleChangedEvent ( client , _chatTitleChanged ) ;
6471 break ;
6572 case 113 : // ChatContent Changed
66- Amino . Objects . ChatEvent _chatContentChanged = new Objects . ChatEvent ( webSocketMessage ) ;
73+ Amino . Objects . ChatEvent _chatContentChanged = JsonSerializer . Deserialize < ChatEvent > ( element ) ;
74+ _chatContentChanged . Json = webSocketMessage ;
75+ _chatContentChanged . SocketBase = _socketBase ;
6776 eventCall . callChatContentChangedEvent ( client , _chatContentChanged ) ;
6877 break ;
6978 case 119 : // MessageForceRemovedByAdmin
0 commit comments