File size: 1,286 Bytes
db1810b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const { Events } = require('discord.js');
const { getFirestore } = require('firebase-admin/firestore');
const { getNumberConverter } = require("../number-converters/get-converter.js");

module.exports = {
  name: Events.MessageCreate,
  async execute(e) {
    if (e.author.bot) return;
    if (e.author.system) return;

    const db = getFirestore();
    const channel = e.channelId;
    const id = `${e.guildId}-${channel}`;
    const doc = db.doc(`channels/${id}`);
    const rawData = await doc.get();
    if (!rawData.exists) return;
    const data = rawData.data();

    const converter = getNumberConverter(data.mode);
    const nextNum = data.num + 1;
    const result = converter.checkNumber(nextNum, e.content);

    if (result === 2) {
      if (data.lastUser === e.author.id) {
        data.num = 0;
        data.lastUser = "";
        await doc.set(data);
        e.react("❌");
        await e.reply("One user can't count twice in a row, restart.");
      } else {
        data.num = nextNum;
        data.lastUser = e.author.id;
        await doc.set(data);
        e.react("βœ…");
      }
    } else if (result === 1) {
      data.num = 0;
      data.lastUser = "";
      await doc.set(data);
      e.react("❌");
      await e.reply("You failed, restart");
    }
  }
}