Quiero usar la palabra clave await en una declaración if pero dice:
await message.guild.channels.create("tickets", { ^^^^^ SyntaxError: await is only valid in async functions and the top level bodies of modules if (message.content.startsWith("n!ticket setup")) { let channel = message.mentions.channels.first() let kate; let modrole = message.mentions.roles; message.guild.channels.cache.forEach(chn => { if (chn.type == "GUILD_CATEGORY" && !kate && chn.name.toLowerCase() == "tickets ") { kate = chn; } }) if (!channel) return message.channel.send({ content: "Du musst einen Kanal angeben wo die Nachricht reingesendet werden soll." }); if (!kate) { await message.guild.channels.create("tickets", { type: "GUILD_CATEGORY", permissionOverwrites: [{ id: message.guild.id, deny: ["VIEW_CHANNEL"] }, { id: bot.user.id, allow: ["VIEW_CHANNEL"] } ] }).then(l => kate = l); } }Cambie su código a algo como a continuación, envuelva todo en una función async . Tiene que envolver su código if en alguna función async para que funcione
async function foo(){ let channels=message.guild.channels.cache for(let i=0;i<channels.length;i++){ if(channels[i].type == "GUILD_CATEGORY" && !kate && channels[i].name.toLowerCase() == "tickets "){ kate = channels[i]; } }) if(!channel) return message.channel.send({content: "Du musst einen Kanal angeben wo die Nachricht reingesendet werden soll."}); if(!kate){ await message.guild.channels.create("tickets", { type:"GUILD_CATEGORY", permissionOverwrites:[ {id:message.guild.id, deny:["VIEW_CHANNEL"]}, {id:bot.user.id,allow:["VIEW_CHANNEL"]} ] }).then(l=>kate=l); }``` }O puede ser que pueda crear una versión asíncrona de forEach a partir del ejemplo Ver esto