Update to the User object
This commit is contained in:
parent
a90e584790
commit
b886e1ad1b
8 changed files with 24 additions and 31 deletions
|
@ -33,6 +33,7 @@ class Localuser {
|
|||
typing = new Map();
|
||||
connectionSucceed = 0;
|
||||
errorBackoff = 0;
|
||||
userMap = new Map();
|
||||
instancePing = {
|
||||
name: "Unknown",
|
||||
};
|
||||
|
@ -119,7 +120,6 @@ class Localuser {
|
|||
this.ws.close(4001);
|
||||
}
|
||||
SnowFlake.clear();
|
||||
User.clear();
|
||||
}
|
||||
swapped = false;
|
||||
async initwebsocket() {
|
||||
|
@ -833,7 +833,7 @@ class Localuser {
|
|||
}, { clear: true });
|
||||
finput.watchForChange(_ => {
|
||||
if (!_) {
|
||||
file = _;
|
||||
file = null;
|
||||
hypouser.avatar = null;
|
||||
hypouser.hypotheticalpfp = true;
|
||||
regen();
|
||||
|
|
|
@ -10,8 +10,9 @@ class Member {
|
|||
id;
|
||||
nick;
|
||||
constructor(memberjson, owner) {
|
||||
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);
|
||||
|
@ -19,7 +20,6 @@ class Member {
|
|||
else {
|
||||
throw new Error("Missing user object of this member");
|
||||
}
|
||||
this.owner = owner;
|
||||
for (const thing of Object.keys(memberjson)) {
|
||||
if (thing === "guild") {
|
||||
continue;
|
||||
|
@ -52,8 +52,8 @@ class Member {
|
|||
}
|
||||
static async new(memberjson, owner) {
|
||||
let 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);
|
||||
|
|
|
@ -557,7 +557,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;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import { MarkDown } from "./markdown.js";
|
|||
import { Contextmenu } from "./contextmenu.js";
|
||||
import { SnowFlake } from "./snowflake.js";
|
||||
class User {
|
||||
static userids = {};
|
||||
owner;
|
||||
hypotheticalpfp;
|
||||
snowflake;
|
||||
|
@ -125,16 +124,13 @@ class User {
|
|||
return (us.hasPermission("BAN_MEMBERS")) || false;
|
||||
});
|
||||
}
|
||||
static clear() {
|
||||
this.userids = {};
|
||||
}
|
||||
static checkuser(user, owner) {
|
||||
if (User.userids[user.id]) {
|
||||
return User.userids[user.id];
|
||||
if (owner.userMap.has(user.id)) {
|
||||
return owner.userMap.get(user.id);
|
||||
}
|
||||
else {
|
||||
const tempuser = new User(user, owner, true);
|
||||
User.userids[user.id] = tempuser;
|
||||
owner.userMap.set(user.id, tempuser);
|
||||
return tempuser;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue