diff --git a/plugins/0BDFDB.config.json b/plugins/0BDFDB.config.json index 84fa3c3..ceb39ff 100644 --- a/plugins/0BDFDB.config.json +++ b/plugins/0BDFDB.config.json @@ -1,7 +1,7 @@ { "all": { "changeLogs": { - "BDFDB": "3.6.4", + "BDFDB": "3.6.5", "ClickableMentions": "1.0.6", "GameActivityToggle": "1.2.4", "ImageUtilities": "5.4.3", @@ -21,7 +21,7 @@ "useChromium": false }, "hashes": { - "0BDFDB.data.json": "aa42d27e6c25c714d73f8b98ad17db2c6be2d924", + "0BDFDB.data.json": "a4976ac3f7bb013e586db0bc16d3d98cff5c7c8f", "0BDFDB.raw.css": "0ac0d6eaef018eafb63ad32897332e251a907ccb" } } diff --git a/plugins/0BDFDB.data.json b/plugins/0BDFDB.data.json index aa42d27..a4976ac 100644 --- a/plugins/0BDFDB.data.json +++ b/plugins/0BDFDB.data.json @@ -279,7 +279,7 @@ "UserBadges": [".PROFILE_USER_BADGES"], "Sizes": ["\"SIZE_24\":"] }}, - "UserPopout": {"strings": ["{user:", "userId:", "\"Unexpected missing user\")", "getUser"]}, + "UserPopout": {"strings": ["{user:", "userId:", "\"Unexpected missing user\")", "getUser"], "value": "default"}, "UserPopoutSection": {"strings": [".section,", ".lastSection"]}, "UserSummaryItem": {"strings": ["popoutUserId:", ".clickableAvatar"]}, "VideoForwardRef": {"strings": ["HTMLSourceElement", "autoPlay"], "funcStrings": ["externalRef"]} @@ -488,11 +488,10 @@ "UserGenericContextMenu": {"strings": ["USER_ACTIONS_MENU_LABEL", "navId:\"user", ".USER_GENERIC_MENU"], "noSearch": true}, "UserInfo": {"strings": [".botTag", "isMobile:", ".discordTag"]}, "UserMemberContextMenu": {"strings": ["USER_ACTIONS_MENU_LABEL", "navId:\"user", ".GUILD_CHANNEL_USER_MENU"], "noSearch": true}, - "UserMemberSince": {"strings": [".memberSinceContainer", ".USER_PROFILE_DISCORD_MEMBER_SINCE"]}, - "UserMemberSinceSection": {"strings": ["userId:", "headingClassName", ".title", "guildMember:"]}, + "UserMemberSince": {"strings": [".memberSince", ".USER_PROFILE_DISCORD_MEMBER_SINCE"]}, "UserMention": {"strings": ["inlinePreview", "\"@\"", "renderPopout:"]}, "UsernameSection": {"strings": ["shouldCopyOnClick:", ".userTagDiscriminatorNoNickname"]}, - "UserPopout": {"strings": ["{user:", "userId:", "\"Unexpected missing user\")", "getUser"]}, + "UserPopout": {"strings": ["{user:", "userId:", "\"Unexpected missing user\")", "getUser"], "noSearch": true}, "UserPopoutAvatar": {"strings": [".avatarDecorationHint", ".VIEW_PROFILE"], "noSearch": true}, "UserPopoutBody": {"strings": ["customStatusActivity:", "canDM:", "hidePersonalInformation:", "showCopiableUsername:"]}, "UserProfile": {"strings": [".PROFILE_MODAL", "USER_INFO_CONNECTIONS", ".topSection"], "noSearch": true}, @@ -504,7 +503,8 @@ "UserRolesSection": {"strings": [".rolePillBorder", "numRoles", "roleClassName"]}, "UserSummaryItem": {"protos": ["renderMoreUsers", "renderUsers", "renderIcon"]}, "UserSettingsAppearance": {"protos": ["renderTheme", "renderDisplayMode", "renderMessageGroupSpacingSlider"]}, - "UserTheme": {"strings": [".profileColors", "useDefaultClientTheme:"], "noSearch": true}, + "UserTheme": {"strings": [".UserProfileThemeContextProvider", "pendingThemeColors:"], "noSearch": true}, + "UserThemeContainer": {"strings": [".trackUserProfileAction", "guildId:", ".Provider"], "noSearch": true}, "VideoBackground": {"strings": ["backgroundSrc:", "pulseSpeakingIndicator:", ".avatarWrapper"]}, "VoiceUser": {"protos": ["renderPrioritySpeaker", "renderIcons", "renderAvatar"]}, "VoiceUsers": {"strings": ["hidePreview", "previewIsOpen", "Permissions.MOVE_MEMBERS"]} @@ -1308,7 +1308,7 @@ } }, "DiscordClassModules": { - "AccountDetails": {"props": ["usernameContainer", "container"]}, + "AccountDetails": {"props": ["usernameContainer", "withTagAsButton"]}, "AccountDetailsButtons": {"props": ["button", "enabled", "disabled"]}, "Anchor": {"props": ["anchor", "anchorUnderlineOnHover"]}, "AnimationContainer": {"props": ["animatorLeft", "didRender"]}, @@ -1438,11 +1438,11 @@ "MenuReactButton": {"props": ["wrapper", "icon", "focused", "button"]}, "MenuSlider": {"props": ["slider", "sliderContainer"]}, "Member": {"props": ["member", "ownerIcon"]}, - "MemberSince": {"props": ["memberSinceContainer", "discordIcon"]}, + "MemberSince": {"props": ["memberSince", "discordIcon"]}, "MembersWrapper": {"props": ["membersWrap", "membersGroup"]}, "Message": {"props": ["message", "mentioned"]}, "MessageAccessory": {"props": ["embedWrapper", "gifFavoriteButton"]}, - "MessageAttachment": {"props": ["removeAttachmentButton", "inline"]}, + "MessageAttachment": {"props": ["removeMosaicItemButton", "inline"]}, "MessageBlocked": {"props": ["blockedMessageText", "expanded"]}, "MessageBody": {"props": ["markupRtl", "edited"]}, "MessageDivider": {"props": ["isUnread", "divider"]}, @@ -2487,7 +2487,7 @@ "imagemodalnavbutton": ["ModalCarouselNav", "nav"], "imagemodalnavbuttonprev": ["ModalCarouselNav", "navPrev"], "imagemodalnavbuttonnext": ["ModalCarouselNav", "navNext"], - "imagemosaicattachmentscontainer": ["ImageMosaic", "mediaAttachmentsContainer"], + "imagemosaicattachmentscontainer": ["ImageMosaic", "visualMediaItemContainer"], "imagemosaiconebyonegridsingle": ["ImageMosaic", "oneByOneGridSingle"], "imagesticker": ["ImageAssets", "stickerAsset"], "imagewrapper": ["ImageWrapper", "imageWrapper"], @@ -2607,7 +2607,7 @@ "memberownericon": ["Member", "ownerIcon"], "memberpremiumicon": ["Member", "premiumIcon"], "members": ["MembersWrapper", "members"], - "membersince": ["MemberSince", "memberSinceContainer"], + "membersince": ["MemberSince", "memberSince"], "membersgroup": ["MembersWrapper", "membersGroup"], "memberswrap": ["MembersWrapper", "membersWrap"], "memberusername": ["Member", "username"], @@ -2656,7 +2656,7 @@ "message": ["Message", "message"], "messageaccessory": ["MessageAccessory", "container"], "messageattachment": ["MessageAttachment", "messageAttachment"], - "messageattachmentremovebutton": ["MessageAttachment", "removeAttachmentButton"], + "messageattachmentremovebutton": ["MessageAttachment", "removeMosaicItemButton"], "messageavatar": ["MessageBody", "avatar"], "messageavatarclickable": ["MessageBody", "clickable"], "messagebackgroundflash": ["Message", "backgroundFlash"], diff --git a/plugins/0BDFDB.plugin.js b/plugins/0BDFDB.plugin.js index 5262dd1..25aa697 100644 --- a/plugins/0BDFDB.plugin.js +++ b/plugins/0BDFDB.plugin.js @@ -2,7 +2,7 @@ * @name BDFDB * @author DevilBro * @authorId 278543574059057154 - * @version 3.6.4 + * @version 3.6.5 * @description Required Library for DevilBro's Plugins * @invite Jx3TjNS * @donate https://www.paypal.me/MircoWittrien @@ -6775,7 +6775,7 @@ module.exports = (_ => { onUnmount: _ => document.removeEventListener("click", this.onDocumentClicked), position: this.props.position, align: this.props.align, - reference: this.domElementRef, + targetRef: this.domElementRef, children: _ => { const popout = BDFDB.ReactUtils.createElement(Internal.LibraryComponents.Popout, BDFDB.ObjectUtils.exclude(Object.assign({}, this.props, { className: this.props.popoutClassName, diff --git a/plugins/DoubleClickToEdit.plugin.js b/plugins/DoubleClickToEdit.plugin.js index cf06118..83f86ab 100644 --- a/plugins/DoubleClickToEdit.plugin.js +++ b/plugins/DoubleClickToEdit.plugin.js @@ -1,7 +1,7 @@ /** * @name Double Click To Edit * @author Farcrada, original idea by Jiiks - * @version 9.4.7 + * @version 9.4.8 * @description Double click a message you wrote to quickly edit it. * * @invite qH6UWCwfTu @@ -15,16 +15,7 @@ const React = BdApi.React, { Webpack, Webpack: { Filters }, Data, Utils, ReactUtils } = BdApi, - config = { - info: { - name: "Double Click To Edit", - id: "DoubleClickToEdit", - description: "Double click a message you wrote to quickly edit it", - version: "9.4.7", - author: "Farcrada", - updateUrl: "https://raw.githubusercontent.com/Farcrada/DiscordPlugins/master/Double-click-to-edit/DoubleClickToEdit.plugin.js" - } - }, + config = {}, ignore = [ //Object @@ -44,10 +35,7 @@ const React = BdApi.React, module.exports = class DoubleClickToEdit { - load() { - try { global.ZeresPluginLibrary.PluginUpdater.checkForUpdate(config.info.name, config.info.version, config.info.updateUrl); } - catch (err) { console.error(config.info.name, "Failed to reach the ZeresPluginLibrary for Plugin Updater.", err); } - } + constructor(meta) { config.info = meta; } start() { try { @@ -59,7 +47,7 @@ module.exports = class DoubleClickToEdit { this.copyToClipboard = Webpack.getModule(Filters.byKeys("clipboard", "app")).clipboard.copy; //Reply functions - this.replyToMessage = Webpack.getModule(m => m?.toString?.()?.replace('\n', '')?.search(/(channel:[\w|\w],message:[\w|\w],shouldMention:!)/) > -1, { searchExports: true }) + this.replyToMessage = Webpack.getModule(Filters.byKeys("replyToMessage")).replyToMessage; this.getChannel = Webpack.getModule(Filters.byKeys("getChannel", "getDMFromUserId")).getChannel; //Stores @@ -74,15 +62,15 @@ module.exports = class DoubleClickToEdit { //Load settings //Edit - this.doubleClickToEditModifier = Data.load(config.info.id, "doubleClickToEditModifier") ?? false; - this.editModifier = Data.load(config.info.id, "editModifier") ?? "shift"; + this.doubleClickToEditModifier = Data.load(config.info.slug, "doubleClickToEditModifier") ?? false; + this.editModifier = Data.load(config.info.slug, "editModifier") ?? "shift"; //Reply - this.doubleClickToReply = Data.load(config.info.id, "doubleClickToReply") ?? false; - this.doubleClickToReplyModifier = Data.load(config.info.id, "doubleClickToReplyModifier") ?? false; - this.replyModifier = Data.load(config.info.id, "replyModifier") ?? "shift"; + this.doubleClickToReply = Data.load(config.info.slug, "doubleClickToReply") ?? false; + this.doubleClickToReplyModifier = Data.load(config.info.slug, "doubleClickToReplyModifier") ?? false; + this.replyModifier = Data.load(config.info.slug, "replyModifier") ?? "shift"; //Copy - this.doubleClickToCopy = Data.load(config.info.id, "doubleClickToCopy") ?? false; - this.copyModifier = Data.load(config.info.id, "copyModifier") ?? "shift"; + this.doubleClickToCopy = Data.load(config.info.slug, "doubleClickToCopy") ?? false; + this.copyModifier = Data.load(config.info.slug, "copyModifier") ?? "shift"; } catch (err) { @@ -128,7 +116,7 @@ module.exports = class DoubleClickToEdit { onChange: (newState) => { //Saving the new state this.doubleClickToEditModifier = newState; - Data.save(config.info.id, "doubleClickToEditModifier", newState); + Data.save(config.info.slug, "doubleClickToEditModifier", newState); setEditEnableModifier(newState); } //Discord Is One Of Those @@ -147,7 +135,7 @@ module.exports = class DoubleClickToEdit { ], onChange: (newState) => { this.editModifier = newState.value; - Data.save(config.info.id, "editModifier", newState.value); + Data.save(config.info.slug, "editModifier", newState.value); setEditModifier(newState.value); } })), @@ -158,7 +146,7 @@ module.exports = class DoubleClickToEdit { note: "Double click another's message and start replying.", onChange: (newState) => { this.doubleClickToReply = newState; - Data.save(config.info.id, "doubleClickToReply", newState); + Data.save(config.info.slug, "doubleClickToReply", newState); setReply(newState); } }, "Enable Replying"), @@ -168,7 +156,7 @@ module.exports = class DoubleClickToEdit { note: "Enable modifier for double clicking to reply", onChange: (newState) => { this.doubleClickToReplyModifier = newState; - Data.save(config.info.id, "doubleClickToReplyModifier", newState); + Data.save(config.info.slug, "doubleClickToReplyModifier", newState); setReplyEnableModifier(newState); } }, "Enable Reply Modifier"), @@ -186,7 +174,7 @@ module.exports = class DoubleClickToEdit { ], onChange: (newState) => { this.replyModifier = newState.value; - Data.save(config.info.id, "replyModifier", newState.value); + Data.save(config.info.slug, "replyModifier", newState.value); setReplyModifier(newState.value); } })), @@ -197,7 +185,7 @@ module.exports = class DoubleClickToEdit { note: "Copy selection before entering edit-mode.", onChange: (newState) => { this.doubleClickToCopy = newState; - Data.save(config.info.id, "doubleClickToCopy", newState); + Data.save(config.info.slug, "doubleClickToCopy", newState); setCopy(newState); } }, "Enable Copying"), @@ -215,7 +203,7 @@ module.exports = class DoubleClickToEdit { ], onChange: (newState) => { this.copyModifier = newState.value; - Data.save(config.info.id, "copyModifier", newState.value); + Data.save(config.info.slug, "copyModifier", newState.value); setCopyModifier(newState.value); } })) diff --git a/plugins/SocialMediaLinkConverter.plugin.js b/plugins/SocialMediaLinkConverter.plugin.js index 13c99df..aa89c6a 100644 --- a/plugins/SocialMediaLinkConverter.plugin.js +++ b/plugins/SocialMediaLinkConverter.plugin.js @@ -1,11 +1,11 @@ /** * @name SocialMediaLinkConverter * @author Nears - * @description Changes Twitter, TikTok, Bsky, Threads, Reddit and Instagram links to their respective modified formats for proper embedding when shared on Discord. + * @description Changes Twitter, TikTok, Bsky, Threads, Reddit, Pixiv, DeviantArt and Instagram links to their respective modified formats for proper embedding when shared on Discord. * @donate https://ko-fi.com/royriver * @source https://github.com/RoyRiv3r/SocialMediaLinkConverter.plugin.js * @updateURL https://raw.githubusercontent.com/RoyRiv3r/SocialMediaLinkConverter.plugin.js/main/SocialMediaLinkConverter.plugin.js - * @version 0.0.8 + * @version 0.0.9 */ class SocialMediaLinkConverter { @@ -17,6 +17,8 @@ class SocialMediaLinkConverter { convertBsky: true, convertThreads: true, convertReddit: true, + convertPixiv: true, + convertDeviantArt: true, }; this.conversionRules = [ @@ -50,6 +52,16 @@ class SocialMediaLinkConverter { regex: /https:\/\/(www\.|new\.)?reddit\.com\//g, replacement: "https://www.rxddit.com/", }, + { + id: "convertPixiv", + regex: /https:\/\/(www\.)?pixiv.net\//g, + replacement: "https://phixiv.net/", + }, + { + id: "convertDeviantArt", + regex: /https:\/\/(www\.)?deviantart.com\//g, + replacement: "https://www.fxdeviantart.com/", + }, ]; this.defaultConfig = this.conversionRules.map((rule) => ({ @@ -121,7 +133,14 @@ class SocialMediaLinkConverter { getSettingsPanel() { const panel = document.createElement("div"); - this.defaultConfig.forEach((setting, index) => { + panel.style.padding = "20px"; + + const settingsGrid = document.createElement("div"); + settingsGrid.style.display = "grid"; + settingsGrid.style.gridTemplateColumns = "repeat(2, 1fr)"; + settingsGrid.style.gap = "20px"; + + this.defaultConfig.forEach((setting) => { if (setting.type === "switch") { const switchElement = this.createToggle( setting.id.replace("convert", ""), @@ -136,40 +155,55 @@ class SocialMediaLinkConverter { ); } ); - panel.appendChild(switchElement); + settingsGrid.appendChild(switchElement); switchElement.querySelector(".toggle-note").style.color = "#FFFFFF"; - if (index < this.defaultConfig.length - 1) { - const separator = document.createElement("hr"); - separator.style.margin = "10px 0"; - panel.appendChild(separator); - } } }); + + panel.appendChild(settingsGrid); return panel; } createToggle(name, note, isChecked, onChange) { const toggleContainer = document.createElement("div"); toggleContainer.className = "toggle-container"; - const toggleNote = document.createElement("div"); - toggleNote.className = "toggle-note"; - toggleNote.textContent = note; - toggleContainer.appendChild(toggleNote); + toggleContainer.style.display = "flex"; + toggleContainer.style.alignItems = "center"; + toggleContainer.style.marginBottom = "10px"; + const toggleLabel = document.createElement("label"); toggleLabel.className = "toggle"; + toggleLabel.style.marginRight = "10px"; toggleContainer.appendChild(toggleLabel); + const toggleInput = document.createElement("input"); toggleInput.type = "checkbox"; toggleInput.checked = isChecked; toggleInput.onchange = (e) => onChange(e.target.checked); toggleLabel.appendChild(toggleInput); + const toggleSlider = document.createElement("span"); toggleSlider.className = "slider round"; toggleLabel.appendChild(toggleSlider); + + const toggleInfoContainer = document.createElement("div"); + toggleInfoContainer.style.display = "flex"; + toggleInfoContainer.style.flexDirection = "column"; + toggleContainer.appendChild(toggleInfoContainer); + const toggleName = document.createElement("span"); toggleName.className = "toggle-name"; toggleName.textContent = name; - toggleContainer.appendChild(toggleName); + toggleName.style.fontWeight = "bold"; + toggleName.style.marginBottom = "5px"; + toggleInfoContainer.appendChild(toggleName); + + const toggleNote = document.createElement("div"); + toggleNote.className = "toggle-note"; + toggleNote.textContent = note; + toggleNote.style.fontSize = "12px"; + toggleInfoContainer.appendChild(toggleNote); + return toggleContainer; } } diff --git a/plugins/XenoLib.config.json b/plugins/XenoLib.config.json index 55ec2a4..e6b1319 100644 --- a/plugins/XenoLib.config.json +++ b/plugins/XenoLib.config.json @@ -12,7 +12,7 @@ "userCounter": { "enabled": true, "enableTime": 1712260881912, - "lastSubmission": 1713652632814 + "lastSubmission": 1714514993787 } }, "currentVersionInfo": { diff --git a/themes/cyberpunk2077.theme.css b/themes/cyberpunk2077.theme.css index bf9592f..6205ab7 100644 --- a/themes/cyberpunk2077.theme.css +++ b/themes/cyberpunk2077.theme.css @@ -2,7 +2,7 @@ * @name Cyberpunk 2077 * @author Patryk Bielanin | bielak * @description Cyberpunk 2077 UI styled theme for better discord - * @version 1.0.11 + * @version 1.0.12 * @source https://github.com/PatrykBielanin/discord-cyberpunk2077-theme * @website https://github.com/PatrykBielanin/discord-cyberpunk2077-theme * @donate https://www.paypal.com/donate/?hosted_button_id=PGVKB863SXYUQ