lurkcoin/minibank.lua

46 lines
1.1 KiB
Lua
Raw Normal View History

2019-02-22 05:15:44 +01:00
--
-- Minetest minibank (sub)mod - A very simple economy mod alternative
--
-- © 2019 by luk3yx
--
local storage = minetest.get_mod_storage()
-- Use mod storage for getbal() and setbal().
-- Store as strings because of weird bugs when using floats.
2019-05-17 06:30:29 +02:00
local function rawgetbal(name)
2019-02-22 05:15:44 +01:00
return tonumber(storage:get_string('minibank-' .. name))
end
2019-05-17 06:33:27 +02:00
local setbal
2019-05-17 06:30:29 +02:00
local function getbal(name)
local lname = name:lower()
if lname ~= name and rawgetbal(name) ~= nil then
2019-05-17 06:33:27 +02:00
setbal(lname, rawgetbal(name) + (rawgetbal(lname) or 0))
storage:set_string('minibank-' .. name, '')
2019-05-17 06:30:29 +02:00
end
return rawgetbal(lname)
end
2019-05-17 06:33:27 +02:00
function setbal(name, balance)
storage:set_string('minibank-' .. name:lower(),
tostring(math.floor(balance * 100) / 100))
2019-02-22 05:15:44 +01:00
end
-- Create an empty account for new players
minetest.register_on_joinplayer(function(player)
if lurkcoin.bank.mod ~= 'lurkcoin' then return end
local name = player:get_player_name()
if not lurkcoin.bank.user_exists(name) then
setbal(name, 0)
end
end)
-- Let bank.lua add everything else.
lurkcoin.change_bank({
2019-09-19 07:55:01 +02:00
getbal = getbal,
setbal = setbal
2019-02-22 05:15:44 +01:00
})