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))
|
2019-05-20 21:53:06 +02:00
|
|
|
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)
|
2019-06-28 11:19:13 +02:00
|
|
|
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
|
|
|
})
|