Discord 使用机器人创建频道

新手上路,请多包涵

我正在制作一个不和谐的机器人,我正在尝试使用文档中 此处 显示的 createChannel 函数。出于某种原因,我收到以下错误:

类型错误:bot.createChannel 不是函数。

我的代码在我向其传递消息的函数中,并且我已经能够在同一函数中创建角色并将用户添加到角色中。只是 createChannel 函数不起作用。以下是代码的相关部分。

 const bot = new Discord.Client();

function makeChannel(message){
    var server = message.guild;
    var name = message.author.username;

    server.createRole(data);
    var newrole = server.roles.find("name", name);
    message.author.addrole(newrole);

    /* The above 3 lines all work perfectly */

    bot.createChannel(server,name);
}

我还尝试了 bot.addChannel 和 bot.ChannelCreate,因为 ChannelCreate.js 是包含此命令代码的文件的名称。此外,我还尝试指定通道类型并分配回调函数,但主要问题是 TypeError 表示这根本不是函数。知道我做错了什么吗?

此外,我计划在将来的某个时候使用 ServerChannel.update(),因此,如果有任何关于在先前的问题得到解决后让它发挥作用的建议,我们将不胜感激。

原文由 Jim Knee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 343
2 个回答

好吧,经过几天的尝试和阅读文档后,我找到了解决方案。我使用的是比我正在阅读的文档更新的 Discord 版本。在较新的版本中,通道是使用服务器中的方法创建的,而不是客户端方法。所以,代码应该是:

 const bot = new Discord.Client();

function makeChannel(message){
    var server = message.guild;
    var name = message.author.username;

    server.createChannel(name, "text");
}

“文本”值是您正在制作的频道类型。可以是文字或语音。

我将 在此处 为遇到此问题的任何其他人发布指向最新文档的链接。

原文由 Jim Knee 发布,翻译遵循 CC BY-SA 3.0 许可协议

答案应该更新文档链接到 GuildChannelManager 现在负责创建新频道。

(文档中的示例)

 // Create a new text channel
guild.channels.create('new-general', { reason: 'Needed a cool new channel' })
  .then(console.log)
  .catch(console.error);

https://discord.js.org/#/docs/main/stable/class/GuildChannelManager

原文由 dziobaczy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题