From 986c1aa14a47805a17218ea0b8a7f9271aba90c2 Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Wed, 13 Feb 2019 13:29:23 +0100 Subject: [PATCH] Update OwnerTag.plugin.js --- Plugins/OwnerTag/OwnerTag.plugin.js | 38 +++++++++++++++++------------ 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Plugins/OwnerTag/OwnerTag.plugin.js b/Plugins/OwnerTag/OwnerTag.plugin.js index cbe773070b..f7ce850792 100644 --- a/Plugins/OwnerTag/OwnerTag.plugin.js +++ b/Plugins/OwnerTag/OwnerTag.plugin.js @@ -3,7 +3,7 @@ class OwnerTag { getName () {return "OwnerTag";} - getVersion () {return "1.0.8";} + getVersion () {return "1.0.9";} getAuthor () {return "DevilBro";} @@ -11,7 +11,7 @@ class OwnerTag { initConstructor () { this.changelog = { - "added":[["Added OwnerIcon Option","You can now switch from the OwnerTag to the native Crown OwnerIcon"]] + "added":[["Admin Tags","You can now enable the plugin to also add tags for users with administration rights, you can also set a unique tagname for such people"]] }; this.patchModules = { @@ -28,10 +28,12 @@ class OwnerTag { addInUserProfil: {value:true, inner:true, description:"User Profile Modal"}, useRoleColor: {value:true, inner:false, description:"Use the Rolecolor instead of the default blue."}, useBlackFont: {value:false, inner:false, description:"Instead of darkening the Rolecolor on bright colors use black font."}, - useCrown: {value:false, inner:false, description:"Use the Crown OwnerIcon instead of the OwnerTag."} + useCrown: {value:false, inner:false, description:"Use the Crown OwnerIcon instead of the OwnerTag."}, + addForAdmins: {value:false, inner:false, description:"Also add the Tag for any user with Admin rights."} }, inputs: { - ownTagName: {value:"Owner", description:"Owner Tag Text"} + ownTagName: {value:"Owner", description:"Owner Tag Text for Owners"}, + ownAdminTagName: {value:"Admin", description:"Owner Tag Text for Admins"} } }; } @@ -42,7 +44,7 @@ class OwnerTag { var inputs = BDFDB.getAllData(this, "inputs"); var settingshtml = `
${this.name}
`; for (let key in inputs) { - settingshtml += `

${this.defaults.inputs[key].description}

`; + settingshtml += `

${this.defaults.inputs[key].description}

`; } for (let key in settings) { if (!this.defaults.settings[key].inner) settingshtml += `

${this.defaults.settings[key].description}

`; @@ -90,7 +92,8 @@ class OwnerTag { this.MemberUtils = BDFDB.WebModules.findByProperties("getMembers", "getMember"); this.GuildUtils = BDFDB.WebModules.findByProperties("getGuilds","getGuild"); - this.LastGuildStore = BDFDB.WebModules.findByProperties("getLastSelectedGuildId"); + this.ChannelUtils = BDFDB.WebModules.findByProperties("getChannels","getChannel"); + this.LastChannelStore = BDFDB.WebModules.findByProperties("getLastSelectedChannelId"); BDFDB.WebModules.forceAllUpdates(this); } @@ -122,13 +125,13 @@ class OwnerTag { let container = null; if (!instance.props || !wrapper.classList) return; else if (BDFDB.containsClass(wrapper, BDFDB.disCN.membernametag) && BDFDB.getData("addInMemberList", this, "settings")) { - this.addOwnerTag(instance.props.user, wrapper, "list", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); + this.addOwnerTag(instance.props.user, null, wrapper, "list", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); } else if ((container = BDFDB.getParentEle(BDFDB.dotCN.userpopout, wrapper)) != null && BDFDB.getData("addInUserPopout", this, "settings")) { - this.addOwnerTag(instance.props.user, wrapper, "popout", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); + this.addOwnerTag(instance.props.user, null, wrapper, "popout", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); } else if ((container = BDFDB.getParentEle(BDFDB.dotCN.userprofile, wrapper)) != null && BDFDB.getData("addInUserProfil", this, "settings")) { - this.addOwnerTag(instance.props.user, wrapper, "profile", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); + this.addOwnerTag(instance.props.user, null, wrapper, "profile", BDFDB.disCN.bottagnametag + (instance.props.botClass ? (" " + instance.props.botClass) : ""), container); } } @@ -138,7 +141,7 @@ class OwnerTag { let username = wrapper.querySelector(BDFDB.dotCN.messageusername); if (username) { let messagegroup = BDFDB.getParentEle(BDFDB.dotCN.messagegroup, wrapper); - this.addOwnerTag(message.author, username.parentElement, "chat", BDFDB.disCN.bottagmessage + " " + (BDFDB.containsClass(messagegroup, BDFDB.disCN.messagegroupcozy) ? BDFDB.disCN.bottagmessagecozy : BDFDB.disCN.bottagmessagecompact), null); + this.addOwnerTag(message.author, message.channel_id, username.parentElement, "chat", BDFDB.disCN.bottagmessage + " " + (BDFDB.containsClass(messagegroup, BDFDB.disCN.messagegroupcozy) ? BDFDB.disCN.bottagmessagecozy : BDFDB.disCN.bottagmessagecompact), null); } } } @@ -151,16 +154,19 @@ class OwnerTag { } } - addOwnerTag (info, wrapper, type, selector = "", container) { + addOwnerTag (info, channelid, wrapper, type, selector = "", container) { if (!info || !wrapper || !wrapper.parentElement) return; BDFDB.removeEles(wrapper.querySelectorAll(".owner-tag, .owner-tag-crown")); - let guild = this.GuildUtils.getGuild(this.LastGuildStore.getGuildId()); - if (!guild || guild.ownerId != info.id) return; + let channel = this.ChannelUtils.getChannel(channelid || this.LastChannelStore.getChannelId()); + if (!channel) return; + let guild = this.GuildUtils.getGuild(channel.guild_id); let settings = BDFDB.getAllData(this, "settings"); - let member = settings.useRoleColor ? (this.MemberUtils.getMember(this.LastGuildStore.getGuildId(), info.id) || {}) : {}; + let isowner = channel.ownerId == info.id || guild && guild.ownerId == info.id; + if (!(isowner || (settings.addForAdmins && BDFDB.isUserAllowedTo("ADMINISTRATOR", info.id)))) return; + let member = settings.useRoleColor ? (this.MemberUtils.getMember(channel.guild_id, info.id) || {}) : {}; let EditUsersData = BDFDB.isPluginEnabled("EditUsers") ? bdplugins.EditUsers.plugin.getUserData(info.id, wrapper) : {}; if (!settings.useCrown) { - let tag = BDFDB.htmlToElement(`${BDFDB.getData("ownTagName", this, "inputs") || "Owner"}`); + let tag = BDFDB.htmlToElement(`${BDFDB.getData(isowner ? "ownTagName" : "ownAdminTagName", this, "inputs")}`); let invert = false; if (container && container.firstElementChild && !BDFDB.containsClass(container.firstElementChild, BDFDB.disCN.userpopoutheadernormal, BDFDB.disCN.userprofiletopsectionnormal), false) invert = true; BDFDB.addClass(tag, invert ? BDFDB.disCN.bottaginvert : BDFDB.disCN.bottagregular); @@ -174,7 +180,7 @@ class OwnerTag { else if (!wrapper.querySelector(BDFDB.dotCN.ownericon)) { let crown = BDFDB.htmlToElement(``); crown.addEventListener("mouseenter", () => { - BDFDB.createTooltip(BDFDB.LanguageStrings.GUILD_OWNER, crown, {type: "top"}); + BDFDB.createTooltip(isowner ? (channel.type == 3 ? BDFDB.LanguageStrings.GROUP_OWNER : BDFDB.LanguageStrings.GUILD_OWNER) : BDFDB.LanguageStrings.ADMINISTRATOR, crown, {type: "top"}); }); wrapper.insertBefore(crown, wrapper.querySelector(".TRE-tag,svg[name=MobileDevice]")); }