]> git.lizzy.rs Git - furrybot.git/blob - economy.lua
Japanese waifu names
[furrybot.git] / economy.lua
1 local http, env, storage
2 local C = minetest.get_color_escape_sequence
3
4 function furrybot.get_money(name)
5         local key = name .. ".money"
6         if storage:contains(key) then
7                 return storage:get_int(key)
8         else
9                 return 100
10         end
11 end
12
13 function furrybot.set_money(name, money)
14         storage:set_int(name .. ".money", money)
15 end
16
17 function furrybot.add_money(name, add)
18         local money = furrybot.get_money(name)
19         furrybot.set_money(name, money + add)
20 end
21
22 function furrybot.take_money(name, remove)
23         local money = furrybot.get_money(name)
24         local new = money - remove
25         if new < 0 then
26                 return false
27         else
28                 furrybot.set_money(name, new)
29                 return true
30         end
31 end
32
33 function furrybot.money(money, color)
34         return furrybot.colors.money .. "$" .. money .. color
35 end
36
37 furrybot.commands.money = {
38         func = function(name, target)
39                 target = target or name
40                 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         end,
42 }
43
44 furrybot.commands.pay = {
45         unsafe = true,
46         func = function(name, target, number)
47                 if furrybot.online_or_error(name, target) then
48                         local money = tonumber(number or "")
49                         if not money or money <= 0 or math.floor(money) ~= money then
50                                 furrybot.error_message(name, "Invalid amount of money")
51                         else
52                                 if furrybot.take_money(name, money) then
53                                         furrybot.add_money(target, money)
54                                         furrybot.ping_message(target, name .. " has payed you " .. furrybot.money(money, furrybot.colors.system) .. ".", furrybot.colors.system)
55                                 else
56                                         furrybot.error_message(name, "You don't have enough money")
57                                 end
58                         end
59                 end
60         end,
61 }
62
63 return function(_http, _env, _storage)
64         http, env, storage = _http, _env, _storage
65 end