From d406b0e6725de15588e87ad1cd297a56833c6cb1 Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Thu, 28 Nov 2024 18:25:30 -0600 Subject: [PATCH] handle two more events --- src/webpage/jsontypes.ts | 13 +++++++++++++ src/webpage/localuser.ts | 15 +++++++++++++++ src/webpage/member.ts | 4 ++++ 3 files changed, 32 insertions(+) diff --git a/src/webpage/jsontypes.ts b/src/webpage/jsontypes.ts index 7a3d7a8..767e91b 100644 --- a/src/webpage/jsontypes.ts +++ b/src/webpage/jsontypes.ts @@ -528,6 +528,19 @@ roleCreate | { t: "PRESENCE_UPDATE", d: presencejson, s:number +}|{ + op:0, + t:"GUILD_MEMBER_ADD", + d:memberjson, + s:number +}|{ + op:0, + t:"GUILD_MEMBER_REMOVE", + d:{ + guild_id:string, + user:userjson + }, + s:number }; diff --git a/src/webpage/localuser.ts b/src/webpage/localuser.ts index 4350112..e61e01f 100644 --- a/src/webpage/localuser.ts +++ b/src/webpage/localuser.ts @@ -562,6 +562,21 @@ class Localuser{ } break; } + case "GUILD_MEMBER_ADD":{ + const guild=this.guildids.get(temp.d.guild_id); + if(!guild) break; + Member.new(temp.d,guild); + break; + } + case "GUILD_MEMBER_REMOVE":{ + const guild=this.guildids.get(temp.d.guild_id); + if(!guild) break; + const user=new User(temp.d.user,this); + const member=user.members.get(guild); + if(!(member instanceof Member)) break; + member.remove(); + break; + } default :{ //@ts-ignore console.warn("Unhandled case "+temp.t,temp); diff --git a/src/webpage/member.ts b/src/webpage/member.ts index e9240b7..7fed07c 100644 --- a/src/webpage/member.ts +++ b/src/webpage/member.ts @@ -55,6 +55,10 @@ class Member extends SnowFlake{ return this.guild.roles.indexOf(a) - this.guild.roles.indexOf(b); }); } + remove(){ + this.user.members.delete(this.guild); + this.guild.members.delete(this); + } update(memberjson: memberjson){ this.roles=[]; for(const key of Object.keys(memberjson)){