discord.js sudo命令

gmol1639  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(358)

我正在尝试为我的discord机器人制作sudo命令。它的工作方式是,我给它一个用户和一个要执行的命令,它使用 client.emit("message", sudoMessage) 执行该命令。SudMessage将是消息的修改版本,其中成员、作者和内容将被替换。然后,它被我的机器人处理,就好像它是那个用户用那个命令发送的消息一样。
我遇到的问题是,我不能简单地替换 message . 替换 message.content 工作正常,但正在尝试替换 message.member 抛出类似“无法设置只有getter的属性”的错误。
然后我尝试从sudo命令开始,用消息中的数据填充它,如下所示:

if (message.content.startsWith("sudo") && message.author.id === "my id") {
        let hasOwn = Object.prototype.hasOwnProperty;

        let sudo = {
            content: command,
            author: mentioned.user,
            member: mentioned,
            guild: message.guild,
            url: message.url
        };

        for (var key in message) {
            if (!hasOwn.call(sudo, key)) {
                sudo[key] = message[key]
            }
        }

        client.emit("message", sudo)
    }

然而,正如你们所看到的,我必须手动填写帮会和url,就像这些方面一样 message (和其他许多属性一样)没有被复制——只有一些属性实际应用于 sudo . 这个方法似乎需要我手动从中复制大量属性 message 转到 sudo ,这不是我想做的。我怎样才能建立一个 sudo 具有特殊内容、作者和成员的消息对象,同时自动用实际消息中的数据填充其他所有内容?

yv5phkfx

yv5phkfx1#

没关系,我已经弄明白了。我只是需要做一些类似的事情

Object.defineProperty(message, "member", {
            value: mentioned
        });

希望将来有人能从中得到帮助。

相关问题