1 local http, env, storage
2 local C = minetest.get_color_escape_sequence
4 function furrybot.get_money(name)
5 local key = name .. ".money"
6 if storage:contains(key) then
7 return storage:get_int(key)
13 function furrybot.set_money(name, money)
14 storage:set_int(name .. ".money", money)
17 function furrybot.add_money(name, add)
18 local money = furrybot.get_money(name)
19 furrybot.set_money(name, money + add)
22 function furrybot.take_money(name, remove)
23 local money = furrybot.get_money(name)
24 local new = money - remove
28 furrybot.set_money(name, new)
33 function furrybot.money(money, color)
34 return furrybot.colors.money .. "$" .. money .. color
37 function furrybot.commands.money(name, target)
38 target = target or name
39 furrybot.ping_message(name, (target == name and "You have " or target .. " has ") .. furrybot.money(furrybot.get_money(target), furrybot.colors.system) .. ".", furrybot.colors.system)
41 furrybot.commands.balance = furrybot.commands.money
43 function furrybot.commands.pay(name, target, number)
44 if furrybot.online_or_error(name, target) then
45 local money = tonumber(number or "")
46 if not money or money <= 0 or math.floor(money) ~= money then
47 furrybot.error_message(name, "Invalid amount of money")
49 if furrybot.take_money(name, money) then
50 furrybot.add_money(target, money)
51 furrybot.ping_message(target, name .. " has payed you " .. furrybot.money(money, furrybot.colors.system) .. ".", furrybot.colors.system)
53 furrybot.error_message(name, "You don't have enough money")
58 furrybot.unsafe_commands.pay = true
60 return function(_http, _env, _storage)
61 http, env, storage = _http, _env, _storage