snowflake and cleaning up classes

This commit is contained in:
MathMan05 2024-07-23 23:01:45 -05:00
parent 14d1c69c7d
commit 7eb3ff6cab
21 changed files with 584 additions and 361 deletions

View file

@ -2,6 +2,7 @@ import {User} from "./user.js";
import {Role} from "./role.js";
import {Guild} from "./guild.js";
import { Contextmenu } from "./contextmenu.js";
import { SnowFlake } from "./snowflake.js";
class Member{
static already={};
@ -38,7 +39,7 @@ class Member{
if(thing==="owner"){continue}
if(thing==="roles"){
for(const strrole of membery["roles"]){
const role=this.guild.getRole(strrole);
const role=SnowFlake.getSnowFlakeFromID(strrole,Role).getObject();
this.roles.push(role);
}
continue;
@ -65,44 +66,45 @@ class Member{
console.error(guild)
}
let user:User;
let id="";
let id:SnowFlake<User>;
if(unkown instanceof User){
user=unkown as User;
id=user.id;
}else if(typeof unkown===typeof ""){
id=unkown as string;
id=new SnowFlake(unkown as string,undefined);
}else{
return new Member(unkown,guild);
}
if(guild.id==="@me"){return null}
if(!Member.already[guild.id]){
Member.already[guild.id]={};
}else if(Member.already[guild.id][id]){
const memb=Member.already[guild.id][id]
if(guild.id.id==="@me"){return null}
if(!Member.already[guild.id.id]){
Member.already[guild.id.id]={};
}else if(Member.already[guild.id.id][id]){
const memb=Member.already[guild.id.id][id]
if(memb instanceof Promise){
return await memb;
}
return memb;
}
const promoise= fetch(guild.info.api.toString()+"/v9/users/"+id+"/profile?with_mutual_guilds=true&with_mutual_friends_count=true&guild_id="+guild.id,{headers:guild.headers}).then(_=>_.json()).then(json=>{
const promoise= fetch(guild.info.api.toString()+"/users/"+id+"/profile?with_mutual_guilds=true&with_mutual_friends_count=true&guild_id="+guild.id,{headers:guild.headers}).then(_=>_.json()).then(json=>{
const memb=new Member(json,guild);
Member.already[guild.id][id]=memb;
Member.already[guild.id.id][id]=memb;
console.log("resolved")
return memb
})
Member.already[guild.id][id]=promoise;
Member.already[guild.id.id][id]=promoise;
try{
return await promoise
}catch(_){
const memb=new Member(user,guild,true);
Member.already[guild.id][id]=memb;
Member.already[guild.id.id][id]=memb;
return memb;
}
}
hasRole(ID:string){
console.log(this.roles,ID);
for(const thing of this.roles){
if(thing.id===ID){
if(thing.id.id===ID){
return true;
}
}
@ -123,7 +125,7 @@ class Member{
return true;
}
}
return this.guild.properties.owner_id===this.user.id;
return this.guild.properties.owner_id===this.user.id.id;
}
bind(html:HTMLElement){
if(html.tagName==="SPAN"){