diff --git a/libraries/fake_message.lua b/libraries/fake_message.lua index c0d2e36..96078a9 100644 --- a/libraries/fake_message.lua +++ b/libraries/fake_message.lua @@ -1,7 +1,7 @@ return function(message,overrides) 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, + --[[local fake = {content = message.content, author = message.author, member = message.guild:getMember(message.author.id), channel = message.channel, @@ -40,9 +40,28 @@ return function(message,overrides) message:removeReaction(...) end, emulated = true - } + }]] + fake = {} 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 + }) return fake end diff --git a/libraries/luaqalc b/libraries/luaqalc index 8a1906d..4c79697 160000 --- a/libraries/luaqalc +++ b/libraries/luaqalc @@ -1 +1 @@ -Subproject commit 8a1906df7a402349ff7b083e59cf17223363f59b +Subproject commit 4c796978eb2ca1e54d0ed357820610e09f30e8ef