summaryrefslogtreecommitdiff
path: root/luamods/cmd.lua
diff options
context:
space:
mode:
Diffstat (limited to 'luamods/cmd.lua')
-rw-r--r--luamods/cmd.lua28
1 files changed, 18 insertions, 10 deletions
diff --git a/luamods/cmd.lua b/luamods/cmd.lua
index dca7913..4826f5a 100644
--- a/luamods/cmd.lua
+++ b/luamods/cmd.lua
@@ -154,7 +154,7 @@ The `!cmd` command gives the ability to create their own chat commands.
table.remove(parts, 1)
local cmds = db_query(
- 'SELECT id, name, array_to_json(aliases) as aliases, message FROM custom_commands WHERE name = $1 AND channel_id = $2',
+ 'SELECT id, name, message FROM custom_commands WHERE name = $1 AND channel_id = $2',
{ name, request.channel.id })
if scid == "new" then
@@ -222,11 +222,11 @@ The `!cmd` command gives the ability to create their own chat commands.
local new_alias = parts[1]
- local cmd_alias = db_query('SELECT name FROM custom_commands WHERE $1 = ANY(aliases) AND channel_id = $2',
- { new_alias, request.channel.id })
+ local cmd_alias = db_query('SELECT name FROM custom_command_aliases WHERE name = $1 AND command_id = $2',
+ { new_alias, cmd.id })
if #cmd_alias > 0 then
- return l10n_custom_formatted_line_request(request, lines, "namesake_alias", { cmd_alias[1].name })
+ return l10n_custom_formatted_line_request(request, lines, "namesake_alias", { new_alias })
end
local internal_commands = bot_get_loaded_command_names()
@@ -234,7 +234,7 @@ The `!cmd` command gives the ability to create their own chat commands.
return l10n_custom_formatted_line_request(request, lines, "namesake", {})
end
- db_execute('UPDATE custom_commands SET aliases = array_append(aliases, $1) WHERE id = $2',
+ db_execute('INSERT INTO custom_command_aliases(name, command_id) VALUES ($1, $2)',
{ new_alias, cmd.id })
return l10n_custom_formatted_line_request(request, lines, "alias_command", { new_alias, name })
@@ -245,19 +245,27 @@ The `!cmd` command gives the ability to create their own chat commands.
local old_alias = parts[1]
- local cmd_alias = db_query('SELECT name FROM custom_commands WHERE $1 = ANY(aliases) AND channel_id = $2',
- { old_alias, request.channel.id })
+ local cmd_alias = db_query('SELECT id FROM custom_command_aliases WHERE name = $1 AND command_id = $2',
+ { old_alias, cmd.id })
if #cmd_alias == 0 then
return l10n_custom_formatted_line_request(request, lines, "no_cmd_alias", { old_alias })
end
- db_execute('UPDATE custom_commands SET aliases = array_remove(aliases, $1) WHERE id = $2',
- { old_alias, cmd.id })
+ db_execute('DELETE FROM custom_command_aliases WHERE id = $1',
+ { cmd_alias[1].id })
return l10n_custom_formatted_line_request(request, lines, "delalias_command", { old_alias, name })
elseif scid == "view" then
- local aliases = json_parse(cmd.aliases)
+ local aliases_db = db_query('SELECT name FROM custom_command_aliases WHERE command_id = $1',
+ { cmd.id })
+
+ local aliases = {}
+
+ for i = 1, #aliases_db, 1 do
+ table.insert(aliases, aliases_db[i].name)
+ end
+
local aliases_str = table.concat(aliases, ', ')
if #aliases_str == 0 then