512mb-bot/libraries/fake_message.lua

68 lines
2.3 KiB
Lua
Raw Normal View History

2021-11-26 16:58:11 +00:00
return function(message,overrides)
2022-05-20 18:20:49 +00:00
assert(type(message) == "table","table expected, got "..type(message))
assert(type(overrides) == "table","table expected for arg#2, got "..type(overrides))
--[[local fake = {content = message.content,
2022-05-20 18:20:49 +00:00
author = message.author,
member = message.guild:getMember(message.author.id),
channel = message.channel,
client = message.client,
guild = message.guild,
delete = function() message:delete() end,
reply = function(thing,...)
message.channel:send(...)
end,
createdAt = message.createdAt,
_parent = message.parent,
parent = message.parent,
id = message.id,
attachment = message.attachment,
attachments = message.attachments,
cleanContent = message.cleanContent,
editedTimestamp = message.editedTimestamp,
embed = message.embed,
embeds = message.embeds,
link = message.link,
mentionedChannels = message.mentionedChannels,
mentionedEmojis = message.mentionedEmojis,
mentionedRoles = message.mentionedRoles,
mentionedUsers = message.mentionedUsers,
nonce = message.nonce,
oldContent = message.oldContent,
pinned = message.pinned,
reactions = message.reactions,
tts = message.tts,
type = message.type,
webhookId = message.webhookId,
addReaction = function(self,...)
message:addReaction(...)
end,
removeReaction = function(self,...)
message:removeReaction(...)
end,
emulated = true
}]]
2022-11-14 21:02:09 +00:00
local fake = {}
2022-05-20 18:20:49 +00:00
for k,v in pairs(overrides) do
fake[k] = v
end
fake = setmetatable(fake, {
__index = function(self,k)
local value = rawget(self,k)
if not value then
value = message[k]
if type(value) == "function" then
return function(x,...)
if not x then error("self expected, got nil") end
return value(message,...)
end
else
return value
end
else
return value
end
end
})
2022-05-20 18:20:49 +00:00
return fake
2021-11-26 16:58:11 +00:00
end