From ac5916720c249e229691e1962e50c209f6b6f2a0 Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Sat, 3 Jul 2021 16:28:58 +0200 Subject: [PATCH] new plugin --- .../ClickableMentions.plugin.js | 110 ++++++++++++++++++ Plugins/ClickableMentions/README.md | 18 +++ Plugins/ClickableMentions/_res/cover.png | Bin 0 -> 17489 bytes 3 files changed, 128 insertions(+) create mode 100644 Plugins/ClickableMentions/ClickableMentions.plugin.js create mode 100644 Plugins/ClickableMentions/README.md create mode 100644 Plugins/ClickableMentions/_res/cover.png diff --git a/Plugins/ClickableMentions/ClickableMentions.plugin.js b/Plugins/ClickableMentions/ClickableMentions.plugin.js new file mode 100644 index 0000000000..1c52e1a7fd --- /dev/null +++ b/Plugins/ClickableMentions/ClickableMentions.plugin.js @@ -0,0 +1,110 @@ +/** + * @name ClickableMentions + * @author DevilBro + * @authorId 278543574059057154 + * @version 1.0.0 + * @description Allows you to open a User Popout by clicking a Mention in your Message Input + * @invite Jx3TjNS + * @donate https://www.paypal.me/MircoWittrien + * @patreon https://www.patreon.com/MircoWittrien + * @website https://mwittrien.github.io/ + * @source https://github.com/mwittrien/BetterDiscordAddons/tree/master/Plugins/ClickableMentions/ + * @updateUrl https://mwittrien.github.io/BetterDiscordAddons/Plugins/ClickableMentions/ClickableMentions.plugin.js + */ + +module.exports = (_ => { + const config = { + "info": { + "name": "ClickableMentions", + "author": "DevilBro", + "version": "1.0.0", + "description": "Allows you to open a User Popout by clicking a Mention in your Message Input" + } + }; + + return (window.Lightcord || window.LightCord) ? class { + getName () {return config.info.name;} + getAuthor () {return config.info.author;} + getVersion () {return config.info.version;} + getDescription () {return "Do not use LightCord!";} + load () {BdApi.alert("Attention!", "By using LightCord you are risking your Discord Account, due to using a 3rd Party Client. Switch to an official Discord Client (https://discord.com/) with the proper BD Injection (https://betterdiscord.app/)");} + start() {} + stop() {} + } : !window.BDFDB_Global || (!window.BDFDB_Global.loaded && !window.BDFDB_Global.started) ? class { + getName () {return config.info.name;} + getAuthor () {return config.info.author;} + getVersion () {return config.info.version;} + getDescription () {return `The Library Plugin needed for ${config.info.name} is missing. Open the Plugin Settings to download it. \n\n${config.info.description}`;} + + downloadLibrary () { + require("request").get("https://mwittrien.github.io/BetterDiscordAddons/Library/0BDFDB.plugin.js", (e, r, b) => { + if (!e && b && r.statusCode == 200) require("fs").writeFile(require("path").join(BdApi.Plugins.folder, "0BDFDB.plugin.js"), b, _ => BdApi.showToast("Finished downloading BDFDB Library", {type: "success"})); + else BdApi.alert("Error", "Could not download BDFDB Library Plugin. Try again later or download it manually from GitHub: https://mwittrien.github.io/downloader/?library"); + }); + } + + load () { + if (!window.BDFDB_Global || !Array.isArray(window.BDFDB_Global.pluginQueue)) window.BDFDB_Global = Object.assign({}, window.BDFDB_Global, {pluginQueue: []}); + if (!window.BDFDB_Global.downloadModal) { + window.BDFDB_Global.downloadModal = true; + BdApi.showConfirmationModal("Library Missing", `The Library Plugin needed for ${config.info.name} is missing. Please click "Download Now" to install it.`, { + confirmText: "Download Now", + cancelText: "Cancel", + onCancel: _ => {delete window.BDFDB_Global.downloadModal;}, + onConfirm: _ => { + delete window.BDFDB_Global.downloadModal; + this.downloadLibrary(); + } + }); + } + if (!window.BDFDB_Global.pluginQueue.includes(config.info.name)) window.BDFDB_Global.pluginQueue.push(config.info.name); + } + start () {this.load();} + stop () {} + getSettingsPanel () { + let template = document.createElement("template"); + template.innerHTML = `
The Library Plugin needed for ${config.info.name} is missing.\nPlease click Download Now to install it.
`; + template.content.firstElementChild.querySelector("a").addEventListener("click", this.downloadLibrary); + return template.content.firstElementChild; + } + } : (([Plugin, BDFDB]) => { + return class ClickableMentions extends Plugin { + onLoad () { + this.patchedModules = { + after: { + RichUserMention: "UserMention" + } + }; + } + + onStart () { + BDFDB.PatchUtils.forceAllUpdates(this); + } + + onStop () { + BDFDB.PatchUtils.forceAllUpdates(this); + } + + processRichUserMention (e) { + if (e.instance.props.id) { + if (typeof e.returnvalue.props.children == "function") { + let childrenRender = e.returnvalue.props.children; + e.returnvalue.props.children = (...args) => this.injectUserPopoutContainer(e.instance.props, childrenRender(...args)); + } + else e.returnvalue = this.injectUserPopoutContainer(e.instance.props, e.returnvalue.props.children); + } + } + + injectUserPopoutContainer (props, children) { + return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.UserPopoutContainer, { + position: BDFDB.LibraryComponents.PopoutContainer.Positions.TOP, + align: BDFDB.LibraryComponents.PopoutContainer.Align.CENTER, + userId: props.id, + channelId: props.channel && props.channel.id, + guildId: props.channel && props.channel.guild_id, + children: children + }); + } + }; + })(window.BDFDB_Global.PluginUtils.buildPlugin(config)); +})(); diff --git a/Plugins/ClickableMentions/README.md b/Plugins/ClickableMentions/README.md new file mode 100644 index 0000000000..46b84cde95 --- /dev/null +++ b/Plugins/ClickableMentions/README.md @@ -0,0 +1,18 @@ +# Clickable Mentions [![Download][download-badge]][download-link] [![Support][support-badge]][support-link] [![PayPal][paypal-badge]][paypal-link] [![Patreon][patreon-badge]][patreon-link] + +[download-badge]: https://img.shields.io/badge/Download-%233a71c1.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAd5gAAHeYBMKt3fAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE9SURBVEiJ7ZQ7TsNAFEWv06IAShOkEDD5UNCwB8RCWEYWAqkIYiEgZQERoqLgFz4hUIaC+tCM4cmyk4mxCyRfaSRL8+49781YI3kKOASmwBtw4OvzFnDJry58fZUlGGvme70IQCaVgBLwXwBADegDp0AjaxjQAAbACVCzG+fmGRgDYYJ5ZGpGCfuh80Ya/EwgqWpqQ0lDoLVE5y1JQ+eNVLUFXfdSWr0A7UUTAG1XazUFuvEudoFJrPAd2EsDuMZeY56PyJM0aqohDljU0Lzz7KSMbMMmJB9px/fStoFH/PWMuS9fyBbw4Bnu/cclQe7nhD8BO5nCDaQJ3CWEj/8cbiAbwI0JvwU2cwk3kDpw7FY91/BShSoAmpKOJK3knP0l6SwAriXt5xwe6SoAPiWtFgSYVST1JM2KCJfU+wadgFl0/0HGbQAAAABJRU5ErkJggg== +[download-link]: https://mwittrien.github.io/downloader/?plugin=ClickableMentions + +[support-badge]: https://img.shields.io/badge/Support-%2343b581.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC4UlEQVRYR8WXS4jNcRTHP195bEgWkoVsCAspNcVoLGblsaAoFCalBqU8BhuPPDZeQ5LBRmHBYsok7KYor5TyKDI2UiQLZWwojs6d351+85977+93J7q/uqt7Hp/fOed3zvmLzGNm44BWYAUwB5gafm7hc/i9AXqAXkk/c0wrJWRmU4BDwHpgQko+/N8PXAcOS/pSS6cqgJmNBfYBe4HxmY6LYj+AE8BxSb8q2agIEG7dDSwaoeOi2kNgVaVoDAMws7nAHWDaP3JeNvMRWC7pVWx3CEC4+bMM533AE+B5MDYfWADMTEA7RFMciUGAkPPeRNi9svcDnZL+xM7MbBSwCzgG+IupdjwdreWaiAEOAEdqKLrzZknlW1cUNTOPxqMExEFJR91ACSCE/n2i2vdIOpVTF2bWAZysIeuvY4anogxwAdhaQ8FzPjsOu5lNAjYFnSuSvpX1QzreJmqiS9I2hQ73NdFkrknaGDlw5x8iHW880wsQV4ENNS7lOpMdYClwNxHanZLORgBebKcLOrsldUYyO4AzCbvLHOAi0J4QbJd0OTJ+D1iSANgOnEvYveQA94HFCcHvgDv1M7GC80op6AK2JOw+cIB3GQ2kmh1/Oe6oWISjgdfArARAnwM4fb3D5jew0lu2JCs6MbOc8Lvaj5EC9EhygGHHzFqA2yFVqbZRAhhJCtok+TMbPGY2BmgDzie6YKxWSkFOERZvsk7SjehVbA4zwJeXek6pCHOeYdHoWkk3IwCHWVOP5yBbeoY5jahoO6cv5PCUGpGPzlQrLhpL9YUc5wOt2CXNLDWMKhn0ifYSWFieqjleI5mBYRQAvHhS4zi2/wJokdRvZk3A0zohho7jAJFaSGKADkmDw8jMfMtpriMCQxeSAOBreGolK/volrQ66Pm3wqc6umnllSxKRc5S6q34FvA4zPx5mbevvpRGb7pxa3kE4UXZmA+TCKJxn2ZxPhv2cVosqv/1ef4XvUY7+DQzteEAAAAASUVORK5CYII= +[support-link]: https://discord.com/invite/Jx3TjNS + +[paypal-badge]: https://img.shields.io/badge/PayPal-%23003087.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAYAAAABtRhCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAdhwAAHYcBj+XxZQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIZSURBVEiJvZa7a1RREIe/CRsIqBBQJEEUO5+YRgSx0JTBwkKwsBMU/4HY2dmKFmm1tRBREEGFYGMhvgolPlBsRBuJj5iIiRvzWWxuOF7v3r2Ld/ODhXNmhvnOzHnshZzU82rTamqqn9XX6jV1XB3K52wrtaHOV4S104J6Ue2vAtz2n7BUt9S+PCNv2FG5HZ11GDi1mkCA052AO2sG7s63tdcV9gON1BDZQA1gFlhTI3AmIgZTQ1rhlpphAFN5Qwqse/8A7uYNaX/r3j+Am9lAHQbmegmcjIhnyfwosLFXwEXgbM52BBhemdl6hOvSeEpSR9QldTYzDNUE+q2eyZer3lj2rwBHa4A9UA8UwE4kMS+yPexm/xZpPRDTwBvgCXA9Ip4XwEaBicT0MHNMlKz8ijrQxYKynMfVn7lcxzLnZAnwYJegEfV2QZ6P6kDW0rJX5lUHwAZgD7CP1l3b2yb0XETMow6WVDedS35Bfbf8+2LrqFfRVVt/DqDuLwm8nwM+qghIdcnk+6aP8hO60s7lFW4va2+iReAOcCgiTkZEM3M0OgBfJuNNwLqCmHvAY+AbMAO8BZ5GxNeihA2qH5iiuO/AWET8Ksnxl/o6ANMKizox1Q0sA65t45sDPiTzov0rvTJFagC7gM0FvoWIMJkXVdg1sLLUTwVHfqxXsPVt7tjWbnP98+3fRkXt/AG8Xy3gEnA5Ipa6Bf4BbzmPtw84RMAAAAAASUVORK5CYII= +[paypal-link]: https://paypal.me/MircoWittrien + +[patreon-badge]: https://img.shields.io/badge/Patreon-%23F96854.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAdhwAAHYcBj+XxZQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAGBSURBVFiF7Za9ThtBFEbPBUpERWMwCorfJjY4aVLxBFHCKyCl4hWQUqVMBULmbfiRCNACqSJsDsXakjHGO8Y7ovFXrmbmO3NnZ74bqrzUeUR8HPP9mdQ60AZawCZQBwK4BC6ADnAUEZeTFhmnsxLjdfVAfXhl/rB66h/1QyUAalu9TzAe1Z26NROAutvf0VvVU7+/CUD9PKP5MMT2VADqhvqvAvOB7tQ1gIXXznpEP4HlxLEpWgH2AEInX0OLv/cUWKwQAKALbKZU4EsGc4AloJ0C8CmD+UDNFIBGRoBGCkAtI8B66i3IpccUgJuMANcpAKcZAc5SAE4yAnRSAA6BXgbzLnBUChARF8DvDAC/IuIqNYzqFYfRrVqDxDCKiL/AV6o5ikdgJyJuBrsrrcBQJX44W0/QVb+NLpoM0B/f6pdwWt2qL3NlWoD+nFV1X/2fYPxg0cCOfdJL+4ESkBqwDTQpQmuNoi2/onjAOsBxRFxPWmTqClSp9w6jOcAcYA7AE1OMk5ulhBZCAAAAAElFTkSuQmCC +[patreon-link]: https://patreon.com/MircoWittrien + +Allows you to open a User Popout by clicking a Mention in your Message Input + + +![cover](https://mwittrien.github.io/BetterDiscordAddons/Plugins/ClickableMentions/_res/cover.png) \ No newline at end of file diff --git a/Plugins/ClickableMentions/_res/cover.png b/Plugins/ClickableMentions/_res/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7c79e4164591ddd416e43a46580feb6316ebf7f0 GIT binary patch literal 17489 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 I)&KDS07ZBlH~;_u literal 0 HcmV?d00001