1- using System ;
2- using System . Collections . Generic ;
3- using System . Linq ;
4- using System . Text ;
1+ using System . Text . Json ;
52using System . Threading . Tasks ;
6- using Newtonsoft . Json ;
7- using Newtonsoft . Json . Linq ;
3+ using Amino . Objects ;
4+
85
96namespace Amino . Events
107{
@@ -19,98 +16,139 @@ public class EventHandler
1916 /// <param name="webSocketMessage"></param>
2017 /// <param name="client"></param>
2118 /// <returns></returns>
22- public Task ReceiveEvent ( JObject webSocketMessage , Client client )
19+ public Task ReceiveEvent ( string webSocketMessage , Client client )
2320 {
2421 Client . Events eventCall = new Client . Events ( ) ;
2522 eventCall . callWebSocketMessageEvent ( client , webSocketMessage ) ;
2623 try
2724 {
28- dynamic jsonObj = ( JObject ) JsonConvert . DeserializeObject ( webSocketMessage . ToString ( ) ) ;
29- if ( jsonObj [ "o" ] [ "chatMessage" ] [ "mediaType" ] != null )
25+ JsonElement root = JsonDocument . Parse ( webSocketMessage . ToString ( ) ) . RootElement ;
26+ if ( root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetProperty ( "mediaType" ) . ValueKind != JsonValueKind . Null )
3027 {
31- 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 ( ) )
3231 {
3332 case 0 : //TextMessage / MessageDeleted / ChatMember Left, ChatMember Joined / ChatBackground changed / ChatTitle changed / ChatContent chaaged / ChatAnnouncementPin / ChatAnnouncementUnpin / ChatViewOnlyOn / ChatViewOnlyOff / ChatTipEnabled / ChatTipDisabled / MessageForceRemoved / ChatTip
34- switch ( ( int ) jsonObj [ "o" ] [ "chatMessage" ] [ "type" ] )
33+ switch ( root . GetProperty ( "o" ) . GetProperty ( "chatMessage" ) . GetProperty ( "type" ) . GetInt32 ( ) )
3534 {
3635 case 0 : //Textmessage recevied
37- 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+
3840 eventCall . callMessageEvent ( client , this , _message ) ;
3941 break ;
4042 case 100 : // Textmessage deleted
41- 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 ;
4246 eventCall . callMessageDeletedEvent ( client , _deletedMessage ) ;
4347 break ;
4448 case 101 : // ChatMember Joined
45- 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 ;
4652 eventCall . callChatMemberJoinEvent ( client , _joinedMember ) ;
4753 break ;
4854 case 102 : // ChatMember Left
49- 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 ;
5058 eventCall . callChatMemberLeaveEvent ( client , _leftMember ) ;
5159 break ;
5260 case 104 : // ChatBackground changed
53- 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 ;
5464 eventCall . callChatBackgroundChangedEvent ( client , _chatBackgroundChanged ) ;
5565 break ;
5666 case 105 : // ChatTitle changed
57- 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 ;
5870 eventCall . callChatTitleChangedEvent ( client , _chatTitleChanged ) ;
5971 break ;
6072 case 113 : // ChatContent Changed
61- 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 ;
6276 eventCall . callChatContentChangedEvent ( client , _chatContentChanged ) ;
6377 break ;
6478 case 119 : // MessageForceRemovedByAdmin
65- Amino . Objects . SpecialChatEvent _messageForceRemovedByAdmin = new Objects . SpecialChatEvent ( webSocketMessage ) ;
79+ Amino . Objects . SpecialChatEvent _messageForceRemovedByAdmin = JsonSerializer . Deserialize < SpecialChatEvent > ( element ) ;
80+ _messageForceRemovedByAdmin . Json = webSocketMessage ;
81+ _messageForceRemovedByAdmin . SocketBase = _socketBase ;
6682 eventCall . callMessageForceRemovedByAdminEvent ( client , _messageForceRemovedByAdmin ) ;
6783 break ;
6884 case 120 : // ChatTip
69- Amino . Objects . ChatTip _chatTip = new Objects . ChatTip ( webSocketMessage ) ;
85+ Amino . Objects . ChatTip _chatTip = JsonSerializer . Deserialize < ChatTip > ( element ) ;
86+ _chatTip . Json = webSocketMessage ;
87+ _chatTip . SocketBase = _socketBase ;
7088 eventCall . callChatTipEvent ( client , _chatTip ) ;
7189 break ;
7290 case 121 : // ChatAnnouncementPin
73- Amino . Objects . ChatAnnouncement _chatAnnouncementPinEvent = new Objects . ChatAnnouncement ( webSocketMessage ) ;
91+ Amino . Objects . ChatAnnouncement _chatAnnouncementPinEvent = JsonSerializer . Deserialize < ChatAnnouncement > ( element ) ;
92+ _chatAnnouncementPinEvent . Json = webSocketMessage ;
93+ _chatAnnouncementPinEvent . SocketBase = _socketBase ;
7494 eventCall . callChatPinAnnouncementEvent ( client , _chatAnnouncementPinEvent ) ;
7595 break ;
7696 case 125 : // ChatViewModeOn
77- Amino . Objects . ViewMode _viewModeOn = new Objects . ViewMode ( webSocketMessage ) ;
97+ Amino . Objects . ViewMode _viewModeOn = JsonSerializer . Deserialize < ViewMode > ( element ) ;
98+ _viewModeOn . Json = webSocketMessage ;
99+ _viewModeOn . SocketBase = _socketBase ;
78100 eventCall . callChatViewModeOnEvent ( client , _viewModeOn ) ;
79101 break ;
80102 case 126 : // ChatViewModeOff
81- Amino . Objects . ViewMode _viewModeOff = new Objects . ViewMode ( webSocketMessage ) ;
103+ Amino . Objects . ViewMode _viewModeOff = JsonSerializer . Deserialize < ViewMode > ( element ) ;
104+ _viewModeOff . Json = webSocketMessage ;
105+ _viewModeOff . SocketBase = _socketBase ;
82106 eventCall . callChatViewModeOffEvent ( client , _viewModeOff ) ;
83107 break ;
84108 case 127 : // ChatAnnouncementUnPin
85- Amino . Objects . ChatEvent _chatAnnouncementUnPin = new Objects . ChatEvent ( webSocketMessage ) ;
109+ Amino . Objects . ChatEvent _chatAnnouncementUnPin = JsonSerializer . Deserialize < ChatEvent > ( element ) ;
110+ _chatAnnouncementUnPin . Json = webSocketMessage ;
111+ _chatAnnouncementUnPin . SocketBase = _socketBase ;
86112 eventCall . callChatUnpinAnnouncementEvent ( client , _chatAnnouncementUnPin ) ;
87113 break ;
88114 case 128 : // ChatTipEnabled
89- Amino . Objects . ChatTipToggle _chatTipEnabled = new Objects . ChatTipToggle ( webSocketMessage ) ;
115+ Amino . Objects . ChatTipToggle _chatTipEnabled = JsonSerializer . Deserialize < ChatTipToggle > ( element ) ;
116+ _chatTipEnabled . Json = webSocketMessage ;
117+ _chatTipEnabled . SocketBase = _socketBase ;
90118 eventCall . callChatTipEnabledEvent ( client , _chatTipEnabled ) ;
91119 break ;
92120 case 129 : // ChatTipDisabled
93- Amino . Objects . ChatTipToggle _chatTipDisabled = new Objects . ChatTipToggle ( webSocketMessage ) ;
121+ Amino . Objects . ChatTipToggle _chatTipDisabled = JsonSerializer . Deserialize < ChatTipToggle > ( element ) ;
122+ _chatTipDisabled . Json = webSocketMessage ;
123+ _chatTipDisabled . SocketBase = _socketBase ;
94124 eventCall . callChatTipDisabledEvent ( client , _chatTipDisabled ) ;
95125 break ;
96126
97127 }
98128
99129 break ;
100130 case 100 : //ImageMessage
101- Amino . Objects . ImageMessage _imageMessage = new Amino . Objects . ImageMessage ( webSocketMessage ) ;
131+ Amino . Objects . ImageMessage _imageMessage = JsonSerializer . Deserialize < ImageMessage > ( element ) ;
132+ _imageMessage . Json = webSocketMessage ;
133+ _imageMessage . SocketBase = _socketBase ;
102134 eventCall . callImageMessageEvent ( client , _imageMessage ) ;
103135 break ;
104136 case 103 : //YouTubeMessage
105- Amino . Objects . YouTubeMessage _youtubeMessage = new Objects . YouTubeMessage ( webSocketMessage ) ;
137+ Amino . Objects . YouTubeMessage _youtubeMessage = JsonSerializer . Deserialize < YouTubeMessage > ( element ) ;
138+ _youtubeMessage . Json = webSocketMessage ;
139+ _youtubeMessage . SocketBase = _socketBase ;
106140 eventCall . callYouTubeMessageEvent ( client , _youtubeMessage ) ;
107141 break ;
108142 case 110 : //VoiceMessage
109- Amino . Objects . VoiceMessage _voiceMessage = new Objects . VoiceMessage ( webSocketMessage ) ;
143+ Amino . Objects . VoiceMessage _voiceMessage = JsonSerializer . Deserialize < VoiceMessage > ( element ) ;
144+ _voiceMessage . Json = webSocketMessage ;
145+ _voiceMessage . SocketBase = _socketBase ;
110146 eventCall . callVoiceMessageEvent ( client , _voiceMessage ) ;
111147 break ;
112148 case 113 : //StickerMessage
113- Amino . Objects . StickerMessage _stickerMessage = new Objects . StickerMessage ( webSocketMessage ) ;
149+ Amino . Objects . StickerMessage _stickerMessage = JsonSerializer . Deserialize < StickerMessage > ( element ) ;
150+ _stickerMessage . Json = webSocketMessage ;
151+ _stickerMessage . SocketBase = _socketBase ;
114152 eventCall . callStickerMessageEvent ( client , _stickerMessage ) ;
115153 break ;
116154 }
0 commit comments