From b366381e539582140c398f237b61acfa0133e576 Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Sun, 25 Aug 2024 18:36:30 +0200 Subject: [PATCH] msg reaction remove all & emoji gateway event --- webpage/localuser.ts | 16 ++++++++++++++-- webpage/message.ts | 18 ++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/webpage/localuser.ts b/webpage/localuser.ts index dcd02f8..51a0844 100644 --- a/webpage/localuser.ts +++ b/webpage/localuser.ts @@ -374,7 +374,7 @@ class Localuser{ }else{ thing={id:temp.d.user_id} } - message.makeReaction(temp.d.emoji,thing); + message.reactionAdd(temp.d.emoji,thing); } break; case "MESSAGE_REACTION_REMOVE": @@ -382,9 +382,21 @@ class Localuser{ const message=SnowFlake.getSnowFlakeFromID(temp.d.message_id,Message).getObject(); console.log("test"); - message.removeReaction(temp.d.emoji,temp.d.user_id); + message.reactionRemove(temp.d.emoji,temp.d.user_id); } break; + case "MESSAGE_REACTION_REMOVE_ALL": + if (SnowFlake.hasSnowFlakeFromID(temp.d.message_id, Message)) { + const messageReactionRemoveAll = SnowFlake.getSnowFlakeFromID(temp.d.message_id, Message).getObject() + messageReactionRemoveAll.reactionRemoveAll() + } + break + case "MESSAGE_REACTION_REMOVE_EMOJI": + if (SnowFlake.hasSnowFlakeFromID(temp.d.message_id, Message)) { + const messageReactionRemoveEmoji = SnowFlake.getSnowFlakeFromID(temp.d.message_id, Message).getObject() + messageReactionRemoveEmoji.reactionRemoveEmoji(temp.d.emoji) + } + break case "GUILD_MEMBERS_CHUNK": this.gotChunk(temp.d); break; diff --git a/webpage/message.ts b/webpage/message.ts index abd6df6..3940506 100644 --- a/webpage/message.ts +++ b/webpage/message.ts @@ -509,7 +509,7 @@ class Message{ } func(); } - makeReaction(data:{name:string},member:Member|{id:string}){ + reactionAdd(data:{name:string},member:Member|{id:string}){ for(const thing of this.reactions){ if(thing.emoji.name===data.name){ thing.count++; @@ -527,7 +527,7 @@ class Message{ }); this.updateReactions(); } - removeReaction(data:{name:string},id:string){ + reactionRemove(data:{name:string},id:string){ console.log("test"); for(const i in this.reactions){ const thing=this.reactions[i]; @@ -547,6 +547,20 @@ class Message{ } } } + reactionRemoveAll() { + this.reactions = []; + this.updateReactions(); + } + reactionRemoveEmoji(emoji:Emoji) { + for (const i in this.reactions) { + const reaction = this.reactions[i]; + if ((reaction.emoji.id && reaction.emoji.id == emoji.id) || (!reaction.emoji.id && reaction.emoji.name == emoji.name)) { + this.reactions.splice(i, 1); + this.updateReactions(); + break; + } + } + } buildhtml(premessage:Message|undefined=undefined){ if(this.div){console.error(`HTML for ${this.snowflake} already exists, aborting`);return;} try{