Discord 使用机器人创建频道
Discord make channel using bot
我正在制作一个 discord 机器人,我正在尝试使用 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(),因此,如果有任何关于在解决上一个问题后让它起作用的建议,我们将不胜感激。
我想你还没有用你的机器人登录。
来自docs:
const Discord = require('discord.js');
var client = new Discord.Client();
client.login('mybot@example.com', 'password', output); // you seem to be missing this
function output(error, token) {
if (error) {
console.log(`There was an error logging in: ${error}`);
return;
} else
console.log(`Logged in. Token: ${token}`);
}
或者,您也可以使用令牌登录。有关示例,请参阅文档。
好的,经过几天的尝试和阅读文档后,我找到了解决方案。我使用的是比我正在阅读的文档更新的 Discord 版本。在较新的版本中,通道是使用服务器中的方法创建的,而不是客户端方法。所以,代码应该是:
const bot = new Discord.Client();
function makeChannel(message){
var server = message.guild;
var name = message.author.username;
server.createChannel(name, "text");
}
"text" 值是您创建的频道类型。可以是文字或语音。
我会 post link 任何遇到此问题的其他人的最新文档 here。
答案应该将文档 link 更新到现在负责创建新频道的 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
@Jim Knee 我认为你的答案是 v11,我是 discord.js 的新手,使用 Visual Studio Code 的自动代码。你可以做所有相同的事情,除了你的事情必须是这个。如果你是穷人,在做@Jim Knee 的回答时遇到错误,这是“你!”的地方!
去掉server.createChannel(name, "text/voice");
并把它带到这个 server.channels.create(name, "text/voice");
希望我至少能帮上忙 ;)
我也是新人
我正在制作一个 discord 机器人,我正在尝试使用 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(),因此,如果有任何关于在解决上一个问题后让它起作用的建议,我们将不胜感激。
我想你还没有用你的机器人登录。
来自docs:
const Discord = require('discord.js');
var client = new Discord.Client();
client.login('mybot@example.com', 'password', output); // you seem to be missing this
function output(error, token) {
if (error) {
console.log(`There was an error logging in: ${error}`);
return;
} else
console.log(`Logged in. Token: ${token}`);
}
或者,您也可以使用令牌登录。有关示例,请参阅文档。
好的,经过几天的尝试和阅读文档后,我找到了解决方案。我使用的是比我正在阅读的文档更新的 Discord 版本。在较新的版本中,通道是使用服务器中的方法创建的,而不是客户端方法。所以,代码应该是:
const bot = new Discord.Client();
function makeChannel(message){
var server = message.guild;
var name = message.author.username;
server.createChannel(name, "text");
}
"text" 值是您创建的频道类型。可以是文字或语音。
我会 post link 任何遇到此问题的其他人的最新文档 here。
答案应该将文档 link 更新到现在负责创建新频道的 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
@Jim Knee 我认为你的答案是 v11,我是 discord.js 的新手,使用 Visual Studio Code 的自动代码。你可以做所有相同的事情,除了你的事情必须是这个。如果你是穷人,在做@Jim Knee 的回答时遇到错误,这是“你!”的地方!
去掉server.createChannel(name, "text/voice");
并把它带到这个 server.channels.create(name, "text/voice");
希望我至少能帮上忙 ;)
我也是新人