如何在discord.js中获取已创建频道的ID



我目前正在为我的机器人制作一个简单的Ticket系统,我想在点击按钮后向我的机器人创建的新频道发送消息。频道创建和其他一切都很好,但我不知道如何从新频道获得频道ID。有人比我知道更多吗?(我使用的是discord.js v14(点击按钮后的事件代码:

const { EmbedBuilder, PermissionsBitField } = require("discord.js")
module.exports = {
data: {
name: 'panelbutton'
},
async execute(interaction, client) {
client.config = require('../../config');
const ticketchannel = interaction.guild.channels.create({
name: `${interaction.user.username}`,
permissionOverwrites: [
{
id: interaction.guild.id,
deny: [PermissionsBitField.Flags.ViewChannel]
},
{
id: interaction.user.id,
allow: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages],
deny: [PermissionsBitField.Flags.UseApplicationCommands]
}
]
});
const wait = new EmbedBuilder()
.setTitle('Created! :white_check_mark:')
.setDescription(`Your Channel is created!`)
.setTimestamp(Date.now())
.setFooter({
text: client.config.bot.footer
});
await interaction.reply({
embeds: [wait], ephemeral: true
});

}
}

interaction.guild.channels.create返回一个Promise解析为具有id属性的GuildChannel对象。

interaction.guild.channels.create之前添加await,您应该能够使用ticketchannel.id访问ID。

您可以使用Promise.Prototype.then((或创建一个变量来定义创建的通道,您已经这样做了。

Promise.Prototype.then():

await interaction.guild.channels.create({
name: `${interaction.user.username}`,
permissionOverwrites: [
{
id: interaction.guild.id,
deny: [PermissionsBitField.Flags.ViewChannel]
},
{
id: interaction.user.id,
allow: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages],
deny: [PermissionsBitField.Flags.UseApplicationCommands]
}
]
}).then(channel => {
const channelID = channel.id
console.log(channelID)
})

创建变量:

const ticketChannel = await interaction.guild.channels.create({
name: `${interaction.user.username}`,
permissionOverwrites: [
{
id: interaction.guild.id,
deny: [PermissionsBitField.Flags.ViewChannel]
},
{
id: interaction.user.id,
allow: [PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages],
deny: [PermissionsBitField.Flags.UseApplicationCommands]
}
]
})
const ticketChannelID = ticketChannel.id

最新更新