我正在制作一个不和谐的机器人,并且我试图使用文档中显示的here中的createChannel函数。由于某些原因,我得到以下错误:
TypeError: 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(),因此,一旦解决了前面的问题,任何关于如何使其正常工作的建议都将不胜感激。
发布于 2017-04-22 04:59:46
好了,经过几天的尝试和查阅文档,我找到了解决方案。我正在使用比我正在阅读的文档更新的版本。在较新的版本中,通道是使用服务器中的方法创建的,而不是客户端方法。因此,代码应该是:
const bot = new Discord.Client();
function makeChannel(message){
var server = message.guild;
var name = message.author.username;
server.createChannel(name, "text");
}
"text“值是您正在制作的频道的类型。可以是文本或语音。
我将发布一个最新文档的链接,供遇到此问题的其他人使用,here。
发布于 2020-03-22 09:09:01
答案应该更新文档链接,链接到现在负责创建新通道的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
发布于 2020-07-29 12:37:02
@Jim Knee的我想你的答案是v11,我是discord.js的新手,使用的是Visual Studio code的自动代码。你可以做所有相同的事情,除了你的东西必须是这个。如果你是穷人,在做@Jim Knee的回答时遇到错误,这里是“你!”
去掉server.createChannel(name, "text/voice");
并把它放到这个server.channels.create(name, "text/voice");
上
希望我至少能帮上忙;)
我也是个新手
https://stackoverflow.com/questions/43514065
复制相似问题