From b1ccdf2ca8aa02784cc78a7874c056a26769c885 Mon Sep 17 00:00:00 2001 From: mobius <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 27 Jan 2015 03:19:46 +0000 Subject: [PATCH] Removed unnecessary tools. --- trunk/build.xml | 84 -- trunk/dist/images/add.png | Bin 733 -> 0 bytes trunk/dist/images/cross.png | Bin 655 -> 0 bytes trunk/dist/images/disk.png | Bin 620 -> 0 bytes trunk/dist/images/help.png | Bin 786 -> 0 bytes trunk/dist/images/l2j.png | Bin 446 -> 0 bytes trunk/dist/images/l2jserverlogo.png | Bin 8941 -> 0 bytes .../configurator/Configurator.properties | 23 - .../configurator/Configurator_de.properties | 23 - .../configurator/Configurator_es.properties | 23 - .../configurator/Configurator_it.properties | 23 - .../configurator/Configurator_nl.properties | 23 - .../configurator/Configurator_sk.properties | 23 - .../gsregister/GSRegister.properties | 80 -- .../gsregister/GSRegister_cs.properties | 80 -- .../gsregister/GSRegister_de.properties | 80 -- .../gsregister/GSRegister_es.properties | 80 -- .../gsregister/GSRegister_hu.properties | 80 -- .../gsregister/GSRegister_it.properties | 80 -- .../gsregister/GSRegister_nl.properties | 80 -- .../gsregister/GSRegister_pt.properties | 80 -- .../gsregister/GSRegister_sc.properties | 80 -- .../gsregister/GSRegister_sk.properties | 80 -- .../gsregister/GSRegister_zh.properties | 80 -- trunk/dist/login/RegisterGameServer.exe | Bin 368545 -> 0 bytes .../configurator/ConfigUserInterface.java | 757 ------------------ .../tools/configurator/JIPTextField.java | 328 -------- .../tools/dbinstaller/DBOutputInterface.java | 43 - .../tools/dbinstaller/LauncherGS.java | 58 -- .../tools/dbinstaller/LauncherLS.java | 58 -- .../l2jserver/tools/dbinstaller/RunTasks.java | 147 ---- .../console/DBInstallerConsole.java | 142 ---- .../tools/dbinstaller/gui/DBConfigGUI.java | 184 ----- .../tools/dbinstaller/gui/DBInstallerGUI.java | 124 --- .../util/CloseShieldedInputStream.java | 148 ---- .../dbinstaller/util/FileWriterStdout.java | 49 -- .../dbinstaller/util/mysql/DBDumper.java | 216 ----- .../dbinstaller/util/mysql/MySqlConnect.java | 114 --- .../util/mysql/ScriptExecutor.java | 133 --- .../util/swing/SpringUtilities.java | 226 ------ .../gsregistering/BaseGameServerRegister.java | 387 +-------- .../tools/gsregistering/GUserInterface.java | 387 --------- .../gsregistering/GameServerRegister.java | 80 +- .../tools/gsregistering/RegisterDialog.java | 199 ----- .../l2jserver/tools/i18n/LanguageControl.java | 68 -- .../l2jserver/tools/images/ImagesTable.java | 46 -- 46 files changed, 35 insertions(+), 4961 deletions(-) delete mode 100644 trunk/dist/images/add.png delete mode 100644 trunk/dist/images/cross.png delete mode 100644 trunk/dist/images/disk.png delete mode 100644 trunk/dist/images/help.png delete mode 100644 trunk/dist/images/l2j.png delete mode 100644 trunk/dist/images/l2jserverlogo.png delete mode 100644 trunk/dist/languages/configurator/Configurator.properties delete mode 100644 trunk/dist/languages/configurator/Configurator_de.properties delete mode 100644 trunk/dist/languages/configurator/Configurator_es.properties delete mode 100644 trunk/dist/languages/configurator/Configurator_it.properties delete mode 100644 trunk/dist/languages/configurator/Configurator_nl.properties delete mode 100644 trunk/dist/languages/configurator/Configurator_sk.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_cs.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_de.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_es.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_hu.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_it.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_nl.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_pt.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_sc.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_sk.properties delete mode 100644 trunk/dist/languages/gsregister/GSRegister_zh.properties delete mode 100644 trunk/dist/login/RegisterGameServer.exe delete mode 100644 trunk/java/com/l2jserver/tools/configurator/ConfigUserInterface.java delete mode 100644 trunk/java/com/l2jserver/tools/configurator/JIPTextField.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/DBOutputInterface.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/LauncherGS.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/LauncherLS.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/RunTasks.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/console/DBInstallerConsole.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/gui/DBConfigGUI.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/gui/DBInstallerGUI.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/CloseShieldedInputStream.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/FileWriterStdout.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/DBDumper.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/MySqlConnect.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/ScriptExecutor.java delete mode 100644 trunk/java/com/l2jserver/tools/dbinstaller/util/swing/SpringUtilities.java delete mode 100644 trunk/java/com/l2jserver/tools/gsregistering/GUserInterface.java delete mode 100644 trunk/java/com/l2jserver/tools/gsregistering/RegisterDialog.java delete mode 100644 trunk/java/com/l2jserver/tools/i18n/LanguageControl.java delete mode 100644 trunk/java/com/l2jserver/tools/images/ImagesTable.java diff --git a/trunk/build.xml b/trunk/build.xml index 2e262147e2..7edc00536c 100644 --- a/trunk/build.xml +++ b/trunk/build.xml @@ -94,31 +94,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -134,65 +109,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/trunk/dist/images/add.png b/trunk/dist/images/add.png deleted file mode 100644 index 6332fefea4be19eeadf211b0b202b272e8564898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)9VHk(~TedF+gQSL8D5xnVSSWAVY>J9b+m>@{iq7_KE}go~11+5s4;8hc+i0Xa zI1j@EX5!S+Me6HNqKzU5YQwL;-W5$p%ZMKMeR<%zp69-~?<4?8|C8S?bklXr4v&Ov zb&06v2|-x?qB`90yn>Qi%Sh2^G4n)$ZdyvTPf9}1)_buUT7>`e2G&2VU@~Bb(o+Mz zi4)>IxlSY${Dj4k={-9RzU^W5g9|2V5RZ2ZulL9s2xQbZ@r6eP9Ra5u(s|C0Nj#&4>wTSkb?%#=9?@ z^oxDy-O@tyN{L@by(WWvQ3%CyEu8x{+#Jb4-h&K9Owi)2pgg+heWDyked|3R$$kL@A z#sp1v-r+=G4B8D6DqsDH0@7OztA7aT9qc1Py{()w`m``?Y0&gi2=ROcc-9+nU^I6< zT=e_Y=vSnG@?3Ue{BW5ONFttcE!R-R_W4O01|0-|K-YNXLo2`4Qv z`r1LxR6#yf3FB%T95gJnaKKivA~Z}S9A(ZxEDK}O3T04USJ P00000NkvXXu0mjf^IS-S diff --git a/trunk/dist/images/cross.png b/trunk/dist/images/cross.png deleted file mode 100644 index 1514d51a3cf1b67e1c5b9ada36f1fd474e2d214a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)uEoyT++I zn$b9r%cFfhHe2K68PkBu*@^<$y+7xQ$wJ~;c5aBx$R=xq*41Wo zhwQus_VOgm0hughj}MhOvs#{>Vg09Y8WxjWUJY5YW zJ?&8eG!59Cz=|E%Ns@013KLWOLV)CObIIj_5{>{#k%TEAMs_GbdDV`x-iYsGH z#=Z{USAQA>NY(}X7=3{K8#~H+MJzd|s z^YP1Hc07G_>)Lgir!F1{Qn4GcTg%?koHo<=1qRN{}nPDolOeI^o4N5I>! zU$N=L=sg~ zDx#dOA*B0N~cqPsWI(^rbbkh)DS0_H_UN0C4l_kvWIm2#Kyy6%BCh z(yIUf003&1xdx>t$*eR2ZvXxT0001Z_R$y3Iju92q*wg58};}zm(OaAH=p|y0002M zh5O5#fxp|~jc?yi@+7$`d4Q6Hl%z;WiWG??NXR{Hx%)pMd~SE0000OQI diff --git a/trunk/dist/images/help.png b/trunk/dist/images/help.png deleted file mode 100644 index 5c870176d4dea68aab9e51166cc3d7a582f326d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fH31dO1Kg=kC>5Q3yqSpqgfIvf9hjlah#g^*U%(#|BTNh1aeF>1g{ zA!#(;y?5`G?7j0^oVZDJMJ*&xb7jUm)PpdKZAf zmp!87NDhEYpp>Nc!0hui-rQIq+CDSg4c^^cz=8LjPKpmAmSqVv0HpIFujc2GJNqF3 zP-O+UnA?1rd;wy=D1g*Kzvz#AuVBdhY9i#KXL2RN1mR)z#!Y9 zJ$VLX!&p~C?BzMKG(uMNj*0Jl&3HU@j@l~}#;J}J$ci2z7_ll#Fdqtj@L;?R!0pew zL)&t@g%kn!R#r4}Y>6On#4jr_g2-JBcryJtRs)G^@VghIg$+GnG o2K|O$MqeTVW^hk`(e!`kI~cCB=}h`YUH||907*qoM6N<$f{y9MS^xk5 diff --git a/trunk/dist/images/l2jserverlogo.png b/trunk/dist/images/l2jserverlogo.png deleted file mode 100644 index 8272dedca5b3997f65e8e620fb3e356eeb8512a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8941 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 CKS$93 diff --git a/trunk/dist/languages/configurator/Configurator.properties b/trunk/dist/languages/configurator/Configurator.properties deleted file mode 100644 index 175282392b..0000000000 --- a/trunk/dist/languages/configurator/Configurator.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = English -toolName = Server Configuration Tool - -success = Configuration saved successfully -error = Error -errorReading = Error reading -errorSaving = Error saving -reason = Reason: -yes = Yes -no = No - -fileMenu = File -exitItem = Exit -helpMenu = Help -aboutItem = About - -save = Save -cancel = Cancel - -credits = Š 2008-2009 L2J Team. All rights reserved. -langText = Language: English -icons = Icons by http://www.famfamfam.com -translation = Translation: L2J Team diff --git a/trunk/dist/languages/configurator/Configurator_de.properties b/trunk/dist/languages/configurator/Configurator_de.properties deleted file mode 100644 index 8b27697438..0000000000 --- a/trunk/dist/languages/configurator/Configurator_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = Deutsch -toolName = Server Konfigurations Tool - -success = Konfiguration erfolgreich gespeichert -error = Fehler -errorReading = Fehler beim Lesen -errorSaving = Fehler beim Schreiben -reason = Grund: -yes = Ja -no = Nein - -fileMenu = Datei -exitItem = Beenden -helpMenu = Hilfe -aboutItem = Über - -save = Speichern -cancel = Abbrechen - -credits = Š 2008-2010 L2J Team. Alle Rechte vorbehalten. -language = Sprache: Deutsch -icons = Icons von http://www.famfamfam.com -translation = Übersetzung: benurb diff --git a/trunk/dist/languages/configurator/Configurator_es.properties b/trunk/dist/languages/configurator/Configurator_es.properties deleted file mode 100644 index 3682604758..0000000000 --- a/trunk/dist/languages/configurator/Configurator_es.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = Espańol -toolName = Herramienta de Configuración de Servidores L2J - -success = Configuración grabada correctamente -error = Error -errorReading = Error al leer el archivo -errorSaving = Error al grabar el archivo -reason = Motivo: -yes = Si -no = No - -fileMenu = Archivo -exitItem = Salir -helpMenu = Ayuda -aboutItem = Acerca de... - -save = Grabar -cancel = Cancelar - -credits = Š 2008-2010 el equipo L2J. Todos los derechos reservados. -language = Idioma: Espańol -icons = Iconos de http://www.famfamfam.com -translation = Traducción: DrLecter \ No newline at end of file diff --git a/trunk/dist/languages/configurator/Configurator_it.properties b/trunk/dist/languages/configurator/Configurator_it.properties deleted file mode 100644 index 7abfe2a3d1..0000000000 --- a/trunk/dist/languages/configurator/Configurator_it.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = Italiano -toolName = Strumento di configurazione del server L2J - -success = Configurazione salvata con successo -error = Errore -errorReading = Errore durante la lettura del file -errorSaving = Impossibile salvare il file -reason = Motivo: -yes = Si -no = No - -fileMenu = File -exitItem = Esci -helpMenu = Aiuto -aboutItem = Informazioni su... - -save = Salva -cancel = Annulla - -credits = Š 2008-2010 L2J Team. Tutti i diritti riservati. -language = Lingua: Italiano -icons = Icone di http://www.famfamfam.com -translation = Traduzione: Scafu \ No newline at end of file diff --git a/trunk/dist/languages/configurator/Configurator_nl.properties b/trunk/dist/languages/configurator/Configurator_nl.properties deleted file mode 100644 index 8eacbe7929..0000000000 --- a/trunk/dist/languages/configurator/Configurator_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = Nederlands -toolName = Server Configuratie Tool - -success = Configuratie succesvol opgeslagen -error = Fout -errorReading = Fout bij het lezen -errorSaving = Fout bij het opslaan -reason = Reden: -yes = Ja -no = Nee - -fileMenu = Bestand -exitItem = Afsluiten -helpMenu = Help -aboutItem = Over - -save = Opslaan -cancel = Annuleren - -credits = Š 2008-2010 L2J Team. Alle rechten voorbehouden. -language = Taal: Nederlands -icons = Iconen door http://www.famfamfam.com -translation = Vertaling: Bloodshed \ No newline at end of file diff --git a/trunk/dist/languages/configurator/Configurator_sk.properties b/trunk/dist/languages/configurator/Configurator_sk.properties deleted file mode 100644 index d900408870..0000000000 --- a/trunk/dist/languages/configurator/Configurator_sk.properties +++ /dev/null @@ -1,23 +0,0 @@ -language = Slovencina -toolName = Nastroj pre konfigurovanie servera - -success = Konfiguracia uspesne ulozena -error = Chyba -errorReading = Chyba pri citani -errorSaving = Chyba pri zapise -reason = Dovod: -yes = Ano -no = Nie - -fileMenu = Subor -exitItem = Ukoncit -helpMenu = Pomoc -aboutItem = O aplikacii - -save = Ulozit -cancel = Zrusit - -credits = Š 2008-2010 L2J Team. Vsetky prava vyhradene. -language = Jazyk: Slovencina -icons = Ikony z http://www.famfamfam.com -translation = Preklad: Aikimaniac \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister.properties b/trunk/dist/languages/gsregister/GSRegister.properties deleted file mode 100644 index 4b19931729..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = English -toolName = GS Registering Tool - -error = Error -reason = Reason: -yes = Yes -no = No - -fileMenu = File -exitItem = Exit -helpMenu = Help -aboutItem = About - -btnRemove = Remove -btnRemoveAll = Remove All -btnRegister = Register GameServer -confirmRemoveTitle = Confirm Removal -confirmRemoveText = Are you sure you want to remove GameServer %d - %s? -confirmRemoveAllText = Are you sure you want to remove ALL GameServers? -gsListRetrieveError = There was an error while attempting to retrieve the list of currently registered GameServers. - -gsName = GameServer Name -gsAction = Action - -registerGS = Register GameServer -serverName = Server name: -save = Save -cancel = Cancel -saveHexId = The hexid.txt file should be saved on GameServer's 'configs' folder to properly complete this process. -hexidDest = Choose hexid file destination folder... - -purpose = Allows to register/remove GameServers from LoginServer. -options = Options: -fallbackOpt = If during the register operation the specified GameServer ID is in use, an attempt with the first available ID will be made. -forceOpt = Forces GameServer register operation to overwrite a previous registration on the specified ID, if necessary. -cmdOpt = Forces this application to run in console mode, even if GUI is supported. -helpOpt = Shows this help message and exits. -languageOpt = Attempts to use the language for the specified locale, on failure reverts to auto-detection. -registerOpt1 = Registers a GameServer on ID and saves the hexid.txt file on . -registerOpt2 = You can provide a negative value for to register under the first available ID. -registerOpt3 = Nothing is done if is already in use, unless --force or --fallback is used. -unregisterOpt = Removes the GameServer specified by , use "all" to remove all currently registered GameServers. -wrongUnregisterArg = wrong argument for GameServer removal, specify a numeric ID or "all" without quotes to remove all. -noAction = No action to be taken. -checkingIdInUse = Checking if GameServer ID %d is in use... -removingGsId = Removing GameServer ID: %d -forcingRegistration = Forcing registration on ID %d, an existing registration on this ID is being overwritten. -fallingBack = Trying to register on the first available ID. -registrationOk = GameServer successfully registered on LoginServer with ID %d. -unregisterOk = GameServer ID: %d was successfully removed from LoginServer. -unregisterAllOk = All GameServers were successfully removed. -noFreeId = There was no free ID available to register. -sqlErrorRegister = An SQL error occurred while trying to register the GameServer. -ioErrorRegister = An error saving the hexid file occurred while trying to register the GameServer. -errorRegister = An error occurred while trying to register the GameServer. -errorUnregister = An error occurred while trying to remove the GameServer. -sqlErrorUnregister = An SQL error occurred while trying to remove the GameServer. -sqlErrorUnregisterAll = An SQL error occurred while trying to remove ALL GameServers. -noServerNames = No available names for GameServer, verify servername.xml file exists in the LoginServer folder. -noNameForId = No name for ID: %d -idIsNotFree = This ID is not available. -noServerForId = No GameServer is registered on ID: %d - - -cmdMenuRegister = Register GameServer -cmdMenuListNames = List GameServers Names and IDs -cmdMenuRemoveGS = Remove GameServer -cmdMenuRemoveAll = Remove ALL GameServers -cmdMenuExit = Exit -yourChoice = Choice: -invalidChoice = Invalid Choice: %s -gsInUse = In Use -gsFree = Free -enterDesiredId = Enter desired ID: - -credits = Š 2008-2009 L2J Team. All rights reserved. -langText = Language: English -icons = Icons by http://www.famfamfam.com -translation = Translation: L2J Team -bugReports = Bug Reports: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_cs.properties b/trunk/dist/languages/gsregister/GSRegister_cs.properties deleted file mode 100644 index 68defcb1bc..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_cs.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Ceština -toolName = GS Registering Tool - -error = Chyba -reason = Duvod: -yes = Ano -no = Ne - -fileMenu = Soubor -exitItem = Konec -helpMenu = Nápoveda -aboutItem = O aplikaci - -btnRemove = Odebrat -btnRemoveAll = Odebrat vše -btnRegister = Registrace Herního Serveru -confirmRemoveTitle = Potvrdit odstranení -confirmRemoveText = Jste si jist, že chcete odstranit Herní Server %d - %s? -confirmRemoveAllText = Jste si jist, že chcete odstranit všechny Herní Servery? -gsListRetrieveError = Došlo k chybe pri pokusu o získání seznamu aktuálne registrovaných Herních Serveru. - -gsName = Jméno Herního Serveru -gsAction = Akce - -registerGS = Registrace Herního Serveru -serverName = Jméno Serveru: -save = Uložit -cancel = Zruš -saveHexId = Soubor hexid.txt by mel být uložen do GameServeru v 'configs' složce pro rádné dokoncení tohoto procesu. -hexidDest = zvolte pro hexid cílovou složku... - -purpose = Umožnuje zaregistrovat / odebrat Herní Server z Prihlašovacího Serveru. -options = Možnosti: -fallbackOpt = Pokud v prubehu registrování Vámi zadaným Herním Serverem císlo je používané, pokus s prvním volným císlem bude provedeno. -forceOpt = Registrace Herního Serveru prepíše predchozí registraci na uvedené císlo, je-li to nezbytné. -cmdOpt = Aplikace bude spuštena v režimu konzole, i když je podporován grafický režim. -helpOpt = Zobrazuje tuto nápovedu zprávy a ukoncení. -languageOpt = Pokusy o použití jazyka pro konkrétní lokalizace, pri neúspechu se vrací zpet k auto-detekci. -registerOpt1 = Zaregistrovat Herní Server na císlu a uloží hexid.txt soubor do . -registerOpt2 = Mužete poskytnout záporné hodnoty pro do rejstríku podle prvních dostupných císel. -registerOpt3 = Nic se nestane pokud je již použité, v prípade že --force nebo --fallback je použité. -unregisterOpt = Odstraní Herní Server podle stanoveného , použijte "vše" pro odebrání všech soucasných registrovaných Herních Serveru. -wrongUnregisterArg = Špatný argument pro odstranení Herního Serveru, zadejte císelné ID nebo "all" bez uvozovek, aby se odstranily všechny. -noAction = Žádné akce, která mají být prijata. -checkingIdInUse = Kontroluji jestli císlo Herního Serveru %d je již použité... -removingGsId = Odebírám císlo Herního Serveru: %d. -forcingRegistration = Nutím registraci na císle %d, stávající registrace na tomto císle bude prepsaná. -fallingBack = Pokouším se registrovat na prvním volným císle. -registrationOk = Herní Server byl úspešne zaregistrován v Príhlašovacím Serveru pod císlem %d. -unregisterOk = Herní Server císlo: %d byl úspešne odebrán z Prihlašovacího Serveru. -unregisterAllOk = Všechny Herní Servery byly úspešne odebrány. -noFreeId = Nebylo nalezeno žádné volné císlo pro registraci. -sqlErrorRegister = Nastala SQL chyba pri pokusu o registraci Herního Serveru. -ioErrorRegister = Nastala chyba pri vytvárení souboru hexid.txt. -errorRegister = Nastala chyba pri pokuso o zaregistrování Herního Serveru. -errorUnregister = Nastala chyba pri pokusu o odebrání Herního Serveru. -sqlErrorUnregister = Nastala SQL chyba pri pokusu o odebrání Herního Serveru. -sqlErrorUnregisterAll = Nastala SQL chyba pri pokusu o odebrání všech Herních Serveru. -noServerNames = Nebylo nalezeno žádné volné jméno pro Herní Server, prosím zkontrolujte ve složce LoginServer soubor servername.xml. -noNameForId = Žádné jméno pro císlo: %d. -idIsNotFree = Toto císlo je již používané. -noServerForId = Nebyl nalezen žádny server pod císlem: %d. - - -cmdMenuRegister = Registrace Herního Serveru -cmdMenuListNames = Seznam Jmen a císel Herních Serveru -cmdMenuRemoveGS = Odebrat Herní Server -cmdMenuRemoveAll = Odebrat Všechny Herní Servery -cmdMenuExit = Konec -yourChoice = Volba: -invalidChoice = Neplatná volba: %s -gsInUse = Již použité -gsFree = Volné -enterDesiredId = Zadejte požadované císlo: - -credits = Š 2008-2010 L2J Tým. Všechna práva vyhrazena. -language = Jazyk: Ceština -icons = Ikony od http://www.famfamfam.com -translation = Preklad: L2J Tým -bugReports = Nahlášení chyb: diff --git a/trunk/dist/languages/gsregister/GSRegister_de.properties b/trunk/dist/languages/gsregister/GSRegister_de.properties deleted file mode 100644 index 56b45592e6..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_de.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Deutsch -toolName = GS Registrierungs Tool - -error = Fehler -reason = Grund: -yes = Ja -no = Nein - -fileMenu = Datei -exitItem = Beenden -helpMenu = Hilfe -aboutItem = Über - -btnRemove = Entfernen -btnRemoveAll = Alle entfernen -btnRegister = GameServer registrieren -confirmRemoveTitle = Löschung bestätigen -confirmRemoveText = Sind sie sicher, dass GameServer %d - %s gelöscht werden soll? -confirmRemoveAllText = Sind sie sicher, dass alle GameServer gelöscht werden sollen? -gsListRetrieveError = Beim Empfangen der Liste mit aktuell registrierten GameServern ist ein Fehler aufgetreten. - -gsName = GameServer Name -gsAction = Aktion - -registerGS = GameServer registrieren -serverName = Server Name: -save = Speichern -cancel = Abbrechen -saveHexId = Die hexid.txt Datei muss im 'config' Unterordner des GameServers gespeichert werden um den Vorgang ordnungsgemäß abzuschließen. -hexidDest = Zielverzeichnis für hexid Datei wählen... - -purpose = Erlaubt GameServer am LoginServer zu registrieren/vom LoginServer zu entfernen. -options = Optionen: -fallbackOpt = Wenn währrend des Registrierungsvorgangs die angegebene GameServer ID in Benutzung ist wird die nächste, freie ID verwendet. -forceOpt = Erzwingt das Überschreiben einer gespeicherten Registrierung mit der angegebenen ID, falls das nötig sein sollte. -cmdOpt = Erzwingt den Konsolenmodus der Anwendung auch wenn der grafische Modus unterstützt wird. -helpOpt = Zeigt diese Hilfemeldung an und schließt das Fenster. -languageOpt = Versucht die Sprache für die angegebene locale zu benutzen und stellt sich bei einem Fehler wieder auf automatische Erkennung zurück. -registerOpt1 = Registriert einen GameServer für ID und speichert die hexid.txt Datei unter . -registerOpt2 = Sie können einen negativen Wert für benutzen um den GameServer unter der ersten verfügbaren ID zu registrieren. -registerOpt3 = Es passiert nichts wenn bereits benutzt wird, außer --force oder --fallback ist gesetzt. -unregisterOpt = Entfernt den GameServer mit der . Benutzen sie "all" um alle momentan registrieren GameServer zu entfernen. -wrongUnregisterArg = Falscher Parameter für die Löschung des GameServers. Geben sie eine numerische ID um einen GameServer zu entfernen oder "all" (ohne Anführungszeichen) um alle momentan registrieren GameServer zu entfernen. -noAction = Keine Aktion wird ausgeführt. -checkingIdInUse = Überprüfe ob die GameServer ID %d bereits in Benutzung ist... -removingGsId = Entferne GameServer ID: %d -forcingRegistration = Erzwingt die Registrierung auf ID %d. Eine bereits existierende Registrierung auf dieser ID wird überschrieben. -fallingBack = Versuche auf der ersten, freien ID zu registrieren. -registrationOk = GameServer wurd erfolgreich mit der ID %d auf dem LoginServer registriert. -unregisterOk = GameServer ID: %d wurde erfolgreich vom LoginServer entfernt. -unregisterAllOk = Alle GameServer wurden erfolgreich entfernt. -noFreeId = Es ist keine freie ID zum Registrieren vorhanden. -sqlErrorRegister = Beim Versuch den GameServer zu registrieren ist ein SQL Fehler aufgetreten. -ioErrorRegister = Beim Versuch den GameServer zu registrieren ist ein Fehler beim Speichern der hexid Datei aufgetreten. -errorRegister = Beim Versuch den GameServer zu registrieren ist ein Fehler aufgetreten. -errorUnregister = Beim Versuch den GameServer zu entfernen ist ein Fehler aufgetreten. -sqlErrorUnregister = Beim Versuch den GameServer zu entfernen ist ein SQL Fehler aufgetreten. -sqlErrorUnregisterAll = Beim Versuch alle GameServer zu entfernen ist ein SQL Fehler aufgetreten. -noServerNames = Keine verfügbaren Namen für den GameServer gefunden. Stellen sie sicher, dass die servername.xml Date im LoginServer Verzeichnis vorhanden ist. -noNameForId = Kein Name für ID: %d -idIsNotFree = Diese ID ist nicht verfügbar. -noServerForId = Kein registrierter GameServer für ID: %d - - -cmdMenuRegister = GameServer registrieren -cmdMenuListNames = GameServers Namen und IDs auflisten -cmdMenuRemoveGS = GameServer enternen -cmdMenuRemoveAll = Alle GameServer entfernen -cmdMenuExit = Schließen -yourChoice = Bitte wählen: -invalidChoice = Ungültige Auswahl: %s -gsInUse = In Benutzung -gsFree = Frei -enterDesiredId = Gewünsche ID eingeben: - -credits = Š 2008-2010 L2J Team. Alle Rechte vorbehalten. -language = Sprache: Deutsch -icons = Icons von http://www.famfamfam.com -translation = Übersetzung: benurb -bugReports = Fehlerberichte: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_es.properties b/trunk/dist/languages/gsregister/GSRegister_es.properties deleted file mode 100644 index e521abc553..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_es.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Espańol -toolName = Herramienta para registrar gameservers L2J - -error = Error -reason = Motivo: -yes = Si -no = No - -fileMenu = Archivo -exitItem = Salir -helpMenu = Ayuda -aboutItem = Acerca de... - -btnRemove = Quitar -btnRemoveAll = Quitar todo -btnRegister = Registrar GameServer -confirmRemoveTitle = Confirmar Eliminación -confirmRemoveText = Seguro que deseas eliminar el GameServer %d - %s? -confirmRemoveAllText = Seguro que deseas quitar todos los GameServers de la lista? -gsListRetrieveError = Ha ocurrido un error mientras se intentaba obtener una lista de servidores registrados. - -gsName = Nombre de GameServer -gsAction = Acción - -registerGS = Registrar GameServer -serverName = Nombre de servidor: -save = Grabar -cancel = Cancelar -saveHexId = Para completar este proceso, es preciso guardar el archivo hexid.txt en la carpeta 'configs' del GameServer. -hexidDest = Elige la carpeta de destino para el archivo hexid... - -purpose = Permite agregar o quitar GameServers de un LoginServer. -options = Opciones: -fallbackOpt = Si se determina durante el registro que el ID solicitado está en uso, se intentará con el siguiente ID disponible. -forceOpt = Fuerza la sobreescritura de un ID registrado anteriormente, si es necesario. -cmdOpt = Fuerza el funcionamiento en modo consola, aún cuando la interfaz gráfica esté soportada. -helpOpt = Muestra este mensaje de ayuda y finaliza. -languageOpt = Intenta usar el soporte lingüístico indicado, volviendo a la detección automática si falla. -registerOpt1 = Registra un GameServer con el ID y guarda el archivo hexid.txt en la carpeta que se indique. -registerOpt2 = Se puede usar un valor de negativo para que se ocupe el primer ID disponible. -registerOpt3 = No hace nada si ya está siendo usado, a menos que se indique algo distinto con --force ó --fallback. -unregisterOpt = Elimina el GameServer especificado en , o todos los gameservers registrados si en vez de un ID se indica "all". -wrongUnregisterArg = argumento incorrecto para la eliminación de un GameServer, indica el número de ID ó bien "all" sin las comillas para quitar todos. -noAction = No se hace nada. -checkingIdInUse = Comprobando si el ID para GameServer %d está en uso... -removingGsId = Liberando ID de GameServer: %d -forcingRegistration = Forzando registro con el ID %d, una registración anterior está siendo sobreescrita. -fallingBack = Intentando obtener un registro con el primer ID que esté disponible -registrationOk = Se ha registrado un GameServer exitósamente en este LoginServer usando el ID %d. -unregisterOk = El ID de GameServer %d ha sido liberado para su uso en este LoginServer. -unregisterAllOk = Se han liberado todos los ID de GameServer. -noFreeId = No hay un ID de GameServer disponible. -sqlErrorRegister = Ha ocurrido un error SQL mientras se intentaba registrar un GameServer. -ioErrorRegister = Ha ocurrido un error de archivo mientras se intentaba guardar el archivo hexid resultante de registrar un GameServer. -errorRegister = Ha ocurrido un error mientras se intentaba registrar un GameServer. -errorUnregister = Ha ocurrido un error mientras se intentaba liberar un ID de GameServer. -sqlErrorUnregister = Ha ocurrido un error SQL mientras se intentaba liberar un ID de GameServer. -sqlErrorUnregisterAll = Ha ocurrido un error SQL mientras se intentaba liberar todos los ID de GameServer. -noServerNames = No hay nombres disponibles para el GameServer, verifica que el archivo servername.xml está presente en la carpeta del LoginServer. -noNameForId = No hay un nombre para el ID: %d -idIsNotFree = Este ID no está libre. -noServerForId = No hay un GameServer registrado bajo el ID: %d - - -cmdMenuRegister = Registrar GameServer -cmdMenuListNames = Listar nombres e IDs -cmdMenuRemoveGS = Liberar GameServer -cmdMenuRemoveAll = Liberar todos los GameServers -cmdMenuExit = Salir -yourChoice = Elige: -invalidChoice = Opción incorrecta: %s -gsInUse = En uso -gsFree = Libre -enterDesiredId = Ingresa el ID que deseas: - -credits = Š 2008-2010 el equipo L2J. Todos los derechos reservados. -language = Lenguaje: Espańol -icons = Iconos de http://www.famfamfam.com -translation = Traducción: DrLecter -bugReports = Reporte de bugs: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_hu.properties b/trunk/dist/languages/gsregister/GSRegister_hu.properties deleted file mode 100644 index 3a42459074..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_hu.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Magyar -toolName = GS Registering Tool - -error = Hiba -reason = Ok: -yes = Igen -no = Nem - -fileMenu = Fájl -exitItem = Kilépés -helpMenu = Sugó -aboutItem = Névjegy - -btnRemove = Eltávolítás -btnRemoveAll = Összes eltávolítása -btnRegister = GameServer regisztrálása -confirmRemoveTitle = Eltávolítás megerosítése -confirmRemoveText = Biztos vagy benne, hogy eltávolítod a GameServer %d - %s? -confirmRemoveAllText = Biztos vagy benne, hogy az összes GameServert eltávolítod? -gsListRetrieveError = Hiba történt a regisztrált GameServer-ek listájának lekérésekor. - -gsName = GameServer Neve -gsAction = Akció - -registerGS = GameServer regisztrálása -serverName = Server neve: -save = Mentés -cancel = Mégse -saveHexId = A hexid.txt fájlt a GameServer 'configs' mappájába kell menteni, hogy a GameServer megfeleloen muködjön. -hexidDest = Válaszd ki a hexid fájl cél mappáját... - -purpose = Megengedi a GameServerek regisztrációját/eltávolítását a LoginServerbol. -options = Beállítások: -fallbackOpt = Amenyiben a regisztrálási eljárás közben a kiválasztott GameServer ID már használatban van, akkor a következo nem használt ID-t használja a regisztrációhoz. -forceOpt = A GameServer regisztrációjánál felül fogja írni a megadott ID-n korábban regisztráltat, ha szükséges. -cmdOpt = Console mód használata akkor is, ha a GUI elérheto. -helpOpt = Megmutatja ezt a Sugót. -languageOpt = Megpróbálja a lokálisan beállított nyelvet használni, ha nem sikerül, akkor visszavált automatikus felismerésre. -registerOpt1 = GameServer regisztrálása a(z) ID-n és a hexid.txt mentése a helyre. -registerOpt2 = Használhatsz negatív értéket a(z) -hez a regisztráció során az elso szabad ID használatához. -registerOpt3 = Semmi se történik ha a(z) használatban van és a --force vagy --fallback kapcsolókat nem használod. -unregisterOpt = Eltávolítja a -u GameServer-t, használd az "all" kapcsolót az összes regisztrált GameServer eltávolításához. -wrongUnregisterArg = Hibás kapcsoló a GameServer eltávolításához, adjon meg egy szám ID-t vagy "all" parancsot a macskakörmök nélkül az összes eltávolításához. -noAction = No action to be taken. -checkingIdInUse = Ellenörzi, hogy a GameServer ID %d használatban van e... -removingGsId = GameServer ID: %d eltávolítása -forcingRegistration = Kényszerített regisztráció az ID %d, a korábbi regisztráció felülírásra kerül. -fallingBack = Megpróbálja az elso szabad ID-t használni. -registrationOk = GameServer sikeresen regisztrálva a LoginServer-ben a következo ID-vel: %d. -unregisterOk = GameServer ID: %d sikeresen eltávolítva a LoginServer-bol. -unregisterAllOk = A GameServerek eltávolítása sikeres. -noFreeId = Nincs szabad ID a regisztrációhoz. -sqlErrorRegister = SQL hiba történt a GameServer regisztrációja közben. -ioErrorRegister = Hiba történt a hexid fájl mentése közben. -errorRegister = Hiba történt a GameServer regisztrációja közben. -errorUnregister = Hiba történt a GameServer eltávolítása közben. -sqlErrorUnregister = SQL hiba történt a GameServer eltávolítása közben. -sqlErrorUnregisterAll = SQL hiba történt a GameServerek eltávolítása közben. -noServerNames = Nincs szabad név a GameServer-hez, ellenorizze a servername.xml elérheto e a LoginServer mappában. -noNameForId = Nincs név ehhez az ID-hez: %d -idIsNotFree = Nem szabad ID. -noServerForId = Nincs regisztrált GameServer ezen az ID-n: %d - - -cmdMenuRegister = GameServer regisztrálása -cmdMenuListNames = GameServer Nevek és ID-k Listája -cmdMenuRemoveGS = GameServer eltávolítása -cmdMenuRemoveAll = Az összes GameServer eltávolítása -cmdMenuExit = Kilépés -yourChoice = Választás: -invalidChoice = Rossz választás: %s -gsInUse = Használatban -gsFree = Szabad -enterDesiredId = Üsse be a kívánt ID-t: - -credits = Š 2008-2010 L2J Team. Minden jog fenttartva. -language = Nyelv: Magyar -icons = Icons by http://www.famfamfam.com -translation = Fordítás: L2J Team -bugReports = Hiba bejelentés: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_it.properties b/trunk/dist/languages/gsregister/GSRegister_it.properties deleted file mode 100644 index 2745e3d655..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_it.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Italiano -toolName = Strumento di registrazione del gameserver L2J - -error = Errore -reason = Motivo: -yes = Si -no = No - -fileMenu = File -exitItem = Esci -helpMenu = Aiuto -aboutItem = Informazioni - -btnRemove = Rimuovi -btnRemoveAll = Rimuovi tutto -btnRegister = GameServer registrati -confirmRemoveTitle = Confermare la cancellazione -confirmRemoveText = Sei sicuro di voler eliminare il Gameserver %d - %s ? -confirmRemoveAllText = Sei sicuro di voler eliminare tutti i Gameserver dalla lista? -gsListRetrieveError = Si č verificato un errore durante il tentativo di ottenere la lista dei Gameserver registrati. - -gsName = Nome GameServer -gsAction = Azione - -registerGS = Registra GameServer -serverName = Nome Server: -save = Salva -cancel = Annulla -saveHexId = Per completare questo processo, č necessario salvare il file hexid.txt nella cartella 'config' del Gameserver. -hexidDest = Scegli la cartella di destinazione per il file hexid... - -purpose = Gameserver consente la registrazione/rimozione dal LoginServer. -options = Opzioni: -fallbackOpt = Se č accertato che la richiesta di registrazione per l'ID č in uso, si provi con il prossimo ID disponibile. -forceOpt = Forza la sovrascrittura di un ID giŕ registrato, se necessario. -cmdOpt = Forza il funzionamento in modalitŕ console, anche quando l'interfaccia grafica č supportata. -helpOpt = Visualizza questo messaggio di aiuto e di uscita. -languageOpt = Prova ad usare la lingua specificata, ritorna al rilevamento automatico in caso di errore. -registerOpt1 = Registra un GameServer con ID e salva il file hexid.txt nella cartella indicata. -registerOpt2 = Usa un valore negativo per occupare il primo ID disponibile. -registerOpt3 = Non fare niente se č giŕ in uso, a meno che siano utilizzati i comandi --force o --fallback. -unregisterOpt = Rimuovi il Gameserver . Usa "all" per rimuovere tutti i GameServer attualmente registrati. -wrongUnregisterArg = Argomento sbagliato per l'eliminazione di un GameServer, indica il numero ID o "tutti" (senza virgolette) per rimuoverli tutti. -noAction = Nessuna azione verrŕ eseguita. -checkingIdInUse = Verificare se l'ID %d del GameServer č giŕ in uso... -removingGsId = Rimuovere GameServer ID: %d -forcingRegistration = Forzare la registrazione con ID %d. Una registrazione precedente verrŕ sovrascritta. -fallingBack = Ottieni la registrazione con il primo ID disponibile. -registrationOk = GameServer ID: %d registrato con successo al LoginServer. -unregisterOk = GameServer ID: %d rimosso dal LoginServer. -unregisterAllOk = Tutti i GameServer sono stati rimossi con successo. -noFreeId = Nessun ID libero disponibile per la registrazione. -sqlErrorRegister = Si č verificato un errore SQL durante la registrazione del GameServer. -ioErrorRegister = Si č verificato un errore nel salvataggio del file hexid durante l'operazione di registrazione del GameServer. -errorRegister = Si č verificato un errore durante il tentativo di registrare un GameServer. -errorUnregister = Si č verificato un errore durante il tentativo di rimuovere un GameServer. -sqlErrorUnregister = Si č verificato un errore SQL durante il tentativo di rimuovere un GameServer. -sqlErrorUnregisterAll = Si č verificato un errore SQL durante il tentativo di rimuovere tutti i GameServer. -noServerNames = Nessun nome disponibile per il GameServer, verificare che il file servername.xml sia presente nella cartella del LoginServer. -noNameForId = Nessun nome associato all'ID: %d -idIsNotFree = Questo ID non č disponibile. -noServerForId = Nessun GameServer registrato con ID: %d - - -cmdMenuRegister = Registra GameServer -cmdMenuListNames = Visualizza Nomi e ID dei GameServers -cmdMenuRemoveGS = Elimina GameServer -cmdMenuRemoveAll = Elimina TUTTI i GameServer -cmdMenuExit = Esci -yourChoice = Scegliere: -invalidChoice = Scelta non valida: %s -gsInUse = In Uso -gsFree = Disponibile -enterDesiredId = Inserire l'ID desiderato: - -credits = Š 2008-2010 L2J Team. Tutti i diritti riservati. -language = Lingua: Italiano -icons = Icone di http://www.famfamfam.com -translation = Traduzione: Scafu -bugReports = Segnalazione bug: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_nl.properties b/trunk/dist/languages/gsregister/GSRegister_nl.properties deleted file mode 100644 index 357460ed93..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_nl.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Nederlands -toolName = GS Registratie Tool - -error = Fout -reason = Reden: -yes = Ja -no = Nee - -fileMenu = Bestand -exitItem = Afsluiten -helpMenu = Help -aboutItem = Over - -btnRemove = Verwijderen -btnRemoveAll = Alles Verwijderen -btnRegister = Registreer GameServer -confirmRemoveTitle = Bevestig Verwijderen -confirmRemoveText = Weet u zeker dat u GameServer %d - %s wilt verwijderen? -confirmRemoveAllText = Weet u zeker dat u alle GameServers wilt verwijderen? -gsListRetrieveError = Er is een fout opgetreden tijdens het ophalen van de lijst van de geregistreerde Gameservers. - -gsName = GameServer Naam -gsAction = Handeling - -registerGS = Registreer GameServer -serverName = Server naam: -save = Opslaan -cancel = Annuleren -saveHexId = Het hexid.txt bestand moet in de GameServer's 'configs' map worden opgeslagen om dit process te voltooien. -hexidDest = Kies de bestemmingsmap voor het hexid bestand... - -purpose = Staat het registreren/verwijderen van GameServers op de LoginServer toe. -options = Opties: -fallbackOpt = Als tijdens het registreen process het opgegeven GameServer ID in gebruik is, zal er een poging gedaan worden met het eerst beschikbare ID. -forceOpt = Forceert het GameServer registratie process de vorige registratie te overschrijven, indien nodig op het specifieke ID. -cmdOpt = Forceert de applicatie in console modus uit te voeren, zelfs wanneer de GUI wordt ondersteund. -helpOpt = Toont dit help bericht en sluit dan af. -languageOpt = Probeert de taal te gebruiken voor de opgegeven locatie, indien er een fout ontstaat wordt de auto-detectie weer ingeschakelt. -registerOpt1 = Registreert een GameServer op ID en slaat het hexid.txt bestand op in . -registerOpt2 = U kunt een negatieve waarde voor opgeven om te registreren op het eerste beschikbare ID. -registerOpt3 = Er wordt niets gedaan als al in gebruik is, tenzij --force of --fallback wordt gebruikt. -unregisterOpt = Verwijderd de GameServer met het gespecificeerde , gebruik "alle" om alle op did moment geregistreerde GameServers te verwijderen. -wrongUnregisterArg = verkeerd argument voor het verwijderenen van de GameServer, specificeer een numeriek ID of "alle" zonder aanhalingstekens om ze allemaal te verwijderen. -noAction = Er word geen handeling ondernomen. -checkingIdInUse = Controleren of GameServer ID %d in gebruik is... -removingGsId = Bezig met het verwijderen van GameServer ID: %d -forcingRegistration = Geforceerde registratie op ID %d, bestaande registratie op dit ID word overschreven. -fallingBack = Proberen te registreren op het eerst beschikbare ID. -registrationOk = GameServer successvol geregistreerd op de LoginServer met ID %d. -unregisterOk = GameServer ID: %d is succesvol verwijderd van de LoginServer. -unregisterAllOk = Alle GameServers zijn succesvol verwijderd. -noFreeId = Er was geen vrij ID beschikbaar om te registreren. -sqlErrorRegister = Er is een SQL fout opgetreden tijdens het registreren van de gameserver. -ioErrorRegister = Er is een fout opgetreden bij het registreren van de GameServer tijdens het opslaan van het hexid bestand. -errorRegister = Er is een fout opgetreden tijdens het registreren van de gameserver. -errorUnregister = Er is een fout opgetreden tijdens het verwijderen van de gameserver. -sqlErrorUnregister = Er is een SQL fout opgetreden tijdens het verwijderen van de gameserver. -sqlErrorUnregisterAll = Er is een SQL fout opgetreden tijdens het verwijderen van alle gameservers. -noServerNames = Er zijn geen beschikbare namen voor GameServer, controleer of het servername.xml bestand aanwezig is in de LoginServer map. -noNameForId = Er is geen naam voor ID: %d -idIsNotFree = Dit ID is niet beschikbaar. -noServerForId = Er is geen GameServer is geregistreerd met ID: %d - - -cmdMenuRegister = Registreer GameServer -cmdMenuListNames = List GameServers Names and IDs -cmdMenuRemoveGS = Verwijder GameServer -cmdMenuRemoveAll = Verwijder alle GameServers -cmdMenuExit = Afsluiten -yourChoice = Keuze: -invalidChoice = Ongeldige keuze: %s -gsInUse = In Gebruik -gsFree = Vrij -enterDesiredId = Voer het gewenste ID in: - -credits = Š 2008-2010 L2J Team. Alle rechten voorbehouden. -language = Language: Nederlands -icons = Iconen door http://www.famfamfam.com -translation = Translation: Bloodshed -bugReports = Bug Reports: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_pt.properties b/trunk/dist/languages/gsregister/GSRegister_pt.properties deleted file mode 100644 index dbd0ef8890..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_pt.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Portuguęs (Brasil) -toolName = GS Registering Tool - -error = Erro -reason = Motivo: -yes = Sim -no = Năo - -fileMenu = Arquivo -exitItem = Sair -helpMenu = Ajuda -aboutItem = Sobre - -btnRemove = Remover -btnRemoveAll = Remover Todos -btnRegister = Registrar GameServer -confirmRemoveTitle = Confirma Remoçăo -confirmRemoveText = Tem certeza que deseja remover este GameServer %d - %s? -confirmRemoveAllText = Tem certeza que deseja remover TODOS GameServers? -gsListRetrieveError = Ocorreu um erro tentando obter a lista de GameServers registrados neste LoginServer. - -gsName = Nome do GameServer -gsAction = Açăo - -registerGS = Registrar GameServer -serverName = Nome do Servidor: -save = Salvar -cancel = Cancelar -saveHexId = O arquivo hexid.txt deverá ser salvo na pasta configs do GameServer para completar o processo. -hexidDest = Escolha onde salvar o arquivo de hexid... - -purpose = Permite que GameServers sejam registrados e removidos do LoginServer. -options = Opçőes: -fallbackOpt = Se ao tentar registrar o GameServer o ID especificado estiver em uso, o primeiro ID disponível será usado. -forceOpt = Força operaçőes de registro de GameServer a sobrescreverem um registro anterior quando necessário. -cmdOpt = Obriga este programa a rodar em modo console mesmo se o modo GUI for suportado. -helpOpt = Exibe esta mensagem de ajuda. -languageOpt = Faz com que a aplicaçăo tente usar o idioma especificado, ignorando a auto-detecçăo. -registerOpt1 = Registra um GameServer no ID e salva o arquivo hexid.txt em . -registerOpt2 = Use um valor negativo em para registrar o primeiro ID disponível. -registerOpt3 = Năo tem efeito se já estiver em uso, exceto se --force for usado em conjunto (sobrescreve). -unregisterOpt = Remove o GameServer especificado por , use "all" para remover todos GameServers atualmente registrados. -wrongUnregisterArg = Argumento incorreto para remoçăo de GameServer, informe o ID numérico ou "all" sem aspas para remover todos. -noAction = Nenhuma açăo a ser tomada. -checkingIdInUse = Verificando se GameServer ID %d está em uso... -removingGsId = Removendo GameServer ID: %d -forcingRegistration = Forçando registro no ID %d, sobrescrevendo o registro anterior existente neste ID. -fallingBack = Tentado registrar o primeiro ID livre. -registrationOk = GameServer registrado no LoginServer com sucesso no ID %d. -unregisterOk = GameServer ID: %d foi removido do LoginServer com sucesso. -unregisterAllOk = Todos GameServers foram removidos do LoginServer com sucesso. -noFreeId = Năo foi possível encontrar um ID livre para registrar o GameServer. -sqlErrorRegister = Ocorreu um erro na operaçăo SQL enquanto tentando registrar o GameServer. -ioErrorRegister = Ocorreu um erro salvando o arquivo de hexid enquanto tentando registrar o GameServer. -errorRegister = Ocorreu um erro enquanto tentando registrar o GameServer. -errorUnregister = Ocorreu um erro enquanto tentando desregistrar o GameServer. -sqlErrorUnregister = Ocorreu um erro na operaçăo SQL enquanto tentando desregistrar o GameServer. -sqlErrorUnregisterAll = Ocorreu um erro na operaçăo SQL enquanto tentando desregistrar todos GameServers. -noServerNames = Năo há nomes disponíveis para GameServers, verifique se o arquivo servername.xml está na pasta do LoginServer. -noNameForId = Nenhum nome está associado ao ID: %d -idIsNotFree = Este ID năo está disponível -noServerForId = Nenhum server está registrado no ID: %d - - -cmdMenuRegister = Registrar GameServer -cmdMenuListNames = Listar Nome e IDs de GameServers -cmdMenuRemoveGS = Remover um GameServer -cmdMenuRemoveAll = Remover TODOS GameServers -cmdMenuExit = Sair -yourChoice = Escolha: -invalidChoice = Escolha Inválida: %s -gsInUse = Em Uso -gsFree = Disponível -enterDesiredId = Digite o ID desejado: - -credits = Š 2008-2010 Equipe L2J. Todos os direitos reservados. -language = Idioma: Portuguęs (Brasil) -icons = Ícones por http://www.famfamfam.com -translation = Traduçăo: Equipe L2J -bugReports = Reporte Bugs: \ No newline at end of file diff --git a/trunk/dist/languages/gsregister/GSRegister_sc.properties b/trunk/dist/languages/gsregister/GSRegister_sc.properties deleted file mode 100644 index d5836f3929..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_sc.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = 中文 (简体) -toolName = GS Registering Tool - -error = 错误 -reason = 原因: -yes = 是 -no = 同 - -fileMenu = 楣楈 -exitItem = 离开 -helpMenu = 帮助 -aboutItem = 关于 - -btnRemove = 移除 -btnRemoveAll = 移除全部 -btnRegister = 注册游戏服务器 -confirmRemoveTitle = 确认移除 -confirmRemoveText = 确定要移除游戏服务器 %d - %s? -confirmRemoveAllText = 确定要移除全部游戏服务器s? -gsListRetrieveError = 无法正常取得所注册过的游戏服务器列表. - -gsName = 游戏服务器名称 -gsAction = 动作 - -registerGS = 注册游戏服务器 -serverName = 服务器名称: -save = 存取 -cancel = 取消 -saveHexId = hexid.txt 档案必须存取在游戏服务器的 'configs' 文件夹才能正常执行. -hexidDest = 请选择hexid档案的位置... - -purpose = 允许从登入服务器 注册/移除 游戏服务器. -options = 选项: -fallbackOpt = 若在注册游戏服务器的程序发现该游戏服务器ID已经注册过,将会自动注册为下一个可使用的ID. -forceOpt = 若在注册游戏服务器的程序发现该游戏服务器ID已经注册过,将会强制取代此游戏服务器ID位置. -cmdOpt = 强制让此程序启动在指令窗口模式. -helpOpt = 显示此帮助讯息与离开. -languageOpt = 尝试让系统自动侦测该平台的语言, 错误时会自动复原. -registerOpt1 = 注册游戏服务器的ID为 并存取hexid.txt档案至 . -registerOpt2 = 您可以在 使用负的数值, 让系统自动注册第一个可以使用的ID. -registerOpt3 = 若 已经被使用了, 系统将不会做出任何动作, 除非有使用到 --force 或者 --fallback . -unregisterOpt = 利用指定的 来移除游戏服务器, 用 "all" 来移除目前已注册的游戏服务器. -wrongUnregisterArg = 移除游戏服务器指令错误, 请指定游戏服务器编号或者用 all 来移除全部. -noAction = 无任何动作. -checkingIdInUse = 检查是否游戏服务器 ID %d 已被使用... -removingGsId = 正在移除游戏服务器 ID: %d -forcingRegistration = 强制注册游戏服务器 ID %d, 上一个以注册的游戏服务器将会被复写. -fallingBack = 尝试注册第一个可使用的ID. -registrationOk = 游戏服务器成功注册上登入服务器并使用 ID %d. -unregisterOk = 游戏服务器 ID: %d 成功从登入服务器移除. -unregisterAllOk = 所有游戏服务器成功移除. -noFreeId = 已经没有多余可使用的ID. -sqlErrorRegister = 游戏服务器注册时发生SQL错误. -ioErrorRegister = 游戏服务器注册时发生无法正常存取hexid楣楈. -errorRegister = 游戏服务器注册时发生错误. -errorUnregister = 游戏服务器移除时发生错误. -sqlErrorUnregister = 游戏服务器移除时发生SQL错误. -sqlErrorUnregisterAll = 游戏服务器全部移除时发生SQL错误. -noServerNames = 没有可以使用的名称给游戏服务器, 检察是否 servername.xml 此档案再登入服务器文件夹里面. -noNameForId = ID: %d 没有任何名称. -idIsNotFree = ć­¤ ID 无法使用. -noServerForId = 无任何游戏服务器使用 ID: %d - - -cmdMenuRegister = 注册游戏服务器 -cmdMenuListNames = 列出游戏服务器名称以及ID -cmdMenuRemoveGS = 移除游戏服务器 -cmdMenuRemoveAll = 移除全部游戏服务器 -cmdMenuExit = 离开 -yourChoice = 选择: -invalidChoice = 错误选择: %s -gsInUse = 以使用 -gsFree = 可使用 -enterDesiredId = 请输入想使用的ID: - -credits = Š 2008-2010 L2J 团队版权所有. -language = 语言: 中文 (简体) -icons = 图片提供 http://www.famfamfam.com -translation = 翻译: L2J 团队 ShanSoft -bugReports = 错误回报: diff --git a/trunk/dist/languages/gsregister/GSRegister_sk.properties b/trunk/dist/languages/gsregister/GSRegister_sk.properties deleted file mode 100644 index 6940b545be..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_sk.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = Slovencina -toolName = Nastroj pre registrovanie herneho servera - -error = Chyba -reason = Dovod: -yes = Ano -no = Ne - -fileMenu = Subor -exitItem = Koniec -helpMenu = Napoveda -aboutItem = O aplikacii - -btnRemove = Odobrat -btnRemoveAll = Odobrat vsetky -btnRegister = Registracia Herneho Servera -confirmRemoveTitle = Potvrdit odstranenie -confirmRemoveText = Si si isty, ze chces odstranit herny server %d - %s? -confirmRemoveAllText = Si si isty, ze chces odstranit vsetky herne servre? -gsListRetrieveError = Vznikla chyba pri pokuse o ziskanie zoznamu aktualne registrovanych hernych serverov. - -gsName = Meno herneho serveru -gsAction = Uloha - -registerGS = Registracia herneho servera -serverName = Meno servera: -save = Uložzit -cancel = Zrusitš -saveHexId = Pre uspesne ukoncenie procesu by subor hexid.txt mal byt uložzeny v adresari "config" herneho servera. -hexidDest = Zvol si cielovy adresar pre subor hexid.txt. - -purpose = Umožznuje zaregistrovat / odobrat herny server z prihlasovacieho servera. -options = Možznosti: -fallbackOpt = Ak je v registracii zadane uz pouzite cislo, bude pouzite nasledujuce prve volne. -forceOpt = Ak je to nevyhnutne, registracia herneho servera prepise cislo predoslej registracie na uvedene cislo. -cmdOpt = Aplikacia bude spusštena v konzolovom rezime konzole aj napriek podpore grafickeho rezimu. -helpOpt = Zobrazuje tuto napovedu a zatvori okno. -languageOpt = Pokusi sa o pouzitie zvolenej lokalizacie, pri neuspechu sa prepne na automaticku detekciu. -registerOpt1 = Zaregistrovat herny server s cislom a ulozit hexid.txt subor do . -registerOpt2 = Mozete zvolit zapornu hodnotu pre na zaregistrovanie pred prve volne cislo. -registerOpt3 = Nic se nedeje ak je uz použité, v pripade zže je pouzite --force alebo --fallback. -unregisterOpt = Odstraní Herní Server podle stanoveného , použijte "vše" pro odebrání všech soucasných registrovaných Herních Serveru. -wrongUnregisterArg = Zadana nespravna hodnota pri odoberani herneho servera, zadajte cislo ID alebo "all" bez uvodoviek, aby sa odobrali vsetky. -noAction = ŽZiadne ulohy, ktore by by mali byt vykonane. -checkingIdInUse = Kontrolujem ci uz cislo herneho servera %d nie je pouzite... -removingGsId = Odoberam cislo herneho servera: %d. -forcingRegistration = Vynucujem si registraciu pod cislom %d, aktualna registracia na tomto cisle bude prepisana. -fallingBack = Pokusam sa zaregistrovat na prvom volnom cisle. -registrationOk = Herny server bol uspesne zaregistrovany v prihlasovacom servri pod cislom %d. -unregisterOk = Herny server cislo: %d bol uspesne odobraty z prihlasovacieho servera. -unregisterAllOk = Vsšetky herne servre boli uspesne odobrate. -noFreeId = Nebolo najdene ziadne volne cislo pre registraciu. -sqlErrorRegister = Vznikla chyba s SQL pri pokuse o registraciu herneho servera. -ioErrorRegister = Vznikla chyba pri vytvarani suboru hexid.txt. -errorRegister = Vznikla chyba pri pokuse o zaregistrovanie herneho servera. -errorUnregister = Vznikla chyba pri pokuse o odobratie herneho servera. -sqlErrorUnregister = Vznikla chyba s SQL pri pokuse o odobratie herneho servera. -sqlErrorUnregisterAll = Vznikla chyba s SQL pri pokuse o odobratie vsetkych hernych serverov. -noServerNames = Nebolo najdene ziadne volne meno pre herny server, prosim skontrolujte v adresari LoginServer subor servername.xml. -noNameForId = ŽZiadne meno pre cislo: %d. -idIsNotFree = Toto cislo je uz pouzivane. -noServerForId = Nebol najdeny ziadny server s cislom: %d. - - -cmdMenuRegister = Registracia herneho servera -cmdMenuListNames = Zoznam mien a cisel hernych serverov -cmdMenuRemoveGS = Odobrat herny server -cmdMenuRemoveAll = Odobrat vsetky herne servre -cmdMenuExit = Koniec -yourChoice = Volba: -invalidChoice = Neplatna volba: %s -gsInUse = Uz pouzite -gsFree = Volne -enterDesiredId = Zadajte pozžadovane cislo: - -credits = Š 2008-2010 L2J Team. Vsšetky prava vyhradene. -language = Jazyk: Slovencina -icons = Ikony z http://www.famfamfam.com -translation = Preklad: L2J Team - Aikimaniac -bugReports = Nahlasovanie chyb: diff --git a/trunk/dist/languages/gsregister/GSRegister_zh.properties b/trunk/dist/languages/gsregister/GSRegister_zh.properties deleted file mode 100644 index c5094ae10b..0000000000 --- a/trunk/dist/languages/gsregister/GSRegister_zh.properties +++ /dev/null @@ -1,80 +0,0 @@ -language = 中文 -toolName = GS Registering Tool - -error = 錯誤 -reason = 原因: -yes = 是 -no = 同 - -fileMenu = 檔案 -exitItem = 離開 -helpMenu = 幫助 -aboutItem = 關於 - -btnRemove = 移除 -btnRemoveAll = 移除全部 -btnRegister = 註冊遊戲伺服器 -confirmRemoveTitle = 確定移除 -confirmRemoveText = 確定要移除遊戲伺服器 %d - %s? -confirmRemoveAllText = 確定要移除全部遊戲伺服器? -gsListRetrieveError = 無法取得註冊過的遊戲伺服器列表。 - -gsName = 遊戲伺服器名稱 -gsAction = 動作 - -registerGS = 註冊遊戲伺服器 -serverName = 伺服器名稱: -save = 儲存 -cancel = 取消 -saveHexId = hexid.txt 檔案必須儲存在遊戲伺服器的「configs」資料夾才能正常執行。 -hexidDest = 請選擇 hexid 檔案的位置... - -purpose = 允許從登入伺服器「註冊/移除」遊戲伺服器。 -options = 選項: -fallbackOpt = 若在註冊遊戲伺服器時,發現該ID已經註冊過,將會自動註冊為下一個可使用的ID。 -forceOpt = 若在註冊遊戲伺服器時,發現該ID已經註冊過,將會強制取代此遊戲伺服器的ID位置。 -cmdOpt = 強制讓此程式啟動在命令模式。 -helpOpt = 顯示此説明訊息與離開。 -languageOpt = 嘗試讓系統自動偵測該平臺的語言,發生錯誤時將會自動復原。 -registerOpt1 = 註冊遊戲伺服器的ID為 ,並儲存 hexid.txt 檔案至 。 -registerOpt2 = 您可以在 使用負的數值,讓系統自動註冊第一個可以使用的ID。 -registerOpt3 = 若 已經被使用了,系統將不會做出任何動作,除非有加入 --force 或者 --fallback 的參數。 -unregisterOpt = 利用指定的 來移除遊戲伺服器,用「all」來移除目前已註冊的遊戲伺服器。 -wrongUnregisterArg = 移除遊戲伺服器的指令錯誤,請指定遊戲伺服器ID,或者用「all」來移除全部。 -noAction = 無任何動作。 -checkingIdInUse = 檢查是否遊戲伺服器 ID: %d 已被使用... -removingGsId = 正在移除遊戲伺服器 ID: %d -forcingRegistration = 強制註冊遊戲伺服器 ID: %d,之前註冊的遊戲伺服器將會被複蓋。 -fallingBack = 嘗試註冊第一個可使用的ID。 -registrationOk = 遊戲伺服器成功註冊於登入伺服器,並使用 ID: %d -unregisterOk = 遊戲伺服器 ID: %d 成功從登入伺服器移除。 -unregisterAllOk = 所有遊戲伺服器成功移除。 -noFreeId = 已經沒有多餘可使用的ID。 -sqlErrorRegister = 遊戲伺服器註冊時,發生 SQL 錯誤。 -ioErrorRegister = 遊戲伺服器註冊時,發生無法存取 hexid 檔案的錯誤。 -errorRegister = 遊戲伺服器註冊時,發生錯誤。 -errorUnregister = 遊戲伺服器移除時,發生錯誤。 -sqlErrorUnregister = 遊戲伺服器移除時,發生 SQL 錯誤。 -sqlErrorUnregisterAll = 遊戲伺服器全部移除時,發生 SQL 錯誤。 -noServerNames = 沒有可以使用的名稱給遊戲伺服器,請檢查 servername.xml 此檔案,是否放在登入伺服器資料夾裡面。 -noNameForId = ID: %d 沒有任何名稱。 -idIsNotFree = ć­¤ ID 無法使用。 -noServerForId = 無任何遊戲伺服器使用 ID: %d - - -cmdMenuRegister = 註冊遊戲伺服器 -cmdMenuListNames = 列出遊戲伺服器名稱以及ID -cmdMenuRemoveGS = 移除遊戲伺服器 -cmdMenuRemoveAll = 移除全部遊戲伺服器 -cmdMenuExit = 離開 -yourChoice = 選擇: -invalidChoice = 錯誤選擇: %s -gsInUse = 使用中 -gsFree = 可以正常使用 -enterDesiredId = 請輸入想使用的ID: - -credits = Š 2008-2010 L2J 團隊版權所有 -language = 語言:中文 -icons = 圖片提供 http://www.famfamfam.com -translation = çżťč­Ż: L2J 團隊 ShanSoft -bugReports = 錯誤回報: diff --git a/trunk/dist/login/RegisterGameServer.exe b/trunk/dist/login/RegisterGameServer.exe deleted file mode 100644 index cc534aad512a3614be47bb9de033d99e3aa89920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368545 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

G z+cIvL32j34Pl#RK3sd}&CBKj`tJ|rs;b0kqOKsZ~<*=ys+GSzEP4K|AZ!r)>9{CLY zoblOO8O=PhZ0Tdm>PIqRE(5}$wAmm(nPV)}OCNcjEu*3F*ztvq%lsjlOT{Q*28e#B zPjl>U*}q2CagbM8b<`~a=}39e=GIRqTz6R!bFojkMFyM;2UbdAF*t~B57ilTiex$q zDsns6=w?${Y@cq*>^f(xnnxk}IYm^~IJr-KX`AECxR$0&Lmw(*nZK(ptax}5%5F+1 zP3Y@{-gO5z;0E3|lnq%q`1e5U`F|7&ObAfXDqZdk@5RhmN3R%lPZ(hYYY*^QA<*d= z8$fgS4xJq8y4=v4j-`U_x!Nvf3U%36Bo~-%f6@&2eR1r6$@Y>UEoSS#ZSZ>jYk^p{ylq z>#Vlz1oz$Lbcl7QuLIbV*w3jm1L!6)wd#(~#ftX+*mLAFY&qVz(|Ytym@DEz==Ln( z0p}J)Mad8QS1G&Rdsvz-8k(ym^%P~jeW3UE9uqy;B@1DfF7a^{wRqA5CbeVeEi&{q^#nJv4y#yUBZ;~g+hG%_Xg8h zSr!N#_6(S3Y2S#bZj3>CoR z9Vv9FibtTtPCn7{4UkWu!mceFLy3N2M{Y9Tw$BL@`KYLALd4p>MNuNcf5&2O#y_Za ztBZX(EBLD|i-Rpu+RNo*s(->)N+}9X9l5J`;7Ucif3Y8%ZfrLloXE=JLF0=+Fv4w2 zrU+mb4edQz?SC2G&Hd@OU-%Lj+*?g->hk;J-p6j%K2?>W#AY0i(vi&cTI+5> zsWTl4^mwkp$Z9>uhCH{p@MieewI#!bLwNCfxZBNyhob9X6?;zIk<9>(0`^5V#pMi} z5Z8|^#e;p-Ny(85!H0O#0&of2yeX_Ihs=e|G7*joWqZ*cUM_VJ!&ZtphMoBMXF3mZ zar$5MtM>rj4vjl}kn3;U5?`)!B?VZfrU$I8qTMTf;A0C{2v8{yF8;3IFFKm(eiit* zoKeSwO~pCQYuiuum^#Mp_5O&nFqJhduPje$swWTlx9Y=LP|9HfH1`NLVZ7+L;@`Hn0}IS*Ng+rAHXdpb{OS}owzj$i zqKW9QGL^M~ryl1P1i zii;ekMvB}(C}HkMll+o2F2XH+nnC{HQ|Go^vDD9u!I?$x%~zCs8-D_9S$P&$B$APtI zs(U*0-LMwYcjY>nrJ!tC<@@{L1QvhRA|*@~sLEg5Vba|ppoikO?~la!FxAcU;v2b7 z)$6Y9XgF88_*9+>`lFS*X#w21XZj6oNzr0nsVvYo&gFhL*EDL}D11eEo^{nd^oWRG z!ZE6QabK#tvy$dGutz>=omu}SIULbwbKLx7bj_wAMuVype6rf1s_cs~rAf&%(sx%0 zi-^r<4iR_<-`tj~vJ1(*_eHlKAVR2jvfGuqzzPp}y7PfZ6+`mTtL;AYV8UVfq~0Xr zFF7_N=a4gWXXOG&U=(~GHnG{p>~?l;O>NjFBTuc}gDMDunmob5_;wUZbZk@jr^*pl zuDAM?_)Hhe8E}ioUG#;?u~Z;{B0_zlGBm++UA&h1I2;h`2VNONH7czkr06!#$xT?W_g|{%i3^*^d-&;;<~L2!cMo z=aD~(2B@mava3jdINV*#-?H(z}n3q%Xlv4DWq?oo~btcE$2 zam<2j(qdD?bfcox9ScDIyk5FdRH*}nQI-~rt~t_5j|VK@XfD+&`}j)xOXnyj6}OKP z@pfY`Mx)$N)}K4J8bZyASn^z+3F@@(CQjG+MKfc!bre|=Er;74| zQ=_yQs;LjkqGmq`}Gd5T1H+btGckrd->TQ(Gw;$iP z91|_P*$`v@-ag=$+~O_X9&?SAaPa?uG449V`~8&76;?Wmk1cfkYreD_{aWGJKPL9$ zYn!3s6lqDakOVaZJKmgGb1VKcgTJ}M<_%dmu1)8Untpe1mOi(^(CDyj#%}7Id8?pV zCy6Tah3=YzQw0}gwHNCp{~DjG(p|2&>fUzmsz1IuR|d-!TanSlV4WHNkXBgP$&Bw@ zv~GS?9P3|$;^11XLyz798i#^$t(7XOGibI^^HHpo6)i_*X430s^7Lsp*%N;P1%>kB zjJK4!vNhwezI&?E28MEk>W@SZoV0D=jf@rJf&`bw7h^9~Hh7N&%S0Sb1 zR=_-*K<3IzzD@Bv z`vJ9z%)!yawal8G><_9w4>&~$rmWe99u_MAHCGO+ab@>xiPu@w^k`DOjq@0wr3Jxb@C#e#;B_ms)o8vbqYr# z-wdY{lJA+zz)?;fTilY4veG>;K~S=1Beb6BFTZAe-y3Tk9oZ9NDkTkc2R2!AUL&5* zWHk#U@?Fds)A#)wyJMJ#ooe%m2K)7gPv=`*mV+nf0r<6E?3Ul+{a?kVu;YYE1CZTB zTzNJqQwZ(~yF!`lb+k+SgVR*^As)LsAOWg zz;|60jLc_v&=KjirZI*EJlO;=p9;n~A9~j_bd``VhEOJ^6vS)G7C5SD&?1j-K9*{0 z+|Wh5HR=w3qk$f(s{T$~h=fDm-PZoOA*Jf;zOGH+m2u^$1El@HWzdPzxS*1%r<^|4 zL3OVl994Faz*T8A{47d4br5%9@d+NXF%{c6z1FNjfP*pGL-IEx>MR3gnt2!X)LTFB zcvQyj@zpl&P06R?%(WiaW*1|6_JdVa7O8rjl2`HKFI7ttFS{%FI+J`^7=^}#5oGHu z$XA!Os3zX)p09cjX=nwTTrG5>UIHZllEq`*bhsvA93!@e{v$H=N4+9Q=S&?sL0q++ z)c2e6lUB4811NJDq?0L~PYCZ|d*=^LV1fMrZ9a|Q&V4U9R4Rv z0J8#w(W@25C2+un738tup_gvPyHX?N=cd1PfO<+l z-Av|p5WZ&T*4jLW0)~o?711{L_(VL_S%D^P+&y9q6GgRtF|_RoDLrX1LgPv&EZwwXrNP|(k<#L}*%rZrmCz!aN_Q#T1`Y>$4bJY-}b{73^mLBE8p2(O=yB*KPwcwK4u zD3V#R^9d>x)xQQMXk|NNWqMHl=;t^i|0D5TnzEk?OkT{)ZkLX8)_Xlpu<4{^>@t-g ztYL3X-t^Pl_JHl>%^65>0QwC=!w^I)@9mGGSju|IJV+SM#95c7NXY$x>q7PB^yqy+ z*>XgkcCQxPl)xv0+b9b&QBS12{$1pZUw#gYY*P#KIQbzOj^2CG;M6to)*<|EkO|pk zTmz6dV>Ni@qeJ&s|bG0 z!ag*1s4!J`b;YaUQ6m_SGCT8=~vtuys4SW2NSIEiA z=aq>S73E{*Wq=OS`*esjh6=EFHi1rFw$U0$Coku&j?6i=$|2OxP2xJ0>WH9o*dcZK zb;=_D=x=?q!~K+~&pQVX@AcEiu<&OsSiXeA=;Y*No{)n*U(VZ{4kP;}BCr=g-gM4ENYSM0jpXS(Ub_jj6C_T*xJWmtB%q2PzB5O{hnXDX z@IEg~(BB8~h)c#5TgG$Yoz&a3)=JS+X#XYnQ#hjMVl>w~4aHj1Lh^c2wf<23L6~b7 z|6;5x4Oe#DXhbw{3j;Ot^Uiy>2_ zgghw}VAuoRJY}9{+!p(&EZ^Q>R2;si)>8XPNoa&NW*+qvb$fGo*>jJSy$ruWz`sOy zq`q(@N5LeBWfh!%ppsZi8LI;F<`_T~yb~s#`Ym%ita%q0X^rZ3+zHjL^Q>9NT%>S+QW%b=8mHwM{)a!Y zsp*>u+Dz0_l*Tcc&5e%}g02dBki)NpAmkmsWY->IWf-Pjq|D$#uMQ?xs!H+V7=u}v zN=03_H}^L({00Ys$i}HRGR%-E%Vve+zJWhii*}7}mwGw-F1e%)@Zm?1#$U`=Y#OIc zLFBF@s&>BP?`nUe-t5!pN9KG98b{NfiMA4jk}HfWP|L^A^QnJY!fLd#rVdo*#vF4< zxsrid2Lg_Ms;es96OkpU%bhn^Ch|HF#)IM$)_+_iq{}P(>6a0uE<0AaIm=A7E zi_+vv%9&1 zf5@sCz8Yf}EjAzBax^yTsWAIrg(<~@+zWz5M;|~GTJq)DqcvEth&ggl4GW$3X|L@5 z^BsB{j(r2hL747OXX~~J;>HeoVkDU=@OF;f>HIBK^@LCEwpAFh#+Bq(4#VNCE;(-u z=Yj+;a3=|4_l(JUu`YGs8=WkxCSfpS@ipiS_X94$TZPUpVY_Lg&@`)GM;sNxst1B+ zBv;>+QpH-eIh9C~sM^bYWvz8YACh5*G< zMaA=e@S{wIA`7t=FhER)*t2^X9BUP=@Ow+3Xz7P4W8ysz7LtuWnh=+(Umtm%8AVOg ztqt+5&vb~_{y?#_84K7#Zt&ro{!#tLar|g@I>P##?g~xSB0!A#7KkE@qcFoZ_Cv39 zM2v~r)~*X)iGmtMy3FAv%oFz1JpWTgEd=@&gl-EGfX-FR&*&q~V~ z#MIq2k(v|$S}%OqD4tEr*@M(hh2`GV&YZCYDLEtx(2}WWyk#c(1yE$l+PLvi_2P4(sBN@;*)Rb?q|NJ2q#8u14bP;*CUA)faH4O98bo6Z0F&64X&_{P{3E)K%jd+`=GVVkq9SHoP{5~j48zyf(j^$Zp% z;I{wYIy>22K&(8OMJNuDOmaLP4Z0Gyr;^gU4_uBlZYPchxqT6o$dL+$3HazaT5F(| z>vsq{`16(_eruF1>q34q6gVS)MZ#NbMg|ZHkf3ClBsgz^Sp8i=4R+pK${_Q3m+wPl z$v+4&SkkpvIX5*isxrN))e_52jk}E7nkS^8ntZY{Cz%%6vQs=H>N&^`zaY`R@8UtY zJj`0oPLXhNlRA+iMkYi;U)3!Frn2`lJY;?Xs4kn_c)uBGqq_t&TRRjq@p9ghDYus= zikGbtq!zGqbVs9AjGJv2veE9K@?r~V8ooI`A}idwO)Lx>LErjtk|C0W^C(x4VwG36 z{1u^`WLS5WLk-`b`C?SJs?O8FLz%LWAOUi!%_?A})+#XLA`k0lnX2ADWH5;A?|;pO zrxiDfYK+FT-1AvKn9)9JLBK6>?`->Rzot7;#(EPo&P6Ln$~9#V)$%|(vlAYpkioFw zF)WNpNw=cM`onTIcw8|RaPsmzFQ#-Xld2`)uV5e{zc3$fgy61f8Vkd5msBlSXep+m z-=;&?Kz3*&O-5F!7dLEt4{b4H#RfVGsSNIpr#u<;Z1Yj*db#d1ZEp}ysb+FQzDF%N z^Ro;sE$$3#Ru=v(C9EC@rQK|)mx59`ScJZDiCqpxcr=-$TDIT%17!;I5Tk3=V@)L*Jwp#)!!WTqgUw0n$^LJ&)+jaiT$*~ zxrb!Y&>KxSK%Ve@fHK2BR0@8me4Fj3XCuX!3nLVJ&Z6!>0eSrpSt z6=gW`=X6Uw@KXNo>w#;8#jIZ%p9f}DIGNY6vYBtl?6;DZ+v)jyAKykIBWIw0^9|Ep zl!JKHUz;&ek*Kc~D*_f@7v7hIA)$HD$3Qqf5)LHLOgl~i%b{+8?GenwWn zCw<8+0UHXPWPfL-XN5KpA>POsl18`8oFT3xq4GBd(Rs<%AB~~gXN!#j{hl!$4hqrR zZ9E-3ckQW;b$ix%hN6^elfJ`WYOwU0~UzX#4cGyu}G*wC5uG0h6%R z4-Q+-xeF4({ocgo?*_FAa0&gc9qqk<@tIB-C)RWuV?|WT-;i4#3u9ZuygJEWkZa0~ z&=pB_s|h{(Q~L+^3=TmGo$|M~?tX;wwY%RP)Bl(nkcilEHj}*0zS~A=^#Obhwd)vO zqNQ%<@+X(SwwZ_>TG)v{&gbEy3)fm zw?O>s*UqBGADQADg)DDVUvK0fE%sbid%vD>k~Sn)#{<0$3q4{lAY9iZlJq%Cclzl< z;nnzFJkfg^Ovmhh7#Y876>x%cO?Tn<6eM{<7nV;9GjcqgJjDD?R{C9&_?_H(68oBU z4~!s!x1K=Pe5yydf@CwyD>na}ue!Q%Dvl@j*Yqn~)KHO@MdUF9T>|Nfcon*!zj{-l zDAaAyiI;_?Ub_PNEwnp744_8l2s@Lz!&cFQ{EeNRFPn3r=umS@ubZYOH_Hma<|;CCB(WHpZSY=ez7w|?sG$KqUY*hB+@=&u{-$!7 zU#uxJsVnyJgr9NZe+or?&X}S!)5ftIMe+kGYzDJR(w-vnwJe*h_`uDJiz3Ose+Jp< zM1E;$vEqCnS}((UFV)KhA^TSO2J?(S)}kdUmcZ*YC!~$HZPdEr^LhP+M4T|j+j*_s zNuJrXC4yKTYStkPyPjvjp(u}{u{$}8MLAjQre*tg-Y;6z8nV9STZ22tnNK|{a+s#C zO!;QJWtJGRFG8&)BHl18CJa@jN6|h}QRROHxn31$UW<06Uu)s%Jb#ys8&>Ee? zHivX7!k=KyE(j-K?B#9cqWjz!ii^gITh^1ufj8JlvGR-_;*7lenVS z>SQ0dde`1QaEI(x#a~O@% zzt|2xZKH^rJZTUq=Ch8U{ybg20eIPg-5`iW(I|N*s3k-yuetJY)7e|QSr;SER|r*7 zTySX>A{qVfhf4_78~S8YW^r{Pr^u7G`dGJkv=vBy#EpzSbBf675ar2&A|Vol-VCIh zA;w5LZSo@du3-7U`6x;pG{?<|ap!QykV&PRX3P{)BOghA6WK&%G8FXe4g%XkqN%6` zN;)fK73YWe*kL87#Y#^U<$|Tyo#{wa?w;tOr3$qp*Qm`6USz0O!XN^`+W^)AlA zPK*+Zd6TU!?`6V-x3wB~905P1zT392ppO%ThmE_^&59HV4l!ih370lH7H8c?)nrjh z5}%ZlXxJLF@hCNMj;z|kLO^G0^6cNU;27x_acnKKy|;i1JSLUYmy~1Iidhw~DWa%R zmJJ{D-U|`Y2oY+rw3qmMCtlQ!5BIWzf`^OJOV@pW;`QfzeIsod@$ANCFbOo23u8(I z7~4JK7mmNO8RThg{(MBUG}kya&u~0TCI*E(?A3vP5ULLDWF=C(q5nRrdOoJAlwd7Z zRK?j-RMGqX6euUbs+}DWBuRPt@y{eiFR;f!JU`}Fco^zD!AyxsYXK~wkDoO zi-_7ucE85?^t0`<=)BKIdg4sVSK=t-HktgOI*jFaNoktos@-pvJw*i8mqjh|12tNv z1&76Y9=+o&+GF-wbhtNW9GX0L8C#*7dfLsfq&#hE6MoI#G|Ze)FA;&XOmwjxC0NTc zt6Mj5N3u*xNn6+Q8e`t2^irc5P#L=rzYguE?Z_~1%UGWn^JL9ov;*l-{*Cn96YG&u)v0zHS#DSxGxwaB8Ifg-(YS~hl)=9$vu0VZkUPay6&LwJ+>QF4Iol0=zmFFBn55<0^`b>nSRo`trF;8iJIRuH#6NuwOd~51?&cyF8r*Gg=qBK~b^JOURvcKWTcf6&k(r@7 zz}vm@P}kCG%|FO}Yr@NnXPe?m)L<1>V&yDc#G^J{5uY_HBqiBg)_MDU2ao&)Pr+5_ zb*xHhdVWsW|H1ubjkK4{h68yVrJ@x(Pj&A3x|yts*gdQ0MpjN@<)Fs1M)dhQ_|~8| zah7?kq$I>{%YqzUDo$>S5V5fZ zpz7Wl-)v42uFkU9Myz~T?qO~4UHmP_Ryzrf^l`Glggs<7g6~+*?2BbV#e%UF!r*-* z2{yT%y_cJh9aGVwJ$bETD}6IXS-cM4*HT=Y0{f;12f3tk!gDXH&QxUd9%>g0UkjJG z2~KOue8GFiVxoz1+$gM_$@<}tG?IR^&7_(Jm5HN7us_$e`!&=Yk#YZ5(qg%tR}oW3 z#N7w2tKh=0+fpH^p9%b+_x!g%+;C6_%7Vr~b4vRD7+%-Hw^32YxN0mB@5zv(Ed~nN zjjaYF!j2!_pkjixzSYg=@-GK!M6)0Tre13d@%~n>>C67j{&Bvu^;~h(k$MawP zFPZk|z7{j&TbUdvT;V&JmuHM%fD%Qn&)@Tpt+iHp;$((q5@_ik4%czqCr8dsB3?mi zK(O-q$gsB)i$Xo)!Pt$$r%WtUo9B~@SL)K-&|``&WQA(=#~LfuP!7%{J`(18!yvxVV-G{jCkk^-mc+PB|2mm zM@6(pspm2M^V?z#qNF79#g+7=MSl27+F6c$lk)*iNFm&2KX^9D*s_}b* z=0Avb7GNdwY-M}D#$B1c?`s9jVODybfObt-F|9Hj42Hh#KmO(I**@Q#wToSgS1BR8 z2nsY;SI*VeHy7fjNdm7QDS-i!AWEEh}U4v`|3LGvaf1eY!b2qo1@P zv!FewiWjyqZX(6P!IUbDA<0bNmP6Sn7VIh|nrs^8Vdv(W;u+&1CbfGXXF8@9FFzOU ziJ?emLENW>{?NUGxxV~CRz$c2Z&3$$#0vHifTg6*o-*BTM{h^pZVtv($oPhM1&Tg= zAeGuwkaEDZANGM94WUI)uWG>`quo-^$L4qi_e4?$l1q#5oB9-9BBWs0A0xxsuA^5V zUPwCJV5veG78H8!zA|NgR77vK<`mum%!m2}3^kQUm4Q!!*^;eIR7q;@W_gp$W=Tf) zm;aK|a$mgvyJ|9I!Lj#=jioO^6~exMknDJdQ|Mi6p-(UP1zlJfEs(fM1zi9S?MOPi z5<`gdVq}==;YLS&M@CMJkGv~LP?>qE(gSZ(HAq)EswjC!^s!@Fb&h)K><4DTSU-$P zII|-EV-U0dTg@gcDpg1Qn&r1`VxlR0ZyKwNGS9r0$q`Jx>{>0A4)bGnc}?)*`oF`x zAe4vqxnBjD>z5__wlDHgti{MV&ggH71^OlwQe**T1!eiO^7zBW(Xvz3%@gmk#QTtVa%T0feH?gr ziq+;>V<|34{bS^u-OqkmaouP{y)0hm0_#TDsEktpo*eNKq+}y zkXuTytS)!zswWQGf34fqvqC8icBTo-OcO8ZV5O%VLZ@JtTikhO%2L~Myp6WAK@lM7 z+Jpz0(>;-_d+Js<<7|68f$>6-Py1MPNx* zvZUOv+XSI~VG5ll@aDt5rrk~2Gy5|PUe4ag=Mc-unU83A@IJ(O4?G9zjPF}G&%fn~?B_R`FFNk3RV<$-Jxb&5Z`y_Z9|q83x55aQF?r4r+G zIYPiqxIuC>^7QRh8!i?1Goz+bO~~6ty-($;n%~_HjTM}<7}l;wzY-bya_v&$UV0kn zEI+cUNveHRud}6HZ?$O7U1}@Nr$4+oM{mX~hfY^!;q2itZxI`5LzWZ2xv8uHmFmvB>GIDv(#)o`CbR43Zg+5v~ zE=o;Q*EexKGMFihi;Chi_j-OFcrWCIwKMKf<+etn#c|~59(#TV@x#f?Ci81KjmIo4 z>Kwk;j;acnP)TrF*S1)@R1Cwxm zvAV7mGIZ?k!!+ItC%6QgT(lvrNe>|~UnI5tbXi)Q>wFu3*4_7wzf7W(!0sMi_091u zU-nrosmvFG(oL`w5}WuI@5ow{@OQTp%%fh;vjq5W>c7Bl%9Jb z>Mdr@!QR+$F)^&{V)eE?Ks9DmN~Miap0s=S^_5xUyp(NgA$Mo|`8930@2h3qwu+D> z+H3#$DrXO!H9``IkPNG1H}hMR08<^>T*|y4mA@jBQt4h@^cwtVPR%|^6p~bh_d|_` zh#+4LL`wgk^Yi-JdU_^=u@ffgk>}wX^Rd#|Y+xGBC^xkS8*&NmR2b%_w^*6q`>{u) zqX)pK4fCa&U;Ds$E?g`4I%>`9hdrO0Y0muBQTvpB_SZBQh;LOC+&3U6`}I%u3XN=@ z5;mWTsa$cEX2Ybdvf7T<{xjoF=jFGIj;H;hJ}d?r#3-gLI75iFM0qNGqC*p3^4$5U zCf9c!ETxyM88uE$HxoON%2eJWo?vcWY`cg!F!}pcUnDopHJ|^cy#nEeq|We_T7aOE+xO@?PSKZ|J_+9>Cf~H zzR@ukZ}O2teX=E;8YILdG#9TyI4<3>)U>F{iD(T)!geaZmgM4FlY+FctfXO@2Ztg;+;KSOPPn@|cU2t$d2{!Zz3Ce;^nQ zojrk-u$s}tta@dsfpKvYDNCDt^C+PAsVhTU}7nrop|%TNs?Bp*w52$yu+r)074(@*wy8r->=apm+9Wh zV~V^ z<93syNWE|kdq&{?(%D9OZnUyhQj>EaeG5Iq0= zyT-3}bB~-!=PQRVR=TJ2F?^K?2ZO-D*Y?iP?{Z<^>;bA}d@hEs6MJyn-OdSF`XasH zGpGbse|uhi1Mm=2(nT_UdhjmX6m=l~mTR3Z+@0W0?DjM|f8(6eC;Pza?DB~531pLk zc4=MZT^EnYaVq*7QiY#^Xc&K>NT|qt@yS3b*oN>6C-_?M1AaYbu60B)t*J6oT+xVb zJjtGfy7wz9hDP&u=uW{*?QWL3${bp$UZe?&-ot$^s(0!21VMq`ARM%5V0p|yh@jI9 z^1uPn6hpr{wDkv$q&=DkeQ5u1KR3ElUs{GFtBFe@etlssR%D+i#m9?}zI5kyhBHX@ zO=Swa(8}48H2Y=BfS0cv>5>AU*L=`7~`Hig^791RGauTB*BMD~cb+=21>2^U_YmNS%h56qLq^#C*QG*=p<+Ond!`L6Mq~C|59}nIGp`y@!;cCQY;M zk1?Sl;~2Gu9!Moj#_C!gHI}XJ0{m{8UA^bv07jOz&X79ZS}HIun;3G85dbymq3n;Q zQ?sGS--UFbpVtykWvSsM>TOaD=TU_y(Vch<#$A)bOM&ZQbZ{9NS--r?&>YmC#?3CkWZ6?C$gtNKPR z`}k#9h8ea7#+xnw@Y_1`Glsb3UWqg@Pl%Xr@hU=WK3E;^J(nUVj~(#}O7nwP?crwL zIeu6&uzJh1-}>5CayeFSwZbNoO=|Lm`@+nc$@=lhgyaq47n*03Bj7r$Ru#tC@(WnR#c9CAo zvtUe`QRQ@&0(3O5k+SexDCO^YmcAA;uGtzRVJY1g=EpQ%*F398hia2J zJ*`PL+0@CeuVz3xe0C~^e%ShMjXh)tF)5s5wmb=26C-uwgV$Vj(*UhZ2eB;`{6Nrg z7UxfWTc&ABtu@t5%uBS6>dp?**wQUVB(*KA>hq+@tVI*UI%^;p%Jt>b)6}JgB{lyC zS1hMM=XZeW2irN$i*lzLs1?j;^0T;~(W^Mb4Y-Y3?TjXv6&~~TQP#S9-AFm8Y zLxC1~mD63~Vt2X@TVPK4cIj5dhk02xlnpV;d=5At#=@xkTc@{ncy;+a#XMCkcq|t>!?Hq|@${h6ST77VyC1 z5Fd;qPY46@Ls2>{5egXLBav633~;u{dnr2j*T@SRfF##+z8g{jb;}wtQUQKIzH8(Z z7EAy|k|Tl#@8%F8>{ItOE^Gk^<&U8GUe;}-IpBv8(n)0fx(8WzhpviFM9L1aH#)uZ zJ?w2U4_yFlPt=#?9ssV2DABrZFD?T#6K)4M0CH=6RcZlSA@^jYuPVbm!Af|p^eypL z0zD#)&CzfM^dDm;$ITmu>+I_|S-19>xIto&zObPE}{D%c1gnv;L<3cNtDtPB?eFAzc_M^}_R343yZtLku)(QuBQCE!!WtOrW~ z+RRDm6Ewk!w8tInuh$v;#T>V10?>@NtO~aPF9BDT;9=mUubpT>N#%=JprrbR5>PVd zjI4L)?;}X&HlOiMFa5*`Jf(eC4=7-`0rijqJ3pPJemV({y3IeU>$ar3tJI%bL+@0) zSU?Ytf=K~8RsMS5hve>^;61sI1_RevZX#g<2vVg_kMGYO(?&zp;e_ABMAN(Cm99L1~}k{3a#H0Rxv7ji|Hz)Z23X9{I(Fl=fHWqJS|T|nbbA>)U}TT zfGj*v3QPuo%NzjgkwfQZ3Lxt-1&;ye@y#`B^I;fZY=9AgD`S924+BsL-&~~ev5>QfEgFo)5w8ZFGjqyP)Yhl!e3lZ zW-0CxrN;(@YYfq*HNmZX;)DF1)olSw^*hoV4?2%zz_BbUJcm-yWb zBg&>8;Qz0{s}Uj11kl9)5dB2V{~9z|sT3ep z=23Bbi%=%@&kIvQ$tj@NdKkW>BHWAp8nCWKz}QMn*NRh7%@C3a^8u)QS5p4o$MzR! zNq-{@=FxjH0(PoibP+O&zPv+a2>IuRsd=%;L-?HE7;j}jlJq5rg zbvP-Q@p>KT4C%su_za@~Jf~07wc?^FGhmHf^?jTMV!t#~rQUlw3&`f4Rfyn27*D8D zuWRoStzXH!eAXb+jRePTb;zBq(gmKRK>c4#z(ItF0?_c56K7Q>#Tj?$m}%B&!Hm09 zspohK$thbGI5dj0~$Zh`W|6aSZut0c$3 z$pFo}a|88Yh+3?_w}%A(J2gWb42=I&`78e$X&r9!Uxl7Ae6s)1B9cl*Hxek~@UM*h zKO_H_{$h}4Cr>X5fRw;o-jlC~34qI}{H{&zomgIB0$dwxThqtZ0vxgMAO4RhPxcix z0FCfm3w>X7|2g_+p@`KX7T?DOg+JQ8SkGGsw6t}{RvNc6{Il2 z?RJyJR!?Q1Z0fZq7D8_q0prW{qQZ?`qh$=lt@uNG$gKQw4aKQ(3T6IVX*#EeX3_pR z#d(pD(AdL(f3npn=eXH%L9C z=&8%GiL3v3Pp*&}0>*plCPRi0iJ9Zbm7mHi;xzBr7(yzIBet@SjvmgAWW_++)(wLpr=0K z4*jNQykDccr_n4^P!5Wa`zHvLgb8rmzf%!?mWaK4HNgL!XPFCVaO@Qv@f++O^A5u` zucTN)Bhn-hc0baqGyK+SicNc*QlWvB;(E@aS+Q{Sa)L{7yYmepe*ivPA+c^HK>v~} zY{nMx9tj{0{UFom&sj{7zbJVZNSZ;2l((^- zs1j4^;Cf)HWcSGNZiem}%m-+QpQl!v149Jt;#birKLvG0z+}M*|0pkZ+g|(B-CGwR z%GTYB{&@^xo55u;R`Vq95qtR>p8vt1k+c7%U*$UlDX=gdRZp1?16r*ww0?U7}k?^Uhl3fwY(a_E$+S?P+m(CXmVSL+N5Lgg6i{L*U5!PfB zl&>U0-Vm?9elUelI6=*oZfjT`P{G0k%kn9QftpvKuIL-|5&xG8OK^T#$gb^_Pu;HQ z{{>uYcS!iI{ksofyq#3(?7Jd`Fs@mPGs&i&y*3a8kqV*NS;zjdg*PAhANx7SzCg%UI7^S{-Uvu8wFyiE%BoIY}Y4s zGjB^I>nTJD^VH+kf8#nhlGugrw8F{tmpzv+spKN=hH!E8fJd}_sU4hVfH*7rM(e?$ zYM- zultEvIKcdfYTiI6`wuvw$H@zP(8<9AN+@;2Li_rqG<21!=DPbpCg5|zLeyyx&;obh zK%%|DdZr_&VZG?F*@+?3bzafX{ih<=pYm<4xE+sqMUQ!mt0{`PlEjgOq@x*(_QqnU zqgO+z5=FBD$I<-gS@HJFDYfB8($9D+W>zbU{m?zhna~c%<5_W9aTZ-20t{@3SM5#pFnWp~CKlou9=;#2%<7KL@%OVsL=uXlLPT?fbFtebbd= zLi=kO5#AuYObHR5AmAJ79MU(cS+Uy+E(TO%XT^Rq+th{yq;K%u@Qi)!lIKMna^Kyg zJ{;vXGPE_8KYW{6Qp4^@xBJ0qQz8`TOTzJux4og9vR=uIN%h)sB0D^~KDPYOh^ z9Qd(u$}U$d6K?YM1*kmZX8*vocuLF}`&VKSU37eJMswU+Vo{~|d)n@n$DAg*6R~~L zZOfJ6#V<;q%6F#92Q!*$g%W^aa(X@{mTj-2PkY&-Z0tWsQtIW4Gi(&5R=<5FoM%6z zyhoo{F4ds;Y~wLE8J)MwMKJObb8?bl1Nf;BJRi4EckIkXOtXg+K>OuUw&k*1N-NSn zz#qeqsooOsM@fk%(+`D1$c}iYTq-s(hGMzq&1^|^xORJk*%GbytGLoJA*Wm7DkFb6 zsmuM7F}v_h!7o-%pce3s3{F&BN?);&V$Ip$*&I>_a}ZZjRpQ27+ur4>RhxD0yG;U_ zMaCVCpga4ca_XZU_ahRS*4II~S$}KVe>W_p2_Ge`YP1Ukks7YdRr_IH9Pdf2ehvb( ziM9>MHDg???g{anhaz=IwXLXyN*CfP(wt4lqTIdzwyzT@NfNp&SAe&dHd6t*aEg>9 z44s!NAly5jAq8D1M0OHA=Ein%P8;b9SP<{6mDB`&t--uV+>-)bXhe1rhc3yj;qSH2 zT!St`Bg60>r{$yw_M{9ZXfQ9*_9`s)9grSDcRaX{vW1q4&qqa;=obfj!qj)w(p?E* zCq+`gi=jO&>brXBa2>a&Wa;q4r=6lM%nRJPAK^Q^!lkW6c=)o`w0rKua3B`2oT3f{ z#)c3H6P*Ha@LHZ7i}bsHE^ABi$cf?cFKho|XptWFl{29(lEQoI&bq{~gWLTMIO-@0BgoO9UC?Z?H z{OugEU^b7Fn8ZjHTQTt+NKDdXyD_RAly=gr{&M-s7zPN|U@1$vVC3Cp%ADU+i$h(D z3tfx2-deIVn=ufmGhnARRL(KU!g>2scTQ7Q`Ci$_DrLh_#cI)^$#^0I5z!=y9D0#m zJ5wBU&4Dq&mb{n;-}g!@h1rT<=ZF_shW?^!ti8&?pN9;SaoTsWwagLlVc5@e@_Faw zFcp*6J2ye>6aI#K%MT~`narbpa&UKiwmOiHiiq;yN!%;b%uFNx^QC%HWyCw4J>X^6 zy<)o9ZO<9Pvacpz|Nb}-6z90aAi7(n;#f}tttWw*;>JTtGXD@S3Um0WIVLUq8c);f zI>9(1E&P1=e*QDJqnVrmom-TU{u}#*_7=LC_l+BI3TUp_1_?-TEVM61lDP0!1&xp$ zr6H2Q{Qgc#;mX!aekw=pvIHxP2LoWfElCycPJDBLi@und6Yu1s@LuN%@X z@5DUqHz{2y;8MxqH1 z6`zJ07UO>oM2@U&r&#S{z(SJ!9z=k5x=!aF@I~o2A+Rqbm<>t_>sx^XlX(e%CCi@q zO2cTqj$Pt?C=tmzk5tr{5ZQvFm;?l#cYXPB)gg<7FbP^S;V|J0If`Svy`3y)M?Bg@)=YfoC|3RkXn0hkbhN$uN!M z-=_qKqs8v4BoF}0V-0PSojKAH_bD;YO7q7o5jfFO_EEXF{B*f@rmaH9n|~L*;Ev!j zh)olnLtuJFywe1qQG>8Ii-xHC-xwE-qDT1zf340cw=J{%L(y38T~(D{9Ivbi5#%WP z<>p|7_PPviS(wJqAy_ubt@F8rG%jq!3kyMFeG^jt5{6K#taWqq|B!Ue;dMM;KQbozFLc$q_!UY?Tl9N#_%k?878I|Lj?}V^8_V0R!Bx zC_L#1umj(H+_pR?!FyZT7kUp}!$q9os>x#^pcILEabVzZz_)jViBiFgd<{bk5JHdx z2~)whow$5LNn5t*loVnqrmB9ruCsDlhHVga@_s+h_{{j!{=cmF$YEC-pR7JN$`($f`_E{t7u^l8sR4bG<|iB0C@~Q zwQYacHx3FP;Q{!r?JxmoN+eqOr%EtzRp1pLcsl%-B2b7DA~FQ;pBqAb#JwHoLqv(h zEB|D|^%g1lgbA0^x;-fXLCvwvG?)4I?aIGxyPE$$)qd@&c?0ta1#Yu#n}i?2f@M4B z*A_VVT-p_r-BN0N?qG<2K5xJkAKHgvh9#~p*1w{tqwl04$(ZvZwbRH3L{lQw({lGe z{y{_OnEg7Qxo6CBJzl^TAp3AV%{@BOg*PSw;(2Az&Y)ho6b2vVJ{>7_`MWCm+{qgB z&DMimUY@XcnR#)dIlZ+Op@R8v&7hD%9*MkM6bONV`w+d58vhg?hVC_dmH;Dxcv77A zHd0Wk5#o;8H>zAgEe<{bj@UUv-wLn{(K7^uN!4odk<}4AVD|zY zM@b&B1u&~PqWfZ_nZv^6h94&fk~s$`Vhyw4z|DjAf(xe|o^a^b_l)H-Db{Pkas_t| z&*OMQZTYYCR=#clqF2_Wt;-d|(Y-Xod{1jG7Zlu< z-V_1kB+Lc$J6vJrajw#F`Bxh#zViqG`C%SPzS zuqE00GEEH5kML3(_-#vhDh?5?yD&EgjWj?(M2JQhtT@O|+HeAh5HbrP`sP9kME7`M z3v^J=-3LH!6KV)8(m4^MO}O8?5`#BDzW+3kILakF!l5H{f%FwX-m0=AQib$|4oL^+~VD^N$ zXUOBhDm}vLFPGES7tg3O(d|G)!n@F6A)}$Hl)S`FH!*8$rsb8zrET7?KENz#4yyDw{k{0N{0`|5;#4;4asB9}Hij)T}{ zG5dY8g)^O_$PuI?=1^huRuvnK_2RtF+ai94^L6uS?oxG$2qV^C#sWHaPO80} z5i#N3In3~nb48BqOLRUUuej9mHzD3^lRr?lE@|Hcx;IguJlgJ21Mc!hZ_u|s?|8Li zi{sp|#!G9ylfLCw1SQeJm6u@0fJoW%@rlq{d3nLMFw7a^Zg_taPq8+8Wr; z5Ym3SCM0a$(LCE4GWs@`$34HJ5Z{Ii&VS;1cnX1U1NJ+n{K0$uA)ux*?lvLBg{@~k z6`2kv^=$I;DD3mlPu72upW*YW+T*UnSZIbF;~(*`p4pK@!=W!a{ON8(p2~?~_wUAg zcWV?m=Ce?g$bk``CtwkNWo4Z||DrFjtO4n!rfm|jLVufaA^#z38nD8=to1GtT?s(! zcjK7ty%1RkFpc8=bW_g+*yQ*8=ag>_vEzm9o@j zsy>DWAqU~9LD*dmwihWGd`)ApLO5($cu7dO1gaMZmWKf63>jiYN|<{R(ukigv7IZ9 zhv>7J4KAHj`>U`|`**F__Er=tiZUv^HOJuhK!PA?GkRn+;X+m`NGQe9n15j4F0}dj z>yWCn`6Ao7N_f8!U_(c_do^5gErz9q9*S`+^5WV`W0_EonE?CJs!o1Qwa475 z1%Ca;a^EHgLxo$0xfm7Y@oGROy5HusW#Q_;6;j;9nrl0&sjNvo>%O)%n?@tmi!6Ry znjb8b=3zIC9Bu(|FjC2lgUye(DAT0DRG{N&z)GNgu|*iT8VOTf98z7>5CVu0g1{OY z;Q(>+-2<>~Y|^z8p%&{kN@Bt}F7mA^7GZz33)Oe{3w%+AA9!E-+|LB?FQwHQN%I$L zQ^{Rrz-GCF!xHXeX&}l6zKQo%Xi(Rn2QxENw}A;i;V}3IzUZ?x($ykvoOkrMzrj65 zCj6zW0eyoWyv(3(6BGV&ejJzvW6gVt6L z0lj9_p<`g7V;-{{8$UZyF7S7W7Cln$cp&fSc6~GGgu%{7pZEf}%Q2!dlDTCjtX8EYJdP2CW*6WL=V)-v~f}@*C)d)V#B=40uf6U{Z z)`iT;_iI;%IsFIZ-iML^iv`W#WYsmI;I=>5>wKRd0&?T#_N0 zU$09SSg;w?Af_FJ9Sxy+nPyZkc>tdkCJRc4>L)a-W{dH=DtLsP5gtMu#04!s#ufd% zvF4yLOESs^VM@Nk)j`cVCdve1Q`_Z?$<~-ruqtnh(~{u;C+?Hel43HrE{{!`6_|(9 zk^@HxUPx_CycI2*gK-Uisz|XLo5NfUgc`9bC8zrKRpBf_Swdo1x7@pp(#HM&V9X5i5|A(3=L$tOX$Yqigb$3(U9HjfVc6 zG3n<7hV{g{FT?AjI2_a@>bliQf`tZUoz%_pLp<3n;W6^fk_SNaOsIcI!5~2KEt(yA zLTN4=ok9>nbrQJcO&;NXp$1OW0x!cVHQ3;NxNL%@VHc6xbPI#u02(kbgv0*We?F1+ zgb;`QVQzAu_k%eZt6waWHUk=YOR}h!yOV>!`falXR96+qCyp_)2b$H`Hmp zC6Ge^;QsQ+m{(tpdzdKl#19FhsM2uWT0FbB7T;wn30M?=E?FbMQiRY@gam%;-T3;< z`=;HzFkijYxa%E+CbMX=8f z45ho6MY@`{1jY*(4*}p-6$zJ)VnUf)7r_1ui!`Pv-CHx95q)eom z>DDnWqL?up7?E`!M=}nlETJwUAPtB$Huv0CD=c=+%q>i-?S|+GMZCjioXTA0QNLW8 zo`tNZy66d!PRXdIe(666iJWjBErmCBU ztIKmndSqWQzipeT(cURZd?o{6S3!^$+Yuy-phrA7!5e|LVGGdo2;Oh4sm$p#6J6&D zE>_`Iw&<_E$^|F^3_OXio?RGhe}Wzr%}{Nk0uGH5%;*x#hz#uk9!=PQ?Gf=mN<~*V z4}=IQ4J1UnGL`>A?vDfUNV`WfdA{B$=!ps>G~qzD^0_DQ_wfo8(|}MeXZ-+0$dG67 zUIXN|IkY=i|Xs_S?mF}MqF{Q^g-Csc$XYii;qF&tWt zX%(C*0z!5x>sQ^A{QUn>8>ewKVsP~hkOwJjMSHp=3>;doX%qCel2GWb6qPoAV+FOjd zlj#5`7_=`N0NUw4TdXk*+KqKKP7B?U`vGquTW0QNIu7knGCV@IXKmR|0@C@@YlWS2 zhrX40`tgt+6+4ErZ_2X$#z;|Go1tW8>c0b+oUshwfssJkn~`>;o4c{&VjT2DsYxlx z1Fe(20`gb-eV+Gz@uSA;QZ0E)33UnVF8Q?Wog%#D(p&inH1~HdgnRtBLaNaDMf<1i{XswIf}h^aa#-M(4j3mWwS1u6$b=i;vqG;8`nBSu03K zbCgGO2jiU-hC$M{8z&it1Fo4{GHmu53#IU#?6>k*Lxw?Y<7diSoHa}H zIBUBHr|z4A)?^s|J+S1JHEe2#)5L@KuTF|$25O0VFGS(fgwj5*^q^C*HAtcmS2GhR-nI*Q|mJFu01G-M#b4~;3l})`_ z#6m6+EsjkGIeVRCcoF#nowD^UcD7BW$^bN~TY*KN%`q@Rwp&pHI`$qjbK2B&ct*Bc zjLBFWXkkwdA;k9F$-pZn*JviNPvv$Etx zlz)I_&!3KuqYR<@A7a~S1du%bgTUksV$xfj&l91K`RWDVc)MFJ3_t&&O`(6FO_#LM ztzYPi60w#Zi}XXL9t?J7dXN~$T#gzl31Yz?s^r}eq00zR(K=gy>Rp6}{@EewI$_^x zKtVwRol>xa%3-g%E`6XT0L0T@?qj zqE2dK8?E{I1Q6pe^_jmV)#7n3DQ-sV!&+%fPgJpF&movyp$Ry{Wsib`+8x z^^Bmrw~^n-u*bNCgGCWay|2<25=s-LdCsW?dTcvI8>P9Mz!o~CuktvX2DeH?ZlKY; zWdTI&kQUteGn1U2*|9>{ArG1|7VAn$$8bketuxB%dl!5^w)U5D3qjG{UwZ%x_a!4j zLVaNesv4o5zk5`C4NLj9SWBVht?6o5?E)895TFSDD-mcYYMo9E-@q%BqCN*1Ya>$` zt5d^k$MIym5H#;tKHZ2iloAkX!qK`w+uz+@yA#M6;AujHM@q_Nu zi^zBAz-|MC9f`goj1UZi30JPNFlSqdJ)*a8Qn`>(3l@Gkz#rAi+f{Z~^x zbdpWvQ4!>`|F@I)YkW=BT4soNW0rxnQBYekH#5iRh~Z$Sh4ZMHYFa3*&(=o9p}1Zc zi9%o9YXqOpX-G-Vg7M--x;OAo_I`T5&0;`P<43b`1)aAJ%Ys^!YvW>JO`0JzCs6x~ z=^bisgsC9@6k%vQ?F*t-JT2<33H)Ly-4$V9jMJ<{$M99Nxov@nTg7m_``=jOKeW?} zx(nGDj^+!L!3-Vu$KM>y|Gbl1sPg&+q@>q6#7QWWO|P2fcWwEweg|{FTSwyreuvX> zZydT@7m2e!o!xybHKRdX;Hfyb8lMhwML88&OkljMvO|<*K1FXtUkJigI%V-ct%v^p zcLC#r(-`rmSY_}f2palS!4-o5=?CB5Wwuiqi zJ%f!?Q?dz*G{DugxW%o2sRGvUPL?>D_0>x~_1Y~G5g0>drpxH=EHF;m`) z)--tEb(Hn^G%y49p}cFXQLhn@&g;TQAw=04V7Fn|D3lIhO@=nu9DmCu-3_Vf>bg^-(?7+m*No***Lsr)9?rtU*4oQZKg5&hNbEs_8)e|SOM;CazpQ7gY|Qx%s+toHhAAq z0ja@1htZoP-JfLMk973SP;=?^--Dn2hm_vKk97Zp#~_jXD9YsWawS>W&uqmRzwNxW&1=lc zQ|5TD4t2?VQm1ab3jOnNwgacT<2*F;Ts-sqE8^Ub2B-xSCM{(n!K(f39zbs8$Fo`N z@e1t260GeMNY1}=)r^F6w&51r_T_dU;KPmt>7~tAIIgK`NU*;V^g8;&-!;^ z^4eDY$p5pmel8dm5|1DVQ3ZE3^n!FK!ZuR&zN5Wc90mvv_tq4D8*n zU?(nmYk(Np1&tJB%{B!@^!vQd;Z{O3FdiVGCGI#nB<>okI?%(tt-aX>p z`}MS?(n8t#SQx50FgK|9rB0D@iZ+Wj^IT7=3D{zmwTq`yh^4t2CQ7h~aES^A@~g$W zBK!&mUn&;9LiTPOuhP ztt!s;qaA9egpGc4iTT;nJFV5&Z`xPk3q0oiX=N;52yr5D0CraXK(q!F+=BM_N(kVAS^)W%=#kp z@4%y8ll^LEmbOpV*}KFgmwI>C`QwORj`g)=e$l+Fjzy)UM*}vAkfHWt197GEiZ@%> zIBuTnL>d<#;6b?3`QdK47$m6IjaV+Bx^J1KhFHc}{ZG1^>QH?g>m2BPx8{D(S?#LM zH-D&MKy9eus&KDfsp2iAyIyTMkE$x9{N9qg$y5dAZ?8Yr&ROZavColjJ!qB15p6AB z&ZE*@^;|q5Bzg+;UwrdEut$I1#L#%OTzNacCCUCw%iW}^+S;>%{Brrw>lXZ$3TvI> zSaN_LZW$b7rk!1@OUI^ep%Rn4qPy#GPMR-e&79H5nJ>;aVKG0!y3%+rQS6pgE78`+ zExl?^m@i;NSlnSqSlwX?{M%s!Ec3Mk7WtY1^WJTMc&xwcMbig)@a$1gXC+W zi}NztA_$7f>`fmu=wsPUafo%)Y0;f}V7Y)-V7)+4;QZGYj_)3>fuGq|Ihf+mR?Fd2 z;b{NFzWZ^tJos=0JqWoi^BcC0;CFbRJFY@VGl4>A4o5b8mnA>W$FRrux8!T%C-2?D zD}}+ae|GI<#d!XUdb=DQUDsiPa~>)rChdiBT-h_lc$dd&gRn2(c17P6cgcMVuWO09 z1gGOzh!+&N1Q)q*KWFUOI;St0JLfK0J7;pZIq3ert4y*k)IOehy=DE&R8RwK^}Tz-Qkwn_(FX5TJ~L$g-MUVLW0X0 zq+Jk1B7nVqBSUy#uhr>^O<=3vg8=HP zV>xi+T<{6R%DAi}yR}xg3Dt~D?ith))hty5jaHOatYu6N>WpcH&QDNk7T0uC$}EXl zW2_FXfFA0JjT0*XOQxr4oC7Z*a*ds)vz67$NPNBK%bqs=-u&eafO;$M!d#Ae{I=f= zH3~+E=jF@BujX#KzEpg}opD4qUE?UVLdM}MLN(g2fF}9@Q$!VRop{!eO4$*U-!x`6 zYNJRCz`BS56?{#ZQ7bpoQOgPrGXZOv<^B~F&idFSDowzswTinv{lILBmTvgB#?#;KrJMi zB$nsP5lC=j@Mf=!7D#!3^X5OtdJtQYJR4~sSyFk&_5Nqz{~+77eYWgpcGl|0wtV}J zU61p^QHS$NG@yUtj{U0BMYlBe{xPb5+?>_1atZzL=yzGW_~P5AuYg+XK7;%a=aSfw zESS`hrQaXTB^2YE;m7()|4#Yf`J(<%eOJ7Ub8KJ7H2XR5k@Z3F zN=u&Qo5d32o5+&wo5>RHo2oR{IeBC#WC|Sh18GkBjkF}ZXE^e`GMEs&3hb&q00!HN zQm$+9qO^t?o4c(3>=bev*Qr%@jQcima(pj8KD>H z=JDRGT4x*PDJ_qgyK7A2GobbHI?%Ma=YinC6Nt8+%(;~3d;P!~->rwU@d2-M4#;}k zm+g}Eam;5JnDm^$!*grvEPbGHFh@TQOi4D9pTsww7^eL?w^xn@U^bstUw;C6uV49U zScxDWEu3^UEv_`@`U{rwdSW)zVXt{$>V2(N;(a1dSC=j0QH}}Ynb3^xoPT?3%cqUA z)MqdV@|DDhc@02rTt>?@s)}LYBru^H?=!I;CpQM9$<-nslr1rsJD=&Z5ql5XM0S`FA< zGAm9$Uk(Pvo{`nFwe{*|35@F|>XC1KbGCg@zCAj_zD+yZ9XF|8O!ptzupmxdw8``Z3MVGsLbiKEk3fhG&xJ6M3|#594qSA63>Gs}11Zf) zpT{uJb3Op;U>;IEbMei;G7C09mE-YXXdJ zCX@7*nSjQI_4>AkKIhzqS!ZCwm~+!zdAe*mHAUj9Kz=JsH!HYQM!COCG z@UfkO=*lJm#S5=sT|dfYX-xcOW=w&12aAsAel$7Ob6(28^FAro8#zJVqk}%{E`vPl z=0%wIyitUAw^8zC<+Q+M;k3?W;|M>`7NQzA0GEBTbpTgH^mM>{ILJ3onk zdjiTYJ>Fq=^^evwW|urOSeG0#YL{_^ryDs^UEVoKb{;v2cAf^wcHW!G8SR%c?(HPM z9(`P9d`XZv1Sw1I;X`;y=-8hMga@dIe&)zhzwU_wauAMoX0bASyhJo|zE7!L~jd;hlnXxjB<=N0+xWNLM^4kiLEaB7*+ih6Zq=J~}xpyxmBzFi_n9h@I_v@aL=60GK7FT&^<`W=s^gG$>dY zQ1B!yGdHy%1|eY$YA2clJ_>vbL^#Y^a32H~H~$nyEL=ImAo*TTk<{(C+_tN6LnIui zw!Y?|{O#T?!Y4NeWL?ZPqD~Bcv`zwklujIe#7>eoMqR>o7(cW(c-?P4NQ}sxa9US# zE%aijLP(CGW1>M@QGb54uol2oAy~p{g!4lSA>g4bhRB9liyrj3ewW#P`6K5bI_%fN zvWH}Y)C$2Bx)z)%iq%3f2Wf|l98MB$-hG}|=q+X!w1w{u`N{G~`AN%y zd=29t>IJd@^kb-g*sJJe_hcXG8(9ShKN>ayYFJ^ns1e1LgQoYB+0yLQuO$Z$b{kfH zY)%qCtR^I4)Kw&f5MLC9u&lu1-m30dqsJ}0a)_>`rmuamMpr-%EI$*5;KRzSt>%Tp zE$GuEhHbt0$|mes69EAo88t62HVvO=1)2;Z0*Ds zu>PoV!Cbw!+v8U-9(3(o?L>l5ALxSU8}K=>mtjo7{$ciEkG+q5uiF4am8a?}5f3&W z+-;;x@;9`I2+@oPpMu}i;{PIO3*sz3J0>PpY*0R{;xAPSgx@Do zy??Hgi8&y}#TdlmmC6-W=TI<-8es>-h{S4@hLm*Y@GwbSu_(mWB`uXum6X|q zX{Pn5Ie0P6B!~V2k9?8{^rCL^%M~qM7-(avBnPG;m89;dRj~w!)g-$Dt^VTt{dbgH zBIre66(Jb0B9SAiAZ8$X{+A^8fd$hw;`%3%37JxHn(Q1;5rS*vaoE2>B(Zg4{h#Y5 z=J~`d(MpqP_eUdXlZw@87$xqYxDo{r$x*2$ya3T@*vnv89>6$ps=k(^#J~nX{2&Ht z9R4@3R%QCOHhL;|$<@N)O#klZ*`md-vq=jJ8w`AGfLPzI&s0PU96M_j-0#?O5tE&j zJe=LI+-pY_bbmk;<>0tj;_g8njU!(R2yistvTGr+M#0W@ft`U>Em=LFGj;aF%uXeU z(Lrnwd@$%PV&9J{inwDSayg_RhPX?WFMeG=)pl*ovl${7vl*4rZ!b#!fuxP?4__JE z6($&EFJb)+$wDuPKsyI5i1SB5?r-?Q5|%vjm82{B6(BRdt&|6rt(<0vp!^e@t;|wr z6BVI2-?vUlJ`B6RdXZjtQh(`IvT#EL6P+;c^M4nG?^mkeq?EJd(++n{H-}&i6 z>WIag)&fZ+{q~JWzCEB*_Kk>0YUXdgl(`E%4VrIqQba5jRvw1b`P4{3@pNec`jN|w zste^Y!=3Alv5lX(d(Xv3rj1Qp0u5C>etCh zmE`{YrUZ;Zh$V+&h>0w52JUv3k-olJ- zkSk<5Ly<>NYm#naO| zaY=o;2iy;G&nU0Ox_w48i;jw;$b<>7(N;|1`8@*<%V>hafRjCavxf5(i_K*wxXzwhki7GQ>H z2QXW`eK=#k<9F=8^Km@xAsiM2Yu?a134q!X!BgkwCWr6(qZAWv+At)_mfh3GDzUqb zSG|Ld7kxDxGw-1~h{DgiE5lE@OTf>$%j?Ioi{eMKE9l3Au@jkY&QCK7t1y8yq{6Cl zJqJSIXQ(Ic%2-C39QOG(IYAh3Xd2sF4Uq43X2aQfPM5jPOh3KiODDM2Nzc4mO<%qK z3+i}U2hBcpfCxMs%`rYmWx`WUp?CJRpgrW&S@hG@qBH>WJ8^X|TaR^NTgX}%*Mk+F zEiBe}8%d4O_7g7<_9MK}&F1Tae03CWTAYJzby)3ut1&|3u>(5wiPxQH-`a)Rs07ml za7o69qfh~;Ly~nv+xg4U+@D}M!y6F_=9m4&^{6{+%R)Q#%Zt~oXM9hYz=fw*;IB6o zd8E!HjBtODR9~v|$}Ss^-gP4o{Am%0{^T_w_U1j&_GCWcZ5tF&|>vO>k^)I_r#abIGPS&ze#+>lU?UnVHxLEz`KioB?0U&Jx;waqeHlkGE2p zEv}8#Q9Q<;rG)P-c-opi@|T~br!so)Cy#D;>X~k~f7BUlMA!Lm(DRVmM-rwrE1`_8 zlEWVQQiSjMQiboY|LMDRbrS0oj|DxZ=HIaG9laS7tBksqfaApp8hWM`Yat22t&`2UR)wi5L)* zkm6vqQ{&)(l4KA!;>QpK6UGqTMzNqJ_eX0(k>aSn!w z5Ki~ALluUz5LUcsGarOd3 zHTDh>FUNwT*l+%jCGs~=3lpm+k)kru{*lCNOqRsHkC((kPL#xv`!j?&9&bRe{UeS} zo3=~0LEW#=f(rF<7$Yin7$aJKEHRpKR3*yqaGS`}YZ~%--Z+cDen~A`jqpd85+Us* zW7B9g4$hc!^ywb-K-OM!)awXhH0)S()X>-^=4A3FgFbDSM!S?>mq$)}%Tv;u$hDcL z)HRW(C47RG6oIE!q}oT#4>^5(WyWgiWBO|PW2$OeJi2PebQ*uvo7ncEJ#tUm5qVF& z5p+-A5%-(01cIAE<*YSLs}!zen9)objD3be@tcJix0|6tg|SuX@Uc~y;$c2%oMAp0 zjo~(F_u-r*;y>=GAEf^3FMOz%!`@?m+N&#m`;>rGKH5P#f{H1OB=mF%aY<@pl4HE1 zU+ZXN2FdrSaj9~DCX?h+6jJ1p6;j9JCsP@cx)^jA45(L0{SBHVJ2l;OJ5}8zKJw1~ z`m~;3DX&d3y%?5}YNj`f# z%RisqtlvQ2OrW0 z(@+%uOQwNIBRznDPb+L8iwC5pIxV$$X?eBu1f6+xnyQnsBvoWp>GCjIEH#Ye(X!^GurhIJx%oC}y?M97 zPOGk&&Xcs6ypy7t+7r}5l}3qU<#p*}?ei*^Y7`YObqyK?jYZmyveRV2uLy?4Ws)@S zWkYoD<(rBys!XadYSqdx8kdUtC4zsEN(HN9%0A@r)P0rklpvGhIigsb2Gu-kDK+sl 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

m<^3Wu06(XqeHT}NIodJ0{;{{-ccvX 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

ygN!J)Un(GQ~S4elVL13t9cJbI-1;mG0ULgznf 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 diff --git a/trunk/java/com/l2jserver/tools/configurator/ConfigUserInterface.java b/trunk/java/com/l2jserver/tools/configurator/ConfigUserInterface.java deleted file mode 100644 index af340c5a3b..0000000000 --- a/trunk/java/com/l2jserver/tools/configurator/ConfigUserInterface.java +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.configurator; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.LineNumberReader; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.List; -import java.util.Locale; -import java.util.NoSuchElementException; -import java.util.ResourceBundle; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextArea; -import javax.swing.JToolBar; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; -import javax.swing.ToolTipManager; -import javax.swing.UIManager; - -import javolution.util.FastList; - -import com.l2jserver.tools.configurator.ConfigUserInterface.ConfigFile.ConfigComment; -import com.l2jserver.tools.configurator.ConfigUserInterface.ConfigFile.ConfigProperty; -import com.l2jserver.tools.i18n.LanguageControl; -import com.l2jserver.tools.images.ImagesTable; - -/** - * @author KenM - */ -public class ConfigUserInterface extends JFrame implements ActionListener -{ - private static final long serialVersionUID = 2609592249095305857L; - - public static final String EOL = System.getProperty("line.separator"); - - private final JTabbedPane _tabPane = new JTabbedPane(); - - private List _configs = new FastList<>(); - - private ResourceBundle _bundle; - - /** - * @param args - */ - public static void main(String[] args) - { - try - { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch (Exception e) - { - // couldn't care less - } - - final ResourceBundle bundle = ResourceBundle.getBundle("configurator.Configurator", Locale.getDefault(), LanguageControl.INSTANCE); - - SwingUtilities.invokeLater(() -> - { - ConfigUserInterface cui = new ConfigUserInterface(bundle); - cui.setVisible(true); - }); - } - - public ConfigUserInterface(ResourceBundle bundle) - { - setBundle(bundle); - setTitle(bundle.getString("toolName")); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.setSize(750, 500); - setLayout(new GridBagLayout()); - - setDefaultLookAndFeelDecorated(true); - setIconImage(ImagesTable.getImage("l2j.png").getImage()); - - GridBagConstraints cons = new GridBagConstraints(); - cons.fill = GridBagConstraints.HORIZONTAL; - cons.gridx = 0; - cons.gridy = 0; - cons.weighty = 0; - cons.weightx = 1; - - JMenuBar menubar = new JMenuBar(); - - JMenu fileMenu = new JMenu(bundle.getString("fileMenu")); - JMenu helpMenu = new JMenu(bundle.getString("helpMenu")); - - JMenuItem exitItem = new JMenuItem(bundle.getString("exitItem")); - exitItem.setActionCommand("exit"); - exitItem.addActionListener(this); - fileMenu.add(exitItem); - - JMenuItem aboutItem = new JMenuItem(bundle.getString("aboutItem")); - aboutItem.setActionCommand("about"); - aboutItem.addActionListener(this); - helpMenu.add(aboutItem); - - menubar.add(fileMenu); - menubar.add(helpMenu); - - setJMenuBar(menubar); - - JToolBar toolBar = new JToolBar(); - toolBar.setFloatable(false); - toolBar.setRollover(true); - toolBar.add(createToolButton("disk.png", bundle.getString("save"), "save")); - this.add(toolBar, cons); - - cons.gridy++; - cons.fill = GridBagConstraints.BOTH; - cons.weighty = 1; - loadConfigs(); - buildInterface(); - this.add(_tabPane, cons); - } - - private JButton createToolButton(String image, String text, String action) - { - JButton button = new JButton(text, ImagesTable.getImage(image)); - button.setActionCommand(action); - button.addActionListener(this); - return button; - } - - private void buildInterface() - { - ToolTipManager.sharedInstance().setDismissDelay(Integer.MAX_VALUE); - ToolTipManager.sharedInstance().setInitialDelay(0); - ToolTipManager.sharedInstance().setReshowDelay(0); - - GridBagConstraints cons = new GridBagConstraints(); - cons.fill = GridBagConstraints.NONE; - cons.anchor = GridBagConstraints.FIRST_LINE_START; - cons.insets = new Insets(2, 2, 2, 2); - for (ConfigFile cf : getConfigs()) - { - JPanel panel = new JPanel() - { - private static final long serialVersionUID = -323928678804839054L; - - @Override - public void scrollRectToVisible(Rectangle r) - { - } - }; - panel.setLayout(new GridBagLayout()); - - cons.gridy = 0; - cons.weighty = 0; - for (ConfigComment cc : cf.getConfigProperties()) - { - if (!(cc instanceof ConfigProperty)) - { - continue; - } - - ConfigProperty cp = (ConfigProperty) cc; - cons.gridx = 0; - - JLabel keyLabel = new JLabel(cp.getDisplayName() + ':', ImagesTable.getImage("help.png"), SwingConstants.LEFT); - String comments = "" + cp.getName() + ":
" + cp.getComments(); - comments = comments.replace(EOL, "
"); - comments = "" + comments + ""; - keyLabel.setToolTipText(comments); - cons.weightx = 0; - panel.add(keyLabel, cons); - cons.gridx++; - - JComponent valueComponent = cp.getValueComponent(); - valueComponent.setToolTipText(comments); - cons.weightx = 1; - panel.add(valueComponent, cons); - cons.gridx++; - cons.gridy++; - } - cons.gridy++; - cons.weighty = 1; - panel.add(new JLabel(), cons); // filler - _tabPane.addTab(cf.getName(), new JScrollPane(panel)); - } - } - - private void loadConfigs() - { - File configsDir = new File("config"); - for (File file : configsDir.listFiles()) - { - if (file.getName().endsWith(".properties") && file.isFile() && file.canWrite()) - { - try - { - parsePropertiesFile(file); - } - catch (IOException e) - { - JOptionPane.showMessageDialog(ConfigUserInterface.this, getBundle().getString("errorReading") + file.getName(), getBundle().getString("error"), JOptionPane.ERROR_MESSAGE); - System.exit(3); - } - } - } - } - - /** - * @param file - * @throws IOException - */ - private void parsePropertiesFile(File file) throws IOException - { - try (FileInputStream fis = new FileInputStream(file); - InputStreamReader isr = new InputStreamReader(fis); - LineNumberReader lnr = new LineNumberReader(isr)) - { - String line; - StringBuilder commentBuffer = new StringBuilder(); - ConfigFile cf = new ConfigFile(file); - while ((line = lnr.readLine()) != null) - { - line = line.trim(); - if (line.isEmpty()) - { - // blank line, reset comments - if (commentBuffer.length() > 0) - { - cf.addConfigComment(commentBuffer.toString()); - } - commentBuffer.setLength(0); - } - else if (line.charAt(0) == '#') - { - if (commentBuffer.length() > 0) - { - commentBuffer.append(EOL); - } - commentBuffer.append(line.substring(1)); - } - else if (line.indexOf('=') >= 0) - { - String[] kv = line.split("="); - String key = kv[0].trim(); - StringBuilder value = new StringBuilder(); - if (kv.length > 1) - { - value.append(kv[1].trim()); - } - - if (line.indexOf('\\') >= 0) - { - while (((line = lnr.readLine()) != null) && (line.indexOf('\\') >= 0)) - { - value.append(EOL + line); - } - value.append(EOL + line); - } - - String comments = commentBuffer.toString(); - commentBuffer.setLength(0); // reset - - cf.addConfigProperty(key, parseValue(value.toString()), comments); - } - } - getConfigs().add(cf); - } - } - - /** - * @param value - * @return - */ - private Object parseValue(String value) - { - if (value.equalsIgnoreCase("false") || value.equalsIgnoreCase("true")) - { - return Boolean.parseBoolean(value); - } - - /* - * try { double parseDouble = Double.parseDouble(value); return parseDouble; } catch (NumberFormatException e) { // not a double, ignore } - */ - - // localhost -> 127.0.0.1 - if (value.equals("localhost")) - { - value = "127.0.0.1"; - } - - String[] parts = value.split("\\."); - if (parts.length == 4) - { - boolean ok = true; - for (int i = 0; (i < 4) && ok; i++) - { - try - { - int parseInt = Integer.parseInt(parts[i]); - if ((parseInt < 0) || (parseInt > 255)) - { - ok = false; - } - } - catch (NumberFormatException e) - { - ok = false; - } - } - - if (ok) - { - try - { - InetAddress address = InetAddress.getByName(value); - return address; - } - catch (UnknownHostException e) - { - // ignore - } - } - } - - return value; - } - - static class ConfigFile - { - private final File _file; - private String _name; - private final List _configs = new FastList<>(); - - public ConfigFile(File file) - { - _file = file; - int lastIndex = file.getName().lastIndexOf('.'); - setName(file.getName().substring(0, lastIndex)); - } - - public void addConfigProperty(String name, Object value, ValueType type, String comments) - { - _configs.add(new ConfigProperty(name, value, type, comments)); - } - - public void addConfigComment(String comment) - { - _configs.add(new ConfigComment(comment)); - } - - public void addConfigProperty(String name, Object value, String comments) - { - this.addConfigProperty(name, value, ValueType.firstTypeMatch(value), comments); - } - - public List getConfigProperties() - { - return _configs; - } - - /** - * @param name The name to set. - */ - public void setName(String name) - { - _name = name; - } - - /** - * @return Returns the name. - */ - public String getName() - { - return _name; - } - - public void save() throws IOException - { - try (FileOutputStream fos = new FileOutputStream(_file); - OutputStreamWriter osw = new OutputStreamWriter(fos); - BufferedWriter bufWriter = new BufferedWriter(osw)) - { - for (ConfigComment cc : _configs) - { - cc.save(bufWriter); - } - } - } - - class ConfigComment - { - - private String _comments; - - /** - * @param comments - */ - public ConfigComment(String comments) - { - _comments = comments; - } - - /** - * @return Returns the comments. - */ - public String getComments() - { - return _comments; - } - - /** - * @param comments The comments to set. - */ - public void setComments(String comments) - { - _comments = comments; - } - - public void save(Writer writer) throws IOException - { - StringBuilder sb = new StringBuilder(); - sb.append('#'); - sb.append(getComments().replace(EOL, EOL + "#")); - sb.append(EOL + EOL); - writer.write(sb.toString()); - } - } - - class ConfigProperty extends ConfigComment - { - private String _propname; - private Object _value; - private ValueType _type; - private JComponent _component; - - /** - * @param name - * @param value - * @param type - * @param comments - */ - public ConfigProperty(String name, Object value, ValueType type, String comments) - { - super(comments); - if (!type.getType().isAssignableFrom(value.getClass())) - { - throw new IllegalArgumentException("Value Instance Type doesn't match the type argument."); - } - _propname = name; - _type = type; - _value = value; - } - - /** - * @return Returns the name. - */ - public String getName() - { - return _propname; - } - - /** - * @return Returns the name. - */ - public String getDisplayName() - { - return unCamelize(_propname); - } - - /** - * @param name The name to set. - */ - public void setName(String name) - { - _propname = name; - } - - /** - * @return Returns the value. - */ - public Object getValue() - { - return _value; - } - - /** - * @param value The value to set. - */ - public void setValue(String value) - { - _value = value; - } - - /** - * @return Returns the type. - */ - public ValueType getType() - { - return _type; - } - - /** - * @param type The type to set. - */ - public void setType(ValueType type) - { - _type = type; - } - - public JComponent getValueComponent() - { - if (_component == null) - { - _component = createValueComponent(); - } - return _component; - } - - public JComponent createValueComponent() - { - switch (getType()) - { - case BOOLEAN: - boolean bool = (Boolean) getValue(); - JCheckBox checkBox = new JCheckBox(); - checkBox.setSelected(bool); - return checkBox; - case IPv4: - return new JIPTextField((Inet4Address) getValue()); - case DOUBLE: - case INTEGER: - case STRING: - default: - String val = getValue().toString(); - JTextArea textArea = new JTextArea(val); - textArea.setFont(UIManager.getFont("TextField.font")); - int rows = 1; - for (int i = 0; i < val.length(); i++) - { - if (val.charAt(i) == '\\') - { - rows++; - } - } - textArea.setRows(rows); - textArea.setColumns(Math.max(val.length() / rows, 20)); - return textArea; - } - } - - @Override - public void save(Writer writer) throws IOException - { - String value; - if (getValueComponent() instanceof JCheckBox) - { - value = Boolean.toString(((JCheckBox) getValueComponent()).isSelected()); - value = value.substring(0, 1).toUpperCase() + value.substring(1); - } - else if (getValueComponent() instanceof JIPTextField) - { - value = ((JIPTextField) getValueComponent()).getText(); - } - else if (getValueComponent() instanceof JTextArea) - { - value = ((JTextArea) getValueComponent()).getText(); - } - else - { - throw new IllegalStateException("Unhandled component value"); - } - - StringBuilder sb = new StringBuilder(); - sb.append('#'); - sb.append(getComments().replace(EOL, EOL + "#")); - sb.append(EOL); - sb.append(getName()); - sb.append(" = "); - sb.append(value); - sb.append(EOL); - sb.append(EOL); - writer.write(sb.toString()); - } - } - } - - public static enum ValueType - { - BOOLEAN(Boolean.class), - DOUBLE(Double.class), - INTEGER(Integer.class), - IPv4(Inet4Address.class), - STRING(String.class); - - private final Class _type; - - private ValueType(Class type) - { - _type = type; - } - - /** - * @return Returns the type. - */ - public Class getType() - { - return _type; - } - - public static ValueType firstTypeMatch(Object value) - { - for (ValueType vt : ValueType.values()) - { - if (vt.getType() == value.getClass()) - { - return vt; - } - } - throw new NoSuchElementException("No match for: " + value.getClass().getName()); - } - } - - @Override - public void actionPerformed(ActionEvent e) - { - String cmd = e.getActionCommand(); - - StringBuilder errors = new StringBuilder(); - - if (cmd.equals("save")) - { - for (ConfigFile cf : ConfigUserInterface.this.getConfigs()) - { - try - { - cf.save(); - } - catch (Exception e1) - { - e1.printStackTrace(); - errors.append(getBundle().getString("errorSaving") + cf.getName() + ".properties. " + getBundle().getString("reason") + e1.getLocalizedMessage() + EOL); - } - } - if (errors.length() == 0) - { - JOptionPane.showMessageDialog(ConfigUserInterface.this, getBundle().getString("success"), "OK", JOptionPane.INFORMATION_MESSAGE); - } - else - { - JOptionPane.showMessageDialog(ConfigUserInterface.this, errors, getBundle().getString("error"), JOptionPane.ERROR_MESSAGE); - System.exit(2); - } - } - else if (cmd.equals("exit")) - { - System.exit(0); - } - else if (cmd.equals("about")) - { - JOptionPane.showMessageDialog(ConfigUserInterface.this, getBundle().getString("credits") + EOL + "http://www.l2jserver.com" + EOL + EOL + getBundle().getString("icons") + EOL + EOL + getBundle().getString("langText") + EOL + getBundle().getString("translation"), getBundle().getString("aboutItem"), JOptionPane.INFORMATION_MESSAGE, ImagesTable.getImage("l2jserverlogo.png")); - } - } - - /** - * @param configs The configuration to set. - */ - public void setConfigs(List configs) - { - _configs = configs; - } - - /** - * @return Returns the configuration. - */ - public List getConfigs() - { - return _configs; - } - - /** - * @param keyName - * @return Returns the configuration setting name in a human readable form. - */ - public static String unCamelize(final String keyName) - { - Pattern p = Pattern.compile("\\p{Lu}"); - Matcher m = p.matcher(keyName); - StringBuffer sb = new StringBuffer(); - int last = 0; - while (m.find()) - { - if (m.start() != (last + 1)) - { - m.appendReplacement(sb, " " + m.group()); - } - last = m.start(); - } - m.appendTail(sb); - return sb.toString().trim(); - } - - /** - * @param bundle The bundle to set. - */ - public void setBundle(ResourceBundle bundle) - { - _bundle = bundle; - } - - /** - * @return Returns the bundle. - */ - public ResourceBundle getBundle() - { - return _bundle; - } -} diff --git a/trunk/java/com/l2jserver/tools/configurator/JIPTextField.java b/trunk/java/com/l2jserver/tools/configurator/JIPTextField.java deleted file mode 100644 index 5cebe97ddf..0000000000 --- a/trunk/java/com/l2jserver/tools/configurator/JIPTextField.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.configurator; - -import java.awt.Component; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.Toolkit; -import java.awt.event.ActionListener; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.LinkedList; -import java.util.List; - -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.PlainDocument; - -/** - * @author KenM - */ -public class JIPTextField extends JPanel implements FocusListener -{ - /** - * Comment for serialVersionUID - */ - private static final long serialVersionUID = 1L; - private JTextField[] _textFields; - private List _focusListeners; - - public JIPTextField(String textIp) - { - super.addFocusListener(this); - - initIPTextField(textIp); - - for (JTextField _textField : _textFields) - { - _textField.addFocusListener(this); - } - } - - public JIPTextField() - { - this("..."); - } - - /** - * @param value - */ - public JIPTextField(Inet4Address value) - { - this(value.getHostAddress()); - } - - private void initIPTextField(String textIp) - { - final ActionListener nextfocusaction = evt -> ((Component) evt.getSource()).transferFocus(); - - setLayout(new GridBagLayout()); - _textFields = new JTextField[4]; - - GridBagConstraints cons = new GridBagConstraints(); - cons.anchor = GridBagConstraints.PAGE_START; - cons.fill = GridBagConstraints.HORIZONTAL; - cons.insets = new Insets(1, 1, 1, 1); - cons.gridx = 0; - cons.gridy = 0; - - MaxLengthDocument previous = null; - String[] parts = textIp.split("\\."); - for (int i = 0; i < 4; i++) - { - String str = parts[i]; - if (i > 0) - { - JLabel dot = new JLabel("."); - cons.weightx = 0; - add(dot, cons); - cons.gridx++; - } - MaxLengthDocument maxDoc = new MaxLengthDocument(3); - _textFields[i] = new JTextField(maxDoc, str, 3); - if (previous != null) - { - previous.setNext(_textFields[i]); - } - previous = maxDoc; - // ic.weightx = 1; - add(_textFields[i], cons); - _textFields[i].addActionListener(nextfocusaction); - cons.gridx++; - } - } - - @Override - public void addFocusListener(FocusListener fl) - { - if (_focusListeners == null) - { - _focusListeners = new LinkedList<>(); - } - - if ((fl != null) && !_focusListeners.contains(fl)) - { - _focusListeners.add(fl); - } - } - - @Override - public void removeFocusListener(FocusListener fl) - { - if (_focusListeners != null) - { - _focusListeners.remove(fl); - } - } - - public String getText() - { - StringBuilder str = new StringBuilder(); - for (int i = 0; i < 4; i++) - { - if (_textFields[i].getText().length() == 0) - { - str.append('0'); - } - else - { - str.append(_textFields[i].getText()); - } - - if (i < 3) - { - str.append('.'); - } - } - return str.toString(); - } - - public void setText(String str) - { - try - { - // make sure string is not null; throw a NullPointerException otherwise - str.length(); - - InetAddress ip = InetAddress.getByName(str); - byte b[] = ip.getAddress(); - for (int i = 0; i < 4; i++) - { - // byte always have a sign in Java, IP addresses aren't - if (b[i] >= 0) - { - _textFields[i].setText(Byte.toString(b[i])); - } - else - { - _textFields[i].setText(Integer.toString(b[i] + 256)); - } - } - return; - } - catch (UnknownHostException ex) - { - } - catch (NullPointerException npe) - { - } - for (int i = 0; i < 4; i++) - { - _textFields[i].setText(""); - } - } - - @Override - public void setEnabled(boolean enabled) - { - for (JTextField _textField : _textFields) - { - if (_textField != null) - { - _textField.setEnabled(enabled); - } - } - } - - public boolean isEmpty() - { - for (int i = 0; i < 4; i++) - { - if (!_textFields[i].getText().isEmpty()) - { - return false; - } - } - return true; - } - - public boolean isCorrect() - { - for (int i = 0; i < 4; i++) - { - if (_textFields[i].getText().length() == 0) - { - return false; - } - } - return true; - } - - @Override - public void focusGained(FocusEvent event) - { - if (_focusListeners != null) - { - for (FocusListener fl : _focusListeners) - { - fl.focusGained(event); - } - } - } - - @Override - public void focusLost(FocusEvent event) - { - if (isCorrect() || isEmpty()) - { - if (_focusListeners != null) - { - for (FocusListener fl : _focusListeners) - { - fl.focusLost(event); - } - } - } - } - - public class MaxLengthDocument extends PlainDocument - { - - /** - * Comment for serialVersionUID - */ - private static final long serialVersionUID = 1L; - - private final int _max; - private JTextField _next; - - public MaxLengthDocument(int maxLength) - { - this(maxLength, null); - } - - public MaxLengthDocument(int maxLength, JTextField next) - { - _max = maxLength; - setNext(next); - } - - @Override - public void insertString(int offset, String str, AttributeSet a) throws BadLocationException - { - if ((getLength() + str.length()) > _max) - { - if (getNext() != null) - { - if (getNext().getText().length() > 0) - { - getNext().select(0, getNext().getText().length()); - } - else - { - getNext().getDocument().insertString(0, str, a); - } - getNext().requestFocusInWindow(); - } - else - { - Toolkit.getDefaultToolkit().beep(); - } - } - else - { - super.insertString(offset, str, a); - } - } - - /** - * @param next The next to set. - */ - public void setNext(JTextField next) - { - _next = next; - } - - /** - * @return Returns the next. - */ - public JTextField getNext() - { - return _next; - } - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/DBOutputInterface.java b/trunk/java/com/l2jserver/tools/dbinstaller/DBOutputInterface.java deleted file mode 100644 index ee7ec6fae2..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/DBOutputInterface.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller; - -import java.sql.Connection; - -/** - * @author mrTJO - */ -public interface DBOutputInterface -{ - public void setProgressIndeterminate(boolean value); - - public void setProgressMaximum(int maxValue); - - public void setProgressValue(int value); - - public void setFrameVisible(boolean value); - - public void appendToProgressArea(String text); - - public Connection getConnection(); - - public int requestConfirm(String title, String message, int type); - - public void showMessage(String title, String message, int type); -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/LauncherGS.java b/trunk/java/com/l2jserver/tools/dbinstaller/LauncherGS.java deleted file mode 100644 index a2a6197d44..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/LauncherGS.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller; - -import java.awt.HeadlessException; - -import javax.swing.UIManager; - -import com.l2jserver.tools.dbinstaller.console.DBInstallerConsole; -import com.l2jserver.tools.dbinstaller.gui.DBConfigGUI; - -/** - * Contains main class for Database Installer If system doesn't support the graphical UI, start the installer in console mode. - * @author mrTJO - */ -public class LauncherGS -{ - public static void main(String[] args) - { - String mode = "l2jgs"; - String dir = "../sql/game/"; - String cleanUp = "gs_cleanup.sql"; - - try - { - // Set OS Look And Feel - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch (Exception e) - { - } - - try - { - new DBConfigGUI(mode, dir, cleanUp); - } - catch (HeadlessException e) - { - new DBInstallerConsole(mode, dir, cleanUp); - } - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/LauncherLS.java b/trunk/java/com/l2jserver/tools/dbinstaller/LauncherLS.java deleted file mode 100644 index e0f9c02a13..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/LauncherLS.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller; - -import java.awt.HeadlessException; - -import javax.swing.UIManager; - -import com.l2jserver.tools.dbinstaller.console.DBInstallerConsole; -import com.l2jserver.tools.dbinstaller.gui.DBConfigGUI; - -/** - * Contains main class for Database Installer If system doesn't support the graphical UI, start the installer in console mode. - * @author mrTJO - */ -public class LauncherLS -{ - public static void main(String[] args) - { - String mode = "l2jls"; - String dir = "../sql/login/"; - String cleanUp = "ls_cleanup.sql"; - - try - { - // Set OS Look And Feel - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch (Exception e) - { - } - - try - { - new DBConfigGUI(mode, dir, cleanUp); - } - catch (HeadlessException e) - { - new DBInstallerConsole(mode, dir, cleanUp); - } - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/RunTasks.java b/trunk/java/com/l2jserver/tools/dbinstaller/RunTasks.java deleted file mode 100644 index e4d0acec7f..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/RunTasks.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller; - -import java.io.File; -import java.sql.SQLException; -import java.util.prefs.Preferences; - -import javax.swing.JOptionPane; - -import com.l2jserver.tools.dbinstaller.util.mysql.DBDumper; -import com.l2jserver.tools.dbinstaller.util.mysql.ScriptExecutor; -import com.l2jserver.util.file.filter.SQLFilter; - -/** - * @author mrTJO - */ -public class RunTasks extends Thread -{ - DBOutputInterface _frame; - boolean _cleanInstall; - String _db; - String _sqlDir; - String _cleanUpFile; - - public RunTasks(DBOutputInterface frame, String db, String sqlDir, String cleanUpFile, boolean cleanInstall) - { - _frame = frame; - _db = db; - _cleanInstall = cleanInstall; - _sqlDir = sqlDir; - _cleanUpFile = cleanUpFile; - } - - @Override - public void run() - { - new DBDumper(_frame, _db); - ScriptExecutor exec = new ScriptExecutor(_frame); - - File clnFile = new File(_cleanUpFile); - File updDir = new File(_sqlDir, "updates"); - File[] files = updDir.listFiles(new SQLFilter()); - - Preferences prefs = Preferences.userRoot(); - - if (_cleanInstall) - { - if (clnFile.exists()) - { - _frame.appendToProgressArea("Cleaning Database..."); - exec.execSqlFile(clnFile); - _frame.appendToProgressArea("Database Cleaned!"); - } - else - { - _frame.appendToProgressArea("Database Cleaning Script Not Found!"); - } - - if (updDir.exists()) - { - StringBuilder sb = new StringBuilder(); - for (File cf : files) - { - sb.append(cf.getName() + ';'); - } - prefs.put(_db + "_upd", sb.toString()); - } - } - else - { - if (!_cleanInstall && updDir.exists()) - { - _frame.appendToProgressArea("Installing Updates..."); - - for (File cf : files) - { - if (!prefs.get(_db + "_upd", "").contains(cf.getName())) - { - exec.execSqlFile(cf, true); - prefs.put(_db + "_upd", prefs.get(_db + "_upd", "") + cf.getName() + ";"); - } - } - _frame.appendToProgressArea("Database Updates Installed!"); - } - } - - _frame.appendToProgressArea("Installing Database Content..."); - exec.execSqlBatch(new File(_sqlDir)); - _frame.appendToProgressArea("Database Installation Complete!"); - - File cusDir = new File(_sqlDir, "custom"); - if (cusDir.exists()) - { - int ch = _frame.requestConfirm("Install Custom", "Do you want to install custom tables?", JOptionPane.YES_NO_OPTION); - if (ch == 0) - { - _frame.appendToProgressArea("Installing Custom Tables..."); - exec.execSqlBatch(cusDir); - _frame.appendToProgressArea("Custom Tables Installed!"); - } - } - - File modDir = new File(_sqlDir, "mods"); - if (modDir.exists()) - { - int ch = _frame.requestConfirm("Install Mods", "Do you want to install mod tables?", JOptionPane.YES_NO_OPTION); - if (ch == 0) - { - _frame.appendToProgressArea("Installing Mods Tables..."); - exec.execSqlBatch(modDir); - _frame.appendToProgressArea("Mods Tables Installed!"); - } - } - - try - { - _frame.getConnection().close(); - } - catch (SQLException e) - { - JOptionPane.showMessageDialog(null, "Cannot close MySQL Connection: " + e.getMessage(), "Connection Error", JOptionPane.ERROR_MESSAGE); - } - - _frame.setFrameVisible(false); - _frame.showMessage("Done!", "Database Installation Complete!", JOptionPane.INFORMATION_MESSAGE); - System.exit(0); - - } - -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/console/DBInstallerConsole.java b/trunk/java/com/l2jserver/tools/dbinstaller/console/DBInstallerConsole.java deleted file mode 100644 index 3e86917af0..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/console/DBInstallerConsole.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.console; - -import java.sql.Connection; -import java.util.Scanner; -import java.util.prefs.Preferences; - -import com.l2jserver.tools.dbinstaller.DBOutputInterface; -import com.l2jserver.tools.dbinstaller.RunTasks; -import com.l2jserver.tools.dbinstaller.util.CloseShieldedInputStream; -import com.l2jserver.tools.dbinstaller.util.mysql.MySqlConnect; - -/** - * @author mrTJO - */ -public class DBInstallerConsole implements DBOutputInterface -{ - Connection _con; - - public DBInstallerConsole(String db, String dir, String cleanUp) - { - System.out.println("Welcome to L2J DataBase installer"); - Preferences prop = Preferences.userRoot(); - RunTasks rt = null; - try (Scanner scn = new Scanner(new CloseShieldedInputStream(System.in))) - { - while (_con == null) - { - System.out.printf("%s (%s): ", "Host", prop.get("dbHost_" + db, "localhost")); - String dbHost = scn.nextLine(); - System.out.printf("%s (%s): ", "Port", prop.get("dbPort_" + db, "3306")); - String dbPort = scn.nextLine(); - System.out.printf("%s (%s): ", "Username", prop.get("dbUser_" + db, "root")); - String dbUser = scn.nextLine(); - System.out.printf("%s (%s): ", "Password", ""); - String dbPass = scn.nextLine(); - System.out.printf("%s (%s): ", "Database", prop.get("dbDbse_" + db, db)); - String dbDbse = scn.nextLine(); - - dbHost = dbHost.isEmpty() ? prop.get("dbHost_" + db, "localhost") : dbHost; - dbPort = dbPort.isEmpty() ? prop.get("dbPort_" + db, "3306") : dbPort; - dbUser = dbUser.isEmpty() ? prop.get("dbUser_" + db, "root") : dbUser; - dbDbse = dbDbse.isEmpty() ? prop.get("dbDbse_" + db, db) : dbDbse; - - MySqlConnect connector = new MySqlConnect(dbHost, dbPort, dbUser, dbPass, dbDbse, true); - - _con = connector.getConnection(); - } - - System.out.print("(C)lean install, (U)pdate or (E)xit? "); - String resp = scn.next(); - if (resp.equalsIgnoreCase("c")) - { - System.out.print("Do you really want to destroy your db (Y/N)?"); - if (scn.next().equalsIgnoreCase("y")) - { - rt = new RunTasks(this, db, dir, cleanUp, true); - } - } - else if (resp.equalsIgnoreCase("u")) - { - rt = new RunTasks(this, db, dir, cleanUp, false); - } - } - - if (rt != null) - { - rt.run(); - } - else - { - System.exit(0); - } - } - - @Override - public void appendToProgressArea(String text) - { - System.out.println(text); - } - - @Override - public Connection getConnection() - { - return _con; - } - - @Override - public void setProgressIndeterminate(boolean value) - { - } - - @Override - public void setProgressMaximum(int maxValue) - { - } - - @Override - public void setProgressValue(int value) - { - } - - @Override - public void setFrameVisible(boolean value) - { - } - - @Override - public int requestConfirm(String title, String message, int type) - { - System.out.print(message); - String res = ""; - try (Scanner scn = new Scanner(new CloseShieldedInputStream(System.in))) - { - res = scn.next(); - } - return res.equalsIgnoreCase("y") ? 0 : 1; - } - - @Override - public void showMessage(String title, String message, int type) - { - System.out.println(message); - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBConfigGUI.java b/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBConfigGUI.java deleted file mode 100644 index bc247a9e26..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBConfigGUI.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.gui; - -import java.awt.Dimension; -import java.awt.Toolkit; -import java.awt.event.ActionListener; -import java.util.prefs.Preferences; - -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPasswordField; -import javax.swing.JTextField; -import javax.swing.SpringLayout; -import javax.swing.SwingConstants; - -import com.l2jserver.tools.dbinstaller.RunTasks; -import com.l2jserver.tools.dbinstaller.util.mysql.MySqlConnect; -import com.l2jserver.tools.dbinstaller.util.swing.SpringUtilities; -import com.l2jserver.tools.images.ImagesTable; - -/** - * @author mrTJO - */ -public class DBConfigGUI extends JFrame -{ - private static final long serialVersionUID = -8391792251140797076L; - - JTextField _dbHost; - JTextField _dbPort; - JTextField _dbUser; - JPasswordField _dbPass; - JTextField _dbDbse; - - String _db; - String _dir; - String _cleanUp; - - Preferences _prop; - - public DBConfigGUI(String db, String dir, String cleanUp) - { - super("L2J Database Installer"); - setLayout(new SpringLayout()); - setDefaultLookAndFeelDecorated(true); - setIconImage(ImagesTable.getImage("l2j.png").getImage()); - - _db = db; - _dir = dir; - _cleanUp = cleanUp; - - int width = 260; - int height = 220; - Dimension resolution = Toolkit.getDefaultToolkit().getScreenSize(); - - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setBounds((resolution.width - width) / 2, (resolution.height - height) / 2, width, height); - setResizable(false); - - _prop = Preferences.userRoot(); - - // Host - JLabel labelDbHost = new JLabel("Host: ", SwingConstants.LEFT); - add(labelDbHost); - _dbHost = new JTextField(15); - _dbHost.setText(_prop.get("dbHost_" + db, "localhost")); - labelDbHost.setLabelFor(_dbHost); - add(_dbHost); - - // Port - JLabel labelDbPort = new JLabel("Port: ", SwingConstants.LEFT); - add(labelDbPort); - _dbPort = new JTextField(15); - _dbPort.setText(_prop.get("dbPort_" + db, "3306")); - labelDbPort.setLabelFor(_dbPort); - add(_dbPort); - - // Username - JLabel labelDbUser = new JLabel("Username: ", SwingConstants.LEFT); - add(labelDbUser); - _dbUser = new JTextField(15); - _dbUser.setText(_prop.get("dbUser_" + db, "root")); - labelDbUser.setLabelFor(_dbUser); - add(_dbUser); - - // Password - JLabel labelDbPass = new JLabel("Password: ", SwingConstants.LEFT); - add(labelDbPass); - _dbPass = new JPasswordField(15); - _dbPass.setText(_prop.get("dbPass_" + db, "")); - labelDbPass.setLabelFor(_dbPass); - add(_dbPass); - - // Database - JLabel labelDbDbse = new JLabel("Database: ", SwingConstants.LEFT); - add(labelDbDbse); - _dbDbse = new JTextField(15); - _dbDbse.setText(_prop.get("dbDbse_" + db, db)); - labelDbDbse.setLabelFor(_dbDbse); - add(_dbDbse); - - ActionListener cancelListener = e -> System.exit(0); - - // Cancel - JButton btnCancel = new JButton("Cancel"); - btnCancel.addActionListener(cancelListener); - add(btnCancel); - - ActionListener connectListener = e -> - { - MySqlConnect connector = new MySqlConnect(_dbHost.getText(), _dbPort.getText(), _dbUser.getText(), new String(_dbPass.getPassword()), _dbDbse.getText(), false); - - if (connector.getConnection() != null) - { - _prop.put("dbHost_" + _db, _dbHost.getText()); - _prop.put("dbPort_" + _db, _dbPort.getText()); - _prop.put("dbUser_" + _db, _dbUser.getText()); - _prop.put("dbDbse_" + _db, _dbDbse.getText()); - - boolean cleanInstall = false; - DBInstallerGUI dbi = new DBInstallerGUI(connector.getConnection()); - setVisible(false); - - Object[] options = - { - "Full Install", - "Upgrade", - "Exit" - }; - int n = JOptionPane.showOptionDialog(null, "Select Installation Type", "Installation Type", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); - - if ((n == 2) || (n == -1)) - { - System.exit(0); - } - - if (n == 0) - { - int conf = JOptionPane.showConfirmDialog(null, "Do you really want to destroy your db?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); - - if (conf == 1) - { - System.exit(0); - } - - cleanInstall = true; - } - - dbi.setVisible(true); - - RunTasks task = new RunTasks(dbi, _db, _dir, _cleanUp, cleanInstall); - task.setPriority(Thread.MAX_PRIORITY); - task.start(); - } - }; - - // Connect - JButton btnConnect = new JButton("Connect"); - btnConnect.addActionListener(connectListener); - add(btnConnect); - - SpringUtilities.makeCompactGrid(getContentPane(), 6, 2, 5, 5, 5, 5); - - setVisible(true); - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBInstallerGUI.java b/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBInstallerGUI.java deleted file mode 100644 index 2e10b50ba0..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/gui/DBInstallerGUI.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.gui; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.Toolkit; -import java.sql.Connection; - -import javax.swing.JFrame; -import javax.swing.JOptionPane; -import javax.swing.JProgressBar; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; - -import com.l2jserver.tools.dbinstaller.DBOutputInterface; -import com.l2jserver.tools.images.ImagesTable; - -/** - * @author mrTJO - */ -public class DBInstallerGUI extends JFrame implements DBOutputInterface -{ - private static final long serialVersionUID = -1005504757826370170L; - - private final JProgressBar _progBar; - private final JTextArea _progArea; - private final Connection _con; - - public DBInstallerGUI(Connection con) - { - super("L2J Database Installer"); - setLayout(new BorderLayout()); - setDefaultLookAndFeelDecorated(true); - setIconImage(ImagesTable.getImage("l2j.png").getImage()); - - _con = con; - - int width = 480; - int height = 360; - Dimension resolution = Toolkit.getDefaultToolkit().getScreenSize(); - - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setBounds((resolution.width - width) / 2, (resolution.height - height) / 2, width, height); - setResizable(false); - - _progBar = new JProgressBar(); - _progBar.setIndeterminate(true); - add(_progBar, BorderLayout.PAGE_START); - - _progArea = new JTextArea(); - JScrollPane scrollPane = new JScrollPane(_progArea); - - _progArea.setEditable(false); - appendToProgressArea("Connected"); - - add(scrollPane, BorderLayout.CENTER); - } - - @Override - public void setProgressIndeterminate(boolean value) - { - _progBar.setIndeterminate(value); - } - - @Override - public void setProgressMaximum(int maxValue) - { - _progBar.setMaximum(maxValue); - } - - @Override - public void setProgressValue(int value) - { - _progBar.setValue(value); - } - - @Override - public void appendToProgressArea(String text) - { - _progArea.append(text + System.getProperty("line.separator")); - _progArea.setCaretPosition(_progArea.getDocument().getLength()); - } - - @Override - public Connection getConnection() - { - return _con; - } - - @Override - public void setFrameVisible(boolean value) - { - setVisible(value); - } - - @Override - public int requestConfirm(String title, String message, int type) - { - return JOptionPane.showConfirmDialog(null, message, title, type); - } - - @Override - public void showMessage(String title, String message, int type) - { - JOptionPane.showMessageDialog(null, message, title, type); - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/CloseShieldedInputStream.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/CloseShieldedInputStream.java deleted file mode 100644 index 16e5564e8f..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/CloseShieldedInputStream.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.util; - -import java.io.IOException; -import java.io.InputStream; - -/** - * Prevent the underlying input stream to close. - * @author Joe Cheng, Zoey76 - */ -public class CloseShieldedInputStream extends InputStream -{ - private InputStream _in = null; - - /** - * Instantiates a new close shielded input stream. - * @param in the in - */ - public CloseShieldedInputStream(InputStream in) - { - _in = in; - } - - /** - * {@inheritDoc} - */ - @Override - public void close() - { - _in = null; - } - - /** - * {@inheritDoc} - */ - @Override - public int read() throws IOException - { - if (_in == null) - { - throw new IOException("Stream is null!"); - } - return _in.read(); - } - - /** - * {@inheritDoc} - */ - @Override - public int read(byte b[]) throws IOException - { - if (_in == null) - { - throw new IOException("Stream is null!"); - } - return _in.read(b); - } - - /** - * {@inheritDoc} - */ - @Override - public int read(byte b[], int off, int len) throws IOException - { - if (_in == null) - { - throw new IOException("Stream is null!"); - } - return _in.read(b, off, len); - } - - /** - * {@inheritDoc} - */ - @Override - public long skip(long n) throws IOException - { - if (_in == null) - { - throw new IOException("Stream is null!"); - } - return _in.skip(n); - } - - /** - * {@inheritDoc} - */ - @Override - public synchronized void mark(int readlimit) - { - if (_in != null) - { - _in.mark(readlimit); - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean markSupported() - { - if (_in == null) - { - return false; - } - return _in.markSupported(); - } - - /** - * {@inheritDoc} - */ - @Override - public synchronized void reset() throws IOException - { - if (_in == null) - { - throw new IOException("Stream is null!"); - } - _in.reset(); - } - - /** - * Gets the underlying stream. - * @return the underlying stream - */ - public InputStream getUnderlyingStream() - { - return _in; - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/FileWriterStdout.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/FileWriterStdout.java deleted file mode 100644 index 147834bcc2..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/FileWriterStdout.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.util; - -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; - -/** - * @author mrTJO - */ -public class FileWriterStdout extends BufferedWriter -{ - public FileWriterStdout(FileWriter fileWriter) - { - super(fileWriter); - } - - public void println() throws IOException - { - append(System.getProperty("line.separator")); - } - - public void println(String line) throws IOException - { - append(line + System.getProperty("line.separator")); - } - - public void print(String text) throws IOException - { - append(text); - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/DBDumper.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/DBDumper.java deleted file mode 100644 index e4aa99d650..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/DBDumper.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.util.mysql; - -import java.io.File; -import java.io.FileWriter; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.Formatter; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.l2jserver.tools.dbinstaller.DBOutputInterface; -import com.l2jserver.tools.dbinstaller.util.FileWriterStdout; - -/** - * @author mrTJO - */ -public class DBDumper -{ - DBOutputInterface _frame; - String _db; - - public DBDumper(DBOutputInterface frame, String db) - { - _frame = frame; - _db = db; - createDump(); - } - - public void createDump() - { - try (Formatter form = new Formatter()) - { - Connection con = _frame.getConnection(); - try (Statement s = con.createStatement(); - ResultSet rset = s.executeQuery("SHOW TABLES")) - { - File dump = new File("dumps", form.format("%1$s_dump_%2$tY%2$tm%2$td-%2$tH%2$tM%2$tS.sql", _db, new GregorianCalendar().getTime()).toString()); - new File("dumps").mkdir(); - dump.createNewFile(); - - _frame.appendToProgressArea("Writing dump " + dump.getName()); - if (rset.last()) - { - int rows = rset.getRow(); - rset.beforeFirst(); - if (rows > 0) - { - _frame.setProgressIndeterminate(false); - _frame.setProgressMaximum(rows); - } - } - - try (FileWriter fileWriter = new FileWriter(dump); - FileWriterStdout fws = new FileWriterStdout(fileWriter)) - { - while (rset.next()) - { - _frame.setProgressValue(rset.getRow()); - _frame.appendToProgressArea("Dumping Table " + rset.getString(1)); - fws.println("CREATE TABLE `" + rset.getString(1) + "`"); - fws.println("("); - try (Statement desc = con.createStatement(); - ResultSet dset = desc.executeQuery("DESC " + rset.getString(1))) - { - Map> keys = new HashMap<>(); - boolean isFirst = true; - while (dset.next()) - { - if (!isFirst) - { - fws.println(","); - } - fws.print("\t`" + dset.getString(1) + "`"); - fws.print(" " + dset.getString(2)); - if (dset.getString(3).equals("NO")) - { - fws.print(" NOT NULL"); - } - if (!dset.getString(4).isEmpty()) - { - if (!keys.containsKey(dset.getString(4))) - { - keys.put(dset.getString(4), new ArrayList()); - } - keys.get(dset.getString(4)).add(dset.getString(1)); - } - if (dset.getString(5) != null) - { - fws.print(" DEFAULT '" + dset.getString(5) + "'"); - } - if (!dset.getString(6).isEmpty()) - { - fws.print(" " + dset.getString(6)); - } - isFirst = false; - } - if (keys.containsKey("PRI")) - { - fws.println(","); - fws.print("\tPRIMARY KEY ("); - isFirst = true; - for (String key : keys.get("PRI")) - { - if (!isFirst) - { - fws.print(", "); - } - fws.print("`" + key + "`"); - isFirst = false; - } - fws.print(")"); - } - if (keys.containsKey("MUL")) - { - fws.println(","); - isFirst = true; - for (String key : keys.get("MUL")) - { - if (!isFirst) - { - fws.println(", "); - } - fws.print("\tKEY `key_" + key + "` (`" + key + "`)"); - isFirst = false; - } - } - fws.println(); - fws.println(");"); - fws.flush(); - } - - try (Statement desc = con.createStatement(); - ResultSet dset = desc.executeQuery("SELECT * FROM " + rset.getString(1))) - { - boolean isFirst = true; - int cnt = 0; - while (dset.next()) - { - if ((cnt % 100) == 0) - { - fws.println("INSERT INTO `" + rset.getString(1) + "` VALUES "); - } - else - { - fws.println(","); - } - - fws.print("\t("); - boolean isInFirst = true; - for (int i = 1; i <= dset.getMetaData().getColumnCount(); i++) - { - if (!isInFirst) - { - fws.print(", "); - } - - if (dset.getString(i) == null) - { - fws.print("NULL"); - } - else - { - fws.print("'" + dset.getString(i).replace("\'", "\\\'") + "'"); - } - isInFirst = false; - } - fws.print(")"); - isFirst = false; - - if ((cnt % 100) == 99) - { - fws.println(";"); - } - cnt++; - } - if (!isFirst && ((cnt % 100) != 0)) - { - fws.println(";"); - } - fws.println(); - fws.flush(); - } - } - fws.flush(); - } - } - } - catch (Exception e) - { - e.printStackTrace(); - } - _frame.appendToProgressArea("Dump Complete!"); - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/MySqlConnect.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/MySqlConnect.java deleted file mode 100644 index cfd12bd926..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/MySqlConnect.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.util.mysql; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Formatter; - -import javax.swing.JOptionPane; - -/** - * @author mrTJO - */ -public class MySqlConnect -{ - Connection con = null; - - public MySqlConnect(String host, String port, String user, String password, String db, boolean console) - { - try (Formatter form = new Formatter()) - { - Class.forName("com.mysql.jdbc.Driver").newInstance(); - final String formattedText = form.format("jdbc:mysql://%1$s:%2$s", host, port).toString(); - con = DriverManager.getConnection(formattedText, user, password); - - try (Statement s = con.createStatement()) - { - s.execute("CREATE DATABASE IF NOT EXISTS `" + db + "`"); - s.execute("USE `" + db + "`"); - } - } - catch (SQLException e) - { - if (console) - { - e.printStackTrace(); - } - else - { - JOptionPane.showMessageDialog(null, "MySQL Error: " + e.getMessage(), "Connection Error", JOptionPane.ERROR_MESSAGE); - } - } - catch (InstantiationException e) - { - if (console) - { - e.printStackTrace(); - } - else - { - JOptionPane.showMessageDialog(null, "Instantiation Exception: " + e.getMessage(), "Connection Error", JOptionPane.ERROR_MESSAGE); - } - } - catch (IllegalAccessException e) - { - if (console) - { - e.printStackTrace(); - } - else - { - JOptionPane.showMessageDialog(null, "Illegal Access: " + e.getMessage(), "Connection Error", JOptionPane.ERROR_MESSAGE); - } - } - catch (ClassNotFoundException e) - { - if (console) - { - e.printStackTrace(); - } - else - { - JOptionPane.showMessageDialog(null, "Cannot find MySQL Connector: " + e.getMessage(), "Connection Error", JOptionPane.ERROR_MESSAGE); - } - } - } - - public Connection getConnection() - { - return con; - } - - public Statement getStatement() - { - try - { - return con.createStatement(); - } - catch (SQLException e) - { - e.printStackTrace(); - System.out.println("Statement Null"); - return null; - } - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/ScriptExecutor.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/ScriptExecutor.java deleted file mode 100644 index 4be5bcd14b..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/mysql/ScriptExecutor.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.dbinstaller.util.mysql; - -import java.awt.HeadlessException; -import java.io.File; -import java.io.FileNotFoundException; -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Arrays; -import java.util.Scanner; - -import javax.swing.JOptionPane; - -import com.l2jserver.tools.dbinstaller.DBOutputInterface; -import com.l2jserver.util.file.filter.SQLFilter; - -/** - * @author mrTJO - */ -public class ScriptExecutor -{ - DBOutputInterface _frame; - - public ScriptExecutor(DBOutputInterface frame) - { - _frame = frame; - } - - public void execSqlBatch(File dir) - { - execSqlBatch(dir, false); - } - - public void execSqlBatch(File dir, boolean skipErrors) - { - File[] file = dir.listFiles(new SQLFilter()); - Arrays.sort(file); - _frame.setProgressIndeterminate(false); - _frame.setProgressMaximum(file.length - 1); - for (int i = 0; i < file.length; i++) - { - _frame.setProgressValue(i); - execSqlFile(file[i], skipErrors); - } - } - - public void execSqlFile(File file) - { - execSqlFile(file, false); - } - - public void execSqlFile(File file, boolean skipErrors) - { - _frame.appendToProgressArea("Installing " + file.getName()); - String line = ""; - Connection con = _frame.getConnection(); - try (Statement stmt = con.createStatement(); - Scanner scn = new Scanner(file)) - { - StringBuilder sb = new StringBuilder(); - while (scn.hasNextLine()) - { - line = scn.nextLine(); - if (line.startsWith("--")) - { - continue; - } - else if (line.contains("--")) - { - line = line.split("--")[0]; - } - - line = line.trim(); - if (!line.isEmpty()) - { - sb.append(line + System.getProperty("line.separator")); - } - - if (line.endsWith(";")) - { - stmt.execute(sb.toString()); - sb = new StringBuilder(); - } - } - } - catch (FileNotFoundException e) - { - JOptionPane.showMessageDialog(null, "File Not Found!: " + e.getMessage(), "Installer Error", JOptionPane.ERROR_MESSAGE); - } - catch (SQLException e) - { - if (!skipErrors) - { - try - { - Object[] options = - { - "Continue", - "Abort" - }; - - int n = JOptionPane.showOptionDialog(null, "MySQL Error: " + e.getMessage(), "Script Error", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); - if (n == 1) - { - System.exit(0); - } - } - catch (HeadlessException h) - { - e.printStackTrace(); - } - } - } - } -} diff --git a/trunk/java/com/l2jserver/tools/dbinstaller/util/swing/SpringUtilities.java b/trunk/java/com/l2jserver/tools/dbinstaller/util/swing/SpringUtilities.java deleted file mode 100644 index 9644555e55..0000000000 --- a/trunk/java/com/l2jserver/tools/dbinstaller/util/swing/SpringUtilities.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * - Neither the name of Oracle or the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.l2jserver.tools.dbinstaller.util.swing; - -import java.awt.Component; -import java.awt.Container; - -import javax.swing.Spring; -import javax.swing.SpringLayout; - -/** - * A 1.4 file that provides utility methods for creating form- or grid-style layouts with SpringLayout.
- * These utilities are used by several programs, such as SpringBox and SpringCompactGrid. - */ -public class SpringUtilities -{ - /** - * A debugging utility that prints to stdout the component's minimum, preferred, and maximum sizes. - * @param c - */ - public static void printSizes(Component c) - { - System.out.println("minimumSize = " + c.getMinimumSize()); - System.out.println("preferredSize = " + c.getPreferredSize()); - System.out.println("maximumSize = " + c.getMaximumSize()); - } - - /** - * Aligns the first rows * cols components of parent in a grid. Each component is as big as the maximum preferred width and height of the components. The parent is made just big enough to fit them all. - * @param parent - * @param rows number of rows - * @param cols number of columns - * @param initialX x location to start the grid at - * @param initialY y location to start the grid at - * @param xPad x padding between cells - * @param yPad y padding between cells - */ - public static void makeGrid(Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) - { - SpringLayout layout; - try - { - layout = (SpringLayout) parent.getLayout(); - } - catch (ClassCastException exc) - { - System.err.println("The first argument to makeGrid must use SpringLayout."); - return; - } - - Spring xPadSpring = Spring.constant(xPad); - Spring yPadSpring = Spring.constant(yPad); - Spring initialXSpring = Spring.constant(initialX); - Spring initialYSpring = Spring.constant(initialY); - int max = rows * cols; - - // Calculate Springs that are the max of the width/height so that all - // cells have the same size. - Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); - Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)).getWidth(); - for (int i = 1; i < max; i++) - { - SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); - - maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); - maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); - } - - // Apply the new width/height Spring. This forces all the - // components to have the same size. - for (int i = 0; i < max; i++) - { - SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); - - cons.setWidth(maxWidthSpring); - cons.setHeight(maxHeightSpring); - } - - // Then adjust the x/y constraints of all the cells so that they - // are aligned in a grid. - SpringLayout.Constraints lastCons = null; - SpringLayout.Constraints lastRowCons = null; - for (int i = 0; i < max; i++) - { - SpringLayout.Constraints cons = layout.getConstraints(parent.getComponent(i)); - if ((i % cols) == 0) - { // start of new row - lastRowCons = lastCons; - cons.setX(initialXSpring); - } - else - { - // x position depends on previous component - if (lastCons != null) - { - cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), xPadSpring)); - } - } - - if ((i / cols) == 0) - { - // first row - cons.setY(initialYSpring); - } - else - { - // y position depends on previous row - if (lastRowCons != null) - { - cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), yPadSpring)); - } - } - lastCons = cons; - } - - // Set the parent's size. - SpringLayout.Constraints pCons = layout.getConstraints(parent); - if (lastCons != null) - { - pCons.setConstraint(SpringLayout.SOUTH, Spring.sum(Spring.constant(yPad), lastCons.getConstraint(SpringLayout.SOUTH))); - pCons.setConstraint(SpringLayout.EAST, Spring.sum(Spring.constant(xPad), lastCons.getConstraint(SpringLayout.EAST))); - } - } - - /* Used by makeCompactGrid. */ - private static SpringLayout.Constraints getConstraintsForCell(int row, int col, Container parent, int cols) - { - SpringLayout layout = (SpringLayout) parent.getLayout(); - Component c = parent.getComponent((row * cols) + col); - return layout.getConstraints(c); - } - - /** - * Aligns the first rows * cols components of parent in a grid. Each component in a column is as wide as the maximum preferred width of the components in that column; height is similarly determined for each row. The parent is made just big enough to fit - * them all. - * @param parent - * @param rows number of rows - * @param cols number of columns - * @param initialX x location to start the grid at - * @param initialY y location to start the grid at - * @param xPad x padding between cells - * @param yPad y padding between cells - */ - public static void makeCompactGrid(Container parent, int rows, int cols, int initialX, int initialY, int xPad, int yPad) - { - SpringLayout layout; - try - { - layout = (SpringLayout) parent.getLayout(); - } - catch (ClassCastException exc) - { - System.err.println("The first argument to makeCompactGrid must use SpringLayout."); - return; - } - - // Align all cells in each column and make them the same width. - Spring x = Spring.constant(initialX); - for (int c = 0; c < cols; c++) - { - Spring width = Spring.constant(0); - for (int r = 0; r < rows; r++) - { - width = Spring.max(width, getConstraintsForCell(r, c, parent, cols).getWidth()); - } - for (int r = 0; r < rows; r++) - { - SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols); - constraints.setX(x); - constraints.setWidth(width); - } - x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad))); - } - - // Align all cells in each row and make them the same height. - Spring y = Spring.constant(initialY); - for (int r = 0; r < rows; r++) - { - Spring height = Spring.constant(0); - for (int c = 0; c < cols; c++) - { - height = Spring.max(height, getConstraintsForCell(r, c, parent, cols).getHeight()); - } - for (int c = 0; c < cols; c++) - { - SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols); - constraints.setY(y); - constraints.setHeight(height); - } - y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad))); - } - - // Set the parent's size. - SpringLayout.Constraints pCons = layout.getConstraints(parent); - pCons.setConstraint(SpringLayout.SOUTH, y); - pCons.setConstraint(SpringLayout.EAST, x); - } -} diff --git a/trunk/java/com/l2jserver/tools/gsregistering/BaseGameServerRegister.java b/trunk/java/com/l2jserver/tools/gsregistering/BaseGameServerRegister.java index 5c62f86bfb..38f5e72d23 100644 --- a/trunk/java/com/l2jserver/tools/gsregistering/BaseGameServerRegister.java +++ b/trunk/java/com/l2jserver/tools/gsregistering/BaseGameServerRegister.java @@ -18,7 +18,6 @@ */ package com.l2jserver.tools.gsregistering; -import java.awt.HeadlessException; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -28,19 +27,14 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; -import java.util.Locale; import java.util.Map.Entry; import java.util.Properties; import java.util.ResourceBundle; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; - import com.l2jserver.Config; import com.l2jserver.L2DatabaseFactory; import com.l2jserver.Server; import com.l2jserver.loginserver.GameServerTable; -import com.l2jserver.tools.i18n.LanguageControl; import com.l2jserver.util.Util; /** @@ -50,7 +44,6 @@ import com.l2jserver.util.Util; public abstract class BaseGameServerRegister { private boolean _loaded = false; - private ResourceBundle _bundle; /** * The main method. @@ -58,221 +51,7 @@ public abstract class BaseGameServerRegister */ public static void main(String[] args) { - Locale locale = null; - boolean gui = true; - boolean interactive = true; - boolean force = false; - boolean fallback = false; - BaseTask task = null; - - ResourceBundle bundle = null; - try - { - locale = Locale.getDefault(); - bundle = ResourceBundle.getBundle("gsregister.GSRegister", locale, LanguageControl.INSTANCE); - } - catch (Throwable t) - { - System.out.println("FATAL: Failed to load default translation."); - System.exit(666); - } - - String arg; - for (int i = 0; i < args.length; i++) - { - arg = args[i]; - - // --cmd : no gui - if (arg.equals("-c") || arg.equals("--cmd")) - { - gui = false; - } - // --force : Forces GameServer register operations to overwrite a server if necessary - else if (arg.equals("-f") || arg.equals("--force")) - { - force = true; - } - // --fallback : If an register operation fails due to ID already being in use it will then try to register first available ID - else if (arg.equals("-b") || arg.equals("--fallback")) - { - fallback = true; - } - // --register : Register GameServer with ID and output hexid on - // Fails if already in use, unless -force is used (overwrites) - else if (arg.equals("-r") || arg.equals("--register")) - { - gui = false; - interactive = false; - int id = Integer.parseInt(args[++i]); - String dir = args[++i]; - - task = new RegisterTask(id, dir, force, fallback); - } - // --unregister : Removes GameServer denoted by - else if (arg.equals("-u") || arg.equals("--unregister")) - { - gui = false; - interactive = false; - String gsId = args[++i]; - if (gsId.equalsIgnoreCase("all")) - { - task = new UnregisterAllTask(); - } - else - { - try - { - int id = Integer.parseInt(gsId); - task = new UnregisterTask(id); - } - catch (NumberFormatException e) - { - if (bundle != null) - { - System.out.printf(bundle.getString("wrongUnregisterArg") + Config.EOL, gsId); - } - System.exit(1); - } - } - } - // --language : Sets the app to use the specified locale, overriding auto-detection - else if (arg.equals("-l") || arg.equals("--language")) - { - String loc = args[++i]; - Locale[] availableLocales = Locale.getAvailableLocales(); - Locale l; - for (int j = 0; (j < availableLocales.length) && (locale == null); j++) - { - l = availableLocales[j]; - if (l.toString().equals(loc)) - { - locale = l; - } - } - if (locale == null) - { - System.out.println("Specified locale '" + loc + "' was not found, using default behaviour."); - } - else - { - try - { - bundle = ResourceBundle.getBundle("gsregister.GSRegister", locale, LanguageControl.INSTANCE); - } - catch (Throwable t) - { - System.out.println("Failed to load translation ''"); - } - } - } - // --help : Prints usage/arguments/credits - else if (arg.equals("-h") || arg.equals("--help")) - { - gui = false; - interactive = false; - - BaseGameServerRegister.printHelp(bundle); - } - } - - try - { - if (gui) - { - BaseGameServerRegister.startGUI(bundle); - } - else - { - if (interactive) - { - BaseGameServerRegister.startCMD(bundle); - } - else - { - // if there is a task, do it, else the app has already finished - if (task != null) - { - task.setBundle(bundle); - task.run(); - } - } - } - } - catch (HeadlessException e) - { - BaseGameServerRegister.startCMD(bundle); - } - } - - /** - * Prints the help. - * @param bundle the bundle - */ - private static void printHelp(ResourceBundle bundle) - { - String[] help = - { - bundle.getString("purpose"), - "", - bundle.getString("options"), - "-b, --fallback\t\t\t\t" + bundle.getString("fallbackOpt"), - "-c, --cmd\t\t\t\t" + bundle.getString("cmdOpt"), - "-f, --force\t\t\t\t" + bundle.getString("forceOpt"), - "-h, --help\t\t\t\t" + bundle.getString("helpOpt"), - "-l, --language\t\t\t\t" + bundle.getString("languageOpt"), - "-r, --register \t" + bundle.getString("registerOpt1"), - "\t\t\t\t\t" + bundle.getString("registerOpt2"), - "\t\t\t\t\t" + bundle.getString("registerOpt3"), - "", - "-u, --unregister |all\t\t" + bundle.getString("unregisterOpt"), - "", - bundle.getString("credits"), - bundle.getString("bugReports") + " http://www.l2jserver.com" - - /* - * "-b, --fallback\t\t\t\tIf an register operation fails due to ID already being in use it will then try to register first available ID", "-c, --cmd\t\t\t\tForces application to run in command-line mode even if the GUI is supported.", - * "-f, --force\t\t\t\tForces GameServer register operations to overwrite a server if necessary", "-h, --help\t\t\t\tPrints this help message", "-l, --language \t\t\t\tAsks the application to use the specified locale, overriding auto-detection", - * "-r, --register \tRegister GameServer with ID and output hexid on ", "\t\t\t\t\tUse a negative value on to register the first available ID", "\t\t\t\t\tFails if already in use, unless --force is used (overwrites)", "", - * "-u, --unregister |all\t\tRemoves GameServer denoted by , use \"all\" for removing all registered GameServers", "", "Copyright (C) L2J Team 2008-2012.", "Report bugs: http://www.l2jserver.com" - */ - }; - - for (String str : help) - { - System.out.println(str); - } - } - - /** - * Start the GUI. - * @param bundle the bundle. - */ - private static void startGUI(final ResourceBundle bundle) - { - try - { - // avoid that ugly Metal LaF - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch (Exception e) - { - // couldn't care less - } - - SwingUtilities.invokeLater(() -> - { - GUserInterface gui = new GUserInterface(bundle); - gui.getFrame().setVisible(true); - }); - } - - /** - * Start the CMD. - * @param bundle the bundle. - */ - private static void startCMD(final ResourceBundle bundle) - { - GameServerRegister cmdUi = new GameServerRegister(bundle); + GameServerRegister cmdUi = new GameServerRegister(); try { cmdUi.consoleUI(); @@ -283,15 +62,6 @@ public abstract class BaseGameServerRegister } } - /** - * Instantiates a new base game server register. - * @param bundle the bundle. - */ - public BaseGameServerRegister(ResourceBundle bundle) - { - setBundle(bundle); - } - /** * Load. */ @@ -314,24 +84,6 @@ public abstract class BaseGameServerRegister return _loaded; } - /** - * Sets the bundle. - * @param bundle the bundle to set. - */ - public void setBundle(ResourceBundle bundle) - { - _bundle = bundle; - } - - /** - * Gets the bundle. - * @return the bundle. - */ - public ResourceBundle getBundle() - { - return _bundle; - } - /** * Show the error. * @param msg the msg. @@ -459,143 +211,6 @@ public abstract class BaseGameServerRegister } } - /** - * The Class RegisterTask. - */ - private static class RegisterTask extends BaseTask - { - private final int _id; - private final String _outDir; - private boolean _force; - private boolean _fallback; - - /** - * Instantiates a new register task. - * @param id the id. - * @param outDir the out dir. - * @param force the force. - * @param fallback the fallback. - */ - public RegisterTask(int id, String outDir, boolean force, boolean fallback) - { - _id = id; - _outDir = outDir; - _force = force; - _fallback = fallback; - } - - /** - * Sets the actions. - * @param force the force. - * @param fallback the fallback. - */ - @SuppressWarnings("unused") - public void setActions(boolean force, boolean fallback) - { - _force = force; - _fallback = fallback; - } - - @Override - public void run() - { - try - { - if (_id < 0) - { - int registeredId = BaseGameServerRegister.registerFirstAvailable(_outDir); - - if (registeredId < 0) - { - System.out.println(getBundle().getString("noFreeId")); - } - else - { - System.out.printf(getBundle().getString("registrationOk") + Config.EOL, registeredId); - } - } - else - { - System.out.printf(getBundle().getString("checkingIdInUse") + Config.EOL, _id); - if (GameServerTable.getInstance().hasRegisteredGameServerOnId(_id)) - { - System.out.println(getBundle().getString("yes")); - if (_force) - { - System.out.printf(getBundle().getString("forcingRegistration") + Config.EOL, _id); - BaseGameServerRegister.unregisterGameServer(_id); - BaseGameServerRegister.registerGameServer(_id, _outDir); - System.out.printf(getBundle().getString("registrationOk") + Config.EOL, _id); - } - else if (_fallback) - { - System.out.println(getBundle().getString("fallingBack")); - int registeredId = BaseGameServerRegister.registerFirstAvailable(_outDir); - - if (registeredId < 0) - { - System.out.println(getBundle().getString("noFreeId")); - } - else - { - System.out.printf(getBundle().getString("registrationOk") + Config.EOL, registeredId); - } - } - else - { - System.out.println(getBundle().getString("noAction")); - } - } - else - { - System.out.println(getBundle().getString("no")); - BaseGameServerRegister.registerGameServer(_id, _outDir); - } - } - } - catch (SQLException e) - { - showError(getBundle().getString("sqlErrorRegister"), e); - } - catch (IOException e) - { - showError(getBundle().getString("ioErrorRegister"), e); - } - } - } - - /** - * The Class UnregisterTask. - */ - private static class UnregisterTask extends BaseTask - { - private final int _id; - - /** - * Instantiates a new unregister task. - * @param id the task id. - */ - public UnregisterTask(int id) - { - _id = id; - - } - - @Override - public void run() - { - System.out.printf(getBundle().getString("removingGsId") + Config.EOL, _id); - try - { - BaseGameServerRegister.unregisterGameServer(_id); - } - catch (SQLException e) - { - showError(getBundle().getString("sqlErrorRegister"), e); - } - } - } - /** * The Class UnregisterAllTask. */ diff --git a/trunk/java/com/l2jserver/tools/gsregistering/GUserInterface.java b/trunk/java/com/l2jserver/tools/gsregistering/GUserInterface.java deleted file mode 100644 index 97f1140d99..0000000000 --- a/trunk/java/com/l2jserver/tools/gsregistering/GUserInterface.java +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.gsregistering; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.sql.SQLException; -import java.util.ResourceBundle; - -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLayeredPane; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JProgressBar; -import javax.swing.JScrollPane; -import javax.swing.JTable; -import javax.swing.SwingUtilities; -import javax.swing.table.DefaultTableModel; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; - -import com.l2jserver.Config; -import com.l2jserver.loginserver.GameServerTable; -import com.l2jserver.tools.images.ImagesTable; - -/** - * @author KenM - */ -public class GUserInterface extends BaseGameServerRegister implements ActionListener -{ - private final JFrame _frame; - private final JTableModel _dtm; - protected final JProgressBar _progressBar; - - public JTable _gsTable; - - public GUserInterface(ResourceBundle bundle) - { - super(bundle); - - _frame = new JFrame(); - getFrame().setTitle(getBundle().getString("toolName")); - getFrame().setSize(600, 400); - getFrame().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - getFrame().setLayout(new GridBagLayout()); - GridBagConstraints cons = new GridBagConstraints(); - - JFrame.setDefaultLookAndFeelDecorated(true); - getFrame().setIconImage(ImagesTable.getImage("l2j.png").getImage()); - - JMenuBar menubar = new JMenuBar(); - getFrame().setJMenuBar(menubar); - - JMenu fileMenu = new JMenu(getBundle().getString("fileMenu")); - - JMenuItem exitItem = new JMenuItem(getBundle().getString("exitItem")); - exitItem.addActionListener(this); - exitItem.setActionCommand("exit"); - - fileMenu.add(exitItem); - - JMenu helpMenu = new JMenu(getBundle().getString("helpMenu")); - - JMenuItem aboutItem = new JMenuItem(getBundle().getString("aboutItem")); - aboutItem.addActionListener(this); - aboutItem.setActionCommand("about"); - - helpMenu.add(aboutItem); - - menubar.add(fileMenu); - menubar.add(helpMenu); - - JButton btnRegister = new JButton(getBundle().getString("btnRegister"), ImagesTable.getImage("add.png")); - btnRegister.addActionListener(this); - btnRegister.setActionCommand("register"); - getFrame().add(btnRegister, cons); - - cons.gridx = 1; - cons.anchor = GridBagConstraints.LINE_END; - JButton btnRemoveAll = new JButton(getBundle().getString("btnRemoveAll"), ImagesTable.getImage("cross.png")); - btnRemoveAll.addActionListener(this); - btnRemoveAll.setActionCommand("removeAll"); - getFrame().add(btnRemoveAll, cons); - - String name = getBundle().getString("gsName"); - String action = getBundle().getString("gsAction"); - - _dtm = new JTableModel(new Object[] - { - "ID", - name, - action - }); - _gsTable = new JTable(_dtm); - _gsTable.addMouseListener(new JTableButtonMouseListener(_gsTable)); - - _gsTable.getColumnModel().getColumn(0).setMaxWidth(30); - - TableColumn actionCollumn = _gsTable.getColumnModel().getColumn(2); - actionCollumn.setCellRenderer(new ButtonCellRenderer()); - - cons.fill = GridBagConstraints.BOTH; - cons.gridx = 0; - cons.gridy = 1; - cons.weighty = 1.0; - cons.weightx = 1.0; - cons.gridwidth = 2; - JLayeredPane layer = new JLayeredPane(); - layer.setLayout(new BoxLayout(layer, BoxLayout.PAGE_AXIS)); - layer.add(new JScrollPane(_gsTable), 0); - _progressBar = new JProgressBar(); - _progressBar.setIndeterminate(true); - _progressBar.setVisible(false); - layer.add(_progressBar, BorderLayout.CENTER, 1); - // layer.setV - getFrame().add(layer, cons); - - refreshAsync(); - } - - public void refreshAsync() - { - Thread t = new Thread(() -> GUserInterface.this.refreshServers(), "LoaderThread"); - t.start(); - } - - @Override - public void load() - { - SwingUtilities.invokeLater(() -> _progressBar.setVisible(true)); - - super.load(); - - SwingUtilities.invokeLater(() -> _progressBar.setVisible(false)); - } - - @Override - public void showError(String msg, Throwable t) - { - String title; - if (getBundle() != null) - { - title = getBundle().getString("error"); - msg += Config.EOL + getBundle().getString("reason") + ' ' + t.getLocalizedMessage(); - } - else - { - title = "Error"; - msg += Config.EOL + "Cause: " + t.getLocalizedMessage(); - } - JOptionPane.showMessageDialog(getFrame(), msg, title, JOptionPane.ERROR_MESSAGE); - } - - protected void refreshServers() - { - if (!isLoaded()) - { - load(); - } - - // load succeeded? - if (isLoaded()) - { - SwingUtilities.invokeLater(() -> - { - int size = GameServerTable.getInstance().getServerNames().size(); - if (size == 0) - { - String title = getBundle().getString("error"); - String msg = getBundle().getString("noServerNames"); - JOptionPane.showMessageDialog(getFrame(), msg, title, JOptionPane.ERROR_MESSAGE); - System.exit(1); - } - // reset - _dtm.setRowCount(0); - - for (final int id : GameServerTable.getInstance().getRegisteredGameServers().keySet()) - { - String name = GameServerTable.getInstance().getServerNameById(id); - JButton button = new JButton(getBundle().getString("btnRemove"), ImagesTable.getImage("cross.png")); - button.addActionListener(e -> - { - String sid = String.valueOf(id); - String sname = GameServerTable.getInstance().getServerNameById(id); - - int choice = JOptionPane.showConfirmDialog(getFrame(), getBundle().getString("confirmRemoveText").replace("%d", sid).replace("%s", sname), getBundle().getString("confirmRemoveTitle"), JOptionPane.YES_NO_OPTION); - if (choice == JOptionPane.YES_OPTION) - { - try - { - BaseGameServerRegister.unregisterGameServer(id); - GUserInterface.this.refreshAsync(); - } - catch (SQLException e1) - { - GUserInterface.this.showError(getBundle().getString("errorUnregister"), e1); - } - } - }); - _dtm.addRow(new Object[] - { - id, - name, - button - }); - } - }); - } - } - - @Override - public void actionPerformed(ActionEvent e) - { - String cmd = e.getActionCommand(); - - if (cmd.equals("register")) - { - RegisterDialog rd = new RegisterDialog(this); - rd.setVisible(true); - } - else if (cmd.equals("exit")) - { - System.exit(0); - } - else if (cmd.equals("about")) - { - JOptionPane.showMessageDialog(getFrame(), getBundle().getString("credits") + Config.EOL + "http://www.l2jserver.com" + Config.EOL + Config.EOL + getBundle().getString("icons") + Config.EOL + Config.EOL + getBundle().getString("langText") + Config.EOL + getBundle().getString("translation"), getBundle().getString("aboutItem"), JOptionPane.INFORMATION_MESSAGE, ImagesTable.getImage("l2jserverlogo.png")); - } - else if (cmd.equals("removeAll")) - { - int choice = JOptionPane.showConfirmDialog(getFrame(), getBundle().getString("confirmRemoveAllText"), getBundle().getString("confirmRemoveTitle"), JOptionPane.YES_NO_OPTION); - if (choice == JOptionPane.YES_OPTION) - { - try - { - BaseGameServerRegister.unregisterAllGameServers(); - refreshAsync(); - } - catch (SQLException e1) - { - GUserInterface.this.showError(getBundle().getString("errorUnregister"), e1); - } - } - } - } - - /** - * @return Returns the frame. - */ - public JFrame getFrame() - { - return _frame; - } - - protected class ButtonCellRenderer implements TableCellRenderer - { - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) - { - return (Component) value; - } - } - - /** - * Forward mouse-events from table to buttons inside.
- * Buttons animate properly. - * @author KenM - */ - private class JTableButtonMouseListener implements MouseListener - { - private final JTable _table; - - public JTableButtonMouseListener(JTable table) - { - _table = table; - } - - private void forwardEvent(MouseEvent e) - { - TableColumnModel columnModel = _table.getColumnModel(); - int column = columnModel.getColumnIndexAtX(e.getX()); - int row = e.getY() / _table.getRowHeight(); - Object value; - - if ((row >= _table.getRowCount()) || (row < 0) || (column >= _table.getColumnCount()) || (column < 0)) - { - return; - } - - value = _table.getValueAt(row, column); - - if (value instanceof JButton) - { - final JButton b = (JButton) value; - if (e.getID() == MouseEvent.MOUSE_PRESSED) - { - b.getModel().setPressed(true); - b.getModel().setArmed(true); - _table.repaint(); - } - else if (e.getID() == MouseEvent.MOUSE_RELEASED) - { - b.doClick(); - } - } - } - - @Override - public void mouseEntered(MouseEvent e) - { - forwardEvent(e); - } - - @Override - public void mouseExited(MouseEvent e) - { - forwardEvent(e); - } - - @Override - public void mousePressed(MouseEvent e) - { - forwardEvent(e); - } - - @Override - public void mouseClicked(MouseEvent e) - { - forwardEvent(e); - } - - @Override - public void mouseReleased(MouseEvent e) - { - forwardEvent(e); - } - } - - private class JTableModel extends DefaultTableModel - { - private static final long serialVersionUID = -5907903982876753479L; - - public JTableModel(Object[] columnNames) - { - super(columnNames, 0); - } - - @Override - public boolean isCellEditable(int row, int column) - { - return false; - } - - @Override - public Class getColumnClass(int column) - { - return getValueAt(0, column).getClass(); - } - } -} diff --git a/trunk/java/com/l2jserver/tools/gsregistering/GameServerRegister.java b/trunk/java/com/l2jserver/tools/gsregistering/GameServerRegister.java index 5e5ccf50ac..afac08b5e3 100644 --- a/trunk/java/com/l2jserver/tools/gsregistering/GameServerRegister.java +++ b/trunk/java/com/l2jserver/tools/gsregistering/GameServerRegister.java @@ -23,7 +23,6 @@ import java.io.InputStreamReader; import java.io.LineNumberReader; import java.sql.SQLException; import java.util.Map.Entry; -import java.util.ResourceBundle; import com.l2jserver.Config; import com.l2jserver.loginserver.GameServerTable; @@ -38,18 +37,15 @@ public class GameServerRegister extends BaseGameServerRegister BaseGameServerRegister.main(args); } - /** - * @param bundle - */ - public GameServerRegister(ResourceBundle bundle) + public GameServerRegister() { - super(bundle); + super(); load(); int size = GameServerTable.getInstance().getServerNames().size(); if (size == 0) { - System.out.println(getBundle().getString("noServerNames")); + System.out.println("No available names for GameServer, verify servername.xml file exists in the LoginServer folder."); System.exit(1); } } @@ -65,15 +61,15 @@ public class GameServerRegister extends BaseGameServerRegister hr(); System.out.println("GSRegister"); System.out.println(Config.EOL); - System.out.println("1 - " + getBundle().getString("cmdMenuRegister")); - System.out.println("2 - " + getBundle().getString("cmdMenuListNames")); - System.out.println("3 - " + getBundle().getString("cmdMenuRemoveGS")); - System.out.println("4 - " + getBundle().getString("cmdMenuRemoveAll")); - System.out.println("5 - " + getBundle().getString("cmdMenuExit")); + System.out.println("1 - Register GameServer"); + System.out.println("2 - List GameServers Names and IDs"); + System.out.println("3 - Remove GameServer"); + System.out.println("4 - Remove ALL GameServers"); + System.out.println("5 - Exit"); do { - System.out.print(getBundle().getString("yourChoice") + ' '); + System.out.print("Choice: "); choice = _in.readLine(); try { @@ -98,14 +94,14 @@ public class GameServerRegister extends BaseGameServerRegister System.exit(0); break; default: - System.out.printf(getBundle().getString("invalidChoice") + Config.EOL, choice); + System.out.printf("Invalid Choice: %s" + Config.EOL, choice); choiceOk = false; } } catch (NumberFormatException nfe) { - System.out.printf(getBundle().getString("invalidChoice") + Config.EOL, choice); + System.out.printf("Invalid Choice: %s" + Config.EOL, choice); } } while (!choiceOk); @@ -143,8 +139,8 @@ public class GameServerRegister extends BaseGameServerRegister String id; boolean inUse; - String gsInUse = getBundle().getString("gsInUse"); - String gsFree = getBundle().getString("gsFree"); + String gsInUse = "In Use"; + String gsFree = "Free"; int gsStatusMaxLen = Math.max(gsInUse.length(), gsFree.length()) + 2; for (Entry e : GameServerTable.getInstance().getServerNames().entrySet()) { @@ -182,16 +178,16 @@ public class GameServerRegister extends BaseGameServerRegister */ private void unregisterAllGS() throws IOException { - if (yesNoQuestion(getBundle().getString("confirmRemoveAllText"))) + if (yesNoQuestion("Are you sure you want to remove ALL GameServers?")) { try { BaseGameServerRegister.unregisterAllGameServers(); - System.out.println(getBundle().getString("unregisterAllOk")); + System.out.println("All GameServers were successfully removed."); } catch (SQLException e) { - showError(getBundle().getString("sqlErrorUnregisterAll"), e); + showError("An SQL error occurred while trying to remove ALL GameServers.", e); } } } @@ -203,9 +199,9 @@ public class GameServerRegister extends BaseGameServerRegister { hr(); System.out.println(question); - System.out.println("1 - " + getBundle().getString("yes")); - System.out.println("2 - " + getBundle().getString("no")); - System.out.print(getBundle().getString("yourChoice") + ' '); + System.out.println("1 - Yes"); + System.out.println("2 - No"); + System.out.print("Choice: "); String choice; choice = _in.readLine(); if (choice != null) @@ -220,7 +216,7 @@ public class GameServerRegister extends BaseGameServerRegister } else { - System.out.printf(getBundle().getString("invalidChoice") + Config.EOL, choice); + System.out.printf("Invalid Choice: %s" + Config.EOL, choice); } } } @@ -237,7 +233,7 @@ public class GameServerRegister extends BaseGameServerRegister do { - System.out.print(getBundle().getString("enterDesiredId") + ' '); + System.out.print("Enter desired ID: "); line = _in.readLine(); try { @@ -245,7 +241,7 @@ public class GameServerRegister extends BaseGameServerRegister } catch (NumberFormatException e) { - System.out.printf(getBundle().getString("invalidChoice") + Config.EOL, line); + System.out.printf("Invalid Choice: %s" + Config.EOL, line); } } while (id == Integer.MIN_VALUE); @@ -253,27 +249,27 @@ public class GameServerRegister extends BaseGameServerRegister String name = GameServerTable.getInstance().getServerNameById(id); if (name == null) { - System.out.printf(getBundle().getString("noNameForId") + Config.EOL, id); + System.out.printf("No name for ID: %d" + Config.EOL, id); } else { if (GameServerTable.getInstance().hasRegisteredGameServerOnId(id)) { - System.out.printf(getBundle().getString("confirmRemoveText") + Config.EOL, id, name); + System.out.printf("Are you sure you want to remove GameServer %d - %s?" + Config.EOL, id, name); try { BaseGameServerRegister.unregisterGameServer(id); - System.out.printf(getBundle().getString("unregisterOk") + Config.EOL, id); + System.out.printf("GameServer ID: %d was successfully removed from LoginServer." + Config.EOL, id); } catch (SQLException e) { - showError(getBundle().getString("sqlErrorUnregister"), e); + showError("An SQL error occurred while trying to remove the GameServer.", e); } } else { - System.out.printf(getBundle().getString("noServerForId") + Config.EOL, id); + System.out.printf("No GameServer is registered on ID: %d" + Config.EOL, id); } } @@ -286,7 +282,7 @@ public class GameServerRegister extends BaseGameServerRegister do { - System.out.println(getBundle().getString("enterDesiredId")); + System.out.println("Enter desired ID:"); line = _in.readLine(); try { @@ -294,7 +290,7 @@ public class GameServerRegister extends BaseGameServerRegister } catch (NumberFormatException e) { - System.out.printf(getBundle().getString("invalidChoice") + Config.EOL, line); + System.out.printf("Invalid Choice: %s" + Config.EOL, line); } } while (id == Integer.MIN_VALUE); @@ -302,13 +298,13 @@ public class GameServerRegister extends BaseGameServerRegister String name = GameServerTable.getInstance().getServerNameById(id); if (name == null) { - System.out.printf(getBundle().getString("noNameForId") + Config.EOL, id); + System.out.printf("No name for ID: %d" + Config.EOL, id); } else { if (GameServerTable.getInstance().hasRegisteredGameServerOnId(id)) { - System.out.println(getBundle().getString("idIsNotFree")); + System.out.println("This ID is not available."); } else { @@ -318,7 +314,7 @@ public class GameServerRegister extends BaseGameServerRegister } catch (IOException e) { - showError(getBundle().getString("ioErrorRegister"), e); + showError("An error saving the hexid file occurred while trying to register the GameServer.", e); } } } @@ -328,16 +324,8 @@ public class GameServerRegister extends BaseGameServerRegister public void showError(String msg, Throwable t) { String title; - if (getBundle() != null) - { - title = getBundle().getString("error"); - msg += Config.EOL + getBundle().getString("reason") + ' ' + t.getLocalizedMessage(); - } - else - { - title = "Error"; - msg += Config.EOL + "Cause: " + t.getLocalizedMessage(); - } + title = "Error"; + msg += Config.EOL + "Reason: " + t.getLocalizedMessage(); System.out.println(title + ": " + msg); } } \ No newline at end of file diff --git a/trunk/java/com/l2jserver/tools/gsregistering/RegisterDialog.java b/trunk/java/com/l2jserver/tools/gsregistering/RegisterDialog.java deleted file mode 100644 index b2becefb89..0000000000 --- a/trunk/java/com/l2jserver/tools/gsregistering/RegisterDialog.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.gsregistering; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.io.IOException; -import java.util.Map; -import java.util.ResourceBundle; - -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JDialog; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JTextPane; -import javax.swing.WindowConstants; -import javax.swing.filechooser.FileFilter; - -import com.l2jserver.loginserver.GameServerTable; - -/** - * @author KenM - */ -public class RegisterDialog extends JDialog implements ActionListener -{ - private static final long serialVersionUID = 1L; - - private final ResourceBundle _bundle; - private final JComboBox _combo; - private final GUserInterface _owner; - - public RegisterDialog(final GUserInterface owner) - { - super(owner.getFrame(), true); - _owner = owner; - setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - _bundle = owner.getBundle(); - setTitle(_bundle.getString("registerGS")); - setResizable(false); - setLayout(new GridBagLayout()); - GridBagConstraints cons = new GridBagConstraints(); - cons.weightx = 0.5; - cons.weighty = 0.5; - cons.gridx = 0; - cons.gridy = 0; - cons.fill = GridBagConstraints.BOTH; - - final JLabel label = new JLabel(_bundle.getString("serverName")); - this.add(label, cons); - - _combo = new JComboBox<>(); - _combo.setEditable(false); - for (Map.Entry entry : GameServerTable.getInstance().getServerNames().entrySet()) - { - if (!GameServerTable.getInstance().hasRegisteredGameServerOnId(entry.getKey())) - { - _combo.addItem(new ComboServer(entry.getKey(), entry.getValue())); - } - } - cons.gridx = 1; - cons.gridy = 0; - this.add(_combo, cons); - - cons.gridx = 0; - cons.gridy = 1; - cons.gridwidth = 2; - JTextPane textPane = new JTextPane(); - textPane.setText(_bundle.getString("saveHexId")); - textPane.setEditable(false); - textPane.setBackground(label.getBackground()); - this.add(textPane, cons); - cons.gridwidth = 1; - - JButton btnSave = new JButton(_bundle.getString("save")); - btnSave.setActionCommand("save"); - btnSave.addActionListener(this); - cons.gridx = 0; - cons.gridy = 2; - this.add(btnSave, cons); - - JButton btnCancel = new JButton(_bundle.getString("cancel")); - btnCancel.setActionCommand("cancel"); - btnCancel.addActionListener(this); - cons.gridx = 1; - cons.gridy = 2; - this.add(btnCancel, cons); - - final double leftSize = Math.max(label.getPreferredSize().getWidth(), btnSave.getPreferredSize().getWidth()); - final double rightSize = Math.max(_combo.getPreferredSize().getWidth(), btnCancel.getPreferredSize().getWidth()); - - final double height = _combo.getPreferredSize().getHeight() + (4 * textPane.getPreferredSize().getHeight()) + btnSave.getPreferredSize().getHeight(); - this.setSize((int) (leftSize + rightSize + 30), (int) (height + 20)); - - setLocationRelativeTo(owner.getFrame()); - } - - class ComboServer - { - private final int _id; - private final String _name; - - public ComboServer(int id, String name) - { - _id = id; - _name = name; - } - - /** - * @return Returns the id. - */ - public int getId() - { - return _id; - } - - /** - * @return Returns the name. - */ - public String getName() - { - return _name; - } - - @Override - public String toString() - { - return getName(); - } - } - - @Override - public void actionPerformed(ActionEvent e) - { - String cmd = e.getActionCommand(); - - if (cmd.equals("save")) - { - ComboServer server = (ComboServer) _combo.getSelectedItem(); - int gsId = server.getId(); - - JFileChooser fc = new JFileChooser(); - // fc.setS - fc.setDialogTitle(_bundle.getString("hexidDest")); - fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - fc.setFileFilter(new FileFilter() - { - - @Override - public boolean accept(File f) - { - return f.isDirectory(); - } - - @Override - public String getDescription() - { - return null; - } - - }); - fc.showOpenDialog(this); - - try - { - BaseGameServerRegister.registerGameServer(gsId, fc.getSelectedFile().getAbsolutePath()); - _owner.refreshAsync(); - setVisible(false); - } - catch (IOException e1) - { - _owner.showError(_bundle.getString("ioErrorRegister"), e1); - } - } - else if (cmd.equals("cancel")) - { - setVisible(false); - } - } -} diff --git a/trunk/java/com/l2jserver/tools/i18n/LanguageControl.java b/trunk/java/com/l2jserver/tools/i18n/LanguageControl.java deleted file mode 100644 index 2128af7a7b..0000000000 --- a/trunk/java/com/l2jserver/tools/i18n/LanguageControl.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.i18n; - -import java.io.BufferedInputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.Locale; -import java.util.PropertyResourceBundle; -import java.util.ResourceBundle; -import java.util.ResourceBundle.Control; - -/** - * @author KenM - */ -public class LanguageControl extends Control -{ - public static final String LANGUAGES_DIRECTORY = "../languages/"; - - public static final LanguageControl INSTANCE = new LanguageControl(); - - /** - * prevent instancing, allows sub-classing - */ - protected LanguageControl() - { - - } - - @Override - public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IOException - { - if ((baseName == null) || (locale == null) || (format == null) || (loader == null)) - { - throw new NullPointerException(); - } - ResourceBundle bundle = null; - if (format.equals("java.properties")) - { - format = "properties"; - String bundleName = toBundleName(baseName, locale); - String resourceName = LANGUAGES_DIRECTORY + toResourceName(bundleName, format); - - try (FileInputStream fis = new FileInputStream(resourceName); - BufferedInputStream bis = new BufferedInputStream(fis)) - { - bundle = new PropertyResourceBundle(bis); - } - } - return bundle; - } -} diff --git a/trunk/java/com/l2jserver/tools/images/ImagesTable.java b/trunk/java/com/l2jserver/tools/images/ImagesTable.java deleted file mode 100644 index bb6b88a930..0000000000 --- a/trunk/java/com/l2jserver/tools/images/ImagesTable.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2004-2015 L2J Server - * - * This file is part of L2J Server. - * - * L2J Server is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.l2jserver.tools.images; - -import java.util.Map; - -import javax.swing.ImageIcon; - -import javolution.util.FastMap; - -/** - * Usage of this class causes images to be loaded and kept in memory, and therefore should only be used by helper applications.
- * Some icons from famfamfam (http://www.famfamfam.com/) credit *MUST* be given. - * @author KenM - */ -public class ImagesTable -{ - private static final Map IMAGES = new FastMap<>(); - - public static final String IMAGES_DIRECTORY = "../images/"; - - public static ImageIcon getImage(String name) - { - if (!IMAGES.containsKey(name)) - { - IMAGES.put(name, new ImageIcon(IMAGES_DIRECTORY + name)); - } - return IMAGES.get(name); - } -} \ No newline at end of file