Added "setandget.lua" plugin.
This commit is contained in:
parent
212846edb8
commit
aebb90f9b4
75
plugins/setandget.lua
Normal file
75
plugins/setandget.lua
Normal file
@ -0,0 +1,75 @@
|
||||
database.setandget = database.setandget or {}
|
||||
|
||||
local command = 'set <name> <value>'
|
||||
local doc = [[```
|
||||
/set <name> <value>
|
||||
Stores a value with the given name. Use "/set <name> --" to delete the stored value.
|
||||
/get [name]
|
||||
Returns the stored value or a list of stored values.
|
||||
```]]
|
||||
|
||||
local triggers = {
|
||||
'^/set',
|
||||
'^/get'
|
||||
}
|
||||
|
||||
local action = function(msg)
|
||||
|
||||
local input = msg.text:input()
|
||||
database.setandget[msg.chat.id_str] = database.setandget[msg.chat.id_str] or {}
|
||||
|
||||
if msg.text_lower:match('^/set') then
|
||||
|
||||
if not input then
|
||||
sendMessage(msg.chat.id, doc, true, nil, true)
|
||||
return
|
||||
end
|
||||
|
||||
local name = get_word(input:lower(), 1)
|
||||
local value = input:input()
|
||||
|
||||
if not name or not value then
|
||||
sendMessage(msg.chat.id, doc, true, nil, true)
|
||||
elseif value == '--' or value == '—' then
|
||||
database.setandget[msg.chat.id_str][name] = nil
|
||||
sendMessage(msg.chat.id, 'That value has been deleted.')
|
||||
else
|
||||
database.setandget[msg.chat.id_str][name] = value
|
||||
sendMessage(msg.chat.id, '"' .. name .. '" has been set to "' .. value .. '".', true)
|
||||
end
|
||||
|
||||
elseif msg.text_lower:match('^/get') then
|
||||
|
||||
if not input then
|
||||
local output
|
||||
if table_size(database.setandget[msg.chat.id_str]) == 0 then
|
||||
output = 'No values have been stored here.'
|
||||
else
|
||||
output = '*List of stored values:*\n'
|
||||
for k,v in pairs(database.setandget[msg.chat.id_str]) do
|
||||
output = output .. '• ' .. k .. ': `' .. v .. '`\n'
|
||||
end
|
||||
end
|
||||
sendMessage(msg.chat.id, output, true, nil, true)
|
||||
return
|
||||
end
|
||||
|
||||
local output
|
||||
if database.setandget[msg.chat.id_str][input:lower()] then
|
||||
output = '`' .. database.setandget[msg.chat.id_str][input:lower()] .. '`'
|
||||
else
|
||||
output = 'There is no value stored by that name.'
|
||||
end
|
||||
|
||||
sendMessage(msg.chat.id, output, true, nil, true)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return {
|
||||
action = action,
|
||||
triggers = triggers,
|
||||
doc = doc,
|
||||
command = command
|
||||
}
|
Reference in New Issue
Block a user