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