UBR v1.0.9
This commit is contained in:
parent
e1ecad65d7
commit
cd113940e5
|
@ -1,4 +1,7 @@
|
||||||
# [UnreadBadgesRedux](https://1lighty.github.io/BetterDiscordStuff/?plugin=UnreadBadgesRedux "UnreadBadgesRedux") Changelog
|
# [UnreadBadgesRedux](https://1lighty.github.io/BetterDiscordStuff/?plugin=UnreadBadgesRedux "UnreadBadgesRedux") Changelog
|
||||||
|
### 1.0.9
|
||||||
|
- Fixed not working on channels.
|
||||||
|
|
||||||
### 1.0.8
|
### 1.0.8
|
||||||
- Fixed not working on channels.
|
- Fixed not working on channels.
|
||||||
|
|
||||||
|
|
|
@ -2,24 +2,24 @@
|
||||||
/*@cc_on
|
/*@cc_on
|
||||||
@if (@_jscript)
|
@if (@_jscript)
|
||||||
|
|
||||||
// Offer to self-install for clueless users that try to run this directly.
|
// Offer to self-install for clueless users that try to run this directly.
|
||||||
var shell = WScript.CreateObject('WScript.Shell');
|
var shell = WScript.CreateObject('WScript.Shell');
|
||||||
var fs = new ActiveXObject('Scripting.FileSystemObject');
|
var fs = new ActiveXObject('Scripting.FileSystemObject');
|
||||||
var pathPlugins = shell.ExpandEnvironmentStrings('%APPDATA%\\BetterDiscord\\plugins');
|
var pathPlugins = shell.ExpandEnvironmentStrings('%APPDATA%\\BetterDiscord\\plugins');
|
||||||
var pathSelf = WScript.ScriptFullName;
|
var pathSelf = WScript.ScriptFullName;
|
||||||
// Put the user at ease by addressing them in the first person
|
// Put the user at ease by addressing them in the first person
|
||||||
shell.Popup('It looks like you\'ve mistakenly tried to run me directly. \n(Don\'t do that!)', 0, 'I\'m a plugin for BetterDiscord', 0x30);
|
shell.Popup('It looks like you\'ve mistakenly tried to run me directly. \n(Don\'t do that!)', 0, 'I\'m a plugin for BetterDiscord', 0x30);
|
||||||
if (fs.GetParentFolderName(pathSelf) === fs.GetAbsolutePathName(pathPlugins)) {
|
if (fs.GetParentFolderName(pathSelf) === fs.GetAbsolutePathName(pathPlugins)) {
|
||||||
shell.Popup('I\'m in the correct folder already.\nJust go to settings, plugins and enable me.', 0, 'I\'m already installed', 0x40);
|
shell.Popup('I\'m in the correct folder already.\nJust go to settings, plugins and enable me.', 0, 'I\'m already installed', 0x40);
|
||||||
} else if (!fs.FolderExists(pathPlugins)) {
|
} else if (!fs.FolderExists(pathPlugins)) {
|
||||||
shell.Popup('I can\'t find the BetterDiscord plugins folder.\nAre you sure it\'s even installed?', 0, 'Can\'t install myself', 0x10);
|
shell.Popup('I can\'t find the BetterDiscord plugins folder.\nAre you sure it\'s even installed?', 0, 'Can\'t install myself', 0x10);
|
||||||
} else if (shell.Popup('Should I copy myself to BetterDiscord\'s plugins folder for you?', 0, 'Do you need some help?', 0x34) === 6) {
|
} else if (shell.Popup('Should I copy myself to BetterDiscord\'s plugins folder for you?', 0, 'Do you need some help?', 0x34) === 6) {
|
||||||
fs.CopyFile(pathSelf, fs.BuildPath(pathPlugins, fs.GetFileName(pathSelf)), true);
|
fs.CopyFile(pathSelf, fs.BuildPath(pathPlugins, fs.GetFileName(pathSelf)), true);
|
||||||
// Show the user where to put plugins in the future
|
// Show the user where to put plugins in the future
|
||||||
shell.Exec('explorer ' + pathPlugins);
|
shell.Exec('explorer ' + pathPlugins);
|
||||||
shell.Popup('I\'m installed!\nJust go to settings, plugins and enable me!', 0, 'Successfully installed', 0x40);
|
shell.Popup('I\'m installed!\nJust go to settings, plugins and enable me!', 0, 'Successfully installed', 0x40);
|
||||||
}
|
}
|
||||||
WScript.Quit();
|
WScript.Quit();
|
||||||
|
|
||||||
@else@*/
|
@else@*/
|
||||||
/*
|
/*
|
||||||
|
@ -41,7 +41,7 @@ module.exports = (() => {
|
||||||
twitter_username: ''
|
twitter_username: ''
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
version: '1.0.8',
|
version: '1.0.9',
|
||||||
description: 'Adds a number badge to server icons and channels.',
|
description: 'Adds a number badge to server icons and channels.',
|
||||||
github: 'https://github.com/1Lighty',
|
github: 'https://github.com/1Lighty',
|
||||||
github_raw: 'https://raw.githubusercontent.com/1Lighty/BetterDiscordPlugins/master/Plugins/UnreadBadgesRedux/UnreadBadgesRedux.plugin.js'
|
github_raw: 'https://raw.githubusercontent.com/1Lighty/BetterDiscordPlugins/master/Plugins/UnreadBadgesRedux/UnreadBadgesRedux.plugin.js'
|
||||||
|
@ -50,7 +50,7 @@ module.exports = (() => {
|
||||||
{
|
{
|
||||||
title: 'fixed',
|
title: 'fixed',
|
||||||
type: 'fixed',
|
type: 'fixed',
|
||||||
items: ['Fixed not working on channels.']
|
items: ['Fixed not working on channels, again.']
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
defaultConfig: [
|
defaultConfig: [
|
||||||
|
@ -246,12 +246,12 @@ module.exports = (() => {
|
||||||
XenoLib.Notifications.error(`[**${this.name}**] Failed to start! Please update it, press CTRL + R, or ${GuildStore.getGuild(XenoLib.supportServerId) ? 'go to <#639665366380838924>' : '[join my support server](https://discord.gg/NYvWdN5)'} for further assistance.`, { timeout: 0 });
|
XenoLib.Notifications.error(`[**${this.name}**] Failed to start! Please update it, press CTRL + R, or ${GuildStore.getGuild(XenoLib.supportServerId) ? 'go to <#639665366380838924>' : '[join my support server](https://discord.gg/NYvWdN5)'} for further assistance.`, { timeout: 0 });
|
||||||
try {
|
try {
|
||||||
this.onStop();
|
this.onStop();
|
||||||
} catch (e) {}
|
} catch (e) { }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
ModalStack.popWithKey(`${this.name}_DEP_MODAL`);
|
ModalStack.popWithKey(`${this.name}_DEP_MODAL`);
|
||||||
} catch (e) {}
|
} catch (e) { }
|
||||||
}
|
}
|
||||||
onStart() {
|
onStart() {
|
||||||
this.promises = { state: { cancelled: false } };
|
this.promises = { state: { cancelled: false } };
|
||||||
|
@ -311,13 +311,10 @@ module.exports = (() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
async patchChannelItem(promiseState) {
|
async patchChannelItem(promiseState) {
|
||||||
const selector = `.${XenoLib.getSingleClass('modeUnread wrapper', true)}`;
|
const TextChannel = await ReactComponents.getComponentByName('TextChannel', `.${XenoLib.getSingleClass('mentionsBadge containerDefault')}`);
|
||||||
const ChannelItem = await ReactComponents.getComponentByName('ChannelItem', selector);
|
|
||||||
if (!ChannelItem.selector) ChannelItem.selector = selector;
|
|
||||||
if (promiseState.cancelled) return;
|
if (promiseState.cancelled) return;
|
||||||
const settings = this.settings;
|
const settings = this.settings;
|
||||||
const MentionsBadgeClassname = XenoLib.getClass('iconVisibility mentionsBadge');
|
const MentionsBadgeClassname = XenoLib.getClass('iconVisibility mentionsBadge');
|
||||||
const IconsChildren = XenoLib.getClass('modeMuted children');
|
|
||||||
function UnreadBadge(e) {
|
function UnreadBadge(e) {
|
||||||
const unreadCount = StoresModule.useStateFromStores([UnreadStore], () => {
|
const unreadCount = StoresModule.useStateFromStores([UnreadStore], () => {
|
||||||
if ((e.muted && !settings.misc.mutedChannels) || !settings.misc.channels) return 0;
|
if ((e.muted && !settings.misc.mutedChannels) || !settings.misc.channels) return 0;
|
||||||
|
@ -334,30 +331,13 @@ module.exports = (() => {
|
||||||
BadgesModule.NumberBadge({ count: unreadCount, color: e.muted ? ColorConverter.darkenColor(settings.misc.backgroundColor, settings.misc.mutedChannelBadgeDarkness * 100) : settings.misc.backgroundColor, style: { color: e.muted ? ColorConverter.darkenColor(settings.misc.textColor, settings.misc.mutedChannelBadgeDarkness * 100) : settings.misc.textColor } })
|
BadgesModule.NumberBadge({ count: unreadCount, color: e.muted ? ColorConverter.darkenColor(settings.misc.backgroundColor, settings.misc.mutedChannelBadgeDarkness * 100) : settings.misc.backgroundColor, style: { color: e.muted ? ColorConverter.darkenColor(settings.misc.textColor, settings.misc.mutedChannelBadgeDarkness * 100) : settings.misc.textColor } })
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Patcher.after(ChannelItem.component.prototype, 'renderIcons', (_this, args, ret) => {
|
Patcher.after(TextChannel.component.prototype, 'render', (_this, _, ret) => {
|
||||||
|
const props = Utilities.findInReactTree(ret, e => e && Array.isArray(e.children) && e.children.find(e => e && e.type && e.type.displayName === 'ConnectedEditButton'));
|
||||||
|
if (!props || !props.children) return;
|
||||||
const badge = React.createElement(UnreadBadge, { channelId: _this.props.channel.id, muted: _this.props.muted && !_this.props.selected });
|
const badge = React.createElement(UnreadBadge, { channelId: _this.props.channel.id, muted: _this.props.muted && !_this.props.selected });
|
||||||
if (!ret) {
|
props.children.splice(this.settings.misc.channelsDisplayOnLeft ? 0 : 2, 0, badge);
|
||||||
return React.createElement(
|
|
||||||
'div',
|
|
||||||
{
|
|
||||||
onClick: e => e.stopPropagation(),
|
|
||||||
className: IconsChildren
|
|
||||||
},
|
|
||||||
badge
|
|
||||||
);
|
|
||||||
}
|
|
||||||
/* children is a refernce to the children prop within the component, which is bad
|
|
||||||
so appending it without slicing first would append it to the components props
|
|
||||||
children array
|
|
||||||
*/
|
|
||||||
const props = Utilities.findInReactTree(ret, e => Array.isArray(e.children) && e.children.find(e => e && e.type && e.type.displayName === 'ConnectedEditButton'));
|
|
||||||
if (!props) return;
|
|
||||||
const buttons = props.children.slice(0);
|
|
||||||
if (!buttons) return;
|
|
||||||
buttons.splice(this.settings.misc.channelsDisplayOnLeft ? 0 : 2, 0, badge);
|
|
||||||
props.children = buttons;
|
|
||||||
});
|
});
|
||||||
ChannelItem.forceUpdateAll();
|
TextChannel.forceUpdateAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
async patchGuildFolder(promiseState) {
|
async patchGuildFolder(promiseState) {
|
||||||
|
@ -594,7 +574,7 @@ module.exports = (() => {
|
||||||
n = (n, e) => n && n._config && n._config.info && n._config.info.version && i(n._config.info.version, e),
|
n = (n, e) => n && n._config && n._config.info && n._config.info.version && i(n._config.info.version, e),
|
||||||
e = BdApi.getPlugin('ZeresPluginLibrary'),
|
e = BdApi.getPlugin('ZeresPluginLibrary'),
|
||||||
o = BdApi.getPlugin('XenoLib');
|
o = BdApi.getPlugin('XenoLib');
|
||||||
n(e, '1.2.23') && (ZeresPluginLibraryOutdated = !0), n(o, '1.3.26') && (XenoLibOutdated = !0);
|
n(e, '1.2.14') && (ZeresPluginLibraryOutdated = !0), n(o, '1.3.17') && (XenoLibOutdated = !0);
|
||||||
}
|
}
|
||||||
} catch (i) {
|
} catch (i) {
|
||||||
console.error('Error checking if libraries are out of date', i);
|
console.error('Error checking if libraries are out of date', i);
|
||||||
|
@ -602,132 +582,131 @@ module.exports = (() => {
|
||||||
|
|
||||||
return !global.ZeresPluginLibrary || !global.XenoLib || ZeresPluginLibraryOutdated || XenoLibOutdated
|
return !global.ZeresPluginLibrary || !global.XenoLib || ZeresPluginLibraryOutdated || XenoLibOutdated
|
||||||
? class {
|
? class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._XL_PLUGIN = true;
|
this._XL_PLUGIN = true;
|
||||||
this.start = this.load = this.handleMissingLib;
|
this.start = this.load = this.handleMissingLib;
|
||||||
}
|
|
||||||
getName() {
|
|
||||||
return this.name.replace(/\s+/g, '');
|
|
||||||
}
|
|
||||||
getAuthor() {
|
|
||||||
return this.author;
|
|
||||||
}
|
|
||||||
getVersion() {
|
|
||||||
return this.version;
|
|
||||||
}
|
|
||||||
getDescription() {
|
|
||||||
return this.description + ' You are missing libraries for this plugin, please enable the plugin and click Download Now.';
|
|
||||||
}
|
|
||||||
start() {}
|
|
||||||
stop() {}
|
|
||||||
handleMissingLib() {
|
|
||||||
const a = BdApi.findModuleByProps('openModal', 'hasModalOpen');
|
|
||||||
if (a && a.hasModalOpen(`${this.name}_DEP_MODAL`)) return;
|
|
||||||
const b = !global.XenoLib,
|
|
||||||
c = !global.ZeresPluginLibrary,
|
|
||||||
d = (b && c) || ((b || c) && (XenoLibOutdated || ZeresPluginLibraryOutdated)),
|
|
||||||
e = (() => {
|
|
||||||
let a = '';
|
|
||||||
return b || c ? (a += `Missing${XenoLibOutdated || ZeresPluginLibraryOutdated ? ' and outdated' : ''} `) : (XenoLibOutdated || ZeresPluginLibraryOutdated) && (a += `Outdated `), (a += `${d ? 'Libraries' : 'Library'} `), a;
|
|
||||||
})(),
|
|
||||||
f = (() => {
|
|
||||||
let a = `The ${d ? 'libraries' : 'library'} `;
|
|
||||||
return b || XenoLibOutdated ? ((a += 'XenoLib '), (c || ZeresPluginLibraryOutdated) && (a += 'and ZeresPluginLibrary ')) : (c || ZeresPluginLibraryOutdated) && (a += 'ZeresPluginLibrary '), (a += `required for ${this.name} ${d ? 'are' : 'is'} ${b || c ? 'missing' : ''}${XenoLibOutdated || ZeresPluginLibraryOutdated ? (b || c ? ' and/or outdated' : 'outdated') : ''}.`), a;
|
|
||||||
})(),
|
|
||||||
g = BdApi.findModuleByDisplayName('Text'),
|
|
||||||
h = BdApi.findModuleByDisplayName('ConfirmModal'),
|
|
||||||
i = () => BdApi.alert(e, BdApi.React.createElement('span', {}, BdApi.React.createElement('div', {}, f), `Due to a slight mishap however, you'll have to download the libraries yourself. This is not intentional, something went wrong, errors are in console.`, c || ZeresPluginLibraryOutdated ? BdApi.React.createElement('div', {}, BdApi.React.createElement('a', { href: 'https://betterdiscord.net/ghdl?id=2252', target: '_blank' }, 'Click here to download ZeresPluginLibrary')) : null, b || XenoLibOutdated ? BdApi.React.createElement('div', {}, BdApi.React.createElement('a', { href: 'https://betterdiscord.net/ghdl?id=3169', target: '_blank' }, 'Click here to download XenoLib')) : null));
|
|
||||||
if (!a || !h || !g) return console.error(`Missing components:${(a ? '' : ' ModalStack') + (h ? '' : ' ConfirmationModalComponent') + (g ? '' : 'TextElement')}`), i();
|
|
||||||
class j extends BdApi.React.PureComponent {
|
|
||||||
constructor(a) {
|
|
||||||
super(a), (this.state = { hasError: !1 }), (this.componentDidCatch = a => (console.error(`Error in ${this.props.label}, screenshot or copy paste the error above to Lighty for help.`), this.setState({ hasError: !0 }), 'function' == typeof this.props.onError && this.props.onError(a))), (this.render = () => (this.state.hasError ? null : this.props.children));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let k = !1,
|
|
||||||
l = !1;
|
|
||||||
const m = a.openModal(
|
|
||||||
b => {
|
|
||||||
if (l) return null;
|
|
||||||
try {
|
|
||||||
return BdApi.React.createElement(
|
|
||||||
j,
|
|
||||||
{ label: 'missing dependency modal', onError: () => (a.closeModal(m), i()) },
|
|
||||||
BdApi.React.createElement(
|
|
||||||
h,
|
|
||||||
Object.assign(
|
|
||||||
{
|
|
||||||
header: e,
|
|
||||||
children: BdApi.React.createElement(g, { size: g.Sizes.SIZE_16, children: [`${f} Please click Download Now to download ${d ? 'them' : 'it'}.`] }),
|
|
||||||
red: !1,
|
|
||||||
confirmText: 'Download Now',
|
|
||||||
cancelText: 'Cancel',
|
|
||||||
onCancel: b.onClose,
|
|
||||||
onConfirm: () => {
|
|
||||||
if (k) return;
|
|
||||||
k = !0;
|
|
||||||
const b = require('request'),
|
|
||||||
c = require('fs'),
|
|
||||||
d = require('path'),
|
|
||||||
e = BdApi.Plugins && BdApi.Plugins.folder ? BdApi.Plugins.folder : window.ContentManager.pluginsFolder,
|
|
||||||
f = () => {
|
|
||||||
(global.XenoLib && !XenoLibOutdated) ||
|
|
||||||
b('https://raw.githubusercontent.com/1Lighty/BetterDiscordPlugins/master/Plugins/1XenoLib.plugin.js', (b, f, g) => {
|
|
||||||
try {
|
|
||||||
if (b || 200 !== f.statusCode) return a.closeModal(m), i();
|
|
||||||
c.writeFile(d.join(e, '1XenoLib.plugin.js'), g, () => {});
|
|
||||||
} catch (b) {
|
|
||||||
console.error('Fatal error downloading XenoLib', b), a.closeModal(m), i();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
!global.ZeresPluginLibrary || ZeresPluginLibraryOutdated
|
|
||||||
? b('https://raw.githubusercontent.com/rauenzi/BDPluginLibrary/master/release/0PluginLibrary.plugin.js', (b, g, h) => {
|
|
||||||
try {
|
|
||||||
if (b || 200 !== g.statusCode) return a.closeModal(m), i();
|
|
||||||
c.writeFile(d.join(e, '0PluginLibrary.plugin.js'), h, () => {}), f();
|
|
||||||
} catch (b) {
|
|
||||||
console.error('Fatal error downloading ZeresPluginLibrary', b), a.closeModal(m), i();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
: f();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
b,
|
|
||||||
{ onClose: () => {} }
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
} catch (b) {
|
|
||||||
return console.error('There has been an error constructing the modal', b), (l = !0), a.closeModal(m), i(), null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ modalKey: `${this.name}_DEP_MODAL` }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
get [Symbol.toStringTag]() {
|
|
||||||
return 'Plugin';
|
|
||||||
}
|
|
||||||
get name() {
|
|
||||||
return config.info.name;
|
|
||||||
}
|
|
||||||
get short() {
|
|
||||||
let string = '';
|
|
||||||
for (let i = 0, len = config.info.name.length; i < len; i++) {
|
|
||||||
const char = config.info.name[i];
|
|
||||||
if (char === char.toUpperCase()) string += char;
|
|
||||||
}
|
|
||||||
return string;
|
|
||||||
}
|
|
||||||
get author() {
|
|
||||||
return config.info.authors.map(author => author.name).join(', ');
|
|
||||||
}
|
|
||||||
get version() {
|
|
||||||
return config.info.version;
|
|
||||||
}
|
|
||||||
get description() {
|
|
||||||
return config.info.description;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
getName() {
|
||||||
|
return this.name.replace(/\s+/g, '');
|
||||||
|
}
|
||||||
|
getAuthor() {
|
||||||
|
return this.author;
|
||||||
|
}
|
||||||
|
getVersion() {
|
||||||
|
return this.version;
|
||||||
|
}
|
||||||
|
getDescription() {
|
||||||
|
return this.description + ' You are missing libraries for this plugin, please enable the plugin and click Download Now.';
|
||||||
|
}
|
||||||
|
stop() { }
|
||||||
|
handleMissingLib() {
|
||||||
|
const a = BdApi.findModuleByProps('openModal', 'hasModalOpen');
|
||||||
|
if (a && a.hasModalOpen(`${this.name}_DEP_MODAL`)) return;
|
||||||
|
const b = !global.XenoLib,
|
||||||
|
c = !global.ZeresPluginLibrary,
|
||||||
|
d = (b && c) || ((b || c) && (XenoLibOutdated || ZeresPluginLibraryOutdated)),
|
||||||
|
e = (() => {
|
||||||
|
let a = '';
|
||||||
|
return b || c ? (a += `Missing${XenoLibOutdated || ZeresPluginLibraryOutdated ? ' and outdated' : ''} `) : (XenoLibOutdated || ZeresPluginLibraryOutdated) && (a += `Outdated `), (a += `${d ? 'Libraries' : 'Library'} `), a;
|
||||||
|
})(),
|
||||||
|
f = (() => {
|
||||||
|
let a = `The ${d ? 'libraries' : 'library'} `;
|
||||||
|
return b || XenoLibOutdated ? ((a += 'XenoLib '), (c || ZeresPluginLibraryOutdated) && (a += 'and ZeresPluginLibrary ')) : (c || ZeresPluginLibraryOutdated) && (a += 'ZeresPluginLibrary '), (a += `required for ${this.name} ${d ? 'are' : 'is'} ${b || c ? 'missing' : ''}${XenoLibOutdated || ZeresPluginLibraryOutdated ? (b || c ? ' and/or outdated' : 'outdated') : ''}.`), a;
|
||||||
|
})(),
|
||||||
|
g = BdApi.findModuleByDisplayName('Text'),
|
||||||
|
h = BdApi.findModuleByDisplayName('ConfirmModal'),
|
||||||
|
i = () => BdApi.alert(e, BdApi.React.createElement('span', {}, BdApi.React.createElement('div', {}, f), `Due to a slight mishap however, you'll have to download the libraries yourself. This is not intentional, something went wrong, errors are in console.`, c || ZeresPluginLibraryOutdated ? BdApi.React.createElement('div', {}, BdApi.React.createElement('a', { href: 'https://betterdiscord.net/ghdl?id=2252', target: '_blank' }, 'Click here to download ZeresPluginLibrary')) : null, b || XenoLibOutdated ? BdApi.React.createElement('div', {}, BdApi.React.createElement('a', { href: 'https://betterdiscord.net/ghdl?id=3169', target: '_blank' }, 'Click here to download XenoLib')) : null));
|
||||||
|
if (!a || !h || !g) return console.error(`Missing components:${(a ? '' : ' ModalStack') + (h ? '' : ' ConfirmationModalComponent') + (g ? '' : 'TextElement')}`), i();
|
||||||
|
class j extends BdApi.React.PureComponent {
|
||||||
|
constructor(a) {
|
||||||
|
super(a), (this.state = { hasError: !1 }), (this.componentDidCatch = a => (console.error(`Error in ${this.props.label}, screenshot or copy paste the error above to Lighty for help.`), this.setState({ hasError: !0 }), 'function' == typeof this.props.onError && this.props.onError(a))), (this.render = () => (this.state.hasError ? null : this.props.children));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let k = !1,
|
||||||
|
l = !1;
|
||||||
|
const m = a.openModal(
|
||||||
|
b => {
|
||||||
|
if (l) return null;
|
||||||
|
try {
|
||||||
|
return BdApi.React.createElement(
|
||||||
|
j,
|
||||||
|
{ label: 'missing dependency modal', onError: () => (a.closeModal(m), i()) },
|
||||||
|
BdApi.React.createElement(
|
||||||
|
h,
|
||||||
|
Object.assign(
|
||||||
|
{
|
||||||
|
header: e,
|
||||||
|
children: BdApi.React.createElement(g, { size: g.Sizes.SIZE_16, children: [`${f} Please click Download Now to download ${d ? 'them' : 'it'}.`] }),
|
||||||
|
red: !1,
|
||||||
|
confirmText: 'Download Now',
|
||||||
|
cancelText: 'Cancel',
|
||||||
|
onCancel: b.onClose,
|
||||||
|
onConfirm: () => {
|
||||||
|
if (k) return;
|
||||||
|
k = !0;
|
||||||
|
const b = require('request'),
|
||||||
|
c = require('fs'),
|
||||||
|
d = require('path'),
|
||||||
|
e = BdApi.Plugins && BdApi.Plugins.folder ? BdApi.Plugins.folder : window.ContentManager.pluginsFolder,
|
||||||
|
f = () => {
|
||||||
|
(global.XenoLib && !XenoLibOutdated) ||
|
||||||
|
b('https://raw.githubusercontent.com/1Lighty/BetterDiscordPlugins/master/Plugins/1XenoLib.plugin.js', (b, f, g) => {
|
||||||
|
try {
|
||||||
|
if (b || 200 !== f.statusCode) return a.closeModal(m), i();
|
||||||
|
c.writeFile(d.join(e, '1XenoLib.plugin.js'), g, () => { });
|
||||||
|
} catch (b) {
|
||||||
|
console.error('Fatal error downloading XenoLib', b), a.closeModal(m), i();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
!global.ZeresPluginLibrary || ZeresPluginLibraryOutdated
|
||||||
|
? b('https://raw.githubusercontent.com/rauenzi/BDPluginLibrary/master/release/0PluginLibrary.plugin.js', (b, g, h) => {
|
||||||
|
try {
|
||||||
|
if (b || 200 !== g.statusCode) return a.closeModal(m), i();
|
||||||
|
c.writeFile(d.join(e, '0PluginLibrary.plugin.js'), h, () => { }), f();
|
||||||
|
} catch (b) {
|
||||||
|
console.error('Fatal error downloading ZeresPluginLibrary', b), a.closeModal(m), i();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
: f();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
b,
|
||||||
|
{ onClose: () => { } }
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} catch (b) {
|
||||||
|
return console.error('There has been an error constructing the modal', b), (l = !0), a.closeModal(m), i(), null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ modalKey: `${this.name}_DEP_MODAL` }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
get [Symbol.toStringTag]() {
|
||||||
|
return 'Plugin';
|
||||||
|
}
|
||||||
|
get name() {
|
||||||
|
return config.info.name;
|
||||||
|
}
|
||||||
|
get short() {
|
||||||
|
let string = '';
|
||||||
|
for (let i = 0, len = config.info.name.length; i < len; i++) {
|
||||||
|
const char = config.info.name[i];
|
||||||
|
if (char === char.toUpperCase()) string += char;
|
||||||
|
}
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
get author() {
|
||||||
|
return config.info.authors.map(author => author.name).join(', ');
|
||||||
|
}
|
||||||
|
get version() {
|
||||||
|
return config.info.version;
|
||||||
|
}
|
||||||
|
get description() {
|
||||||
|
return config.info.description;
|
||||||
|
}
|
||||||
|
}
|
||||||
: buildPlugin(global.ZeresPluginLibrary.buildPlugin(config));
|
: buildPlugin(global.ZeresPluginLibrary.buildPlugin(config));
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue