mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-16 05:51:21 +00:00
Saldo Ok!
This commit is contained in:
parent
de41278c0b
commit
ce91e651db
6 changed files with 246 additions and 38 deletions
33
api.lua
33
api.lua
|
@ -7,6 +7,39 @@ minetest.register_privilege("checkchest", {
|
|||
})
|
||||
--]]
|
||||
|
||||
modMinerTrade.debug = function(text, playername)
|
||||
if text ~= nil
|
||||
and type(text) == "string"
|
||||
and text ~= ""
|
||||
then
|
||||
if minetest.settings:get_bool("minertrade.debug") then
|
||||
if playername ~= nil
|
||||
and type(playername) == "string"
|
||||
and playername ~= ""
|
||||
then
|
||||
local player = minetest.get_player_by_name(playername)
|
||||
if player ~=nil and player:is_player() then
|
||||
minetest.chat_send_player(
|
||||
playername, text
|
||||
)
|
||||
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text)
|
||||
else
|
||||
minetest.log('error',
|
||||
"["..modMinerTrade.modName:upper()..":DEBUG] "
|
||||
..modSoundChat.translate(
|
||||
"Unable to address debug for player '%s'."
|
||||
):format(dump(playername))
|
||||
)
|
||||
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
|
||||
end
|
||||
else
|
||||
minetest.chat_send_all(text)
|
||||
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
modMinerTrade.getNodesInRange = function(pos, search_distance, node_name)
|
||||
if pos==nil then return 0 end
|
||||
if pos.x==nil or type(pos.x)~="number" then return 0 end
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
modMinerTrade.bank = {
|
||||
filesave = minetest.get_worldpath().."/minertrade.db", --Extensao '.tbl' ou '.db'
|
||||
acounts = 0,
|
||||
player = { },
|
||||
}
|
||||
|
12
init.lua
12
init.lua
|
@ -1,15 +1,21 @@
|
|||
modMinerTrade = {
|
||||
modName = minetest.get_current_modname(),
|
||||
modPath = minetest.get_modpath(minetest.get_current_modname()),
|
||||
urlTabela = minetest.get_worldpath().."/minertrade.db64", --Extensao '.tbl' ou '.db'
|
||||
delayConstruct = 300,
|
||||
bank = {
|
||||
acounts = 0,
|
||||
player = { },
|
||||
},
|
||||
}
|
||||
|
||||
dofile(modMinerTrade.modPath.."/config.lua") -- <== Antes de carregar tudo!
|
||||
--dofile(modMinerTrade.modPath.."/config.lua") -- <== Antes de carregar tudo!
|
||||
dofile(modMinerTrade.modPath.."/translate.lua") -- <== Antes de 'api.lua'!
|
||||
dofile(modMinerTrade.modPath.."/api.lua")
|
||||
dofile(modMinerTrade.modPath.."/item_exchange_table.lua")
|
||||
dofile(modMinerTrade.modPath.."/item_dispensing_machine.lua")
|
||||
|
||||
--dofile(modMinerTrade.modPath.."/item_atm.lua")
|
||||
dofile(modMinerTrade.modPath.."/item_atm.lua")
|
||||
--dofile(modMinerTrade.modPath.."/item_strongbox.lua")
|
||||
--dofile(modMinerTrade.modPath.."/item_strongbox_old.lua")
|
||||
--dofile(modMinerTrade.modPath.."/item_miner_cash.lua")
|
||||
|
@ -22,4 +28,4 @@ if modMinerTrade.doAtmLoad ~= nil then
|
|||
end
|
||||
|
||||
|
||||
minetest.log('action',"["..modname:upper().."] Loaded!")
|
||||
minetest.log('action',"["..modMinerTrade.modName:upper().."] Loaded!")
|
||||
|
|
211
item_atm.lua
211
item_atm.lua
|
@ -1,7 +1,11 @@
|
|||
modMinerTrade.doBankSave = function()
|
||||
modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.urlTabela)
|
||||
local file = io.open(modMinerTrade.urlTabela, "w")
|
||||
if file then
|
||||
file:write(minetest.serialize(modMinerTrade.bank))
|
||||
file:write(
|
||||
minetest.encode_base64(minetest.serialize(modMinerTrade.bank))
|
||||
--minetest.serialize(modMinerTrade.bank)
|
||||
)
|
||||
file:close()
|
||||
--minetest.log('action',"[MINERTRADE] Banco de dados salvo !")
|
||||
else
|
||||
|
@ -10,9 +14,11 @@ modMinerTrade.doBankSave = function()
|
|||
end
|
||||
|
||||
modMinerTrade.doBankLoad = function()
|
||||
modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.urlTabela)
|
||||
local file = io.open(modMinerTrade.urlTabela, "r")
|
||||
if file then
|
||||
modMinerTrade.bank = minetest.deserialize(file:read("*all"))
|
||||
modMinerTrade.bank = minetest.decode_base64(minetest.deserialize(file:read("*all")))
|
||||
--modMinerTrade.bank = minetest.deserialize(file:read("*all"))
|
||||
file:close()
|
||||
if not modMinerTrade.bank or type(modMinerTrade.bank) ~= "table" then
|
||||
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.urlTabela))
|
||||
|
@ -53,23 +59,27 @@ end
|
|||
|
||||
modMinerTrade.showAtm = {
|
||||
frmMain = function(playername) --FORMULÁRIO: PRINCIPAL / RAIZ
|
||||
local formspec = "size[9.5,10.5]"
|
||||
local formspec = "size[15,10]"
|
||||
.."bgcolor[#636D7688;false]"
|
||||
--.."bgcolor[#636D76FF;false]"
|
||||
--..default.gui_bg
|
||||
--..default.gui_bg_img
|
||||
--..default.gui_slots
|
||||
|
||||
--.."bgcolor[#636D76FF;false]"
|
||||
.."background[-0.25,-0.25;10,11;safe_inside.png]"
|
||||
.."button[0,0.0;4,0.5;btnBalance;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
||||
--.."button[0,0.5;4,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
|
||||
--.."button[0,1.0;4,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
|
||||
.."button[0,1.5;4,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS [DINHEIRO E CHECK]"))).."]"
|
||||
--.."button[0,2.0;4,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("TRANSFERS"))).."]"
|
||||
--.."button[0,2.0;4,0.5;btnLoans;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
|
||||
--.."button[0,2.5;4,0.5;btnCreditCard;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CARTÃO DE CRÉDITO [EXPEDIR E MUDAR SENHA]"))).."]"
|
||||
--.."button[0,3.0;4,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
||||
.."button_exit[0,3.5;4,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||
--.."background[5.0,-0.25;10,10;default_steel_block.png^text_atm_front.png]"
|
||||
.. "box[0.00,0.10;4.50,9.5;#000000]"
|
||||
.. "button[0.25,0.50;4.00,0.5;btnBalance;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
||||
.. "button[0.25,1.25;4.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
|
||||
.. "button[0.25,2.00;4.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
|
||||
.. "button[0.25,2.75;4.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
||||
.. "button[0.25,3.50;4.00,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("TRANSFERS"))).."]"
|
||||
.. "button[0.25,4.25;4.00,0.5;btnLoans;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
|
||||
.. "button[0.25,5.00;4.00,0.5;btnCreditCard;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CREDIT CARD"))).."]" -- [EXPEDIR E MUDAR SENHA]
|
||||
.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
||||
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||
|
||||
.."box" .."[5.0,0.25;9.5,9.5;#000000]"
|
||||
.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
|
||||
|
||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||
minetest.show_formspec(playername, "frmAtmMain", formspec)
|
||||
|
@ -82,21 +92,41 @@ modMinerTrade.showAtm = {
|
|||
msgBalance = modMinerTrade.translate("Player '%s' is not an account holder of this bank."):format(playername)
|
||||
end
|
||||
|
||||
local formspec = "size[9.5,10.5]"
|
||||
local formspec = "size[15,10]"
|
||||
.."bgcolor[#636D7688;false]"
|
||||
--.."bgcolor[#636D76FF;false]"
|
||||
--..default.gui_bg
|
||||
--..default.gui_bg_img
|
||||
--..default.gui_slots
|
||||
|
||||
--.."bgcolor[#636D76FF;false]"
|
||||
.."background[-0.25,-0.25;10,11;safe_inside.png]"
|
||||
.."button[0,0.0;4,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
|
||||
.."button_exit[0,3.0;4,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||
.."label[5.0,0.0;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":")).."]"
|
||||
.."label[5.0,2.0;"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
|
||||
--.."background[-0.25,-0.25;10,11;safe_inside.png]"
|
||||
--.."button[0,0.0;4,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
|
||||
--.."button_exit[0,3.0;4,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||
|
||||
.. "box[0.00,0.10;4.50,9.5;#000000]"
|
||||
.. "button[0.25,0.50;4.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
|
||||
--.. "button[0.25,1.25;4.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
|
||||
--.. "button[0.25,2.00;4.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
|
||||
--.. "button[0.25,2.75;4.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
|
||||
--.. "button[0.25,3.50;4.00,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("TRANSFERS"))).."]"
|
||||
--.. "button[0.25,4.25;4.00,0.5;btnLoans;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
|
||||
--.. "button[0.25,5.00;4.00,0.5;btnCreditCard;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CREDIT CARD"))).."]" -- [EXPEDIR E MUDAR SENHA]
|
||||
--.. "button[0.25,5.75;4.00,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
|
||||
.."button_exit[0.25,6.50;4.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
|
||||
|
||||
.."background[5.00,0.25;9.5,9.5;text_atm_front.png]"
|
||||
.. "box[5.00,0.25;9.5,9.5;#000000CC]"
|
||||
.. "label[5.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":")).."]"
|
||||
.. "label[5.25,2.50;"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
|
||||
|
||||
|
||||
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
||||
minetest.show_formspec(playername, "frmAtmBalance", formspec)
|
||||
minetest.show_formspec(
|
||||
playername,
|
||||
"frmAtmBalance",
|
||||
formspec
|
||||
)
|
||||
end,
|
||||
frmWithdrawals = function(playername) --FORMULÁRIO: EXTRATO
|
||||
local formspec = "size[9.5,10.5]"
|
||||
|
@ -116,13 +146,13 @@ modMinerTrade.showAtm = {
|
|||
|
||||
}
|
||||
|
||||
modMinerTrade.onReceiveFields = function(sender, formname, fields)
|
||||
local sendername = sender:get_player_name()
|
||||
modMinerTrade.onReceiveFields = function(player, formname, fields)
|
||||
local playername = player:get_player_name()
|
||||
if fields.btnAtmMain ~= nil then
|
||||
modMinerTrade.showAtm.frmMain(playername)
|
||||
else
|
||||
if formname == "frmAtmMain" then
|
||||
if fields.btnSaldo ~= nil then
|
||||
if fields.btnBalance ~= nil then
|
||||
modMinerTrade.showAtm.frmBalance(playername)
|
||||
elseif fields.btnWithdrawals ~= nil then
|
||||
modMinerTrade.showAtm.frmWithdrawals(playername)
|
||||
|
@ -145,3 +175,136 @@ minetest.register_on_shutdown(function()
|
|||
modMinerTrade.doBankSave()
|
||||
minetest.log('action',"[STRONGBOX] "..modMinerTrade.translate("Saving bank from all players in the file '%s'!"):format(modMinerTrade.urlTabela))
|
||||
end)
|
||||
|
||||
minetest.register_node("minertrade:atm", {
|
||||
description = modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."),
|
||||
--inventory_image = minetest.inventorycube("text_atm_front_1.png"),
|
||||
--inventory_image = "text_atm_front_1.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = default.LIGHT_MAX,
|
||||
paramtype2 = "facedir",
|
||||
|
||||
--legacy_facedir_simple = true, --<=Nao sei para que serve!
|
||||
is_ground_content = false,
|
||||
groups = {cracky=1},
|
||||
--groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
--sounds = default.node_sound_glass_defaults(),
|
||||
tiles = {
|
||||
--[[
|
||||
"default_wood.png",
|
||||
"default_wood.png",
|
||||
"default_wood.png",
|
||||
"default_wood.png",
|
||||
"default_wood.png",
|
||||
"text_atm_front_1.png",
|
||||
--]]
|
||||
|
||||
--[[
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png^text_atm_front.png",
|
||||
--]]
|
||||
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png^text_atm_front.png",
|
||||
},
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local playername = placer:get_player_name()
|
||||
|
||||
if not pointed_thing.type == "node" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local posAbove = pointed_thing.above --acima
|
||||
local posUnder = pointed_thing.under --abaixo
|
||||
if not placer or not placer:is_player() or
|
||||
not minetest.registered_nodes[minetest.get_node(posAbove).name].buildable_to
|
||||
then --Verifica se pode construir sobre os objetos construiveis
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local nodeUnder = minetest.get_node(posUnder)
|
||||
if minetest.registered_nodes[nodeUnder.name].on_rightclick then --Verifica se o itema na mao do jogador tem funcao rightclick
|
||||
return minetest.registered_nodes[nodeUnder.name].on_rightclick(posUnder, nodeUnder, placer, itemstack)
|
||||
end
|
||||
|
||||
if
|
||||
minetest.get_player_privs(playername).server
|
||||
or modMinerTrade.getNodesInRange(posAbove, 2, "minertrade:dispensingmachine")>=1
|
||||
then
|
||||
local facedir = minetest.dir_to_facedir(placer:get_look_dir())
|
||||
--minetest.chat_send_player(playername, "[ATM] aaaaaa")
|
||||
minetest.set_node(posAbove, {
|
||||
name = "minertrade:atm",
|
||||
param2 = facedir,
|
||||
})
|
||||
local meta = minetest.get_meta(posAbove)
|
||||
--meta:set_string("infotext", modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."))
|
||||
local now = os.time() --Em milisegundos
|
||||
if not minetest.get_player_privs(playername).server then
|
||||
meta:set_string("opentime", now+modMinerTrade.delayConstruct)
|
||||
else
|
||||
meta:set_string("opentime", now)
|
||||
end
|
||||
itemstack:take_item() -- itemstack:take_item() = Ok
|
||||
else
|
||||
minetest.chat_send_player(playername,
|
||||
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
|
||||
..modMinerTrade.translate("You can not install this 'ATM' too far from a 'Dispensing Machine'!")
|
||||
)
|
||||
--return itemstack -- = Cancel
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
local clickername = clicker:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
--meta:set_string("infotext", modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."))
|
||||
local opentime = tonumber(meta:get_string("opentime")) or 0
|
||||
local now = os.time() --Em milisegundos
|
||||
if now >= opentime or minetest.get_player_privs(clickername).server then
|
||||
--[[
|
||||
modMinerTrade.showInventory(
|
||||
clicker,
|
||||
clickername,
|
||||
modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(clickername)
|
||||
)
|
||||
--]]
|
||||
modMinerTrade.showAtm.frmMain(clickername)
|
||||
else
|
||||
--minetest.sound_play("sfx_failure", {object=clicker, max_hear_distance=5.0,})
|
||||
modMinerTrade.doSoundPlayer(clickername, "sfx_failure", 5)
|
||||
minetest.chat_send_player(clickername,
|
||||
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
|
||||
..modMinerTrade.translate(
|
||||
"The ATM will only run %02d seconds after it is installed!"
|
||||
):format(opentime-now)
|
||||
)
|
||||
end
|
||||
modMinerTrade.debug("on_rightclick() >>> "..modMinerTrade.urlTabela)
|
||||
end,
|
||||
})
|
||||
|
||||
--[[
|
||||
minetest.register_craft({
|
||||
output = 'minertrade:atm',
|
||||
recipe = {
|
||||
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
|
||||
{"default:steel_ingot" ,"default:obsidian_glass" ,"default:steel_ingot"},
|
||||
{"default:steel_ingot" ,"default:mese" ,"default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
--]]
|
||||
minetest.register_alias("atm","minertrade:atm")
|
||||
minetest.register_alias(modMinerTrade.translate("atm"),"minertrade:atm")
|
||||
|
|
1
minertrade.db
Normal file
1
minertrade.db
Normal file
|
@ -0,0 +1 @@
|
|||
return {["player"] = {}, ["acounts"] = 0}
|
|
@ -2,11 +2,22 @@
|
|||
# Only players with "salary" privilege received a daily payment.
|
||||
|
||||
# MINERTRADE:
|
||||
# Prize given per virtual day to the online player.
|
||||
# Default: 'minertrade:minercoin 1'
|
||||
minertrade.payday.salary (Daily Salary) string minertrade:minercoin 1
|
||||
# If server will reward the player daily..
|
||||
# Default: true
|
||||
minertrade.payday.enabled (Daily Salary Enabled) bool true
|
||||
|
||||
# MINERTRADE:
|
||||
# Value of the prize minercash that each player will receive at the end of the virtual day.
|
||||
# Default: 1 | Min: 1
|
||||
minertrade.payday.value (Daily Salary Value) int 1 1
|
||||
|
||||
# MINERTRADE:
|
||||
# Time interval in seconds to check for rewardable players.
|
||||
# WARNING: Decreasing this value too much can cause server lag.
|
||||
# Deafault: 60 | Min: 1
|
||||
minertrade.payday.interval (Interval Check Salary) int 60 1
|
||||
|
||||
# MINERTRADE:
|
||||
# Allows you to print the debug information of this mod on the screen.
|
||||
# Default: false
|
||||
minertrade.debug (Show Minertrade Debug) bool false
|
||||
|
|
Loading…
Add table
Reference in a new issue