node.js - 有没有办法让机器人在 Discord 上创建公会?
问题描述
我正在使用 discord.js V12,我试图让我的机器人创建一个公会,其中有一个频道。但是,我无法修复此错误“TypeError:channels is not iterable”。这是我当前的代码:
client.on("message", async message => {
if(message.content == "?createGuild") {
let guild = await client.guilds.create("Test Guild", {channels: {id: 1, type: "text", name: "invite-channel"}}).catch(err => {console.log(err)});
let guildchannel = await guild.channels.find(cha => cha.name == "invite-channel");
let invite = await guildchannel.createInvite({maxAge: 0, unique: true, reason: "Testing."});
message.channel.send(`https://discord.gg/${invite.code} is the server I created!`);
}
});
谁能帮我吗?
解决方案
Client.guilds
.create
将选项作为第二个参数Object
。Options.channels
接受一个Array
,包含多个对象,每个对象代表一个通道。您正在提供一个Object
代替。
请注意,每个人都可以创建公会,因为您对此命令没有任何限制。
client.on("message", async message => {
if (message.content == "?createGuild") {
const Guild = await client.guilds.create("Test Guild", {
channels: [
{"name": "invite-channel"},
]
});
const GuildChannel = Guild.channels.cache.find(channel => channel.name == "invite-channel");
const Invite = await GuildChannel.createInvite({maxAge: 0, unique: true, reason: "Testing."});
message.channel.send(`Created guild. Here's the invite code: ${Invite.url}`);
};
});
推荐阅读
- ssl - 如何提取 HPKP(HTTP 公钥固定)备份 pin?
- javascript - stop setInterval 只工作一次,为什么?
- javascript - 如何使用java脚本字符串函数将\替换为/
- javascript - 如何在打字稿中扩展工厂方法
- linux - error.log 中 apache2 的问题 apache 2 无法启动?
- spring-boot - Hibernate:如何将自动生成的外键列名从小写更改为大写
- angular - 在 Angular 10 ASP.NET Core 3.1 SPA 应用程序中处理浏览器重新加载的正确方法是什么?
- sql - 如何在 BigQuery 中使用 LAG 和 OVER 计算每周移动平均值的百分比变化?
- sql - proc sql:一步计算基于不同条件的多个汇总统计信息
- ios - 在特定时间段后停止本地通知