Discord.js Авторольная реакция ничего не делает

#node.js #discord.js

#node.js #discord.js

Вопрос:

моя маленькая проблема — следующая :

Когда я реагирую на сообщение, мой бот ничего не делает: D и это не цели.

Мои события :

 module.exports = async(client, messageReaction, user) => {
  const message = messageReaction.message;
  const member = message.guild.members.cache.get(user.id);
  const emoji = messageReaction.emoji.name;
  const channel = message.guild.channels.cache.find(c => c.id === '739163072064651296');

  const lol = message.guild.roles.cache.get("763104201588473896"); //id role lol
  const wz = message.guild.roles.cache.get("763104236119785584"); //id role wz

  if (["lol", "wz"].includes(emoji) amp;amp; message.channel.id === channel.id) {// lol = emoji name and wz too
    switch (emoji) {
      case "lol":
        member.roles.add(lol);
        message.channel.send('test')
        break;
      case "wz":
        member.roles.add(wz);
        message.channel.send('test')
        break;
    };
  };
};
  

Мой обработчик событий :

 fs.readdir("./Events/",(error , f) => {
  if(error) console.log(error);
  console.log(`${f.length} events chargés`);

  f.forEach((f) => {
    const events = require(`./Events/${f}`);
    const event = f.split(".")[0];

    client.on(event, events.bind(null, client));    
  });
});
  

Если кто-то может помочь, это идеально! Спасибо!

Комментарии:

1. Есть ли какие-либо ошибки?

2. Нет… Нулевые ошибки

3. Вместо прослушивания события реакции, чтобы автоматически добавлять роль пользователю, используйте reactionCollector для конкретных сообщений, на которые будут реагировать. Это работает намного лучше, чем ваша текущая система, и, вероятно, устранит проблемы, с которыми вы сталкиваетесь.

Ответ №1:

Я пытался понять, что вы хотели сделать, но я вас совсем не понимаю, вы пытаетесь создать систему автозапуска, которая слушает реакции? Предполагается, что автозапуск должен быть в событии guildMemberAdd, поэтому, если участник присоединяется, вы автоматически добавляете роль, но из предоставленного вами кода похоже, что он прослушивает реакции на какое-то сообщение? Если вы пытаетесь создать систему ролей реакции, следуйте этому. Кроме этого, я не могу вам помочь.

Если вы пытаетесь создать систему автозапуска, следуйте этому

Из того, что я знаю, когда вы добавляете кому-то роль, вам нужно будет выполнить следующее

 member.roles.add("roleid")
  

Но то, что вы делаете, в основном так:

 member.roles.add(message.guild.roles.cache.get("763104201588473896")) //as lol is defined like that
  

Итак, чтобы исправить это, вместо того, чтобы получать объект роли, а затем пытаться добавить роль пользователю, сделайте это и обязательно укажите имя файла «guildMemberAdd.js «:

 module.exports = async(client, member) => {

  const lol = "763104201588473896" //id role lol
  const wz = "763104236119785584"; //id role wz

        member.roles.add(lol);

        member.roles.add(wz);

};
  

Комментарии:

1. Я вижу, в следующий раз я буду яснее в своих желаниях. Но вы мне очень помогли, большое вам спасибо.

2. С удовольствием, я всегда здесь, чтобы помочь!