首页 > 解决方案 > 为什么“bulkDelete()”在我的机器人命令中不起作用?

问题描述

我目前正在尝试在 lua 中编写 Discord 机器人,但遇到了一些困难。我正在尝试为我的机器人创建一个批量删除命令,但它似乎不起作用,并且在键入命令时只返回“400 - 错误请求”。难道我做错了什么?我已经尝试过message.channel:bulkDelete(3),它仍然无法正常工作。(我对在 lua 中编写 Discord 机器人非常陌生。)

代码:

local discordia = require('discordia')
local client = discordia.Client()

local prefix = "+"
local adminid = 645671868728082432

client:on("ready", function() -- bot is ready
    print("Logged in")
end)

client:on("messageCreate", function(message)
    local content = message.content
    local member = message.member
    local author = message.author
    local memberid = member.id
    local args = content:split(" ")

    if args[1] == prefix.. "delete" then
        if not member:hasRole(adminid) then
            message:reply("<@" ..author.id.. ">**, you do not have permission to use this command.**")
            return
        end
        message.guild:getChannel(message.channel.id):bulkDelete(3)
    end
end)

标签: luadiscordbotsluvit

解决方案


因为此方法需要一个 MessageID 可解析对象表,例如 Message 对象本身或其 ID 作为字符串。

在此处阅读文档:https ://github.com/SinisterRectus/Discordia/wiki/GuildTextChannel#bulkdeletemessages


推荐阅读