Update EditServers.plugin.js

This commit is contained in:
Mirco Wittrien 2020-06-08 20:55:34 +02:00
parent 213ed9e962
commit 7e6edd76e5
1 changed files with 31 additions and 25 deletions

View File

@ -1,6 +1,8 @@
//META{"name":"EditServers","authorId":"278543574059057154","invite":"Jx3TjNS","donate":"https://www.paypal.me/MircoWittrien","patreon":"https://www.patreon.com/MircoWittrien","website":"https://github.com/mwittrien/BetterDiscordAddons/tree/master/Plugins/EditServers","source":"https://raw.githubusercontent.com/mwittrien/BetterDiscordAddons/master/Plugins/EditServers/EditServers.plugin.js"}*//
var EditServers = (_ => {
var changedGuilds = {}, settings = {};
return class EditServers {
getName () {return "EditServers";}
@ -78,7 +80,7 @@ var EditServers = (_ => {
onClick: _ => {
BDFDB.ModalUtils.confirm(this, "Are you sure you want to reset all Servers?", _ => {
BDFDB.DataUtils.remove(this, "servers");
BDFDB.ModuleUtils.forceAllUpdates(this);;
this.forceUpdateAll();;
});
},
children: BDFDB.LanguageUtils.LanguageStrings.RESET
@ -120,7 +122,7 @@ var EditServers = (_ => {
let guild = BDFDB.LibraryModules.GuildStore.getGuild(e.methodArguments[0].id);
if (guild) {
if (e.methodArguments[0].id == "410787888507256842") return guild.banner;
let data = BDFDB.DataUtils.load(this, "servers", guild.id);
let data = changedGuilds[guild.id];
if (data && data.banner && !data.removeBanner) return data.banner;
}
return e.callOriginalMethod();
@ -137,7 +139,7 @@ var EditServers = (_ => {
}
});
BDFDB.ModuleUtils.forceAllUpdates(this);
this.forceUpdateAll();
}
else console.error(`%c[${this.getName()}]%c`, "color: #3a71c1; font-weight: 700;", "", "Fatal Error: Could not load BD functions!");
}
@ -146,7 +148,7 @@ var EditServers = (_ => {
if (window.BDFDB && typeof BDFDB === "object" && BDFDB.loaded) {
this.stopping = true;
BDFDB.ModuleUtils.forceAllUpdates(this);
this.forceUpdateAll();
for (let guildobj of BDFDB.GuildUtils.getAll()) if (guildobj.instance) delete guildobj.instance.props.guild.EditServersCachedBanner;
@ -176,11 +178,11 @@ var EditServers = (_ => {
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
label: this.labels.submenu_resetsettings_text,
id: BDFDB.ContextMenuUtils.createItemId(this.name, "settings-reset"),
disabled: !BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id),
disabled: !changedGuilds[e.instance.props.guild.id],
action: _ => {
BDFDB.ContextMenuUtils.close(e.instance);
BDFDB.DataUtils.remove(this, "servers", e.instance.props.guild.id);
BDFDB.ModuleUtils.forceAllUpdates(this);
this.forceUpdateAll();
}
})
]
@ -191,10 +193,10 @@ var EditServers = (_ => {
}
processGuild (e) {
if (BDFDB.GuildUtils.is(e.instance.props.guild) && BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
if (BDFDB.GuildUtils.is(e.instance.props.guild) && settings.changeInGuildList) {
e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
if (e.returnvalue) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
let data = changedGuilds[e.instance.props.guild.id];
if (data && (data.color3 || data.color4)) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: ["GuildTooltip", "BDFDB_TooltipContainer"]});
if (index > -1) children[index] = BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.TooltipContainer, {
@ -214,12 +216,12 @@ var EditServers = (_ => {
}
processBlobMask (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
if (settings.changeInGuildList) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: "NavItem"});
if (index > -1 && children[index].props.to && children[index].props.to.pathname) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild((children[index].props.to.pathname.split("/channels/")[1] || "").split("/")[0]);
if (guild) {
let data = BDFDB.DataUtils.load(this, "servers", guild.id);
let data = changedGuilds[guild.id];
if (data) {
if (data.shortName) children[index].props.name = data.shortName.split("").join(" ");
else if (data.name && data.ignoreCustomName) children[index].props.name = guild.name;
@ -230,9 +232,9 @@ var EditServers = (_ => {
}
processGuildAcronym (e) {
if (typeof e.returnvalue.props.children == "function" && BDFDB.DataUtils.get(this, "settings", "changeInGuildList")) {
if (typeof e.returnvalue.props.children == "function" && settings.changeInGuildList) {
let pathname = BDFDB.ReactUtils.getValue(e.instance, "props.to.pathname");
let data = pathname && BDFDB.DataUtils.load(this, "servers", (pathname.split("/channels/")[1] || "").split("/")[0]);
let data = pathname && changedGuilds[(pathname.split("/channels/")[1] || "").split("/")[0]];
if (data) {
let renderChildren = e.returnvalue.props.children;
e.returnvalue.props.children = (...args) => {
@ -257,7 +259,6 @@ var EditServers = (_ => {
processGuildIconWrapper (e) {
if (BDFDB.GuildUtils.is(e.instance.props.guild)) {
let settings = BDFDB.DataUtils.get(this, "settings");
if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.guildfolderguildicon) > -1) e.instance.props.guild = this.getGuildData(e.instance.props.guild.id, settings.changeInGuildList);
else if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.listavatar) > -1) e.instance.props.guild = this.getGuildData(e.instance.props.guild.id, settings.changeInMutualGuilds);
else e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
@ -266,9 +267,8 @@ var EditServers = (_ => {
processGuildIcon (e) {
if (BDFDB.GuildUtils.is(e.instance.props.guild) && e.instance.props.style && (!e.instance.props.style.backgroundImage || e.instance.props.style.backgroundImage == "none")) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
let data = changedGuilds[e.instance.props.guild.id];
if (data) {
let settings = BDFDB.DataUtils.get(this, "settings");
if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.guildfolderguildicon) > -1) this.changeGuildIcon(e, data, settings.changeInGuildList);
else if (e.instance.props.className && e.instance.props.className.indexOf(BDFDB.disCN.listavatar) > -1 || BDFDB.ReactUtils.findConstructor(e.instance, "MutualGuild", {up: true})) this.changeGuildIcon(e, data, settings.changeInMutualGuilds);
else this.changeGuildIcon(e, data);
@ -277,25 +277,25 @@ var EditServers = (_ => {
}
processMutualGuilds (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInMutualGuilds")) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i].guild = this.getGuildData(e.instance.props.mutualGuilds[i].guild.id);
if (settings.changeInMutualGuilds) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i].guild = this.getGuildData(e.instance.props.mutualGuilds[i].guild.id);
}
processFriendRow (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInMutualGuilds")) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i] = this.getGuildData(e.instance.props.mutualGuilds[i].id);
if (settings.changeInMutualGuilds) for (let i in e.instance.props.mutualGuilds) e.instance.props.mutualGuilds[i] = this.getGuildData(e.instance.props.mutualGuilds[i].id);
}
processQuickSwitcher (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInQuickSwitcher")) for (let i in e.instance.props.results) if (e.instance.props.results[i].type == "GUILD") e.instance.props.results[i].record = this.getGuildData(e.instance.props.results[i].record.id);
if (settings.changeInQuickSwitcher) for (let i in e.instance.props.results) if (e.instance.props.results[i].type == "GUILD") e.instance.props.results[i].record = this.getGuildData(e.instance.props.results[i].record.id);
}
processQuickSwitchChannelResult (e) {
if (e.instance.props.channel && e.instance.props.channel.guild_id && BDFDB.DataUtils.get(this, "settings", "changeInQuickSwitcher")) {
if (e.instance.props.channel && e.instance.props.channel.guild_id && settings.changeInQuickSwitcher) {
e.instance.props.children.props.children = this.getGuildData(e.instance.props.channel.guild_id).name;
}
}
processMessagesPopout (e) {
if (BDFDB.DataUtils.get(this, "settings", "changeInRecentMentions")) {
if (settings.changeInRecentMentions) {
let [children, index] = BDFDB.ReactUtils.findChildren(e.returnvalue, {name: "VerticalScroller"});
if (index > -1 && children[index].props.children && BDFDB.ArrayUtils.is(children[index].props.children[0])) for (let i in children[index].props.children[0]) {
let divider = children[index].props.children[0][i];
@ -312,7 +312,7 @@ var EditServers = (_ => {
processGuildSidebar (e) {
if (e.instance.props.guild) {
let data = BDFDB.DataUtils.load(this, "servers", e.instance.props.guild.id);
let data = changedGuilds[e.instance.props.guild.id];
if (data) {
if (data.removeBanner) e.instance.props.guild = new BDFDB.DiscordObjects.Guild(Object.assign({}, e.instance.props.guild, {banner: null}));
else if (data.banner) e.instance.props.guild = new BDFDB.DiscordObjects.Guild(Object.assign({}, e.instance.props.guild, {banner: data.banner}));
@ -322,7 +322,6 @@ var EditServers = (_ => {
processGuildHeader (e) {
if (e.instance.props.guild) {
let settings = BDFDB.DataUtils.get(this, "settings");
if (settings.changeInGuildHeader) {
e.instance.props.guild = this.getGuildData(e.instance.props.guild.id);
let oldName = (BDFDB.LibraryModules.GuildStore.getGuild(e.instance.props.guild.id) || {}).name;
@ -340,7 +339,7 @@ var EditServers = (_ => {
getGuildData (guildId, change = true) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild(guildId);
if (!guild) return new BDFDB.DiscordObjects.Guild({});
let data = change && BDFDB.DataUtils.load(this, "servers", guild.id);
let data = change && changedGuilds[guild.id];
if (data) {
let newGuildObject = {}, nativeObject = new BDFDB.DiscordObjects.Guild(guild);
for (let key in nativeObject) newGuildObject[key] = nativeObject[key];
@ -374,11 +373,18 @@ var EditServers = (_ => {
});
}
}
forceUpdateAll () {
changedGuilds = BDFDB.DataUtils.load(this, "servers");
settings = BDFDB.DataUtils.get(this, "settings");
BDFDB.ModuleUtils.forceAllUpdates(this);
}
openGuildSettingsModal (guildId) {
let guild = BDFDB.LibraryModules.GuildStore.getGuild(guildId);
if (!guild) return;
let data = BDFDB.DataUtils.load(this, "servers", guild.id) || {};
let data = changedGuilds[guild.id] || {};
let currentIgnoreCustomNameState = data.ignoreCustomName;
@ -614,7 +620,7 @@ var EditServers = (_ => {
let changed = false;
if (Object.keys(data).every(key => !data[key]) && (changed = true)) BDFDB.DataUtils.remove(this, "servers", guild.id);
else if (!BDFDB.equals(olddata, data) && (changed = true)) BDFDB.DataUtils.save(data, this, "servers", guild.id);
if (changed) BDFDB.ModuleUtils.forceAllUpdates(this);;
if (changed) this.forceUpdateAll();;
}
}]
});