30 lines
No EOL
1 KiB
JavaScript
30 lines
No EOL
1 KiB
JavaScript
import fetch from "node-fetch";
|
|
import Command from "../../classes/command.js";
|
|
|
|
class DonateCommand extends Command {
|
|
async run() {
|
|
this.client.sendChannelTyping(this.message.channel.id);
|
|
let prefix = "";
|
|
const controller = new AbortController(); // eslint-disable-line no-undef
|
|
const timeout = setTimeout(() => {
|
|
controller.abort();
|
|
}, 5000);
|
|
try {
|
|
const patrons = await fetch("https://projectlounge.pw/patrons", { signal: controller.signal }).then(data => data.json());
|
|
clearTimeout(timeout);
|
|
prefix = "Thanks to the following patrons for their support:\n";
|
|
for (const patron of patrons) {
|
|
prefix += `**- ${patron}**\n`;
|
|
}
|
|
prefix += "\n";
|
|
} catch (e) {
|
|
// no-op
|
|
}
|
|
return `${prefix}Like esmBot? Consider supporting the developer on Patreon to help keep it running! https://patreon.com/TheEssem`;
|
|
}
|
|
|
|
static description = "Learn more about how you can support esmBot's development";
|
|
static aliases = ["support", "patreon", "patrons"];
|
|
}
|
|
|
|
export default DonateCommand; |