Discord 如何获取新创建频道的channelid或名称

Discord 如何获取新创建频道的channelid或名称,discord,discord.js,Discord,Discord.js,我的discord机器人有一个创建频道的命令,但我正试图弄清楚如何在创建频道后立即获取频道的id或名称 构成频道的代码行: message.guild.channels.create('ticket'+message.member.displayName,{parent:'744477882730020965'}) 原因是,由于displayname可以包含频道名称中不可能包含的字符,而discord只会自动删除这些字符,因此在某些情况下无法预测频道名称。我可能缺少一个简单的解决方案,并提前感谢

我的discord机器人有一个创建频道的命令,但我正试图弄清楚如何在创建频道后立即获取频道的id或名称

构成频道的代码行:

message.guild.channels.create('ticket'+message.member.displayName,{parent:'744477882730020965'})

原因是,由于displayname可以包含频道名称中不可能包含的字符,而discord只会自动删除这些字符,因此在某些情况下无法预测频道名称。我可能缺少一个简单的解决方案,并提前感谢您的帮助。

该方法返回一个包含刚刚创建的频道的值。您可以使用获取频道

Guild.channels.create(`ticket-${message.member.displayName}){
家长:“744477882730020965”
})。然后(频道=>{
message.channel.send(`我已经创建了通道${channel.name}!`);
}).catch(错误=>{
控制台错误(error);
message.channel.send(`无法创建通道。请检查控制台中的错误。`);
});

如果在
异步函数中创建通道
,可以使用
wait
避免
。然后()
以提高可读性

const Channel=wait Guild.channels.create(`ticket-${message.member.displayName}){
家长:“744477882730020965”
}).catch(错误=>{
控制台错误(error);
message.channel.send(`无法创建通道。请检查控制台中的错误。`);
});

您需要ID做什么?您可以使用then函数编辑频道

试试这个

let role = message.guild.roles.find("name", "@everyone");

message.guild.channels.create('ticket ' + message.member.displayName, { parent: '744477882730020965' }).then(c => {
c.overwritePermissions(role, {
            SEND_MESSAGES: false,
            READ_MESSAGES: false
        });
        c.overwritePermissions(message.author, {
            SEND_MESSAGES: true,
            READ_MESSAGES: true
        });
message.reply(`Application created!`)
c.send(`Wait for support staff`)
}).catch(console.error);