1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-09-30 19:22:14 +00:00

use (address, port) arguments instead of server object

This commit is contained in:
Abdurahman Elmawi 2025-06-29 18:02:28 +03:00
parent 4af9e47294
commit c0ac26b6b9
3 changed files with 43 additions and 43 deletions

View file

@ -82,10 +82,7 @@ local function register_buttonhandler(this, fields)
core.settings:set("address", gamedata.address) core.settings:set("address", gamedata.address)
core.settings:set("remote_port", gamedata.port) core.settings:set("remote_port", gamedata.port)
if core.settings:get_bool("remember_login") then if core.settings:get_bool("remember_login") then
keyringmgr.set_login({ keyringmgr.set_login(gamedata.address, gamedata.port, fields.name, fields.password)
address = gamedata.address,
port = gamedata.port,
}, fields.name, fields.password)
end end
core.start() core.start()

View file

@ -27,16 +27,16 @@ local function read_keyring()
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function is_for_server(keys, server) local function is_for_server(keys, address, port)
return keys.address == server.address and keys.port == server.port return keys.address == address and keys.port == port
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function delete_keys(keyring, server) local function delete_keys(keyring, address, port)
for i=1, #keyring do for i=1, #keyring do
local keys = keyring[i] local keys = keyring[i]
if is_for_server(keys, server) then if is_for_server(keys, address, port) then
table.remove(keyring, i) table.remove(keyring, i)
return return
end end
@ -44,18 +44,18 @@ local function delete_keys(keyring, server)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function get_keys(keyring, server) local function get_keys(keyring, address, port)
for i=1, #keyring do for i=1, #keyring do
local keys = keyring[i] local keys = keyring[i]
if is_for_server(keys, server) then if is_for_server(keys, address, port) then
return keys return keys
end end
end end
-- If we don't find any existing keys, we make a blank set for the server -- If we don't find any existing keys, we make a blank set for the server
local keys = { local keys = {
address = server.address, address = address,
port = server.port, port = port,
logins = {}, logins = {},
last_login = false, last_login = false,
} }
@ -65,18 +65,21 @@ local function get_keys(keyring, server)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function rewrite_keys(keyring, server, new_keys) local function rewrite_keys(keyring, address, port, new_keys)
delete_keys(keyring, server) delete_keys(keyring, address, port)
table.insert(keyring, 1, new_keys) table.insert(keyring, 1, new_keys)
save_keyring(keyring) save_keyring(keyring)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
local function set_general_login(server, playername) local function set_general_login(address, port, playername)
keyringmgr.general_login = { local login = keyringmgr.get_login(address, port, playername)
playername = playername, if login then
password = keyringmgr.get_login(server, playername) keyringmgr.general_login = {
} playername = login.playername,
password = login.password,
}
end
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -101,21 +104,21 @@ function keyringmgr.get_keyring()
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.set_last_login(server, playername) function keyringmgr.set_last_login(address, port, playername)
local keyring = keyringmgr.get_keyring() local keyring = keyringmgr.get_keyring()
local new_keys = get_keys(keyring, server) local new_keys = get_keys(keyring, address, port)
new_keys.last_login = playername new_keys.last_login = playername
rewrite_keys(keyring, server, new_keys) rewrite_keys(keyring, address, port, new_keys)
set_general_login(server, playername) set_general_login(address, port, playername)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.set_login(server, playername, password) function keyringmgr.set_login(address, port, playername, password)
assert(type(server.port) == "number") assert(type(port) == "number")
local keyring = keyringmgr.get_keyring() local keyring = keyringmgr.get_keyring()
local new_keys = get_keys(keyring, server); local new_keys = get_keys(keyring, address, port);
-- Check for existing entires for playername -- Check for existing entires for playername
for _, login in ipairs(new_keys.logins or {}) do for _, login in ipairs(new_keys.logins or {}) do
@ -134,17 +137,17 @@ function keyringmgr.set_login(server, playername, password)
password = password password = password
}) })
keyringmgr.set_last_login(server, playername) keyringmgr.set_last_login(address, port, playername)
rewrite_keys(keyring, server, new_keys) rewrite_keys(keyring, address, port, new_keys)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.get_login(server, playername) function keyringmgr.get_login(address, port, playername)
assert(type(server.port) == "number") assert(type(port) == "number")
local keyring = keyringmgr.get_keyring() local keyring = keyringmgr.get_keyring()
local new_keys = get_keys(keyring, server); local new_keys = get_keys(keyring, address, port);
-- Check for existing entires for playername -- Check for existing entires for playername
for _, login in ipairs(new_keys.logins) do for _, login in ipairs(new_keys.logins) do
@ -152,15 +155,15 @@ function keyringmgr.get_login(server, playername)
return login return login
end end
end end
error("No login found on " .. server.address .. ":" .. server.port .. " for player " .. playername) error("No login found on " .. address .. ":" .. port .. " for player " .. playername)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.remove_login(server, playername) function keyringmgr.remove_login(address, port, playername)
assert(type(server.port) == "number") assert(type(port) == "number")
local keyring = keyringmgr.get_keyring() local keyring = keyringmgr.get_keyring()
local new_keys = get_keys(keyring, server); local new_keys = get_keys(keyring, address, port);
for i=1, #new_keys.logins do for i=1, #new_keys.logins do
local login = new_keys.logins[i] local login = new_keys.logins[i]
@ -170,21 +173,21 @@ function keyringmgr.remove_login(server, playername)
end end
end end
rewrite_keys(keyring, server, new_keys) rewrite_keys(keyring, address, port, new_keys)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.delete_keys(server) function keyringmgr.delete_keys(address, port)
local keyring = keyringmgr.get_keyring() local keyring = keyringmgr.get_keyring()
delete_keys(keyring, server) delete_keys(keyring, address, port)
save_keyring(keyring) save_keyring(keyring)
end end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function keyringmgr.get_last_login(server) function keyringmgr.get_last_login(address, port)
local playername = get_keys(keyringmgr.get_keyring(), server).last_login local playername = get_keys(keyringmgr.get_keyring(), address, port).last_login
if playername then if playername then
return keyringmgr.get_login(server, playername) return keyringmgr.get_login(address, port, playername)
end end
return false return false
end end

View file

@ -75,7 +75,7 @@ local function set_selected_server(server)
-- Pull info from last login (if exists) -- Pull info from last login (if exists)
-- This will always fail if remember_login is false -- This will always fail if remember_login is false
-- because nothing has been stored, nor will it ever be -- because nothing has been stored, nor will it ever be
local login = keyringmgr.get_last_login(server) local login = keyringmgr.get_last_login(address, port)
if login then if login then
input_playername = login.playername input_playername = login.playername
input_password = login.password input_password = login.password
@ -569,7 +569,7 @@ local function main_button_handler(tabview, fields, name, tabdata)
server.port == gamedata.port then server.port == gamedata.port then
if core.settings:get_bool("remember_login") then if core.settings:get_bool("remember_login") then
keyringmgr.set_login(server, gamedata.playername, gamedata.password) keyringmgr.set_login(server.address, server.port, gamedata.playername, gamedata.password)
end end
serverlistmgr.add_favorite(server) serverlistmgr.add_favorite(server)