mirror of
https://github.com/edubart/otclient.git
synced 2025-10-15 03:54:54 +02:00
reorganize modules
This commit is contained in:
115
modules/client_entergame/entergame.lua
Normal file
115
modules/client_entergame/entergame.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
EnterGame = { }
|
||||
|
||||
-- private variables
|
||||
local loadBox
|
||||
local enterGame
|
||||
local motdNumber
|
||||
local motdMessage
|
||||
|
||||
-- private functions
|
||||
local function clearAccountFields()
|
||||
enterGame:getChildById('accountNameLineEdit'):clearText()
|
||||
enterGame:getChildById('accountPasswordLineEdit'):clearText()
|
||||
enterGame:getChildById('accountNameLineEdit'):focus()
|
||||
g_configs.set('account', nil)
|
||||
g_configs.set('password', nil)
|
||||
end
|
||||
|
||||
local function onError(protocol, error)
|
||||
loadBox:destroy()
|
||||
clearAccountFields()
|
||||
local errorBox = displayErrorBox('Login Error', error)
|
||||
errorBox.onOk = EnterGame.show
|
||||
end
|
||||
|
||||
local function onMotd(protocol, motd)
|
||||
motdNumber = tonumber(string.sub(motd, 0, string.find(motd, "\n")))
|
||||
motdMessage = string.sub(motd, string.find(motd, "\n") + 1, string.len(motd))
|
||||
TopMenu.getButton('motdButton'):show()
|
||||
end
|
||||
|
||||
local function onCharacterList(protocol, characters, premDays)
|
||||
if enterGame:getChildById('rememberPasswordBox'):isChecked() then
|
||||
g_configs.set('account', EnterGame.account)
|
||||
g_configs.set('password', EnterGame.password)
|
||||
g_configs.set('autologin', tostring(enterGame:getChildById('autoLoginBox'):isChecked()))
|
||||
else
|
||||
clearAccountFields()
|
||||
end
|
||||
|
||||
loadBox:destroy()
|
||||
CharacterList.create(characters, premDays)
|
||||
|
||||
local lastMotdNumber = tonumber(g_configs.get("motd"))
|
||||
if motdNumber and motdNumber ~= lastMotdNumber then
|
||||
g_configs.set("motd", motdNumber)
|
||||
local motdBox = displayInfoBox("Message of the day", motdMessage)
|
||||
motdBox.onOk = CharacterList.show
|
||||
CharacterList.hide()
|
||||
end
|
||||
end
|
||||
|
||||
-- public functions
|
||||
function EnterGame.create()
|
||||
enterGame = UI.display('entergame.otui')
|
||||
|
||||
local account = g_configs.get('account')
|
||||
local password = g_configs.get('password')
|
||||
local host = g_configs.get('host')
|
||||
local port = tonumber(g_configs.get('port'))
|
||||
local autologin = toboolean(g_configs.get('autologin'))
|
||||
|
||||
enterGame:getChildById('accountNameLineEdit'):setText(account)
|
||||
enterGame:getChildById('accountPasswordLineEdit'):setText(password)
|
||||
enterGame:getChildById('serverHostLineEdit'):setText(host)
|
||||
enterGame:getChildById('serverPortLineEdit'):setText(port)
|
||||
enterGame:getChildById('autoLoginBox'):setChecked(autologin)
|
||||
enterGame:getChildById('rememberPasswordBox'):setChecked(#account > 0)
|
||||
enterGame:getChildById('accountNameLineEdit'):focus()
|
||||
|
||||
if #account > 0 and autologin then
|
||||
addEvent(EnterGame.doLogin)
|
||||
end
|
||||
end
|
||||
|
||||
function EnterGame.destroy()
|
||||
enterGame:destroy()
|
||||
enterGame = nil
|
||||
end
|
||||
|
||||
function EnterGame.show()
|
||||
enterGame:show()
|
||||
enterGame:focus()
|
||||
end
|
||||
|
||||
function EnterGame.hide()
|
||||
enterGame:hide()
|
||||
end
|
||||
|
||||
function EnterGame.doLogin()
|
||||
EnterGame.account = enterGame:getChildById('accountNameLineEdit'):getText()
|
||||
EnterGame.password = enterGame:getChildById('accountPasswordLineEdit'):getText()
|
||||
EnterGame.host = enterGame:getChildById('serverHostLineEdit'):getText()
|
||||
EnterGame.port = enterGame:getChildById('serverPortLineEdit'):getText()
|
||||
EnterGame.hide()
|
||||
|
||||
g_configs.set('host', EnterGame.host)
|
||||
g_configs.set('port', EnterGame.port)
|
||||
|
||||
local protocolLogin = ProtocolLogin.create()
|
||||
protocolLogin.onError = onError
|
||||
protocolLogin.onMotd = onMotd
|
||||
protocolLogin.onCharacterList = onCharacterList
|
||||
|
||||
loadBox = displayCancelBox('Please wait', 'Connecting to login server...')
|
||||
loadBox.onCancel = function(msgbox)
|
||||
protocolLogin:cancelLogin()
|
||||
EnterGame.show()
|
||||
end
|
||||
|
||||
protocolLogin:login(EnterGame.host, EnterGame.port, EnterGame.account, EnterGame.password)
|
||||
end
|
||||
|
||||
function EnterGame.displayMotd()
|
||||
displayInfoBox("Message of the day", motdMessage)
|
||||
end
|
Reference in New Issue
Block a user