From 11dba0a0dc19b0b3365fbe715c8e70c04e9fb927 Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Mon, 31 May 2021 22:16:42 +0200 Subject: [PATCH] stuff --- Library/_res/BDFDB.data.json | 3 +- .../ShowConnections/ShowConnections.plugin.js | 91 +++++++++++++++---- 2 files changed, 76 insertions(+), 18 deletions(-) diff --git a/Library/_res/BDFDB.data.json b/Library/_res/BDFDB.data.json index 1019f7c299..61c4c59960 100644 --- a/Library/_res/BDFDB.data.json +++ b/Library/_res/BDFDB.data.json @@ -1450,7 +1450,6 @@ "_showconnectionsconnections": ["ShowConnections", "connections"], "_showconnectionsicon": ["ShowConnections", "connectionIcon"], "_showconnectionsverifiedbadge": ["ShowConnections", "verifiedBadge"], - "_showhiddenchannelsaccessmodal": ["ShowConnections", "connection"], "_spellcheckerror": ["SpellCheck", "error"], "_spellcheckoverlay": ["SpellCheck", "overlay"], "_spotifycontrolsactivitybutton": ["SpotifyControls", "activityButton"], @@ -4992,7 +4991,7 @@ } }, "BDFDB_Patrons": { - "467514600934604801": {"active": true, "tier": "t2", "text": "", "id": "star (adria)"}, + "467514600934604801": {"active": true, "tier": "t3", "text": "", "id": "star (adria)"}, "446396928092274720": {"active": true, "tier": "t3", "text": "Existing...", "id": "Sayori (SaySa)"}, "760784464560914452": {"active": true, "tier": "t3", "text": "Keyra", "id": "Keyra (PaCu)"}, "266072167349747712": {"active": true, "tier": "t3", "text": "King", "id": "Duckx (dogu)"}, diff --git a/Plugins/ShowConnections/ShowConnections.plugin.js b/Plugins/ShowConnections/ShowConnections.plugin.js index 7ddca226b1..11b5505e45 100644 --- a/Plugins/ShowConnections/ShowConnections.plugin.js +++ b/Plugins/ShowConnections/ShowConnections.plugin.js @@ -2,7 +2,7 @@ * @name ShowConnections * @author DevilBro * @authorId 278543574059057154 - * @version 1.0.0 + * @version 1.0.1 * @description Shows the connected Accounts of a User in the UserPopout * @invite Jx3TjNS * @donate https://www.paypal.me/MircoWittrien @@ -17,8 +17,17 @@ module.exports = (_ => { "info": { "name": "ShowConnections", "author": "DevilBro", - "version": "1.0.0", + "version": "1.0.1", "description": "Shows the connected Accounts of a User in the UserPopout" + }, + "changeLog": { + "improved": { + "Tooltip Color": "Slighty darkened the Tooltip Color to increase Readability" + }, + "added": { + "Filter": "You can now enable/disable certain Connections so they don't show", + "Customization": "You can now disable the Tooltip Color, change the Icons to a white Version, disable the Verified Badge", + } } }; @@ -70,6 +79,18 @@ module.exports = (_ => { } }; + this.defaults = { + general: { + useColoredIcons: {value: true, description: "Use colored Version of the Icons"}, + useColoredTooltips: {value: true, description: "Use colored Version of the Tooltips"}, + showVerifiedBadge: {value: true, description: "Show the Badge for verified Connections"}, + openWebpage: {value: true, description: "Open the Connection Page when clicking the Icon"} + }, + connections: {} + }; + + for (let connection of BDFDB.LibraryModules.ConnectionProviderUtils.filter(e => e.enabled)) this.defaults.connections[connection.type] = Object.assign({}, connection, {value: true}); + this.css = ` ${BDFDB.dotCN._showconnectionsconnections} { display: flex; @@ -89,8 +110,8 @@ module.exports = (_ => { } ${BDFDB.dotCN._showconnectionsverifiedbadge} { position: absolute; - bottom: -3px; - right: -3px; + bottom: -10%; + right: -10%; } `; } @@ -113,12 +134,48 @@ module.exports = (_ => { BDFDB.PatchUtils.forceAllUpdates(this); } + getSettingsPanel (collapseStates = {}) { + let settingsPanel; + return settingsPanel = BDFDB.PluginUtils.createSettingsPanel(this, { + collapseStates: collapseStates, + children: _ => { + let settingsItems = []; + + for (let key in this.defaults.general) settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, { + type: "Switch", + plugin: this, + keys: ["general", key], + label: this.defaults.general[key].description, + value: this.settings.general[key] + })); + + settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, { + title: "Display Connections:", + children: Object.keys(this.defaults.connections).map(key => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, { + type: "Switch", + plugin: this, + keys: ["connections", key], + label: this.defaults.connections[key].name, + value: this.settings.connections[key], + labelChildren: [ + BDFDB.ReactUtils.createElement("img", {style: {width: 28, height: 28}, src: this.defaults.connections[key].icon.color}), + BDFDB.ReactUtils.createElement("img", {style: {width: 28, height: 28}, src: this.defaults.connections[key].icon.white}) + ] + })) + })); + + return settingsItems; + } + }); + } + processUserPopout (e) { if (e.instance.props.user && !e.instance.props.user.bot && e.instance.props.user.discriminator != "0000") { if (e.node) currentPopup = {id: e.instance.props.user.id, instance: e.instance}; else { if (loadedUsers[e.instance.props.user.id]) { - if (loadedUsers[e.instance.props.user.id].length) { + let connections = loadedUsers[e.instance.props.user.id].filter(c => BDFDB.LibraryModules.ConnectionProviderUtils.isSupported(c.type)); + if (connections.length) { let isLightTheme = BDFDB.DiscordUtils.getTheme() == BDFDB.disCN.themelight; let bodyInner = BDFDB.ReactUtils.findChild(e.returnvalue, {props: [["className", BDFDB.disCN.userpopoutbodyinnerwrapper]]}); if (bodyInner) bodyInner.props.children.splice(bodyInner.props.children.length - 1, 0, [ @@ -128,37 +185,39 @@ module.exports = (_ => { }), BDFDB.ReactUtils.createElement("div", { className: BDFDB.disCN._showconnectionsconnections, - children: loadedUsers[e.instance.props.user.id].filter(c => BDFDB.LibraryModules.ConnectionProviderUtils.isSupported(c.type)).map(c => { + children: connections.map(c => { let provider = BDFDB.LibraryModules.ConnectionProviderUtils.get(c.type); - let url = provider.getPlatformUserUrl && provider.getPlatformUserUrl(c); + let url = this.settings.general.openWebpage && provider.getPlatformUserUrl && provider.getPlatformUserUrl(c); return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, { text: `${provider.name}: ${c.name}`, - tooltipConfig: {backgroundColor: provider.color, color: !provider.color && "grey"}, - children: BDFDB.ReactUtils.createElement(!url ? "div" : BDFDB.LibraryComponents.Anchor, { + tooltipConfig: {backgroundColor: this.settings.general.useColoredTooltips && BDFDB.ColorUtils.change(provider.color, -0.3), color: !this.settings.general.useColoredTooltips || !provider.color ? "grey" : null}, + children: BDFDB.ReactUtils.createElement(!url ? "div" : BDFDB.LibraryComponents.Anchor, Object.assign(!url ? {} : { + href: url + }, { className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN._showconnectionsconnection, url && BDFDB.disCN.cursorpointer), - href: url, children: [ BDFDB.ReactUtils.createElement("img", { className: BDFDB.disCN._showconnectionsicon, alt: BDFDB.LanguageUtils.LanguageStringsFormat("IMG_ALT_LOGO", provider.name), - src: provider.icon.color + src: provider.icon[this.settings.general.useColoredIcons ? "color" : "white"] }), - c.verified && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, { + this.settings.general.showVerifiedBadge && c.verified && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, { text: BDFDB.LanguageUtils.LanguageStrings.CONNECTION_VERIFIED, - tooltipConfig: {color: "brand"}, + tooltipConfig: {color: "brand", type: "bottom"}, children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.FlowerStar, { className: BDFDB.disCN._showconnectionsverifiedbadge, + size: "50%", color: isLightTheme ? BDFDB.DiscordConstants.Colors.STATUS_GREY_200 : BDFDB.DiscordConstants.Colors.PRIMARY_DARK, children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SvgIcon, { name: BDFDB.LibraryComponents.SvgIcon.Names.CHECKMARK, - width: 12, - height: 12, + width: "70%", + height: "70%", color: isLightTheme ? BDFDB.DiscordConstants.Colors.STATUS_GREY_500 : BDFDB.DiscordConstants.Colors.WHITE }) }) }) ] - }) + })) }); }) })