diff --git a/Plugins/OldTitleBar/OldTitleBar.plugin.js b/Plugins/OldTitleBar/OldTitleBar.plugin.js index c38eb6470a..313cf70b84 100644 --- a/Plugins/OldTitleBar/OldTitleBar.plugin.js +++ b/Plugins/OldTitleBar/OldTitleBar.plugin.js @@ -2,7 +2,7 @@ * @name OldTitleBar * @author DevilBro * @authorId 278543574059057154 - * @version 1.6.8 + * @version 1.6.9 * @description Allows you to switch to Discord's old Titlebar or add the native OS Titlebar * @invite Jx3TjNS * @donate https://www.paypal.me/MircoWittrien @@ -17,7 +17,7 @@ module.exports = (_ => { "info": { "name": "OldTitleBar", "author": "DevilBro", - "version": "1.6.8", + "version": "1.6.9", "description": "Allows you to switch to Discord's old Titlebar or add the native OS Titlebar" } }; @@ -61,18 +61,15 @@ module.exports = (_ => { } } : (([Plugin, BDFDB]) => { var patched, lastWindowRects; - var settings = {}; return class OldTitleBar extends Plugin { onLoad () { patched = false; this.defaults = { - settings: { - displayNative: {value: !!document.querySelector(".platform-linux"), description: "Display the native Titlebar"}, - addOldBar: {value: true, description: "Display the Titlebar in the old Fashion"}, - addToSettings: {value: true, description: "Add a Titlebar to Settings Windows"}, - reloadButton: {value: false, description: "Add a Reload Button to the Titlebar"} + general: { + addToSettings: {value: true, description: "Adds a Titlebar to Settings Windows"}, + reloadButton: {value: false, description: "Adds a Reload Button to the Titlebar"} } }; @@ -142,71 +139,45 @@ module.exports = (_ => { BDFDB.DOMUtils.addClass(document.body, BDFDB.disCN._oldtitlebarenabled); - this.forceUpdateAll(); - - this.patchMainScreen(settings.displayNative); + BDFDB.PatchUtils.forceAllUpdates(this); } onStop () { - this.forceUpdateAll(); + BDFDB.PatchUtils.forceAllUpdates(this); BDFDB.DOMUtils.removeClassFromDOM(BDFDB.disCN._oldtitlebarenabled); } getSettingsPanel (collapseStates = {}) { - let settingsPanel, settingsItems = []; - - let isLinux = !!document.querySelector(".platform-linux"); - - for (let key in settings) { - let isNativeTitlebarSetting = key == "displayNative"; - settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, { - type: "Switch", - plugin: this, - keys: ["settings", key], - label: this.defaults.settings[key].description, - value: isLinux && isNativeTitlebarSetting || settings[key], - disabled: isLinux && isNativeTitlebarSetting, - note: isLinux && isNativeTitlebarSetting && "This is disabled on Linux, because Discord/BD forces the Titlebar on Linux Systems!", - onChange: isNativeTitlebarSetting ? value => { - if (this.patchMainScreen(value)) { - patched = !patched; - let notifybar = document.querySelector("#OldTitleBarNotifyBar"); - if (notifybar) notifybar.querySelector(BDFDB.dotCN.noticedismiss).click(); - if (patched) { - notifybar = BDFDB.NotificationUtils.notice("Changed native Titlebar Settings. Please relaunch now:", { - type: "danger", - id: "OldTitleBarNotifyBar", - buttons: [{ - contents: "Relaunch", - onClick: _ => {BDFDB.LibraryModules.WindowUtils.relaunch();} - }] - }); - } - } - } : null - })); - } - - return settingsPanel = BDFDB.PluginUtils.createSettingsPanel(this, settingsItems); + 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], + })); + + return settingsItems; + } + }); } onSettingsClosed () { if (this.SettingsUpdated) { delete this.SettingsUpdated; - this.forceUpdateAll(); + BDFDB.PatchUtils.forceAllUpdates(this); } } - - forceUpdateAll () { - settings = BDFDB.DataUtils.get(this, "settings"); - - BDFDB.PatchUtils.forceAllUpdates(this); - } processApp (e) { - let [children, index] = BDFDB.ReactUtils.findParent(e.instance, {props: [["type",["WINDOWS", "MACOS"]]]}); + let [children, index] = BDFDB.ReactUtils.findParent(e.instance, {props: [["type", ["WINDOWS", "MACOS"]]]}); if (index > -1) children[index] = null; } @@ -215,7 +186,6 @@ module.exports = (_ => { } processHeaderBarContainer (e) { - if (!settings.addOldBar) return; let children = BDFDB.ObjectUtils.get(e.returnvalue, "props.toolbar.props.children"); if (!children) { let [oldToolbarParent, oldToolbarIndex] = BDFDB.ReactUtils.findParent(e.returnvalue, {key: "OldTitleBar-toolbar"}); @@ -242,7 +212,7 @@ module.exports = (_ => { } injectSettingsToolbar (children, fixed) { - if (!settings.addToSettings) return; + if (!this.settings.general.addToSettings) return; let toolbar = BDFDB.ReactUtils.createElement("div", { className: BDFDB.disCNS.channelheadertoolbar + BDFDB.disCN._oldtitlebarsettingstoolbar, children: [], @@ -254,7 +224,7 @@ module.exports = (_ => { injectButtons (children, addFirstDivider) { if (addFirstDivider) children.push(BDFDB.ReactUtils.createElement("div", {className: BDFDB.disCN.channelheaderdivider})) - if (settings.reloadButton) { + if (this.settings.general.reloadButton) { children.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, { text: BDFDB.LanguageUtils.LanguageStrings.ERRORS_RELOAD, tooltipConfig: {type: "bottom"}, @@ -325,19 +295,6 @@ module.exports = (_ => { getWindowRects () { return {x: window.screenX, y: window.screenY, width: window.outerWidth, height: window.outerHeight}; } - - patchMainScreen (enable) { - try { - if (BdApi.getWindowPreference("frame") != enable) { - BdApi.setWindowPreference("frame", enable); - return true; - } - return false; - } - catch (err) { - return false; - } - } }; })(window.BDFDB_Global.PluginUtils.buildPlugin(config)); })(); diff --git a/Plugins/ServerHider/ServerHider.plugin.js b/Plugins/ServerHider/ServerHider.plugin.js index 63e947c9dd..4731907b5c 100644 --- a/Plugins/ServerHider/ServerHider.plugin.js +++ b/Plugins/ServerHider/ServerHider.plugin.js @@ -2,7 +2,7 @@ * @name ServerHider * @author DevilBro * @authorId 278543574059057154 - * @version 6.1.9 + * @version 6.2.0 * @description Allows you to hide certain Servers in your Server List * @invite Jx3TjNS * @donate https://www.paypal.me/MircoWittrien @@ -17,12 +17,12 @@ module.exports = (_ => { "info": { "name": "ServerHider", "author": "DevilBro", - "version": "6.1.9", + "version": "6.2.0", "description": "Allows you to hide certain Servers in your Server List" }, "changeLog": { - "fixed": { - "Works again": "Can discord stop messing with the server list, jeez" + "added": { + "Streamer Mode": "Added Option to only hide Servers while in Streamer Mode" } } }; @@ -67,6 +67,12 @@ module.exports = (_ => { } : (([Plugin, BDFDB]) => { return class ServerHider extends Plugin { onLoad () { + this.defaults = { + general: { + onlyHideInStream: {value: false, description: "Only hide selected Servers while in Streamer Mode"} + } + }; + this.patchedModules = { after: { Guilds: "render" @@ -75,6 +81,10 @@ module.exports = (_ => { } onStart () { + BDFDB.PatchUtils.patch(this, BDFDB.LibraryModules.DispatchApiUtils, "dispatch", {after: e => { + if (e.methodArguments[0].type == BDFDB.DiscordConstants.ActionTypes.STREAMER_MODE_UPDATE) BDFDB.PatchUtils.forceAllUpdates(this); + }}); + BDFDB.PatchUtils.patch(this, BDFDB.LibraryModules.FolderStore, "getGuildFolderById", {after: e => { let hiddenGuildIds = BDFDB.DataUtils.load(this, "hidden", "servers") || []; if (e.returnValue && hiddenGuildIds.length) { @@ -93,22 +103,36 @@ module.exports = (_ => { } getSettingsPanel (collapseStates = {}) { - let settingsPanel, settingsItems = []; + 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.SettingsItem, { - type: "Button", - color: BDFDB.LibraryComponents.Button.Colors.RED, - label: "Unhide all Servers/Folders", - onClick: _ => { - BDFDB.ModalUtils.confirm(this, "Are you sure you want to unhide all servers and folders?", _ => { - BDFDB.DataUtils.save([], this, "hidden"); - BDFDB.PatchUtils.forceAllUpdates(this); - }); - }, - children: BDFDB.LanguageUtils.LanguageStrings.RESET - })); - - return settingsPanel = BDFDB.PluginUtils.createSettingsPanel(this, settingsItems); + settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, { + type: "Button", + color: BDFDB.LibraryComponents.Button.Colors.RED, + label: "Unhide all Servers/Folders", + onClick: _ => { + BDFDB.ModalUtils.confirm(this, "Are you sure you want to unhide all Servers and Folders?", _ => { + BDFDB.DataUtils.save([], this, "hidden"); + BDFDB.PatchUtils.forceAllUpdates(this); + }); + }, + children: BDFDB.LanguageUtils.LanguageStrings.RESET + })); + + return settingsItems; + } + }); } onGuildContextMenu (e) { @@ -185,6 +209,7 @@ module.exports = (_ => { } handleGuilds (returnvalue) { + if (this.settings.general.onlyHideInStream && !BDFDB.LibraryModules.StreamerModeStore.enabled) return; let hiddenEles = BDFDB.DataUtils.load(this, "hidden"); let hiddenGuildIds = hiddenEles.servers || []; let hiddenFolderIds = hiddenEles.folders || [];