我想创建一个命令,让您将频道移动到一个类别中,或者创建一个频道(如果该名称不存在),则在使用它有效的命令时,它只能移动 1 到 1 个类别。我希望它允许我将多个频道移动到一个类别。这是代码:
const { error } = require("console");
const { channel } = require("diagnostics_channel");
const Discord = require("discord.js");
const { create } = require("domain");
const client = new Discord.Client({
intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_MEMBERS", "MESSAGE_CONTENT"],
partials: ["CHANNEL", "MESSAGE"]
});
const token = ("MTE3NzYxNjUxOTIyNDYzNTUzMg.G9glxT.4PR8TfThgM0rPqghyFrZvGVnr4R_R3I8s1FIJw") // your bot token here
client.on('ready', async () => {
console.log(`Client has been initiated! ${client.user.username}`)
});
client.on('messageCreate', async (message) => {
if (message.content.startsWith('!category')) {
const args = message.content.split(' ');
const categoryName = args[1];
let category = message.guild.channels.cache.find(c => c.name === categoryName && c.type === 'GUILD_CATEGORY');
if (!category) {
category = await message.guild.channels.create(categoryName, { type: 'GUILD_CATEGORY' });
message.channel.send("Successful!");
await message.channel.setParent(category.id);
}
}});
client.login(token);```
首先,您不应该向我们展示您的机器人令牌,因此我建议您尽快更改。
其次,您的代码会将消息来源的渠道移动到您选择的类别。
要移动多个通道,您必须使用循环。
例如,如果您想从发送消息的频道的父类别中移动所有频道,您可以执行以下操作:
client.on("messageCreate", async (message) => {
let parentId;
let targetParent = ""; //Add your target category here
parentId = message.channel.parentId;
if (!parentId) {
return;
}
let parent = message.guild.channels.cache.get(parentId);
for (let [key, channel] of parent.children.cache) {
await channel.setParent(targetParent);
}
}