簡體   English   中英

discord.js v12 檢查通道是否存在

[英]discord.js v12 check if channel exists

我在 discord.js 上編寫自己的票務機器人。 我需要檢查公會是否有頻道(按名稱)。 這是一小段代碼:

if (userTickets.has(user.id) || reaction.message.guild.channels.cache.???(c => c.name === user.username.toLowerCase() + 's-ticket')) {
     user.send("You already have a ticket!");
     return;
}

我嘗試了以下方法:

reaction.message.guild.channels.cache.find(c => c.name === user.username.toLowerCase() + 's-ticket')
reaction.message.guild.channels.cache.has(c => c.name === user.username.toLowerCase() + 's-ticket')
reaction.message.guild.channels.cache.has(user.username.toLowerCase() + 's-ticket')

但沒有任何幫助

解決方案:正如@Chiitoi所建議的那樣,在這種情況下,最好使用some() function。 此外, user.username返回帶有空格和特殊字符的字符串,因此您需要對其進行解析。

這段代碼對我有用:

if (userTickets.has(user.id) || reaction.message.guild.channels.cache.some((channel) => channel.name === username.replace(/[^a-zA-Z0-9-]/ig, "") + 's-ticket')) {
     user.send("You already have a ticket!");
     return;
}

我認為some() 方法在這里可能很好。 user.username返回什么? 我想知道返回的值是否有任何特殊或唯一字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM