Bot无缘无故地创建了第二个频道

时间:2020-07-13 08:30:13

标签: discord discord.js

我有一个大错误。一切正常!但是该漫游器会创建两个而不是一个通道。这是为什么?我一直在努力为自己解决。但是我找不到错误。


    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 个答案:

答案 0 :(得分:1)

您最有可能正在运行该机器人的两个实例。

要验证这一点,您可以更改代码(例如在创建频道时修改其发送的消息)。如果两个通道都进行了修改,则我错了xD。如果没有,您需要找到第二个机器人在哪里运行(单独的服务器,最小化的窗口等)。

答案 1 :(得分:0)

if (reaction.message.guild.channels.cache.find(channel => channel.name === channelName)) {
    return user.send("Du hast bereits ein offenes Ticket!")
}

我认为您忘记了channel.name,因为否则它会过滤通道对象,该对象永远不会与字符串相同,并且在整个过程中都不会返回。 (顺便说一句,还有一个offnes的错字)