Update BadgesEverywhere.plugin.js
This commit is contained in:
parent
6c4ca967a9
commit
b37496d9e9
|
@ -67,7 +67,6 @@ module.exports = (_ => {
|
|||
} : (([Plugin, BDFDB]) => {
|
||||
var badgeClasses, requestedUsers = {}, loadedUsers = {}, requestQueue = {queue: [], timeout: null, id: null}, cacheTimeout;
|
||||
var nitroFlag, boostFlag;
|
||||
var settings = {}, badges = {}, indicators = {};
|
||||
|
||||
const miniTypes = ["list", "chat"];
|
||||
|
||||
|
@ -82,12 +81,14 @@ module.exports = (_ => {
|
|||
};
|
||||
|
||||
this.defaults = {
|
||||
settings: {
|
||||
showInPopout: {value: true, description: "Show Badge in User Popout"},
|
||||
showInChat: {value: true, description: "Show Badge in Chat Window"},
|
||||
showInMemberList: {value: true, description: "Show Badge in Member List"},
|
||||
useColoredVersion: {value: true, description: "Use colored version of the Badges for Chat and Members"},
|
||||
showNitroDate: {value: true, description: "Show the subscription date for Nitro/Boost Badges"}
|
||||
general: {
|
||||
useColoredVersion: {value: true, description: "Use colored Version of the Badges for Chat and Members"},
|
||||
showNitroDate: {value: true, description: "Show the Subscription Date for Nitro/Boost Badges"}
|
||||
},
|
||||
places: {
|
||||
popout: {value: true, description: "User Popout"},
|
||||
chat: {value: true, description: "Chat"},
|
||||
memberList: {value: true, description: "Member List"}
|
||||
},
|
||||
badges: {
|
||||
"STAFF": {
|
||||
|
@ -355,37 +356,64 @@ module.exports = (_ => {
|
|||
}
|
||||
|
||||
getSettingsPanel (collapseStates = {}) {
|
||||
let settingsPanel, settingsItems = [], innerItems = [];
|
||||
let settingsPanel;
|
||||
return settingsPanel = BDFDB.PluginUtils.createSettingsPanel(this, {
|
||||
collapseStates: collapseStates,
|
||||
children: _ => {
|
||||
let settingsItems = [];
|
||||
|
||||
for (let key in settings) settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["settings", key],
|
||||
label: this.defaults.settings[key].description,
|
||||
value: settings[key]
|
||||
}));
|
||||
for (let flag in badges) innerItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["badges", flag],
|
||||
label: this.defaults.badges[flag].name + (this.defaults.badges[flag].suffix ? ` ${this.defaults.badges[flag].suffix}` : ""),
|
||||
value: badges[flag],
|
||||
labelChildren: this.createSettingsBadges(flag)
|
||||
}));
|
||||
for (let flag in indicators) innerItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["indicators", flag],
|
||||
label: this.defaults.indicators[flag].name + (this.defaults.indicators[flag].suffix ? ` ${this.defaults.indicators[flag].suffix}` : ""),
|
||||
value: indicators[flag],
|
||||
labelChildren: this.createSettingsBadges(flag)
|
||||
}));
|
||||
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||
title: "Display Badges:",
|
||||
children: innerItems
|
||||
}));
|
||||
|
||||
return settingsPanel = BDFDB.PluginUtils.createSettingsPanel(this, 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.SettingsPanelList, {
|
||||
title: "Show Badges in:",
|
||||
children: Object.keys(this.defaults.places).map(key => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["places", key],
|
||||
label: this.defaults.places[key].description,
|
||||
value: this.settings.places[key]
|
||||
}))
|
||||
}));
|
||||
|
||||
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||
title: "Display Badges:",
|
||||
children: Object.keys(this.defaults.badges).map(flag => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["badges", flag],
|
||||
label: this.defaults.badges[flag].name + (this.defaults.badges[flag].suffix ? ` ${this.defaults.badges[flag].suffix}` : ""),
|
||||
value: this.settings.badges[flag],
|
||||
labelChildren: this.createSettingsBadges(flag)
|
||||
})).concat(Object.keys(this.defaults.indicators).map(flag => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
keys: ["indicators", flag],
|
||||
label: this.defaults.indicators[flag].name + (this.defaults.indicators[flag].suffix ? ` ${this.defaults.indicators[flag].suffix}` : ""),
|
||||
value: this.settings.indicators[flag],
|
||||
labelChildren: this.createSettingsBadges(flag)
|
||||
})))
|
||||
}));
|
||||
|
||||
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
|
||||
type: "Button",
|
||||
color: BDFDB.LibraryComponents.Button.Colors.RED,
|
||||
label: "Reset cached Badge Data",
|
||||
onClick: _ => BDFDB.ModalUtils.confirm(this, "Are you sure you want to reset the Badge Cache? This will force all Badges to rerender.", _ => {
|
||||
BDFDB.DataUtils.remove(this, "badgeCache");
|
||||
this.forceUpdateAll();;
|
||||
}),
|
||||
children: BDFDB.LanguageUtils.LanguageStrings.RESET
|
||||
}));
|
||||
|
||||
return settingsItems;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
onSettingsClosed () {
|
||||
|
@ -395,29 +423,25 @@ module.exports = (_ => {
|
|||
}
|
||||
}
|
||||
|
||||
forceUpdateAll () {
|
||||
settings = BDFDB.DataUtils.get(this, "settings");
|
||||
badges = BDFDB.DataUtils.get(this, "badges");
|
||||
indicators = BDFDB.DataUtils.get(this, "indicators");
|
||||
|
||||
forceUpdateAll () {
|
||||
BDFDB.PatchUtils.forceAllUpdates(this);
|
||||
BDFDB.MessageUtils.rerenderAll();
|
||||
}
|
||||
|
||||
processMemberListItem (e) {
|
||||
if (e.instance.props.user && settings.showInMemberList) {
|
||||
if (e.instance.props.user && this.settings.places.memberList) {
|
||||
this.injectBadges(e.instance, BDFDB.ObjectUtils.get(e.returnvalue, "props.decorators.props.children"), e.instance.props.user, "list");
|
||||
}
|
||||
}
|
||||
|
||||
processMessageUsername (e) {
|
||||
if (e.instance.props.message && settings.showInChat) {
|
||||
if (e.instance.props.message && this.settings.places.chat) {
|
||||
this.injectBadges(e.instance, e.returnvalue.props.children, e.instance.props.message.author, "chat");
|
||||
}
|
||||
}
|
||||
|
||||
processUserPopout (e) {
|
||||
if (e.instance.props.user && settings.showInPopout) {
|
||||
if (e.instance.props.user && this.settings.places.popout) {
|
||||
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: "CustomStatus"});
|
||||
if (index > -1) this.injectBadges(e.instance, children, e.instance.props.user, "popout", e.instance.props.activity && e.instance.props.activity.type != BDFDB.DiscordConstants.ActivityTypes.CUSTOM_STATUS);
|
||||
}
|
||||
|
@ -461,15 +485,15 @@ module.exports = (_ => {
|
|||
|
||||
createBadges (user, type, uncolored) {
|
||||
let renderedBadges = [];
|
||||
for (let flag in badges) if ((loadedUsers[user.id].flags | flag) == loadedUsers[user.id].flags && badges[flag]) {
|
||||
renderedBadges.push(this.createBadge(settings.showNitroDate ? this.getTimeString(user.id, flag) : null, type, flag, flag == boostFlag ? BDFDB.LibraryModules.GuildBoostUtils.getUserLevel(loadedUsers[user.id].premium_guild_since) : null));
|
||||
for (let flag in this.settings.badges) if ((loadedUsers[user.id].flags | flag) == loadedUsers[user.id].flags && this.settings.badges[flag]) {
|
||||
renderedBadges.push(this.createBadge(this.settings.general.showNitroDate ? this.getTimeString(user.id, flag) : null, type, flag, flag == boostFlag ? BDFDB.LibraryModules.GuildBoostUtils.getUserLevel(loadedUsers[user.id].premium_guild_since) : null));
|
||||
}
|
||||
let member = BDFDB.LibraryModules.MemberStore.getMember(BDFDB.LibraryModules.LastGuildStore.getGuildId(), user.id);
|
||||
if (indicators.CURRENT_GUILD_BOOST && member && member.premiumSince) {
|
||||
renderedBadges.push(this.createBadge(settings.showNitroDate ? this.getTimeString(user.id, "CURRENT_GUILD_BOOST") : null, type, "CURRENT_GUILD_BOOST"));
|
||||
if (this.settings.indicators.CURRENT_GUILD_BOOST && member && member.premiumSince) {
|
||||
renderedBadges.push(this.createBadge(this.settings.general.showNitroDate ? this.getTimeString(user.id, "CURRENT_GUILD_BOOST") : null, type, "CURRENT_GUILD_BOOST"));
|
||||
}
|
||||
if (!renderedBadges.length) return null;
|
||||
else return this.createWrapper(renderedBadges, type, uncolored == undefined ? !settings.useColoredVersion : uncolored);
|
||||
else return this.createWrapper(renderedBadges, type, uncolored == undefined ? !this.settings.general.useColoredVersion : uncolored);
|
||||
}
|
||||
|
||||
createBadge (timestring, type, flag, rank) {
|
||||
|
|
Loading…
Reference in New Issue