fix reconnection bugs

This commit is contained in:
MathMan05 2024-07-30 13:23:18 -05:00
parent 03d1bc13c7
commit 1d4c771246
6 changed files with 17 additions and 1 deletions

View file

@ -106,6 +106,8 @@ class Localuser{
this.guilds=[];
this.guildids=new Map();
this.ws.close(4001)
SnowFlake.clear();
User.clear();
}
async initwebsocket():Promise<void>{
let returny=null

View file

@ -1,6 +1,6 @@
class SnowFlake<x extends WeakKey>{
public readonly id:string;
private static readonly SnowFlakes:Map<any,Map<string,WeakRef<SnowFlake<any>>>>=new Map();
private static SnowFlakes:Map<any,Map<string,WeakRef<SnowFlake<any>>>>=new Map();
private static readonly FinalizationRegistry=new FinalizationRegistry((a:[string,WeakKey])=>{
SnowFlake.SnowFlakes.get(a[1]).delete(a[0]);
});
@ -27,6 +27,9 @@ class SnowFlake<x extends WeakKey>{
SnowFlake.FinalizationRegistry.register(this,[id,obj.constructor]);
this.obj=obj;
}
static clear(){//this is kinda a temp solution, it should be fixed, though its not that easy to do so
this.SnowFlakes=new Map();
}
/**
* Just to clarify bc TS, it returns a SnowFlake\<type> which is what you entered with the type parameter
*

View file

@ -59,6 +59,9 @@ class User{
});
})
}
static clear(){
this.userids={};
}
static checkuser(user:User|userjson,owner:Localuser):User{
if(User.userids[user.id]){
return User.userids[user.id];