]> git.lizzy.rs Git - dragonirc.git/blob - input.lua
Create LICENSE
[dragonirc.git] / input.lua
1 cutie.input:addEventListener("input", function(evt)
2         dragonirc.input(evt.data.input)
3 end)
4
5 function dragonirc.input(input, raw)
6         if not raw and not dragonirc:dispatchEvent(Event("input", {input = input})) then
7                 return
8         end
9
10         if input:sub(1, 1) == "/" then
11                 dragonirc.command(input:sub(2, #input):split(" "), false)
12         else
13                 dragonirc.message(input, false)
14         end
15 end
16
17 function dragonirc.command(args, raw)
18         local cmd = table.remove(args, 1):lower()
19
20         if not raw and not dragonirc:dispatchEvent(Event("command", {cmd = cmd, args = args})) then
21                 return
22         end
23
24         if dragonirc:dispatchEvent(Event("command." .. cmd, args)) then
25                 dragonirc.add_line(cutie.bold
26                         .. cutie.color(dragonirc.config.colors.error)
27                         .. "Invalid command: /" .. cmd)
28         end
29 end
30
31 function dragonirc.message(msg, raw)
32         if not raw and not dragonirc:dispatchEvent(Event("message", {msg = msg})) then
33                 return
34         end
35
36         dragonirc.add_line(cutie.bold .. "<user> " .. cutie.no_effects .. msg)
37 end
38
39 function dragonirc.register_command(cmd, func)
40         dragonirc:addEventListener("command." .. cmd, function(evt)
41                 evt:preventDefault()
42                 func(table.unpack(evt.data))
43         end)
44 end