You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测频道名称含ticket并实现/close命令关闭工单频道

解决工单频道关闭命令的检测问题

你的代码失效有两个核心问题:

  • 用=== "ticket-"是完全匹配频道名称,但工单频道肯定是ticket-xxx(带后缀)的形式,不会刚好叫ticket-,得改成包含/前缀匹配判断
  • 新版Discord.js中,interaction.guild.channels是频道管理器,必须先读取缓存才能使用find方法

给你两种可行的修正方案:

方案1:检测名称包含"ticket-"

适用于所有带ticket-字符串的工单频道:

// 先获取频道缓存,再用includes判断名称
const channel = interaction.guild.channels.cache.find(channel => channel.name.includes("ticket-"));

方案2:检测名称以"ticket-"开头

更精准,避免误匹配其他包含ticket-的非工单频道:

const channel = interaction.guild.channels.cache.find(channel => channel.name.startsWith("ticket-"));

拿到正确的频道对象后,就可以执行关闭/删除操作了,示例代码:

if (channel) {
  await channel.delete(); // 直接删除频道,也可改为设置权限只读后归档
} else {
  await interaction.reply("当前未找到可关闭的工单频道");
}

内容的提问来源于stack exchange,提问作者zvy5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:01:19