diff --git a/Library/_res/0BDFDB.data.json b/Library/_res/0BDFDB.data.json
index 704458e48a..5a05a17f7b 100644
--- a/Library/_res/0BDFDB.data.json
+++ b/Library/_res/0BDFDB.data.json
@@ -363,6 +363,7 @@
"AuditLogEntry": {"protos": ["renderRoleUpdate", "renderChangeDetails", "getActionTypeColor", "renderPermissionUpdate"]},
"AuditLogs": {"strings": ["Messages.SEARCH_MEMBERS", "._lastExpandedRef", ".handleActionFilterQueryClear"]},
"AuthWrapper": {"protos": ["renderDefault", "renderMobile", "mobileReplaceWith"]},
+ "Autocomplete": {"strings": [".autocompleteInner", "\"innerClassName\"", "().autocomplete,"]},
"AutocompleteChannelResult": {"strings": [".channel", ".category", ".type===", ".GUILD_CATEGORY?", "().icon"]},
"AutocompleteRoleResult": {"strings": [".hideDescription", ".colorString", ".Messages.MENTION_USERS_WITH_ROLE"]},
"AutocompleteRowContentPrimary": {"strings": [".jsx)(\"div\"", "autocompleteRowContentPrimary"]},
@@ -408,6 +409,7 @@
"FolderIcon": {"strings": [".folderNode", "folderIconWrapper", "closedFolderIconWrapper"]},
"FolderItem": {"strings": [".folderNode", "expandedFolderBackground", "onExpandCollapse"]},
"FolderItemWrapper": {"strings": [".folderNode", "getActiveStreamForUser", "currentActiveVoiceType"]},
+ "FolderSettingsModal": {"strings": [".handleNameChange=", ".handleSubmit", "folderName:"]},
"GuildChannelListContextMenu": {"strings": ["GUILD_ACTIONS_MENU_LABEL", "\"guild-context\",\"aria-label\""]},
"GuildContextMenu": {"strings": ["GUILD_ACTIONS_MENU_LABEL", "navId:\"guild", "GuildContextMenu"]},
"GuildBans": {"strings": [".Messages.BANS_NO_USERS_BANNED", ".Messages.BANS_SEARCH_PLACEHOLDER", ".getSortedBans"]},
@@ -419,6 +421,7 @@
"GuildInvitationRow": {"strings": [".getSelectedInviteMetadata", ".getSuggestedProps", "inviteKey:"]},
"GuildInvites": {"strings": [".NO_INVITES_BODY", ".DISABLE_INVITES", "submitting"]},
"GuildItem": {"strings": [".guildNode", "guildJoinRequestStatus", "lowerBadgeWidth"]},
+ "GuildItemWrapper": {"strings": [".pauseBackground", ".isUnavailable", "guildJoinRequestStatus"]},
"GuildMemberEntry": {"strings": [".renderOwnerHelpIcon(", ".overflowButton", ".roleWrapper"]},
"GuildsBar": {"strings": ["unreadMentionsIndicatorTop", "disableAppDownload", ".GUILD_MEMBER_VERIFICATION"]},
"GuildSidebar": {"strings": ["\"guildsnav\"", "unreadMentionsIndicatorBottom"]},
@@ -455,6 +458,7 @@
"MessageToolbar": {"strings": ["Messages.MORE", "hasDeveloperMode", "openPopoutType"]},
"MessageUsername": {"strings": ["\"username\"", "colorString", "compact", "WINDOW_CENTER"]},
"ModalCarousel": {"strings": [".gotoNext", "currentIndex", "gotoPrevThrottled"]},
+ "ModalHeader": {"strings": [".headerIdIsManaged", ".header,", "Direction.HORIZONTAL"]},
"ModalFooter": {"strings": [".footerSeparator", ".separator", "Direction.HORIZONTAL_REVERSE"]},
"NameTag": {"strings": ["invertColor:", "usernameClass", "discriminatorClass"]},
"NavItem": {"strings": [".selected", ".childWrapper", "fontSize:"]},
diff --git a/Plugins/ServerFolders/ServerFolders.plugin.js b/Plugins/ServerFolders/ServerFolders.plugin.js
index ea667905fd..feef3e3a64 100644
--- a/Plugins/ServerFolders/ServerFolders.plugin.js
+++ b/Plugins/ServerFolders/ServerFolders.plugin.js
@@ -2,7 +2,7 @@
* @name ServerFolders
* @author DevilBro
* @authorId 278543574059057154
- * @version 7.0.3
+ * @version 7.0.4
* @description Changes Discord's Folders, Servers open in a new Container, also adds extra Features to more easily organize, customize and manage your Folders
* @invite Jx3TjNS
* @donate https://www.paypal.me/MircoWittrien
@@ -16,7 +16,7 @@ module.exports = (_ => {
const changeLog = {
};
-
+
return !window.BDFDB_Global || (!window.BDFDB_Global.loaded && !window.BDFDB_Global.started) ? class {
constructor (meta) {for (let key in meta) this[key] = meta[key];}
getName () {return this.name;}
@@ -55,10 +55,12 @@ module.exports = (_ => {
template.content.firstElementChild.querySelector("a").addEventListener("click", this.downloadLibrary);
return template.content.firstElementChild;
}
- } : (([Plugin, BDFDB]) => {
+ } : (([Plugin, BDFDB, meta]) => {
var _this;
var folderStates, folderReads, guildStates, currentGuild, forceCloseTimeout;
var folderConfigs = {}, customIcons = {};
+
+ var GuildItemWrapperComponent;
const folderIcons = [
{openicon: ``,
@@ -88,7 +90,8 @@ module.exports = (_ => {
let folders = Array.from(BDFDB.LibraryStores.ExpandedGuildFolderStore.getExpandedFolders()).map(folderId => BDFDB.LibraryModules.SortedGuildUtils.getGuildFolderById(folderId)).filter(folder => folder && folder.guildIds);
this.props.folders = folders.length || closing ? folders : (this.props.folders || []);
BDFDB.TimeUtils.clear(this._rerenderTimeout);
- if (!folders.length && this.props.folders.length && !closing) this._rerenderTimeout = BDFDB.TimeUtils.timeout(_ => {
+ if (!GuildItemWrapperComponent && folders.length || !folders.length && this.props.folders.length && !closing) this._rerenderTimeout = BDFDB.TimeUtils.timeout(_ => {
+ console.log("rerender");
this.props.closing = true;
BDFDB.ReactUtils.forceUpdate(this);
}, 300);
@@ -101,7 +104,7 @@ module.exports = (_ => {
className: BDFDB.disCN.guildstree,
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Scrollers.None, {
className: BDFDB.disCN.guildsscroller,
- children: this.props.folders.map(folder => {
+ children: GuildItemWrapperComponent && this.props.folders.map(folder => {
let data = _this.getFolderConfig(folder.folderId);
let folderIcon = null;
if (_this.settings.addFolderIcon) {
@@ -132,16 +135,18 @@ module.exports = (_ => {
})
}),
folder.guildIds.map(guildId => {
+ let guildIstance;
return [
- this.draggedGuild == guildId ? null : BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.GuildComponents.Guild, {
- guild: BDFDB.LibraryStores.GuildStore.getGuild(guildId),
- state: true,
- list: true,
- tooltipConfig: Object.assign({
- offset: 12
- }, data.copyTooltipColor && {
- backgroundColor: data.color3,
- fontColor: data.color4,
+ this.draggedGuild == guildId ? null : BDFDB.ReactUtils.createElement("div", {
+ ref: instance => guildIstance = instance,
+ children: BDFDB.ReactUtils.createElement(GuildItemWrapperComponent, {
+ guildNode: {
+ children: [],
+ id: guildId,
+ parentId: folder.folderId,
+ type: "guild",
+ unavailable: false
+ }
}),
onClick: event => {
if (BDFDB.ListenerUtils.isPressed(46)) {
@@ -156,13 +161,13 @@ module.exports = (_ => {
else BDFDB.ReactUtils.forceUpdate(this);
}
},
- onMouseDown: (event, instance) => {
+ onMouseDown: event => {
event = event.nativeEvent || event;
let mouseMove = event2 => {
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
BDFDB.ListenerUtils.stopEvent(event);
this.draggedGuild = guildId;
- let dragPreview = _this.createDragPreview(BDFDB.ReactUtils.findDOMNode(instance).cloneNode(true), event2);
+ let dragPreview = _this.createDragPreview(BDFDB.ReactUtils.findDOMNode(guildIstance).cloneNode(true), event2);
BDFDB.ReactUtils.forceUpdate(this);
document.removeEventListener("mousemove", mouseMove);
document.removeEventListener("mouseup", mouseUp);
@@ -209,13 +214,27 @@ module.exports = (_ => {
this.hoveredGuild != guildId ? null : BDFDB.ReactUtils.createElement("div", {
className: BDFDB.disCNS.guildouter + BDFDB.disCN._serverfoldersguildplaceholder,
children: BDFDB.ReactUtils.createElement("div", {
- children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.GuildComponents.DragPlaceholder, {})
+ children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Mask, {
+ mask: BDFDB.LibraryComponents.Mask.Masks.SQUIRCLE,
+ className: BDFDB.disCN.guildplaceholdermask,
+ width: 48,
+ height: 48,
+ style: {display:"block"},
+ children: BDFDB.ReactUtils.createElement("div", {
+ className: BDFDB.disCN.guildplaceholder
+ })
+ })
})
})
]
})
];
- }).filter(n => n).reduce((r, a) => r.concat(a, _this.settings.general.addSeparators ? BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.GuildComponents.Separator, {}) : null), [0]).slice(1, -1).flat(10).filter(n => n)
+ }).filter(n => n).reduce((r, a) => r.concat(a, _this.settings.general.addSeparators ? BDFDB.ReactUtils.createElement("div", {
+ className: BDFDB.disCN.guildouter,
+ children: BDFDB.ReactUtils.createElement("div", {
+ className: BDFDB.disCN.guildseparator
+ })
+ }) : null), [0]).slice(1, -1).flat(10).filter(n => n)
})
})
});
@@ -388,7 +407,7 @@ module.exports = (_ => {
BDFDB.DataUtils.save(customIcons, _this, "customicons");
this.props.open = null;
this.props.closed = null;
- BDFDB.PatchUtils.forceAllUpdates(_this, "GuildFolderSettingsModal");
+ BDFDB.PatchUtils.forceAllUpdates(_this, "FolderSettingsModal");
BDFDB.NotificationUtils.toast("Custom Icon was added to Selection", {type: "success"});
});
})
@@ -424,15 +443,20 @@ module.exports = (_ => {
}
};
- this.patchedModules = {
- after: {
- AppView: "default",
- GuildsBar: "type",
- FolderItem: "default",
- FolderHeader: "default",
- GuildItem: "type",
- GuildFolderSettingsModal: ["componentDidMount", "render"]
- }
+ this.modulePatches = {
+ before: [
+ "GuildItemWrapper"
+ ],
+ after: [
+ "FolderHeader",
+ "FolderItem",
+ "FolderSettingsModal",
+ "GuildItem",
+ "GuildsBar",
+ ],
+ componentDidMount: [
+ "FolderSettingsModal"
+ ]
};
this.css = `
@@ -661,17 +685,7 @@ module.exports = (_ => {
}
}
- processAppView (e) {
- if (this.settings.general.extraColumn) {
- let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {props: [["className", BDFDB.disCN.guilds]]});
- if (index > -1) children.splice(index + 1, 0, BDFDB.ReactUtils.createElement(FolderGuildContentComponent, {
- isAppFullscreen: BDFDB.LibraryStores.ChannelRTCStore.isFullscreenInContext(),
- themeOverride: BDFDB.LibraryStores.AccessibilityStore.darkSidebar
- }, true));
- }
- }
-
- processGuilds (e) {
+ processGuildsBar (e) {
if (this.settings.general.extraColumn) {
let fullscreen = BDFDB.LibraryStores.ChannelRTCStore.isFullscreenInContext();
if (folderGuildContent && (fullscreen != folderGuildContent.props.isAppFullscreen || e.instance.props.themeOverride != folderGuildContent.props.themeOverride)) {
@@ -697,6 +711,13 @@ module.exports = (_ => {
return bottomIsVisible(...args) || BDFDB.LibraryStores.GuildReadStateStore.getMentionCount(args[0]) == 0;
}, "Error in isVisible of Bottom Bar in Guild List!");
}
+ e.returnvalue = [
+ e.returnvalue,
+ BDFDB.ReactUtils.createElement(FolderGuildContentComponent, {
+ isAppFullscreen: BDFDB.LibraryStores.ChannelRTCStore.isFullscreenInContext(),
+ themeOverride: BDFDB.LibraryStores.AccessibilityStore.darkSidebar
+ }, true)
+ ].flat(10);
}
}
@@ -749,7 +770,7 @@ module.exports = (_ => {
let folderIcons = this.loadAllIcons(), iconType = e.instance.props.expanded ? "openicon" : "closedicon";
let icon = folderIcons[data.iconID] ? (!folderIcons[data.iconID].customID ? this.createBase64SVG(folderIcons[data.iconID][iconType], data.color1, data.color2) : folderIcons[data.iconID][iconType]) : null;
if (icon) {
- let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "FolderIconContent"});
+ let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "FolderIcon"});
if (index > -1) children[index] = BDFDB.ReactUtils.createElement("div", {
className: BDFDB.disCN.guildfoldericonwrapper,
style: {background: `url(${icon}) center/cover no-repeat`}
@@ -759,7 +780,7 @@ module.exports = (_ => {
if (this.settings.general.showCountBadge) {
let mask = BDFDB.ReactUtils.findChild(e.returnvalue, {name: "BlobMask"});
if (mask) {
- mask.props.upperLeftBadgeWidth = BDFDB.LibraryComponents.Badges.getBadgeWidthForValue(e.instance.props.folderNode.children.length);
+ mask.props.upperLeftBadgeWidth = BDFDB.LibraryComponents.Badges.NumberBadge.prototype.getBadgeWidthForValue(e.instance.props.folderNode.children.length);
mask.props.upperLeftBadge = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Badges.NumberBadge, {
count: e.instance.props.folderNode.children.length,
style: {backgroundColor: "var(--bdfdb-blurple)"}
@@ -768,6 +789,10 @@ module.exports = (_ => {
}
}
+ processGuildItemWrapper (e) {
+ if (e.component) GuildItemWrapperComponent = e.component;
+ }
+
processGuildItem (e) {
BDFDB.TimeUtils.clear(forceCloseTimeout);
forceCloseTimeout = BDFDB.TimeUtils.timeout(_ => {
@@ -806,7 +831,7 @@ module.exports = (_ => {
}
}
- processGuildFolderSettingsModal (e) {
+ processFolderSettingsModal (e) {
if (e.node) {
let root = e.node.parentElement.querySelector(BDFDB.dotCN.modal);
BDFDB.DOMUtils.addClass(root, BDFDB.disCN.modalmedium, BDFDB.disCN.modalwrapper, `${this.name}-modal`);
@@ -819,7 +844,7 @@ module.exports = (_ => {
let tabs = {};
- let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: ["ModalHeader", "Header"]});
+ let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "ModalHeader"});
if (index > -1) {
children[index].props.className = BDFDB.DOMUtils.formatClassName(children[index].props.className, BDFDB.disCN.modalheaderhassibling),
children.splice(index + 1, 0, BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Flex, {
@@ -849,7 +874,7 @@ module.exports = (_ => {
})
}));
}
- [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: ["ModalContent", "Content"]});
+ [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {filter: n => n && n.props && n.props.children && n.props.children.type == "form"});
if (index > -1) children[index].props.children = [
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.ModalComponents.ModalTabContent, {
tab: this.labels.modal_tabheader1,
@@ -952,7 +977,7 @@ module.exports = (_ => {
children: BDFDB.ReactUtils.createElement(FolderIconCustomPreviewComponent, {}, true)
})
];
- [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: ["ModalFooter", "Footer"]});
+ [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "ModalFooter"});
if (index > -1) children[index].props.children = [
BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Button, {
children: BDFDB.LanguageUtils.LanguageStrings.SAVE,