diff options
| author | ilotterytea <iltsu@alright.party> | 2025-07-02 03:35:19 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-07-02 03:35:39 +0500 |
| commit | 6c002985fddc923f57774c0ca5e7ddd36c629fdc (patch) | |
| tree | 0d8aa51974744a10612769f2c688f20344b2b021 /luamods/cmd.lua | |
| parent | 04fb4e18f8cddd3d963824c6d396b960c7164dc5 (diff) | |
feat: new migrations
Diffstat (limited to 'luamods/cmd.lua')
| -rw-r--r-- | luamods/cmd.lua | 28 |
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 |
