Discord 命令无法按预期与类别一起工作

问题描述 投票:0回答:1

我想创建一个命令,让您将频道移动到一个类别中,或者创建一个频道(如果该名称不存在),则在使用它有效的命令时,它只能移动 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);```
discord discord.js
1个回答
0
投票

首先,您不应该向我们展示您的机器人令牌,因此我建议您尽快更改。

其次,您的代码会将消息来源的渠道移动到您选择的类别。

要移动多个通道,您必须使用循环。

例如,如果您想从发送消息的频道的父类别中移动所有频道,您可以执行以下操作:

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.