Update to the User object
This commit is contained in:
@@ -37,6 +37,7 @@ class Localuser{
|
||||
typing:Map<Member,number>=new Map();
|
||||
connectionSucceed=0;
|
||||
errorBackoff=0;
|
||||
readonly userMap=new Map<string,User>();
|
||||
instancePing={
|
||||
name:"Unknown",
|
||||
};
|
||||
@@ -126,7 +127,6 @@ class Localuser{
|
||||
this.ws.close(4001)
|
||||
}
|
||||
SnowFlake.clear();
|
||||
User.clear();
|
||||
}
|
||||
swapped=false;
|
||||
async initwebsocket():Promise<void>{
|
||||
@@ -843,7 +843,7 @@ class Localuser{
|
||||
},{clear:true});
|
||||
finput.watchForChange(_=>{
|
||||
if(!_) {
|
||||
file=_;
|
||||
file=null;
|
||||
hypouser.avatar = null;
|
||||
hypouser.hypotheticalpfp=true;
|
||||
regen();
|
||||
|
@@ -13,14 +13,15 @@ class Member{
|
||||
id:string;
|
||||
nick:string;
|
||||
private constructor(memberjson:memberjson,owner:Guild){
|
||||
if(User.userids[memberjson.id]){
|
||||
this.user=User.userids[memberjson.id];
|
||||
this.owner=owner;
|
||||
if(this.localuser.userMap.has(memberjson.id)){
|
||||
this.user=this.localuser.userMap.get(memberjson.id);
|
||||
}else if(memberjson.user){
|
||||
this.user=new User(memberjson.user,owner.localuser);
|
||||
}else{
|
||||
throw new Error("Missing user object of this member");
|
||||
}
|
||||
this.owner=owner;
|
||||
|
||||
for(const thing of Object.keys(memberjson)){
|
||||
if(thing==="guild"){continue}
|
||||
if(thing==="owner"){continue}
|
||||
@@ -52,8 +53,8 @@ class Member{
|
||||
}
|
||||
static async new(memberjson:memberjson,owner:Guild):Promise<Member|undefined>{
|
||||
let user:User;
|
||||
if(User.userids[memberjson.id]){
|
||||
user=User.userids[memberjson.id];
|
||||
if(owner.localuser.userMap.has(memberjson.id)){
|
||||
user=owner.localuser.userMap.get(memberjson.id);
|
||||
}else if(memberjson.user){
|
||||
user=new User(memberjson.user,owner.localuser);
|
||||
}else{
|
||||
|
@@ -60,7 +60,7 @@ class Message{
|
||||
Message.contextmenu.addbutton("Copy message id",function(this:Message){
|
||||
navigator.clipboard.writeText(this.id);
|
||||
});
|
||||
Message.contextmenu.addsubmenu("Add reaction",function(this:Message,e){
|
||||
Message.contextmenu.addsubmenu("Add reaction",function(this:Message,e:{x:number,y:number}){
|
||||
Emoji.emojiPicker(e.x,e.y,this.localuser).then(_=>{
|
||||
this.reactionToggle(_);
|
||||
});
|
||||
@@ -555,7 +555,7 @@ class Message{
|
||||
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.reactions.splice(+i, 1);
|
||||
this.updateReactions();
|
||||
break;
|
||||
}
|
||||
|
@@ -8,7 +8,6 @@ import { SnowFlake } from "./snowflake.js";
|
||||
import { presencejson, userjson } from "./jsontypes.js";
|
||||
|
||||
class User{
|
||||
static userids={};
|
||||
owner:Localuser;
|
||||
hypotheticalpfp:boolean;
|
||||
snowflake:SnowFlake<User>;
|
||||
@@ -127,15 +126,12 @@ class User{
|
||||
return (us.hasPermission("BAN_MEMBERS"))||false;
|
||||
});
|
||||
}
|
||||
static clear(){
|
||||
this.userids={};
|
||||
}
|
||||
static checkuser(user:User|userjson,owner:Localuser):User{
|
||||
if(User.userids[user.id]){
|
||||
return User.userids[user.id];
|
||||
if(owner.userMap.has(user.id)){
|
||||
return owner.userMap.get(user.id) as User;
|
||||
}else{
|
||||
const tempuser=new User(user as userjson,owner,true)
|
||||
User.userids[user.id]=tempuser;
|
||||
owner.userMap.set(user.id,tempuser);
|
||||
return tempuser;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user