aboutsummaryrefslogtreecommitdiff
path: root/src/utils/loading-message.ts
diff options
context:
space:
mode:
authorMax Isom <[email protected]>2022-02-05 16:16:17 -0600
committerGitHub <[email protected]>2022-02-05 16:16:17 -0600
commit56a469a999774c8b8683adeb59b243fdf85b14c9 (patch)
tree2e11f067d6e4caae9301986a0b432825cc65839e /src/utils/loading-message.ts
parente883275d831f3d9bf3a57bd91e0deeeaf4951242 (diff)
downloadmuse-56a469a999774c8b8683adeb59b243fdf85b14c9.tar.xz
muse-56a469a999774c8b8683adeb59b243fdf85b14c9.zip
Migrate to slash commands (#431)
Co-authored-by: Federico fuji97 Rapetti <[email protected]>
Diffstat (limited to 'src/utils/loading-message.ts')
-rw-r--r--src/utils/loading-message.ts81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/utils/loading-message.ts b/src/utils/loading-message.ts
deleted file mode 100644
index 53a2aed..0000000
--- a/src/utils/loading-message.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import {TextChannel, Message, MessageReaction} from 'discord.js';
-import delay from 'delay';
-
-const INITAL_DELAY = 500;
-const PERIOD = 500;
-
-export default class {
- public isStopped = true;
- private readonly channel: TextChannel;
- private readonly text: string;
- private msg!: Message;
-
- constructor(channel: TextChannel, text = 'cows! count \'em') {
- this.channel = channel;
- this.text = text;
- }
-
- async start(): Promise<void> {
- this.msg = await this.channel.send(this.text);
-
- const icons = ['🐮', '🐴', '🐄'];
-
- const reactions: MessageReaction[] = [];
-
- let i = 0;
- let isRemoving = false;
-
- this.isStopped = false;
-
- (async () => {
- await delay(INITAL_DELAY);
-
- while (!this.isStopped) {
- if (reactions.length === icons.length) {
- isRemoving = true;
- }
-
- // eslint-disable-next-line no-await-in-loop
- await delay(PERIOD);
-
- if (isRemoving) {
- const reactionToRemove = reactions.shift();
-
- if (reactionToRemove) {
- // eslint-disable-next-line no-await-in-loop
- await reactionToRemove.users.remove(this.msg.client.user!.id);
- } else {
- isRemoving = false;
- }
- } else {
- if (!this.isStopped) {
- // eslint-disable-next-line no-await-in-loop
- reactions.push(await this.msg.react(icons[i % icons.length]));
- }
-
- i++;
- }
- }
- })();
- }
-
- async stop(str = 'u betcha'): Promise<Message> {
- const wasAlreadyStopped = this.isStopped;
-
- this.isStopped = true;
-
- const editPromise = str ? this.msg.edit(str) : null;
- const reactPromise = str && !wasAlreadyStopped ? (async () => {
- await this.msg.fetch();
- await Promise.all(this.msg.reactions.cache.map(async react => {
- if (react.me) {
- await react.users.remove(this.msg.client.user!.id);
- }
- }));
- })() : null;
-
- await Promise.all([editPromise, reactPromise]);
-
- return this.msg;
- }
-}