From 69de2050642fa6f5acc18f38b90e5cb9c23b4d2e Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Fri, 16 Aug 2024 22:16:22 -0500 Subject: [PATCH] roles in user menu --- .dist/user.js | 29 +++++++++++++++++++++++++---- webpage/user.ts | 28 ++++++++++++++++++++++++---- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/.dist/user.js b/.dist/user.js index 56182f4..c2dca11 100644 --- a/.dist/user.js +++ b/.dist/user.js @@ -170,7 +170,7 @@ class User { console.log(_); }); } - this.profileclick(html); + this.profileclick(html, guild); User.contextmenu.bind(html, this); } static async resolve(id, localuser) { @@ -201,7 +201,7 @@ class User { createjankpromises() { new Promise(_ => { }); } - async buildprofile(x, y) { + async buildprofile(x, y, guild) { if (Contextmenu.currentmenu != "") { Contextmenu.currentmenu.remove(); } @@ -258,6 +258,27 @@ class User { userbody.appendChild(rule); const biohtml = this.bio.makeHTML(); userbody.appendChild(biohtml); + { + Member.resolveMember(this, guild).then(member => { + if (!member) + return; + const roles = document.createElement("div"); + roles.classList.add("rolesbox"); + for (const role of member.roles) { + const div = document.createElement("div"); + div.classList.add("rolediv"); + const color = document.createElement("div"); + div.append(color); + color.style.setProperty("--role-color", "#" + role.color.toString(16).padStart(6, "0")); + color.classList.add("colorrolediv"); + const span = document.createElement("span"); + div.append(span); + span.textContent = role.name; + roles.append(div); + } + userbody.append(roles); + }); + } } console.log(div); if (x !== -1) { @@ -267,9 +288,9 @@ class User { } return div; } - profileclick(obj) { + profileclick(obj, guild) { obj.onclick = e => { - this.buildprofile(e.clientX, e.clientY); + this.buildprofile(e.clientX, e.clientY, guild); e.stopPropagation(); }; } diff --git a/webpage/user.ts b/webpage/user.ts index 55f9020..4e9f3d4 100644 --- a/webpage/user.ts +++ b/webpage/user.ts @@ -170,7 +170,7 @@ class User{ console.log(_) }); } - this.profileclick(html); + this.profileclick(html,guild); User.contextmenu.bind(html,this); } static async resolve(id:string,localuser:Localuser){ @@ -202,7 +202,7 @@ class User{ createjankpromises(){ new Promise(_=>{}) } - async buildprofile(x:number,y:number){ + async buildprofile(x:number,y:number,guild:Guild){ if(Contextmenu.currentmenu!=""){ Contextmenu.currentmenu.remove(); } @@ -263,6 +263,26 @@ class User{ userbody.appendChild(rule); const biohtml=this.bio.makeHTML(); userbody.appendChild(biohtml); + { + Member.resolveMember(this,guild).then(member=>{ + if(!member) return; + const roles=document.createElement("div"); + roles.classList.add("rolesbox"); + for(const role of member.roles){ + const div=document.createElement("div"); + div.classList.add("rolediv"); + const color=document.createElement("div"); + div.append(color); + color.style.setProperty("--role-color","#"+role.color.toString(16).padStart(6,"0")) + color.classList.add("colorrolediv"); + const span=document.createElement("span"); + div.append(span); + span.textContent=role.name; + roles.append(div); + } + userbody.append(roles); + }); + } } console.log(div); @@ -273,9 +293,9 @@ class User{ } return div; } - profileclick(obj:HTMLElement){ + profileclick(obj:HTMLElement,guild:Guild){ obj.onclick=e=>{ - this.buildprofile(e.clientX,e.clientY); + this.buildprofile(e.clientX,e.clientY,guild); e.stopPropagation(); } }