TS conversion
This commit is contained in:
parent
75fa9d0844
commit
845c7f6612
44 changed files with 6225 additions and 611 deletions
139
.dist/user.js
Normal file
139
.dist/user.js
Normal file
|
@ -0,0 +1,139 @@
|
|||
//const usercache={};
|
||||
import { Member } from "./member.js";
|
||||
import { markdown } from "./markdown.js";
|
||||
import { Contextmenu } from "./contextmenu.js";
|
||||
class User {
|
||||
static userids = {};
|
||||
owner;
|
||||
hypotheticalpfp;
|
||||
id;
|
||||
avatar;
|
||||
username;
|
||||
bio;
|
||||
discriminator;
|
||||
pronouns;
|
||||
bot;
|
||||
static checkuser(userjson, owner) {
|
||||
if (User.userids[userjson.id]) {
|
||||
return User.userids[userjson.id];
|
||||
}
|
||||
else {
|
||||
const tempuser = new User(userjson, owner, true);
|
||||
User.userids[userjson.id] = tempuser;
|
||||
return tempuser;
|
||||
}
|
||||
}
|
||||
get info() {
|
||||
return this.owner.info;
|
||||
}
|
||||
get localuser() {
|
||||
return this.owner;
|
||||
}
|
||||
constructor(userjson, owner, dontclone = false) {
|
||||
this.owner = owner;
|
||||
if (!owner) {
|
||||
console.error("missing localuser");
|
||||
}
|
||||
if (dontclone) {
|
||||
for (const thing of Object.keys(userjson)) {
|
||||
this[thing] = userjson[thing];
|
||||
}
|
||||
this.hypotheticalpfp = false;
|
||||
}
|
||||
else {
|
||||
return User.checkuser(userjson, owner);
|
||||
}
|
||||
}
|
||||
async resolvemember(guild) {
|
||||
await Member.resolve(this, guild);
|
||||
}
|
||||
buildpfp() {
|
||||
const pfp = document.createElement('img');
|
||||
pfp.src = this.getpfpsrc();
|
||||
pfp.classList.add("pfp");
|
||||
pfp.classList.add("userid:" + this.id);
|
||||
return pfp;
|
||||
}
|
||||
userupdate(json) {
|
||||
if (json.avatar !== this.avatar) {
|
||||
console.log;
|
||||
this.changepfp(json.avatar);
|
||||
}
|
||||
}
|
||||
changepfp(update) {
|
||||
this.avatar = update;
|
||||
this.hypotheticalpfp = false;
|
||||
const src = this.getpfpsrc();
|
||||
console.log(src);
|
||||
for (const thing of document.getElementsByClassName("userid:" + this.id)) {
|
||||
thing.src = src;
|
||||
}
|
||||
}
|
||||
getpfpsrc() {
|
||||
if (this.hypotheticalpfp) {
|
||||
return this.avatar;
|
||||
}
|
||||
if (this.avatar != null) {
|
||||
return this.info.cdn.toString() + "avatars/" + this.id + "/" + this.avatar + ".png";
|
||||
}
|
||||
else {
|
||||
return this.info.cdn.toString() + "embed/avatars/3.png";
|
||||
}
|
||||
}
|
||||
createjankpromises() {
|
||||
new Promise(_ => { });
|
||||
}
|
||||
buildprofile(x, y) {
|
||||
if (Contextmenu.currentmenu != "") {
|
||||
Contextmenu.currentmenu.remove();
|
||||
}
|
||||
const div = document.createElement("table");
|
||||
if (x !== -1) {
|
||||
div.style.left = x + "px";
|
||||
div.style.top = y + "px";
|
||||
div.classList.add("profile");
|
||||
}
|
||||
else {
|
||||
div.classList.add("hypoprofile");
|
||||
}
|
||||
{
|
||||
const pfp = this.buildpfp();
|
||||
const pfprow = document.createElement("tr");
|
||||
div.appendChild(pfprow);
|
||||
pfprow.appendChild(pfp);
|
||||
}
|
||||
{
|
||||
const userbody = document.createElement("tr");
|
||||
userbody.classList.add("infosection");
|
||||
div.appendChild(userbody);
|
||||
const usernamehtml = document.createElement("h2");
|
||||
usernamehtml.textContent = this.username;
|
||||
userbody.appendChild(usernamehtml);
|
||||
const discrimatorhtml = document.createElement("h3");
|
||||
discrimatorhtml.classList.add("tag");
|
||||
discrimatorhtml.textContent = this.username + "#" + this.discriminator;
|
||||
userbody.appendChild(discrimatorhtml);
|
||||
const pronounshtml = document.createElement("p");
|
||||
pronounshtml.textContent = this.pronouns;
|
||||
pronounshtml.classList.add("pronouns");
|
||||
userbody.appendChild(pronounshtml);
|
||||
const rule = document.createElement("hr");
|
||||
userbody.appendChild(rule);
|
||||
const biohtml = markdown(this.bio);
|
||||
userbody.appendChild(biohtml);
|
||||
}
|
||||
console.log(div);
|
||||
if (x !== -1) {
|
||||
Contextmenu.currentmenu = div;
|
||||
document.body.appendChild(div);
|
||||
}
|
||||
return div;
|
||||
}
|
||||
profileclick(obj) {
|
||||
obj.onclick = e => {
|
||||
this.buildprofile(e.clientX, e.clientY);
|
||||
e.stopPropagation();
|
||||
};
|
||||
}
|
||||
}
|
||||
export { User };
|
Loading…
Add table
Add a link
Reference in a new issue