Бот создает второй канал без причины - PullRequest
0 голосов
/ 13 июля 2020

У меня большая ошибка. Все работает отлично! Но бот создает два вместо одного канала. Это почему? Я пытался понять это для себя. Но я не могу найти ошибку.


    if (reaction.message.partial) await reaction.message.fetch(); 
    if (reaction.partial) await reaction.fetch();
    
    if (user.bot) return; 
    if (!reaction.message.guild) return; 
    if (reaction.message.guild.id !== "601109434197868574") return; 

    if (reaction.emoji.name === "?") {
      if (reaction.message.channel.id === "732018576604528640");

      const channelName = `•┇ticket-${user.username}`
      if(reaction.message.guild.channels.cache.find(channel => channel === `•┇ticket-${user.username}`)){
        return user.send("Du hast bereits ein offnes Ticket!")
      }
      reaction.message.guild.channels.create(channelName, {parent: '731947024932667432', topic: `Ticket Owner: ${user}`}).then(c => {
      const everyone = reaction.message.guild.roles.cache.find(role => role.name === '@everyone')
      const sr = reaction.message.guild.roles.cache.find(role => role.name === 'ticketsuppport')
      c.updateOverwrite(sr, {
        SEND_MESSAGES: true,
        VIEW_CHANNEL: true,
      });
      c.updateOverwrite(everyone, {
        SEND_MESSAGES: false,
        VIEW_CHANNEL: false,
      });
      c.updateOverwrite(user, {
        SEND_MESSAGES: true,
        VIEW_CHANNEL: true,
      });

      let GreetEmbed = new Discord.MessageEmbed()
      .setColor(colours.maincolour)
      .setDescription(`> Guten Tag, ${user}!\n> \n> Du hast nun ein Support-Ticket erstellt. Wie können wir dir helfen?\n> \n> \? Ticket schließen | \? Weitere hilfe anfordern`)
      .setFooter(`Ticket erstellt`)
      .setTimestamp()
      c.send(GreetEmbed)

      let ping = c.send(`${user}`).then(message => {
        message.delete(ping)
      })

    })

    }```

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Скорее всего, у вас работает два экземпляра бота.

Чтобы проверить это, вы можете внести изменения в код (например, изменить сообщение, которое он отправляет при создании канала). Если у обоих каналов есть модификация, я ошибаюсь xD. Если нет, вам нужно найти, где работает ваш второй бот (отдельный сервер, свернутое окно и т. Д. c ..).

0 голосов
/ 13 июля 2020
if (reaction.message.guild.channels.cache.find(channel => channel.name === channelName)) {
    return user.send("Du hast bereits ein offenes Ticket!")
}

Я думаю, вы забыли channel.name, потому что в противном случае он фильтрует объект канала, который никогда не будет таким же, как строка, и никогда не вернется. (Кстати: также есть опечатка с offnes)

...