-
Notifications
You must be signed in to change notification settings - Fork 3
/
init.lua
52 lines (44 loc) · 1.48 KB
/
init.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
local discordia = require("discordia")
local discordiaInteractions = require("discordia-interactions")
local rawComponents = require("resolver").rawComponents
local isInstance = discordia.class.isInstance
local resolver = discordiaInteractions.resolver
-- [[ Define the module's classes ]]
local module = {
Component = require('containers/abstract/Component'),
Components = require("containers/Components"),
Button = require("components/Button"),
SelectMenu = require("components/SelectMenu"),
}
-- [[ Patch the following Discordia classes ]]
require("client/Client")
require("containers/abstract/Component")
require("containers/abstract/TextChannel")
require("containers/Message")
-- [[ Patch Discordia's enums to add additional values ]]
do
local enums = require("enums")
local discordiaEnums = discordia.enums
local enum = discordiaEnums.enum
for k, v in pairs(enums) do
discordiaEnums[k] = enum(v)
end
end
-- [[ Patch the module into Discordia as an entry point ]]
for k, v in pairs(module) do
discordia[k] = v
end
-- [[ Wrap resolver.message to make it understand components field ]]
resolver.message_resolvers.components = function(content)
if isInstance(content, module.Components) or isInstance(content, module.Component) then
return {
components = content
}
end
end
resolver.message_wrappers.components = function(content)
if content.components then
content.components = rawComponents(content.components) or content.components
end
end
return module