Merge pull request #265 from Fuzzlemann/master

PR for 4.0.0 (Fuzzlemann) (3)
This commit is contained in:
Rsl1122 2017-08-20 16:19:32 +03:00 committed by GitHub
commit cf016c334a
17 changed files with 295 additions and 307 deletions

View File

@ -2,19 +2,19 @@ ENABLED <> Player Analytics aktiviert.
DISABLED <> Player Analytics deaktiviert. DISABLED <> Player Analytics deaktiviert.
RELOAD_COMPLETE <> §a[Plan] Reload abgeschlossen. RELOAD_COMPLETE <> §a[Plan] Reload abgeschlossen.
CACHE_SAVE <> Daten im Cache werden gespeichert... CACHE_SAVE <> Daten im Cache werden gespeichert...
CACHE_ADD <> REPLACE0 wurde zum Cache hinzugefügt. CACHE_ADD <> ${0} wurde zum Cache hinzugefügt.
CACHE_REMOVE <> REPLACE0 wurde aus dem Cache gelöscht. CACHE_REMOVE <> ${0} wurde aus dem Cache gelöscht.
CONFIG_HEADER <> Plan Config | Mehr Informationen auf https://www.spigotmc.org/wiki/plan-configuration/ CONFIG_HEADER <> Plan Config | Mehr Informationen auf https://www.spigotmc.org/wiki/plan-configuration/
DB_INIT <> Datenbank Initialisierung... DB_INIT <> Datenbank Initialisierung...
WEBSERVER_INIT <> Initialisiere Webserver... WEBSERVER_INIT <> Initialisiere Webserver...
WEBSERVER_CLOSE <> Webserver wird heruntergefahren... WEBSERVER_CLOSE <> Webserver wird heruntergefahren...
WEBSERVER_RUNNING <> Webserver läuft auf PORT REPLACE0 WEBSERVER_RUNNING <> Webserver läuft auf PORT ${0}
DB_CONNECTION_FAIL <> REPLACE0-Datenbank Verbindung fehlgeschlagen: REPLACE1 DB_CONNECTION_FAIL <> ${0}-Datenbank Verbindung fehlgeschlagen: ${1}
DB_ESTABLISHED <> REPLACE0-Datenbank Verbindung hergestellt. DB_ESTABLISHED <> ${0}-Datenbank Verbindung hergestellt.
DB_TYPE_DOES_NOT_EXIST <> Dieser Datenbank Typ existiert nicht. DB_TYPE_DOES_NOT_EXIST <> Dieser Datenbank Typ existiert nicht.
DB_FAILURE_DISABLE <> Datenbank Initialisierung fehlgeschlagen, deaktiviere Plan. DB_FAILURE_DISABLE <> Datenbank Initialisierung fehlgeschlagen, deaktiviere Plan.
NOTIFY_EMPTY_IP <> §e[Plan] IP in server.properties ist leer & Alternative ServerIP wird nicht benutzt, fehlerhafte Links werden ausgegeben! NOTIFY_EMPTY_IP <> §e[Plan] IP in server.properties ist leer & Alternative ServerIP wird nicht benutzt, fehlerhafte Links werden ausgegeben!
VERSION_NEW_AVAILABLE <> Eine neue Version (REPLACE0) ist verfügbar auf https://www.spigotmc.org/resources/plan-player-analytics.32536/ VERSION_NEW_AVAILABLE <> Eine neue Version (${0}) ist verfügbar auf https://www.spigotmc.org/resources/plan-player-analytics.32536/
VERSION_LATEST <> Du benutzt die neueste Version. VERSION_LATEST <> Du benutzt die neueste Version.
VERSION_CHECK_ERROR <> Versionen konnten nicht abgeglichen werden. VERSION_CHECK_ERROR <> Versionen konnten nicht abgeglichen werden.
VERSION_FAIL <> Die neueste Versionsnummer konnte nicht abgerufen werden. VERSION_FAIL <> Die neueste Versionsnummer konnte nicht abgerufen werden.
@ -25,7 +25,7 @@ GRABBING_DATA_MESSAGE <> Ȥ2 Hole Daten ins Cache...
DEM_UNKNOWN <> Nicht bekannt DEM_UNKNOWN <> Nicht bekannt
NOT_IN_TOWN <> Nicht in einem Dorf NOT_IN_TOWN <> Nicht in einem Dorf
NOT_IN_FAC <> Nicht in einer Faction NOT_IN_FAC <> Nicht in einer Faction
COMMAND_TIMEOUT <> §c[Plan] REPLACE0 Befehl ausgetimed! Der Error befindest sich vermutlich in der Serverkonsole. COMMAND_TIMEOUT <> §c[Plan] ${0} Befehl ausgetimed! Der Error befindest sich vermutlich in der Serverkonsole.
ANALYSIS_START <> Analyse | Beginne die Analyse der Spieler Daten... ANALYSIS_START <> Analyse | Beginne die Analyse der Spieler Daten...
ANALYSIS_BOOT_NOTIFY <> Analyse | Boot Analyse in 30 Sekunden... ANALYSIS_BOOT_NOTIFY <> Analyse | Boot Analyse in 30 Sekunden...
ANALYSIS_BOOT <> Analyse | Starte Boot Analyse... ANALYSIS_BOOT <> Analyse | Starte Boot Analyse...
@ -35,7 +35,7 @@ ANALYSIS_FAIL_NO_PLAYERS <> Analyse | Analyse fehlgeschlagen, keine bekannten Sp
ANALYSIS_FAIL_NO_DATA <> Analyse | Analyse fehlgeschlagen, keine Daten in der Datenbank. ANALYSIS_FAIL_NO_DATA <> Analyse | Analyse fehlgeschlagen, keine Daten in der Datenbank.
ANALYSIS_BEGIN_ANALYSIS <> Analyse | Daten geholt, beginne mit der Analyse der Daten... ANALYSIS_BEGIN_ANALYSIS <> Analyse | Daten geholt, beginne mit der Analyse der Daten...
ANALYSIS_COMPLETE <> Analyse | Analyse vollständig. ANALYSIS_COMPLETE <> Analyse | Analyse vollständig.
DATA_CORRUPTION_WARN <> Einige Daten könnten beschädigt sein: REPLACE0 DATA_CORRUPTION_WARN <> Einige Daten könnten beschädigt sein: ${0}
ERROR_NO_DATA_VIEW <> §eWebserver deaktiviert aber Alternative IP/PlanLite wird nicht benutzt, Daten können nicht angezeigt werden! ERROR_NO_DATA_VIEW <> §eWebserver deaktiviert aber Alternative IP/PlanLite wird nicht benutzt, Daten können nicht angezeigt werden!
ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] Dieser Befehl kann nur benutzt werden wenn der Webserver auf diesem Server läuft... ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] Dieser Befehl kann nur benutzt werden wenn der Webserver auf diesem Server läuft...
ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] Dieser Befehl kann nur benutzt werden wenn Webserver/Planlite auf dem Server aktiviert ist. ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] Dieser Befehl kann nur benutzt werden wenn Webserver/Planlite auf dem Server aktiviert ist.
@ -52,22 +52,22 @@ MANAGE_MOVE_SUCCESS <> §a[Plan] Alle Daten wurden erfolgreich verschoben!
MANAGE_COPY_SUCCESS <> §a[Plan] Alle Daten wurden erfolgreich kopiert! MANAGE_COPY_SUCCESS <> §a[Plan] Alle Daten wurden erfolgreich kopiert!
MANAGE_PROCESS_FAIL <> §c[Plan] Irgendwas lief schief während die Daten verarbeitet wurden! MANAGE_PROCESS_FAIL <> §c[Plan] Irgendwas lief schief während die Daten verarbeitet wurden!
MANAGE_CLEAR_SUCCESS <> §a[Plan] Alle Daten wurden erfolgreich gesäubert! MANAGE_CLEAR_SUCCESS <> §a[Plan] Alle Daten wurden erfolgreich gesäubert!
MANAGE_REMOVE_SUCCESS <> §f» §2Daten von §fREPLACE0§2 wurden aus dieser Datenbank entfernt §fREPLACE1§2. MANAGE_REMOVE_SUCCESS <> §f» §2Daten von §f${0}§2 wurden aus dieser Datenbank entfernt §f${1}§2.
MANAGE_IMPORTING <> §f» §2 Importiere Daten... MANAGE_IMPORTING <> §f» §2 Importiere Daten...
MANAGE_SUCCESS <> §f» §2 Erfolgreich! MANAGE_SUCCESS <> §f» §2 Erfolgreich!
CMD_ANALYZE_HEADER <> §f»§2 Player Analytics - Analyse Ergebnisse CMD_ANALYZE_HEADER <> §f»§2 Player Analytics - Analyse Ergebnisse
CMD_INSPECT_HEADER <> §f»§2 Player Analytics - Überprüfe die Ergebnisse: CMD_INSPECT_HEADER <> §f»§2 Player Analytics - Überprüfe die Ergebnisse:
CMD_INFO_HEADER <> §f»§2 Player Analytics - Info CMD_INFO_HEADER <> §f»§2 Player Analytics - Info
CMD_INFO_VERSION <> §7 •§2§2 Version: §7REPLACE0 CMD_INFO_VERSION <> §7 •§2§2 Version: §7${0}
CMD_SEARCH_HEADER <> §f»§2 Player Analytics - Suchergebnisse für: CMD_SEARCH_HEADER <> §f»§2 Player Analytics - Suchergebnisse für:
CMD_HELP_HEADER <> §f»§2 Player Analytics - Hilfe CMD_HELP_HEADER <> §f»§2 Player Analytics - Hilfe
CMD_MANAGE_HELP_HEADER <> §f»§2 Player Analytics - Management Hilfe CMD_MANAGE_HELP_HEADER <> §f»§2 Player Analytics - Management Hilfe
CMD_MANAGE_STATUS_HEADER <> §f»§2 Player Analytics - Datenbank Status CMD_MANAGE_STATUS_HEADER <> §f»§2 Player Analytics - Datenbank Status
CMD_MANAGE_STATUS_ACTIVE_DB <> §7 •§2§2 Aktive Datenbank: §7REPLACE0 CMD_MANAGE_STATUS_ACTIVE_DB <> §7 •§2§2 Aktive Datenbank: §7${0}
CMD_CLICK_ME <> Klick Mich CMD_CLICK_ME <> Klick Mich
CMD_LINK <> §7 •§2 Link: §f CMD_LINK <> §7 •§2 Link: §f
CMD_RESULTS_AVAILABLE <> §7 Die Ergebnisse werden für §fREPLACE0§7 Minuten erreichbar sein. CMD_RESULTS_AVAILABLE <> §7 Die Ergebnisse werden für §f${0}§7 Minuten erreichbar sein.
CMD_NO_RESULTS <> §7 •§2 Keine Ergebnisse für §7REPLACE0§2. CMD_NO_RESULTS <> §7 •§2 Keine Ergebnisse für §7${0}§2.
CMD_MATCH <> §7 Übereinstimmender Spieler: §f CMD_MATCH <> §7 Übereinstimmender Spieler: §f
CMD_USG_ANALYZE <> Zeige die Server Analyse CMD_USG_ANALYZE <> Zeige die Server Analyse
CMD_USG_HELP <> Zeige die Befehlsliste. CMD_USG_HELP <> Zeige die Befehlsliste.
@ -97,13 +97,13 @@ USE_PLAN <> Nutze /plan für Hilfe
USE_MOVE <> Nutze /plan manage move <vonDB> <nachDB> [-a] USE_MOVE <> Nutze /plan manage move <vonDB> <nachDB> [-a]
USE_COMBINE <> Nutze /plan manage combine <vonDB> <nachDB> [-a] USE_COMBINE <> Nutze /plan manage combine <vonDB> <nachDB> [-a]
USE_IMPORT <> Nutze /plan manage import <Plugin> [-a] USE_IMPORT <> Nutze /plan manage import <Plugin> [-a]
WARN_REWRITE <> Daten in REPLACE0-Datenbank werden neu geschrieben! WARN_REWRITE <> Daten in ${0}-Datenbank werden neu geschrieben!
WARN_OVERWRITE <> Daten in REPLACE0-Datenbank werden überschrieben! WARN_OVERWRITE <> Daten in ${0}-Datenbank werden überschrieben!
WARN_OVERWRITE_SOME <> Einige Daten in REPLACE0-Datenbank werden überschrieben! WARN_OVERWRITE_SOME <> Einige Daten in ${0}-Datenbank werden überschrieben!
WARN_REMOVE <> Daten in REPLACE0-Datenbank werden entfernt! WARN_REMOVE <> Daten in ${0}-Datenbank werden entfernt!
COMMAND_SENDER_NOT_PLAYER <> §c[Plan] Dieser Befehl kann nur als Spieler benutzt werden. COMMAND_SENDER_NOT_PLAYER <> §c[Plan] Dieser Befehl kann nur als Spieler benutzt werden.
COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Dieser Befehl erfordert Argumente. REPLACE0 COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Dieser Befehl erfordert Argumente. ${0}
COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Füge -a hinzu um den Befehl zu bestätigen! REPLACE0 COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Füge -a hinzu um den Befehl zu bestätigen! ${0}
COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Der Befehl benötigt ein Argument. COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Der Befehl benötigt ein Argument.
COMMAND_NO_PERMISSION <> §c[Plan] Du hast nicht die benötigte Berechtigung. COMMAND_NO_PERMISSION <> §c[Plan] Du hast nicht die benötigte Berechtigung.
<<<<<<HTML>>>>>> <<<<<<HTML>>>>>>
@ -119,13 +119,13 @@ HIDDEN <> Versteckt (config)
FACTION_NOT_FOUND <> Faction nicht gefunden FACTION_NOT_FOUND <> Faction nicht gefunden
FACTION_NO_LEADER <> Kein Anführer FACTION_NO_LEADER <> Kein Anführer
FACTION_NO_FACTIONS <> Keine Factions FACTION_NO_FACTIONS <> Keine Factions
WARPS <> <br/>Warps: REPLACE0 WARPS <> <br/>Warps: ${0}
ACHIEVEMENTS <> <br/>Errungenschaften: REPLACE0/REPLACE1 ACHIEVEMENTS <> <br/>Errungenschaften: ${0}/${1}
JAILED <> | Eingesperrt JAILED <> | Eingesperrt
MUTED <> | Stummgeschaltet MUTED <> | Stummgeschaltet
VOTES <> <br/>Hat REPLACE0 mal gevoted VOTES <> <br/>Hat ${0} mal gevoted
FACTION <> <br/>Faction: REPLACE0 | Power: REPLACE1/REPLACE2 FACTION <> <br/>Faction: ${0} | Power: ${1}/${2}
TOWN <> <br/>Dorf: REPLACE0 TOWN <> <br/>Dorf: ${0}
TOWN_NO_TOWNS <> Keine Dörfer TOWN_NO_TOWNS <> Keine Dörfer
GRAPH_BANNED <> Gesperrt GRAPH_BANNED <> Gesperrt
GRAPH_UNKNOWN <> Unbekannt GRAPH_UNKNOWN <> Unbekannt

View File

@ -1,31 +1,31 @@
ENABLED <> Player Analytics Enabled. ENABLED <> Player Analytics Enabled.
DISABLED <> Player Analytics Disabled. DISABLED <> Player Analytics Disabled.
RELOAD_COMPLETE <> <EFBFBD>a[Plan] Reload complete. RELOAD_COMPLETE <> §a[Plan] Reload complete.
CACHE_SAVE <> Saving cached data.. CACHE_SAVE <> Saving cached data..
CACHE_ADD <> Added REPLACE0 to Cache. CACHE_ADD <> Added ${0} to Cache.
CACHE_REMOVE <> Cleared REPLACE0 from Cache. CACHE_REMOVE <> Cleared ${0} from Cache.
CONFIG_HEADER <> Plan Config | More info at https://www.spigotmc.org/wiki/plan-configuration/ CONFIG_HEADER <> Plan Config | More info at https://www.spigotmc.org/wiki/plan-configuration/
DB_INIT <> Database init.. DB_INIT <> Database init..
WEBSERVER_INIT <> Initializing Webserver.. WEBSERVER_INIT <> Initializing Webserver..
WEBSERVER_CLOSE <> Shutting down Webserver.. WEBSERVER_CLOSE <> Shutting down Webserver..
WEBSERVER_RUNNING <> Webserver running on PORT REPLACE0 WEBSERVER_RUNNING <> Webserver running on PORT ${0}
DB_CONNECTION_FAIL <> REPLACE0-Database Connection failed: REPLACE1 DB_CONNECTION_FAIL <> ${0}-Database Connection failed: ${1}
DB_ESTABLISHED <> REPLACE0-database connection established. DB_ESTABLISHED <> ${0}-database connection established.
DB_TYPE_DOES_NOT_EXIST <> That database type doesn't exist. DB_TYPE_DOES_NOT_EXIST <> That database type doesn't exist.
DB_FAILURE_DISABLE <> Database initialization has failed, disabling Plan. DB_FAILURE_DISABLE <> Database initialization has failed, disabling Plan.
NOTIFY_EMPTY_IP <> <EFBFBD>e[Plan] IP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given! NOTIFY_EMPTY_IP <> §e[Plan] IP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given!
VERSION_NEW_AVAILABLE <> New Version (REPLACE0) is available at https://www.spigotmc.org/resources/plan-player-analytics.32536/ VERSION_NEW_AVAILABLE <> New Version (${0}) is available at https://www.spigotmc.org/resources/plan-player-analytics.32536/
VERSION_LATEST <> You're running the latest version VERSION_LATEST <> You're running the latest version
VERSION_CHECK_ERROR <> Failed to compare versions. VERSION_CHECK_ERROR <> Failed to compare versions.
VERSION_FAIL <> Failed to get newest version number. VERSION_FAIL <> Failed to get newest version number.
USERNAME_NOT_VALID <> <EFBFBD>c[Plan] This Player doesn't exist. USERNAME_NOT_VALID <> §c[Plan] This Player doesn't exist.
USERNAME_NOT_SEEN <> <EFBFBD>c[Plan] This Player has not played on this server. USERNAME_NOT_SEEN <> §c[Plan] This Player has not played on this server.
USERNAME_NOT_KNOWN <> <EFBFBD>c[Plan] Player not found from the database. USERNAME_NOT_KNOWN <> §c[Plan] Player not found from the database.
GRABBING_DATA_MESSAGE <> <EFBFBD><EFBFBD>2 Fetching data to cache.. GRABBING_DATA_MESSAGE <> §2 Fetching data to cache..
DEM_UNKNOWN <> Not Known DEM_UNKNOWN <> Not Known
NOT_IN_TOWN <> Not in a town NOT_IN_TOWN <> Not in a town
NOT_IN_FAC <> Not in a faction NOT_IN_FAC <> Not in a faction
COMMAND_TIMEOUT <> <EFBFBD>c[Plan] REPLACE0 Command timed out! Error most likely on console. COMMAND_TIMEOUT <> §c[Plan] ${0} Command timed out! Error most likely on console.
ANALYSIS_START <> Analysis | Beginning analysis of user data.. ANALYSIS_START <> Analysis | Beginning analysis of user data..
ANALYSIS_BOOT_NOTIFY <> Analysis | Boot analysis in 30 seconds.. ANALYSIS_BOOT_NOTIFY <> Analysis | Boot analysis in 30 seconds..
ANALYSIS_BOOT <> Analysis | Starting Boot Analysis.. ANALYSIS_BOOT <> Analysis | Starting Boot Analysis..
@ -35,40 +35,40 @@ ANALYSIS_FAIL_NO_PLAYERS <> Analysis | Analysis failed, no known players.
ANALYSIS_FAIL_NO_DATA <> Analysis | Analysis failed, no data in the database. ANALYSIS_FAIL_NO_DATA <> Analysis | Analysis failed, no data in the database.
ANALYSIS_BEGIN_ANALYSIS <> Analysis | Data Fetched, beginning Analysis of data.. ANALYSIS_BEGIN_ANALYSIS <> Analysis | Data Fetched, beginning Analysis of data..
ANALYSIS_COMPLETE <> Analysis | Analysis Complete. ANALYSIS_COMPLETE <> Analysis | Analysis Complete.
DATA_CORRUPTION_WARN <> Some data might be corrupted: REPLACE0 DATA_CORRUPTION_WARN <> Some data might be corrupted: ${0}
ERROR_NO_DATA_VIEW <> <EFBFBD>eWebserver disabled but Alternative IP/PlanLite not used, no way to view data! ERROR_NO_DATA_VIEW <> §eWebserver disabled but Alternative IP/PlanLite not used, no way to view data!
ERROR_WEBSERVER_OFF_ANALYSIS <> <EFBFBD>e[Plan] This command can be only used if the webserver is running on this server. ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] This command can be only used if the webserver is running on this server.
ERROR_WEBSERVER_OFF_INSPECT <> <EFBFBD>e[Plan] This command can be only used if webserver/planlite is enabled on this server. ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] This command can be only used if webserver/planlite is enabled on this server.
MANAGE_ERROR_INCORRECT_PLUGIN <> <EFBFBD>c[Plan] Plugin not supported: MANAGE_ERROR_INCORRECT_PLUGIN <> §c[Plan] Plugin not supported:
MANAGE_PROCESS_START <> <EFBFBD><EFBFBD>7 Processing data.. MANAGE_PROCESS_START <> §§7 Processing data..
MANAGE_ERROR_PLUGIN_NOT_ENABLED <> <EFBFBD>c[Plan] Plugin is not enabled: MANAGE_ERROR_PLUGIN_NOT_ENABLED <> §c[Plan] Plugin is not enabled:
MANAGE_ERROR_INCORRECT_DB <> <EFBFBD>c[Plan] Incorrect database! (sqlite/mysql accepted): MANAGE_ERROR_INCORRECT_DB <> §c[Plan] Incorrect database! (sqlite/mysql accepted):
MANAGE_ERROR_SAME_DB <> <EFBFBD>c[Plan] Can't move to the same database! MANAGE_ERROR_SAME_DB <> §c[Plan] Can't move to the same database!
MANAGE_DATABASE_FAILURE <> <EFBFBD>c[Plan] One of the databases was not initialized properly. MANAGE_DATABASE_FAILURE <> §c[Plan] One of the databases was not initialized properly.
MANAGE_DB_CONFIG_REMINDER <> <EFBFBD>e[Plan] Remember to swap to the new database and reload plugin MANAGE_DB_CONFIG_REMINDER <> §e[Plan] Remember to swap to the new database and reload plugin
MANAGE_ERROR_NO_PLAYERS <> <EFBFBD>c[Plan] Database has no player data! MANAGE_ERROR_NO_PLAYERS <> §c[Plan] Database has no player data!
MANAGE_ERROR_BACKUP_FILE_NOT_FOUND <> <EFBFBD>c[Plan] Backup file doesn't exist! MANAGE_ERROR_BACKUP_FILE_NOT_FOUND <> §c[Plan] Backup file doesn't exist!
MANAGE_MOVE_SUCCESS <> <EFBFBD>a[Plan] All data moved successfully! MANAGE_MOVE_SUCCESS <> §a[Plan] All data moved successfully!
MANAGE_COPY_SUCCESS <> <EFBFBD>a[Plan] All data copied successfully! MANAGE_COPY_SUCCESS <> §a[Plan] All data copied successfully!
MANAGE_PROCESS_FAIL <> <EFBFBD>c[Plan] Something went wrong while processing the data! MANAGE_PROCESS_FAIL <> §c[Plan] Something went wrong while processing the data!
MANAGE_CLEAR_SUCCESS <> <EFBFBD>a[Plan] All data cleared successfully! MANAGE_CLEAR_SUCCESS <> §a[Plan] All data cleared successfully!
MANAGE_REMOVE_SUCCESS <> <EFBFBD>f<EFBFBD> <20>2Data of <20>fREPLACE0<45>2 was removed from Database <20>fREPLACE1<45>2. MANAGE_REMOVE_SUCCESS <> §f§ §2Data of §f${0}§2 was removed from Database §f${1}§2.
MANAGE_IMPORTING <> <EFBFBD>f<EFBFBD> <20>2 Importing Data.. MANAGE_IMPORTING <> §f§ §2 Importing Data..
MANAGE_SUCCESS <> <EFBFBD>f<EFBFBD> <20>2 Success! MANAGE_SUCCESS <> §f§ §2 Success!
CMD_ANALYZE_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Analysis results CMD_ANALYZE_HEADER <> §f§§2 Player Analytics - Analysis results
CMD_INSPECT_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Inspect results: CMD_INSPECT_HEADER <> §f§§2 Player Analytics - Inspect results:
CMD_INFO_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Info CMD_INFO_HEADER <> §f§§2 Player Analytics - Info
CMD_INFO_VERSION <> <EFBFBD>7 <20><>2<EFBFBD>2 Version: <20>7REPLACE0 CMD_INFO_VERSION <> §7 §§2§2 Version: §7${0}
CMD_SEARCH_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Search results for: CMD_SEARCH_HEADER <> §f§§2 Player Analytics - Search results for:
CMD_HELP_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Help CMD_HELP_HEADER <> §f§§2 Player Analytics - Help
CMD_MANAGE_HELP_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Managment Help CMD_MANAGE_HELP_HEADER <> §f§§2 Player Analytics - Managment Help
CMD_MANAGE_STATUS_HEADER <> <EFBFBD>f<EFBFBD><EFBFBD>2 Player Analytics - Database status CMD_MANAGE_STATUS_HEADER <> §f§§2 Player Analytics - Database status
CMD_MANAGE_STATUS_ACTIVE_DB <> <EFBFBD>7 <20><>2<EFBFBD>2 Active Database: <20>7REPLACE0 CMD_MANAGE_STATUS_ACTIVE_DB <> §7 §§2§2 Active Database: §7${0}
CMD_CLICK_ME <> Click Me CMD_CLICK_ME <> Click Me
CMD_LINK <> <EFBFBD>7 <20><>2 Link: <20>f CMD_LINK <> §7 §§2 Link: §f
CMD_RESULTS_AVAILABLE <> <EFBFBD>7 Results will be available for <20>fREPLACE0<45>7 minutes. CMD_RESULTS_AVAILABLE <> §7 Results will be available for §f${0}§7 minutes.
CMD_NO_RESULTS <> <EFBFBD>7 <20><>2 No results for <20>7REPLACE0<45>2. CMD_NO_RESULTS <> §7 §§2 No results for §7${0}§2.
CMD_MATCH <> <EFBFBD>7 Matching player: <20>f CMD_MATCH <> §7 Matching player: §f
CMD_USG_ANALYZE <> View the Server Analysis CMD_USG_ANALYZE <> View the Server Analysis
CMD_USG_HELP <> Show command list. CMD_USG_HELP <> Show command list.
CMD_USG_INFO <> View Version of Plan CMD_USG_INFO <> View Version of Plan
@ -97,15 +97,15 @@ USE_PLAN <> Use /plan for help
USE_MOVE <> Use /plan manage move <fromDB> <toDB> [-a] USE_MOVE <> Use /plan manage move <fromDB> <toDB> [-a]
USE_COMBINE <> Use /plan manage combine <fromDB> <toDB> [-a] USE_COMBINE <> Use /plan manage combine <fromDB> <toDB> [-a]
USE_IMPORT <> Use /plan manage import <plugin> [-a] USE_IMPORT <> Use /plan manage import <plugin> [-a]
WARN_REWRITE <> Data in REPLACE0-database will be rewritten! WARN_REWRITE <> Data in ${0}-database will be rewritten!
WARN_OVERWRITE <> Data in REPLACE0-database will be overwritten! WARN_OVERWRITE <> Data in ${0}-database will be overwritten!
WARN_OVERWRITE_SOME <> Some data in REPLACE0-database will be overwritten! WARN_OVERWRITE_SOME <> Some data in ${0}-database will be overwritten!
WARN_REMOVE <> Data in REPLACE0-database will be removed! WARN_REMOVE <> Data in ${0}-database will be removed!
COMMAND_SENDER_NOT_PLAYER <> <EFBFBD>c[Plan] This command can be only used as a player. COMMAND_SENDER_NOT_PLAYER <> §c[Plan] This command can be only used as a player.
COMMAND_REQUIRES_ARGUMENTS <> <EFBFBD>c[Plan] Command requires arguments. REPLACE0 COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Command requires arguments. ${0}
COMMAND_ADD_CONFIRMATION_ARGUMENT <> <EFBFBD>c[Plan] Add -a to confirm execution! REPLACE0 COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Add -a to confirm execution! ${0}
COMMAND_REQUIRES_ARGUMENTS_ONE <> <EFBFBD>c[Plan] Command requires one argument. COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Command requires one argument.
COMMAND_NO_PERMISSION <> <EFBFBD>c[Plan] You do not have the required permission. COMMAND_NO_PERMISSION <> §c[Plan] You do not have the required permission.
<<<<<<HTML>>>>>> <<<<<<HTML>>>>>>
WARN_INACCURATE <> <div class="warn">Data might be inaccurate, player has just registered.</div> WARN_INACCURATE <> <div class="warn">Data might be inaccurate, player has just registered.</div>
BANNED <> | <span class="darkred">Banned</span> BANNED <> | <span class="darkred">Banned</span>
@ -119,13 +119,13 @@ HIDDEN <> Hidden (config)
FACTION_NOT_FOUND <> Faction not found FACTION_NOT_FOUND <> Faction not found
FACTION_NO_LEADER <> No leader FACTION_NO_LEADER <> No leader
FACTION_NO_FACTIONS <> No Factions FACTION_NO_FACTIONS <> No Factions
WARPS <> <br/>Warps: REPLACE0 WARPS <> <br/>Warps: ${0}
ACHIEVEMENTS <> <br/>Achievements: REPLACE0/REPLACE1 ACHIEVEMENTS <> <br/>Achievements: ${0}/${1}
JAILED <> | Jailed JAILED <> | Jailed
MUTED <> | Muted MUTED <> | Muted
VOTES <> <br/>Has voted REPLACE0times VOTES <> <br/>Has voted ${0}times
FACTION <> <br/>Faction: REPLACE0 | Power: REPLACE1/REPLACE2 FACTION <> <br/>Faction: ${0} | Power: ${1}/${2}
TOWN <> <br/>Town: REPLACE0 TOWN <> <br/>Town: ${0}
TOWN_NO_TOWNS <> No Towns TOWN_NO_TOWNS <> No Towns
GRAPH_BANNED <> Banned GRAPH_BANNED <> Banned
GRAPH_UNKNOWN <> Unknown GRAPH_UNKNOWN <> Unknown

View File

@ -2,19 +2,19 @@ ENABLED <> Player Analytics Käynnistetty.
DISABLED <> Player Analytics Sammutettu. DISABLED <> Player Analytics Sammutettu.
RELOAD_COMPLETE <> §a[Plan] Reload suoritettu. RELOAD_COMPLETE <> §a[Plan] Reload suoritettu.
CACHE_SAVE <> Tallennetaan välimuistin tietoja.. CACHE_SAVE <> Tallennetaan välimuistin tietoja..
CACHE_ADD <> REPLACE0 lisätty välimuistiin. CACHE_ADD <> ${0} lisätty välimuistiin.
CACHE_REMOVE <> REPLACE0 poistettu välimuistista. CACHE_REMOVE <> ${0} poistettu välimuistista.
CONFIG_HEADER <> Plan Config | More info at https://www.spigotmc.org/wiki/plan-configuration/ CONFIG_HEADER <> Plan Config | More info at https://www.spigotmc.org/wiki/plan-configuration/
DB_INIT <> Tietokannan käynnistys.. DB_INIT <> Tietokannan käynnistys..
WEBSERVER_INIT <> WebServerin käynnistys.. WEBSERVER_INIT <> WebServerin käynnistys..
WEBSERVER_CLOSE <> Suljetaan WebServer.. WEBSERVER_CLOSE <> Suljetaan WebServer..
WEBSERVER_RUNNING <> Webserver puörii PORTILLA REPLACE0 WEBSERVER_RUNNING <> Webserver puörii PORTILLA ${0}
DB_CONNECTION_FAIL <> REPLACE0-Tietokantayhteys ei onnistunut: REPLACE1 DB_CONNECTION_FAIL <> ${0}-Tietokantayhteys ei onnistunut: ${1}
DB_ESTABLISHED <> REPLACE0-yhteys luotu. DB_ESTABLISHED <> ${0}-yhteys luotu.
DB_TYPE_DOES_NOT_EXIST <> Tietokantatyyppiä ei tueta. DB_TYPE_DOES_NOT_EXIST <> Tietokantatyyppiä ei tueta.
DB_FAILURE_DISABLE <> Tietokannan käynnistys epäonnistui, suljetaan Plan. DB_FAILURE_DISABLE <> Tietokannan käynnistys epäonnistui, suljetaan Plan.
NOTIFY_EMPTY_IP <> §e[Plan] IP server.properties-tiedostossa on tyhjä & AlternativeServerIP-asetusta ei käytetä, plugin antaa virheellisiä linkkejä! NOTIFY_EMPTY_IP <> §e[Plan] IP server.properties-tiedostossa on tyhjä & AlternativeServerIP-asetusta ei käytetä, plugin antaa virheellisiä linkkejä!
VERSION_NEW_AVAILABLE <> Uusi versio (REPLACE0) on saatavilla: https://www.spigotmc.org/resources/plan-player-analytics.32536/ VERSION_NEW_AVAILABLE <> Uusi versio (${0}) on saatavilla: https://www.spigotmc.org/resources/plan-player-analytics.32536/
VERSION_LATEST <> Käytät viimeisintä versiota VERSION_LATEST <> Käytät viimeisintä versiota
VERSION_CHECK_ERROR <> Virhe vertaillessa versioita. VERSION_CHECK_ERROR <> Virhe vertaillessa versioita.
VERSION_FAIL <> Virhe haettaessa versionumeroa. VERSION_FAIL <> Virhe haettaessa versionumeroa.
@ -25,7 +25,7 @@ GRABBING_DATA_MESSAGE <> »§2 Haetaan tietoja välimuistiin..
DEM_UNKNOWN <> Ei tiedossa DEM_UNKNOWN <> Ei tiedossa
NOT_IN_TOWN <> Ei kylässä NOT_IN_TOWN <> Ei kylässä
NOT_IN_FAC <> Ei killassa NOT_IN_FAC <> Ei killassa
COMMAND_TIMEOUT <> §c[Plan] REPLACE0 Komennon aikakatkaisu. Virhe tod.näk. konsolissa COMMAND_TIMEOUT <> §c[Plan] ${0} Komennon aikakatkaisu. Virhe tod.näk. konsolissa
ANALYSIS_START <> Analysis | Aloitetaan analyysi.. ANALYSIS_START <> Analysis | Aloitetaan analyysi..
ANALYSIS_BOOT_NOTIFY <> Analysis | Käynnistyksen yhteinen analyysi 30 sekunnin kuluttua.. ANALYSIS_BOOT_NOTIFY <> Analysis | Käynnistyksen yhteinen analyysi 30 sekunnin kuluttua..
ANALYSIS_BOOT <> Analysis | Aloitetaan käynnistyksen yhteinen analyysi.. ANALYSIS_BOOT <> Analysis | Aloitetaan käynnistyksen yhteinen analyysi..
@ -35,7 +35,7 @@ ANALYSIS_FAIL_NO_PLAYERS <> Analysis | Analyysi epäonnistui, ei pelaajia.
ANALYSIS_FAIL_NO_DATA <> Analysis | Analyysi epäonnistui, ei tietoa tietokannassa. ANALYSIS_FAIL_NO_DATA <> Analysis | Analyysi epäonnistui, ei tietoa tietokannassa.
ANALYSIS_BEGIN_ANALYSIS <> Analysis | Tieto haettu, aloitetaan tiedon työstäminen.. ANALYSIS_BEGIN_ANALYSIS <> Analysis | Tieto haettu, aloitetaan tiedon työstäminen..
ANALYSIS_COMPLETE <> Analysis | Analyysi valmis. ANALYSIS_COMPLETE <> Analysis | Analyysi valmis.
DATA_CORRUPTION_WARN <> Jonkun data voi olla korruptoitunut: REPLACE0 DATA_CORRUPTION_WARN <> Jonkun data voi olla korruptoitunut: ${0}
ERROR_NO_DATA_VIEW <> §eWebserver on poissa käytössä eikä Alternative IP ole käytössä, no way to view data! ERROR_NO_DATA_VIEW <> §eWebserver on poissa käytössä eikä Alternative IP ole käytössä, no way to view data!
ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] Tätä komentoa voi käyttää vain jos Webserver pyörii serverillä. ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] Tätä komentoa voi käyttää vain jos Webserver pyörii serverillä.
ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] Tätä komentoa voi käyttää vain jos Webserver pyörii serverillä. ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] Tätä komentoa voi käyttää vain jos Webserver pyörii serverillä.
@ -52,22 +52,22 @@ MANAGE_MOVE_SUCCESS <> §a[Plan] Kaikki tieto siirretty onnistuneesti!
MANAGE_COPY_SUCCESS <> §a[Plan] Kaikki tieto kopioitu onnistuneesti! MANAGE_COPY_SUCCESS <> §a[Plan] Kaikki tieto kopioitu onnistuneesti!
MANAGE_PROCESS_FAIL <> §c[Plan] Jokin meni pieleen työstäessä tietoa! MANAGE_PROCESS_FAIL <> §c[Plan] Jokin meni pieleen työstäessä tietoa!
MANAGE_CLEAR_SUCCESS <> §a[Plan] Kaikki tieto poistettu onnistuneesti! MANAGE_CLEAR_SUCCESS <> §a[Plan] Kaikki tieto poistettu onnistuneesti!
MANAGE_REMOVE_SUCCESS <> §f» §2§fREPLACE0n§2 tiedot poistettiin §fREPLACE1§2-tietokannasta. MANAGE_REMOVE_SUCCESS <> §f» §2§f${0}n§2 tiedot poistettiin §f${1}§2-tietokannasta.
MANAGE_IMPORTING <> §f» §2 Tuodaan tietoa.. MANAGE_IMPORTING <> §f» §2 Tuodaan tietoa..
MANAGE_SUCCESS <> §f» §2 Onnistui! MANAGE_SUCCESS <> §f» §2 Onnistui!
CMD_ANALYZE_HEADER <> §f»§2 Player Analytics - Analyysin tulokset CMD_ANALYZE_HEADER <> §f»§2 Player Analytics - Analyysin tulokset
CMD_INSPECT_HEADER <> §f»§2 Player Analytics - Inspect tulokset: CMD_INSPECT_HEADER <> §f»§2 Player Analytics - Inspect tulokset:
CMD_INFO_HEADER <> §f»§2 Player Analytics - Info CMD_INFO_HEADER <> §f»§2 Player Analytics - Info
CMD_INFO_VERSION <> §7 •§2§2 Versio: §7REPLACE0 CMD_INFO_VERSION <> §7 •§2§2 Versio: §7${0}
CMD_SEARCH_HEADER <> §f»§2 Player Analytics - Haun tulokset: CMD_SEARCH_HEADER <> §f»§2 Player Analytics - Haun tulokset:
CMD_HELP_HEADER <> §f»§2 Player Analytics - Apua CMD_HELP_HEADER <> §f»§2 Player Analytics - Apua
CMD_MANAGE_HELP_HEADER <> §f»§2 Player Analytics - Managment-komennon apu CMD_MANAGE_HELP_HEADER <> §f»§2 Player Analytics - Managment-komennon apu
CMD_MANAGE_STATUS_HEADER <> §f»§2 Player Analytics - Tietokannan tila CMD_MANAGE_STATUS_HEADER <> §f»§2 Player Analytics - Tietokannan tila
CMD_MANAGE_STATUS_ACTIVE_DB <> §7 •§2§2 Aktiivinen tietokanta: §7REPLACE0 CMD_MANAGE_STATUS_ACTIVE_DB <> §7 •§2§2 Aktiivinen tietokanta: §7${0}
CMD_CLICK_ME <> Klikkaa minua! CMD_CLICK_ME <> Klikkaa minua!
CMD_LINK <> §7 •§2 Linkki: §f CMD_LINK <> §7 •§2 Linkki: §f
CMD_RESULTS_AVAILABLE <> §7 Tulokset saatavilla §fREPLACE0§7 minuuttia. CMD_RESULTS_AVAILABLE <> §7 Tulokset saatavilla §f${0}§7 minuuttia.
CMD_NO_RESULTS <> §7 •§2 Ei tuloksia §7REPLACE0§2. CMD_NO_RESULTS <> §7 •§2 Ei tuloksia §7${0}§2.
CMD_MATCH <> §7 Vastaava pelaaja: §f CMD_MATCH <> §7 Vastaava pelaaja: §f
CMD_USG_ANALYZE <> Tarkastele analyysia CMD_USG_ANALYZE <> Tarkastele analyysia
CMD_USG_HELP <> Tarkastele komentoja. CMD_USG_HELP <> Tarkastele komentoja.
@ -97,13 +97,13 @@ USE_PLAN <> Käytä /plan nähdäksesi apu
USE_MOVE <> Käytä /plan manage move <tietokannastaDB> <tietokantaanDB> [-a] USE_MOVE <> Käytä /plan manage move <tietokannastaDB> <tietokantaanDB> [-a]
USE_COMBINE <> Käytä /plan manage combine <tietokannastaDB> <tietokantaanDB> [-a] USE_COMBINE <> Käytä /plan manage combine <tietokannastaDB> <tietokantaanDB> [-a]
USE_IMPORT <> Käytä /plan manage import <plugin> [-a] USE_IMPORT <> Käytä /plan manage import <plugin> [-a]
WARN_REWRITE <> Tiedot REPLACE0-tietokannassa uudelleenkirjoitetaan! WARN_REWRITE <> Tiedot ${0}-tietokannassa uudelleenkirjoitetaan!
WARN_OVERWRITE <> Tiedot REPLACE0-tietokannassa ylikirjoitetaan! WARN_OVERWRITE <> Tiedot ${0}-tietokannassa ylikirjoitetaan!
WARN_OVERWRITE_SOME <> Osa tiedoista REPLACE0-tietokannassa ylikirjoitetaan! WARN_OVERWRITE_SOME <> Osa tiedoista ${0}-tietokannassa ylikirjoitetaan!
WARN_REMOVE <> Tiedot REPLACE0-tietokannasta poistetaan! WARN_REMOVE <> Tiedot ${0}-tietokannasta poistetaan!
COMMAND_SENDER_NOT_PLAYER <> §c[Plan] Tätä komentoa voi käyttää vain pelaaja. COMMAND_SENDER_NOT_PLAYER <> §c[Plan] Tätä komentoa voi käyttää vain pelaaja.
COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Komento tarvii argumentteja. REPLACE0 COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Komento tarvii argumentteja. ${0}
COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Lisää -a vahvistaaksesi komennon ajo! REPLACE0 COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Lisää -a vahvistaaksesi komennon ajo! ${0}
COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Komento tarvii yhden argumentin. COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Komento tarvii yhden argumentin.
COMMAND_NO_PERMISSION <> §c[Plan] Ei oo lupaa! COMMAND_NO_PERMISSION <> §c[Plan] Ei oo lupaa!
<<<<<<HTML>>>>>> <<<<<<HTML>>>>>>
@ -119,13 +119,13 @@ HIDDEN <> Piilotettu (config)
FACTION_NOT_FOUND <> Kiltaa ei löytynyt FACTION_NOT_FOUND <> Kiltaa ei löytynyt
FACTION_NO_LEADER <> Ei johtajaa FACTION_NO_LEADER <> Ei johtajaa
FACTION_NO_FACTIONS <> Ei kiltoja FACTION_NO_FACTIONS <> Ei kiltoja
WARPS <> <br/>Warpit: REPLACE0 WARPS <> <br/>Warpit: ${0}
ACHIEVEMENTS <> <br/>Achievementit: REPLACE0/REPLACE1 ACHIEVEMENTS <> <br/>Achievementit: ${0}/${1}
JAILED <> | Vankilassa JAILED <> | Vankilassa
MUTED <> | Mutetettu MUTED <> | Mutetettu
VOTES <> <br/>On äänestänyt REPLACE0kertaa VOTES <> <br/>On äänestänyt ${0}kertaa
FACTION <> <br/>Kilta: REPLACE0 | Voima: REPLACE1/REPLACE2 FACTION <> <br/>Kilta: ${0} | Voima: ${1}/${2}
TOWN <> <br/>Kylä: REPLACE0 TOWN <> <br/>Kylä: ${0}
TOWN_NO_TOWNS <> Ei kyliä TOWN_NO_TOWNS <> Ei kyliä
GRAPH_BANNED <> Pannassa GRAPH_BANNED <> Pannassa
GRAPH_UNKNOWN <> Ei tiedossa GRAPH_UNKNOWN <> Ei tiedossa

View File

@ -11,7 +11,6 @@ import org.bukkit.configuration.file.FileConfiguration;
* @author Rsl1122 * @author Rsl1122
* @since 3.5.0 * @since 3.5.0
*/ */
// TODO Move the auto generation to the correct location (Customization.Plugins -> Plugins)
public class PluginConfigSectionHandler { public class PluginConfigSectionHandler {
private final Plan plan; private final Plan plan;
@ -33,7 +32,7 @@ public class PluginConfigSectionHandler {
private ConfigurationSection getPluginsSection() { private ConfigurationSection getPluginsSection() {
FileConfiguration config = plan.getConfig(); FileConfiguration config = plan.getConfig();
return config.getConfigurationSection("Customization.Plugins"); return config.getConfigurationSection("Plugins");
} }
public void createSection(PluginData dataSource) { public void createSection(PluginData dataSource) {
@ -45,7 +44,7 @@ public class PluginConfigSectionHandler {
section.addDefault(pluginName + ".Data." + source, true); section.addDefault(pluginName + ".Data." + source, true);
FileConfiguration config = plan.getConfig(); FileConfiguration config = plan.getConfig();
config.set("Customization.Plugins", section); config.set("Plugins", section);
plan.saveConfig(); plan.saveConfig();
} }

View File

@ -8,7 +8,6 @@ import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.data.TPS; import main.java.com.djrapitops.plan.data.TPS;
import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.UserData;
import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo;
import main.java.com.djrapitops.plan.data.handling.info.LogoutInfo;
import main.java.com.djrapitops.plan.data.handling.info.ReloadInfo; import main.java.com.djrapitops.plan.data.handling.info.ReloadInfo;
import main.java.com.djrapitops.plan.database.Database; import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.locale.Locale; import main.java.com.djrapitops.plan.locale.Locale;
@ -17,11 +16,11 @@ import main.java.com.djrapitops.plan.queue.DataCacheClearQueue;
import main.java.com.djrapitops.plan.queue.DataCacheGetQueue; import main.java.com.djrapitops.plan.queue.DataCacheGetQueue;
import main.java.com.djrapitops.plan.queue.DataCacheProcessQueue; import main.java.com.djrapitops.plan.queue.DataCacheProcessQueue;
import main.java.com.djrapitops.plan.queue.DataCacheSaveQueue; import main.java.com.djrapitops.plan.queue.DataCacheSaveQueue;
import main.java.com.djrapitops.plan.queue.processing.Processor;
import main.java.com.djrapitops.plan.utilities.Benchmark; import main.java.com.djrapitops.plan.utilities.Benchmark;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import main.java.com.djrapitops.plan.utilities.NewPlayerCreator; import main.java.com.djrapitops.plan.utilities.NewPlayerCreator;
import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils;
import main.java.com.djrapitops.plan.utilities.comparators.HandlingInfoTimeComparator;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.sql.SQLException; import java.sql.SQLException;
@ -240,7 +239,7 @@ public class DataCacheHandler extends SessionCache {
if (i == null) { if (i == null) {
return; return;
} }
processTask.addToPool(i); //TODO processTask.addToPool(i);
} }
/** /**
@ -256,7 +255,7 @@ public class DataCacheHandler extends SessionCache {
saveTask.stop(); saveTask.stop();
getTask.stop(); getTask.stop();
clearTask.stop(); clearTask.stop();
List<HandlingInfo> toProcess = processTask.stopAndReturnLeftovers(); List<Processor> toProcess = processTask.stopAndReturnLeftovers();
Benchmark.start("Cache: ProcessOnlineHandlingInfo"); Benchmark.start("Cache: ProcessOnlineHandlingInfo");
Log.debug("ToProcess size: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size()); Log.debug("ToProcess size: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size());
List<IPlayer> onlinePlayers = plugin.fetch().getOnlinePlayers(); List<IPlayer> onlinePlayers = plugin.fetch().getOnlinePlayers();
@ -265,11 +264,11 @@ public class DataCacheHandler extends SessionCache {
UUID uuid = p.getUuid(); UUID uuid = p.getUuid();
endSession(uuid); endSession(uuid);
String worldName = ((Player) p.getWrappedPlayerClass()).getWorld().getName(); String worldName = ((Player) p.getWrappedPlayerClass()).getWorld().getName();
toProcess.add(new LogoutInfo(uuid, time, p.isBanned(), p.getGamemode().name(), getSession(uuid), worldName)); //TODO toProcess.add(new LogoutInfo(uuid, time, p.isBanned(), p.getGamemode().name(), getSession(uuid), worldName));
} }
Log.debug("ToProcess size_AFTER: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size()); Log.debug("ToProcess size_AFTER: " + toProcess.size() + " DataCache size: " + dataCache.keySet().size());
toProcess.sort(new HandlingInfoTimeComparator()); //TODO toProcess.sort(new HandlingInfoTimeComparator());
processUnprocessedHandlingInfo(toProcess); //TODO processUnprocessedHandlingInfo(toProcess);
Benchmark.stop("Cache: ProcessOnlineHandlingInfo"); Benchmark.stop("Cache: ProcessOnlineHandlingInfo");
List<UserData> data = new ArrayList<>(); List<UserData> data = new ArrayList<>();
data.addAll(dataCache.values()); data.addAll(dataCache.values());
@ -436,11 +435,12 @@ public class DataCacheHandler extends SessionCache {
if (userData == null) { if (userData == null) {
return false; return false;
} }
boolean isAccessed = (userData.isAccessed()) || saveTask.containsUUID(uuid) || processTask.containsUUID(uuid); /*TODO boolean isAccessed = (userData.isAccessed()) || saveTask.containsUUID(uuid) || processTask.containsUUID(uuid);
if (isAccessed) { if (isAccessed) {
userData.setClearAfterSave(false); userData.setClearAfterSave(false);
} }
return isAccessed; return isAccessed;*/
return true;
} }
/** /**

View File

@ -124,9 +124,9 @@ public class Locale {
add(Msg.ENABLED, "Player Analytics Enabled."); add(Msg.ENABLED, "Player Analytics Enabled.");
add(Msg.ENABLE_DB_INIT, "Database init.."); add(Msg.ENABLE_DB_INIT, "Database init..");
add(Msg.ENABLE_DB_INFO, "REPLACE0-database connection established."); add(Msg.ENABLE_DB_INFO, "${0}-database connection established.");
add(Msg.ENABLE_WEBSERVER, "Initializing Webserver.."); add(Msg.ENABLE_WEBSERVER, "Initializing Webserver..");
add(Msg.ENABLE_WEBSERVER_INFO, "Webserver running on PORT REPLACE0"); add(Msg.ENABLE_WEBSERVER_INFO, "Webserver running on PORT ${0}");
add(Msg.ENABLE_BOOT_ANALYSIS_INFO, analysis + "Boot analysis in 30 seconds.."); add(Msg.ENABLE_BOOT_ANALYSIS_INFO, analysis + "Boot analysis in 30 seconds..");
add(Msg.ENABLE_BOOT_ANALYSIS_RUN_INFO, analysis + "Starting Boot Analysis.."); add(Msg.ENABLE_BOOT_ANALYSIS_RUN_INFO, analysis + "Starting Boot Analysis..");
@ -137,10 +137,10 @@ public class Locale {
add(Msg.ENABLE_NOTIFY_DISABLED_DEATHLISTENER, yellow + "Death listener disabled, player & mob kills not recorded."); add(Msg.ENABLE_NOTIFY_DISABLED_DEATHLISTENER, yellow + "Death listener disabled, player & mob kills not recorded.");
add(Msg.ENABLE_FAIL_WRONG_DB, "That database type doesn't exist."); add(Msg.ENABLE_FAIL_WRONG_DB, "That database type doesn't exist.");
add(Msg.ENABLE_FAIL_DB, "REPLACE0-Database Connection failed: REPLACE1"); add(Msg.ENABLE_FAIL_DB, "${0}-Database Connection failed: ${1}");
add(Msg.ENABLE_DB_FAIL_DISABLE_INFO, "Database initialization has failed, disabling Plan."); add(Msg.ENABLE_DB_FAIL_DISABLE_INFO, "Database initialization has failed, disabling Plan.");
add(Msg.RUN_WARN_QUEUE_SIZE, "Queue size is too small! (REPLACE0), change the setting to a higher number! (Currently REPLACE1)"); add(Msg.RUN_WARN_QUEUE_SIZE, "Queue size is too small! (${0}), change the setting to a higher number! (Currently ${1})");
add(Msg.DISABLED, "Player Analytics Disabled."); add(Msg.DISABLED, "Player Analytics Disabled.");
add(Msg.DISABLE_CACHE_SAVE, "Saving cached data.."); add(Msg.DISABLE_CACHE_SAVE, "Saving cached data..");
@ -149,9 +149,9 @@ public class Locale {
add(Msg.ANALYSIS_START, analysis + "Beginning analysis of user data.."); add(Msg.ANALYSIS_START, analysis + "Beginning analysis of user data..");
add(Msg.ANALYSIS_FETCH_UUID, analysis + "Checking for available players.."); add(Msg.ANALYSIS_FETCH_UUID, analysis + "Checking for available players..");
add(Msg.ANALYSIS_FETCH, analysis + "Fetching Data.."); add(Msg.ANALYSIS_FETCH, analysis + "Fetching Data..");
add(Msg.ANALYSIS_PHASE_START, analysis + "Data Fetched (REPLACE0 users, took REPLACE1ms), beginning Analysis of data.."); add(Msg.ANALYSIS_PHASE_START, analysis + "Data Fetched (${0} users, took ${1}ms), beginning Analysis of data..");
add(Msg.ANALYSIS_3RD_PARTY, analysis + "Analyzing additional data sources (3rd party)"); add(Msg.ANALYSIS_3RD_PARTY, analysis + "Analyzing additional data sources (3rd party)");
add(Msg.ANALYSIS_FINISHED, analysis + "Analysis Complete. (took REPLACE0ms) REPLACE1"); add(Msg.ANALYSIS_FINISHED, analysis + "Analysis Complete. (took ${0}ms) ${1}");
add(Msg.ANALYSIS_FAIL_NO_PLAYERS, analysis + "Analysis failed, no known players."); add(Msg.ANALYSIS_FAIL_NO_PLAYERS, analysis + "Analysis failed, no known players.");
add(Msg.ANALYSIS_FAIL_NO_DATA, analysis + "Analysis failed, no data in the database."); add(Msg.ANALYSIS_FAIL_NO_DATA, analysis + "Analysis failed, no data in the database.");
add(Msg.ANALYSIS_FAIL_FETCH_EXCEPTION, analysis + "Failed to fetch data for Analysis, Exception occurred."); add(Msg.ANALYSIS_FAIL_FETCH_EXCEPTION, analysis + "Failed to fetch data for Analysis, Exception occurred.");
@ -164,7 +164,7 @@ public class Locale {
add(Msg.MANAGE_INFO_COPY_SUCCESS, green + prefix + "All data copied successfully!"); add(Msg.MANAGE_INFO_COPY_SUCCESS, green + prefix + "All data copied successfully!");
add(Msg.MANAGE_INFO_MOVE_SUCCESS, green + prefix + "All data moved successfully!"); add(Msg.MANAGE_INFO_MOVE_SUCCESS, green + prefix + "All data moved successfully!");
add(Msg.MANAGE_INFO_CLEAR_SUCCESS, green + prefix + "All data cleared successfully!"); add(Msg.MANAGE_INFO_CLEAR_SUCCESS, green + prefix + "All data cleared successfully!");
add(Msg.MANAGE_INFO_REMOVE_SUCCESS, cmdFooter + " " + mCol + "Data of " + tCol + "REPLACE0" + mCol + " was removed from Database " + tCol + "REPLACE1" + mCol + "."); add(Msg.MANAGE_INFO_REMOVE_SUCCESS, cmdFooter + " " + mCol + "Data of " + tCol + "${0}" + mCol + " was removed from Database " + tCol + "${1}" + mCol + ".");
add(Msg.MANAGE_FAIL_INCORRECT_PLUGIN, red + prefix + "Plugin not supported: "); add(Msg.MANAGE_FAIL_INCORRECT_PLUGIN, red + prefix + "Plugin not supported: ");
add(Msg.MANAGE_FAIL_PLUGIN_NOT_ENABLED, red + prefix + "Plugin is not enabled: "); add(Msg.MANAGE_FAIL_PLUGIN_NOT_ENABLED, red + prefix + "Plugin is not enabled: ");
@ -174,19 +174,19 @@ public class Locale {
add(Msg.MANAGE_FAIL_NO_PLAYERS, red + prefix + "Database has no player data!"); add(Msg.MANAGE_FAIL_NO_PLAYERS, red + prefix + "Database has no player data!");
add(Msg.MANAGE_FAIL_FILE_NOT_FOUND, red + prefix + "Backup file doesn't exist!"); add(Msg.MANAGE_FAIL_FILE_NOT_FOUND, red + prefix + "Backup file doesn't exist!");
add(Msg.MANAGE_FAIL_CONFIRM, red + prefix + "Add -a to confirm execution! REPLACE0"); add(Msg.MANAGE_FAIL_CONFIRM, red + prefix + "Add -a to confirm execution! ${0}");
add(Msg.MANAGE_NOTIFY_REWRITE, "Data in REPLACE0-database will be rewritten!"); add(Msg.MANAGE_NOTIFY_REWRITE, "Data in ${0}-database will be rewritten!");
add(Msg.MANAGE_NOTIFY_OVERWRITE, "Data in REPLACE0-database will be overwritten!"); add(Msg.MANAGE_NOTIFY_OVERWRITE, "Data in ${0}-database will be overwritten!");
add(Msg.MANAGE_NOTIFY_PARTIAL_OVERWRITE, "Some data in REPLACE0-database will be overwritten!"); add(Msg.MANAGE_NOTIFY_PARTIAL_OVERWRITE, "Some data in ${0}-database will be overwritten!");
add(Msg.MANAGE_NOTIFY_REMOVE, "Data in REPLACE0-database will be removed!"); add(Msg.MANAGE_NOTIFY_REMOVE, "Data in ${0}-database will be removed!");
add(Msg.CMD_FAIL_REQ_ARGS, red + prefix + "Command requires arguments. REPLACE0"); add(Msg.CMD_FAIL_REQ_ARGS, red + prefix + "Command requires arguments. ${0}");
add(Msg.CMD_FAIL_REQ_ONE_ARG, red + prefix + "Command requires one argument."); add(Msg.CMD_FAIL_REQ_ONE_ARG, red + prefix + "Command requires one argument.");
add(Msg.CMD_FAIL_NO_PERMISSION, red + prefix + "You do not have the required permission."); add(Msg.CMD_FAIL_NO_PERMISSION, red + prefix + "You do not have the required permission.");
add(Msg.CMD_FAIL_USERNAME_NOT_VALID, red + prefix + "This Player doesn't exist."); add(Msg.CMD_FAIL_USERNAME_NOT_VALID, red + prefix + "This Player doesn't exist.");
add(Msg.CMD_FAIL_USERNAME_NOT_SEEN, red + prefix + "This Player has not played on this server."); add(Msg.CMD_FAIL_USERNAME_NOT_SEEN, red + prefix + "This Player has not played on this server.");
add(Msg.CMD_FAIL_USERNAME_NOT_KNOWN, red + prefix + "Player not found from the database."); add(Msg.CMD_FAIL_USERNAME_NOT_KNOWN, red + prefix + "Player not found from the database.");
add(Msg.CMD_FAIL_TIMEOUT, red + prefix + "REPLACE0 Command timed out! Check '/plan status' & console."); add(Msg.CMD_FAIL_TIMEOUT, red + prefix + "${0} Command timed out! Check '/plan status' & console.");
add(Msg.CMD_FAIL_NO_DATA_VIEW, yellow + "" + prefix + "No Way to view Data Available."); add(Msg.CMD_FAIL_NO_DATA_VIEW, yellow + "" + prefix + "No Way to view Data Available.");
add(Msg.CMD_INFO_ANALYSIS_TEMP_DISABLE, yellow + "Analysis has been temporarily disabled due to expensive task, use /plan status for info."); add(Msg.CMD_INFO_ANALYSIS_TEMP_DISABLE, yellow + "Analysis has been temporarily disabled due to expensive task, use /plan status for info.");
@ -195,7 +195,7 @@ public class Locale {
add(Msg.CMD_INFO_CLICK_ME, "Click Me"); add(Msg.CMD_INFO_CLICK_ME, "Click Me");
add(Msg.CMD_INFO_LINK, sCol + "" + mCol + "Link: " + tCol); add(Msg.CMD_INFO_LINK, sCol + "" + mCol + "Link: " + tCol);
add(Msg.CMD_INFO_RESULTS, sCol + " Matching players: " + tCol); add(Msg.CMD_INFO_RESULTS, sCol + " Matching players: " + tCol);
add(Msg.CMD_INFO_NO_RESULTS, sCol + "" + mCol + "No results for " + sCol + "REPLACE0" + mCol + "."); add(Msg.CMD_INFO_NO_RESULTS, sCol + "" + mCol + "No results for " + sCol + "${0}" + mCol + ".");
add(Msg.CMD_INFO_SEARCHING, cmdFooter + mCol + "Searching.."); add(Msg.CMD_INFO_SEARCHING, cmdFooter + mCol + "Searching..");
add(Msg.CMD_USG_ANALYZE, "View the Server Analysis"); add(Msg.CMD_USG_ANALYZE, "View the Server Analysis");

View File

@ -50,13 +50,6 @@ public class DataCacheGetQueue extends Queue<Map<UUID, List<DBCallableProcessor>
} }
} }
boolean containsUUIDtoBeCached(UUID uuid) {
return uuid != null && queue.stream()
.map(map -> map.get(uuid))
.filter(Objects::nonNull)
.anyMatch(list -> list.size() >= 2);
}
}
@Deprecated @Deprecated
class GetConsumer extends Consumer<Map<UUID, List<DBCallableProcessor>>> { class GetConsumer extends Consumer<Map<UUID, List<DBCallableProcessor>>> {
@ -95,6 +88,7 @@ class GetConsumer extends Consumer<Map<UUID, List<DBCallableProcessor>>> {
} }
} }
} }
@Deprecated @Deprecated
class GetSetup extends Setup<Map<UUID, List<DBCallableProcessor>>> { class GetSetup extends Setup<Map<UUID, List<DBCallableProcessor>>> {
@ -102,3 +96,4 @@ class GetSetup extends Setup<Map<UUID, List<DBCallableProcessor>>> {
super(new GetConsumer(q, db), new GetConsumer(q, db)); super(new GetConsumer(q, db), new GetConsumer(q, db));
} }
} }
}

View File

@ -4,9 +4,8 @@ import com.djrapitops.plugin.utilities.Verify;
import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Log;
import main.java.com.djrapitops.plan.data.cache.DBCallableProcessor; import main.java.com.djrapitops.plan.data.cache.DBCallableProcessor;
import main.java.com.djrapitops.plan.data.cache.DataCacheHandler; import main.java.com.djrapitops.plan.data.cache.DataCacheHandler;
import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; import main.java.com.djrapitops.plan.queue.processing.Processor;
import java.util.UUID;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
@ -20,7 +19,7 @@ import java.util.concurrent.BlockingQueue;
// TODO Change Processing Queue to use more generic object as processing. // TODO Change Processing Queue to use more generic object as processing.
// GOAL: Processing queue can be used to process query results from the database // GOAL: Processing queue can be used to process query results from the database
// & for processing events into statements. // & for processing events into statements.
public class DataCacheProcessQueue extends Queue<HandlingInfo> { public class DataCacheProcessQueue extends Queue<Processor> {
/** /**
* Class constructor, starts the new Thread for processing. * Class constructor, starts the new Thread for processing.
@ -38,53 +37,33 @@ public class DataCacheProcessQueue extends Queue<HandlingInfo> {
* *
* @param info object that extends HandlingInfo. * @param info object that extends HandlingInfo.
*/ */
public void addToPool(HandlingInfo info) { public void addToPool(Processor info) {
try { try {
queue.add(info); queue.add(info);
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
Log.toLog(this.getClass().getName(), e); Log.toLog(this.getClass().getName(), e);
} }
} }
/**
* Check whether or not the queue contains a HandlingInfo object with the
* uuid.
*
* @param uuid UUID of the player.
* @return true/false
*/
public boolean containsUUID(UUID uuid) {
return uuid != null && queue.stream().anyMatch(info -> info.getUuid().equals(uuid));
}
} }
class ProcessConsumer extends Consumer<HandlingInfo> { class ProcessConsumer extends Consumer<Processor> {
private DataCacheHandler handler; private DataCacheHandler handler;
ProcessConsumer(BlockingQueue<HandlingInfo> q, DataCacheHandler h) { ProcessConsumer(BlockingQueue<Processor> q, DataCacheHandler h) {
super(q, "ProcessQueueConsumer"); super(q, "ProcessQueueConsumer");
handler = h; handler = h;
} }
@Override @Override
protected void consume(HandlingInfo info) { protected void consume(Processor info) {
if (!Verify.notNull(handler, info)) { if (!Verify.notNull(handler, info)) {
return; return;
} }
if (handler.getGetTask().containsUUIDtoBeCached(info.getUuid())) { // Wait for get queue. DBCallableProcessor p = data -> info.process();
queue.add(info);
return;
}
DBCallableProcessor p = data -> { //TODO handler.getUserDataForProcessing(p, info.getUuid());
if (!info.process(data)) {
Log.error("Attempted to process data for wrong uuid: W:" + data.getUuid() + " | R:" + info.getUuid() + " Type:" + info.getType().name());
}
};
handler.getUserDataForProcessing(p, info.getUuid());
} }
@Override @Override
@ -95,9 +74,9 @@ class ProcessConsumer extends Consumer<HandlingInfo> {
} }
} }
class ProcessSetup extends Setup<HandlingInfo> { class ProcessSetup extends Setup<Processor> {
ProcessSetup(BlockingQueue<HandlingInfo> q, DataCacheHandler h) { ProcessSetup(BlockingQueue<Processor> q, DataCacheHandler h) {
super(new ProcessConsumer(q, h), new ProcessConsumer(q, h)); super(new ProcessConsumer(q, h), new ProcessConsumer(q, h));
} }
} }

View File

@ -89,10 +89,10 @@ class SaveConsumer extends Consumer<UserData> {
} }
UUID uuid = data.getUuid(); UUID uuid = data.getUuid();
if (handler.getProcessTask().containsUUID(uuid)) { // Wait for process queue. /*TODO if (handler.getProcessTask().containsUUID(uuid)) { // Wait for process queue.
queue.add(data); queue.add(data);
return; return;
} }*/
try { try {
db.saveUserData(data); db.saveUserData(data);

View File

@ -9,6 +9,12 @@ package main.java.com.djrapitops.plan.queue.processing;
* *
* @author Rsl1122 * @author Rsl1122
*/ */
public interface Processor<T> { public abstract class Processor<T> {
public void process(T object); private T processed;
public Processor(T processed) {
this.processed = processed;
}
public abstract void process();
} }

View File

@ -52,6 +52,7 @@ public class DataRequestHandler {
if (data == null) { if (data == null) {
return "<h1>404 Data was not found in cache</h1>"; return "<h1>404 Data was not found in cache</h1>";
} }
return HtmlUtils.replacePlaceholders( return HtmlUtils.replacePlaceholders(
HtmlUtils.getStringFromResource("player.html"), HtmlUtils.getStringFromResource("player.html"),
PlaceholderUtils.getInspectReplaceRules(data) PlaceholderUtils.getInspectReplaceRules(data)

View File

@ -1,13 +1,15 @@
package main.java.com.djrapitops.plan.ui.html; package main.java.com.djrapitops.plan.ui.html;
import com.djrapitops.plugin.utilities.Verify; import com.djrapitops.plugin.utilities.Verify;
import org.apache.commons.lang.text.StrSubstitutor;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/** /**
* @author Rsl1122 * @author Rsl1122
*/ */
// TODO Start using StrSubstitute with REPLACE variables
public enum Html { public enum Html {
COLOR_0("<span class=\"black\">"), COLOR_0("<span class=\"black\">"),
@ -27,34 +29,34 @@ public enum Html {
COLOR_E("<span class=\"yellow\">"), COLOR_E("<span class=\"yellow\">"),
COLOR_F("<span class=\"white\">"), COLOR_F("<span class=\"white\">"),
// //
FONT_AWESOME_ICON("<i class=\"fa fa-REPLACE0\" aria-hidden=\"true\"></i>"), FONT_AWESOME_ICON("<i class=\"fa fa-${0}\" aria-hidden=\"true\"></i>"),
@Deprecated MINOTAR_SMALL_IMG("<img style=\"float: left; padding: 2px 2px 0px 2px\" alt=\"REPLACE0\" src=\"https://minotar.net/avatar/REPLACE0/19\">"), @Deprecated MINOTAR_SMALL_IMG("<img style=\"float: left; padding: 2px 2px 0px 2px\" alt=\"${0}\" src=\"https://minotar.net/avatar/${0}/19\">"),
SPAN("REPLACE0</span>"), SPAN("${0}</span>"),
BUTTON("<a class=\"button\" href=\"REPLACE0\">REPLACE1</a>"), BUTTON("<a class=\"button\" href=\"${0}\">${1}</a>"),
BUTTON_CLASS("class=\"button\""), BUTTON_CLASS("class=\"button\""),
LINK("<a class=\"link\" href=\"REPLACE0\">REPLACE1</a>"), LINK("<a class=\"link\" href=\"${0}\">${1}</a>"),
LINK_EXTERNAL("<a class=\"link\" target=\"_blank\" href=\"REPLACE0\">REPLACE1</a>"), LINK_EXTERNAL("<a class=\"link\" target=\"_blank\" href=\"${0}\">${1}</a>"),
LINK_CLASS("class=\"link\""), LINK_CLASS("class=\"link\""),
IMG("<img src=\"REPLACE0\">"), IMG("<img src=\"${0}\">"),
@Deprecated COLUMNS_DIV_WRAPPER("<div class=\"columns\">REPLACE0</div>"), @Deprecated COLUMNS_DIV_WRAPPER("<div class=\"columns\">${0}</div>"),
@Deprecated COLUMN_DIV_WRAPPER("<div class=\"about box column\">REPLACE0</div>"), @Deprecated COLUMN_DIV_WRAPPER("<div class=\"about box column\">${0}</div>"),
@Deprecated HEADER("<div class=\"headerbox\" style=\"width: 95%;\"><div class=\"header-icon\"><div class=\"header-label\"><i class=\"fa fa-cube\" aria-hidden=\"true\"></i><span class=\"header-text\"> REPLACE0</span></div></div></div>"), @Deprecated HEADER("<div class=\"headerbox\" style=\"width: 95%;\"><div class=\"header-icon\"><div class=\"header-label\"><i class=\"fa fa-cube\" aria-hidden=\"true\"></i><span class=\"header-text\"> ${0}</span></div></div></div>"),
@Deprecated PLUGIN_DATA_WRAPPER("<div class=\"plugin-data\">REPLACE0</div>"), @Deprecated PLUGIN_DATA_WRAPPER("<div class=\"plugin-data\">${0}</div>"),
@Deprecated PLUGIN_CONTAINER_START("<div class=\"plugin-container\">"), @Deprecated PLUGIN_CONTAINER_START("<div class=\"plugin-container\">"),
// //
TABLE_START_2("<table class=\"sortable table\"><thead><tr><th>REPLACE0</th><th>REPLACE1</th></tr></thead><tbody>"), TABLE_START_2("<table class=\"sortable table\"><thead><tr><th>${0}</th><th>${1}</th></tr></thead><tbody>"),
TABLE_START_3("<table class=\"sortable table\"><thead><tr><th>REPLACE0</th><th>REPLACE1</th><th>REPLACE2</th></tr></thead><tbody>"), TABLE_START_3("<table class=\"sortable table\"><thead><tr><th>${0}</th><th>${1}</th><th>${2}</th></tr></thead><tbody>"),
TABLE_START_4("<table class=\"sortable table\"><thead><tr><th>REPLACE0</th><th>REPLACE1</th><th>REPLACE2</th><th>REPLACE3</th></tr></thead><tbody>"), TABLE_START_4("<table class=\"sortable table\"><thead><tr><th>${0}</th><th>${1}</th><th>${2}</th><th>${3}</th></tr></thead><tbody>"),
@Deprecated TABLE_SESSIONS_START(TABLE_START_3.parse("Session Started", "Session Ended", "Session Length")), TABLE_SESSIONS_START(TABLE_START_3.parse("Session Started", "Session Ended", "Session Length")),
@Deprecated TABLE_KILLS_START(TABLE_START_3.parse("Date", "Killed", "With")), TABLE_KILLS_START(TABLE_START_3.parse("Date", "Killed", "With")),
@Deprecated TABLE_FACTIONS_START(TABLE_START_4.parse(FONT_AWESOME_ICON.parse("flag") + " Faction", FONT_AWESOME_ICON.parse("bolt") + " Power", FONT_AWESOME_ICON.parse("map-o") + " Land", FONT_AWESOME_ICON.parse("user") + " Leader")), TABLE_FACTIONS_START(TABLE_START_4.parse(FONT_AWESOME_ICON.parse("flag") + " Faction", FONT_AWESOME_ICON.parse("bolt") + " Power", FONT_AWESOME_ICON.parse("map-o") + " Land", FONT_AWESOME_ICON.parse("user") + " Leader")),
@Deprecated TABLE_TOWNS_START(TABLE_START_4.parse(FONT_AWESOME_ICON.parse("bank") + " Town", FONT_AWESOME_ICON.parse("users") + " Residents", FONT_AWESOME_ICON.parse("map-o") + " Land", FONT_AWESOME_ICON.parse("user") + " Mayor")), TABLE_TOWNS_START(TABLE_START_4.parse(FONT_AWESOME_ICON.parse("bank") + " Town", FONT_AWESOME_ICON.parse("users") + " Residents", FONT_AWESOME_ICON.parse("map-o") + " Land", FONT_AWESOME_ICON.parse("user") + " Mayor")),
TABLELINE_2("<tr><td><b>REPLACE0</b></td><td>REPLACE1</td></tr>"), TABLELINE_2("<tr><td><b>${0}</b></td><td>${1}</td></tr>"),
TABLELINE_3("<tr><td><b>REPLACE0</b></td><td>REPLACE1</td><td>REPLACE2</td></tr>"), TABLELINE_3("<tr><td><b>${0}</b></td><td>${1}</td><td>${2}</td></tr>"),
TABLELINE_4("<tr><td><b>REPLACE0</b></td><td>REPLACE1</td><td>REPLACE2</td><td>REPLACE3</td></tr>"), TABLELINE_4("<tr><td><b>${0}</b></td><td>${1}</td><td>${2}</td><td>${3}</td></tr>"),
TABLELINE_PLAYERS("<tr><td>REPLACE0</td><td>REPLACE1</td><td sorttable_customkey=\"REPLACE2\">REPLACE3</td><td>REPLACE4</td><td sorttable_customkey=\"REPLACE5\">REPLACE6</td>" + "<td sorttable_customkey=\"REPLACE7\">REPLACE8</td><td>REPLACE9</td></tr>"), TABLELINE_PLAYERS("<tr><td>${0}</td><td>${1}</td><td sorttable_customkey=\"${2}\">${3}</td><td>${4}</td><td sorttable_customkey=\"${5}\">${6}</td>" + "<td sorttable_customkey=\"${7}\">${8}</td><td>${9}</td></tr>"),
TABLELINE_3_CUSTOMKEY("<tr><td sorttable_customkey=\"REPLACE0\">REPLACE1</td><td sorttable_customkey=\"REPLACE2\">REPLACE3</td><td sorttable_customkey=\"REPLACE4\">REPLACE5</td></tr>"), TABLELINE_3_CUSTOMKEY("<tr><td sorttable_customkey=\"${0}\">${1}</td><td sorttable_customkey=\"${2}\">${3}</td><td sorttable_customkey=\"${4}\">${5}</td></tr>"),
TABLELINE_3_CUSTOMKEY_1("<tr><td sorttable_customkey=\"REPLACE0\">REPLACE1</td><td>REPLACE2</td><td>REPLACE3</td></tr>"), TABLELINE_3_CUSTOMKEY_1("<tr><td sorttable_customkey=\"${0}\">${1}</td><td>${2}</td><td>${3}</td></tr>"),
@Deprecated ERROR_TABLE_2(TABLELINE_2.parse("No data", "No data")), @Deprecated ERROR_TABLE_2(TABLELINE_2.parse("No data", "No data")),
TABLE_END("</tbody></table>"); // KILLDATA_NONE("No Kills"), TABLE_END("</tbody></table>"); // KILLDATA_NONE("No Kills"),
@ -77,10 +79,15 @@ public enum Html {
*/ */
public String parse(Serializable... p) { public String parse(Serializable... p) {
Verify.nullCheck(p); Verify.nullCheck(p);
String returnValue = this.html;
Map<String, Serializable> replaceMap = new HashMap<>();
for (int i = 0; i < p.length; i++) { for (int i = 0; i < p.length; i++) {
returnValue = returnValue.replace("REPLACE" + i, p[i].toString()); replaceMap.put(String.valueOf(i), p[i].toString());
} }
return returnValue;
StrSubstitutor sub = new StrSubstitutor(replaceMap);
return sub.replace(html);
} }
} }

View File

@ -26,6 +26,7 @@ import javax.net.ssl.*;
import java.io.*; import java.io.*;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.URI; import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.security.*; import java.security.*;
import java.security.cert.Certificate; import java.security.cert.Certificate;
@ -281,7 +282,7 @@ public class WebServer {
} }
try { try {
return new String(bytes, "ISO-8859-1"); return new String(bytes, StandardCharsets.ISO_8859_1);
} catch (Exception e) { } catch (Exception e) {
return null; return null;
} }

View File

@ -42,14 +42,14 @@ public class PlaceholderUtils {
public static Map<String, Serializable> getAnalysisReplaceRules(AnalysisData data) { public static Map<String, Serializable> getAnalysisReplaceRules(AnalysisData data) {
HashMap<String, Serializable> replaceMap = new HashMap<>(); HashMap<String, Serializable> replaceMap = new HashMap<>();
replaceMap.putAll(data.getReplaceMap()); replaceMap.putAll(data.getReplaceMap());
replaceMap.put("%plugins%", data.replacePluginsTabLayout()); replaceMap.put("plugins", data.replacePluginsTabLayout());
replaceMap.put("%refresh%", FormatUtils.formatTimeAmountDifference(data.getRefreshDate(), MiscUtils.getTime())); replaceMap.put("refresh", FormatUtils.formatTimeAmountDifference(data.getRefreshDate(), MiscUtils.getTime()));
replaceMap.put("%refreshlong%", String.valueOf(data.getRefreshDate())); replaceMap.put("refreshlong", String.valueOf(data.getRefreshDate()));
replaceMap.put("%servername%", Settings.SERVER_NAME.toString()); replaceMap.put("servername", Settings.SERVER_NAME.toString());
replaceMap.put("%timezone%", MiscUtils.getTimeZoneOffsetHours()); replaceMap.put("timezone", MiscUtils.getTimeZoneOffsetHours());
// Html Theme colors // Html Theme colors
String[] colors = new String[]{Settings.HCOLOR_MAIN.toString(), Settings.HCOLOR_MAIN_DARK.toString(), Settings.HCOLOR_SEC.toString(), Settings.HCOLOR_TER.toString(), Settings.HCOLOR_TER_DARK.toString()}; String[] colors = new String[]{Settings.HCOLOR_MAIN.toString(), Settings.HCOLOR_MAIN_DARK.toString(), Settings.HCOLOR_SEC.toString(), Settings.HCOLOR_TER.toString(), Settings.HCOLOR_TER_DARK.toString()};
@ -71,17 +71,17 @@ public class PlaceholderUtils {
public static Map<String, Serializable> getInspectReplaceRules(UserData data) { public static Map<String, Serializable> getInspectReplaceRules(UserData data) {
HashMap<String, Serializable> replaceMap = new HashMap<>(); HashMap<String, Serializable> replaceMap = new HashMap<>();
replaceMap.put("%timezone%", MiscUtils.getTimeZoneOffsetHours()); replaceMap.put("timezone", MiscUtils.getTimeZoneOffsetHours());
boolean showIPandUUID = Settings.SECURITY_IP_UUID.isTrue(); boolean showIPandUUID = Settings.SECURITY_IP_UUID.isTrue();
UUID uuid = data.getUuid(); UUID uuid = data.getUuid();
replaceMap.put("%uuid%", (showIPandUUID ? uuid.toString() : "Hidden (Config)")); replaceMap.put("uuid", (showIPandUUID ? uuid.toString() : "Hidden (Config)"));
replaceMap.put("%lastseen%", FormatUtils.formatTimeStampYear(data.getLastPlayed())); replaceMap.put("lastseen", FormatUtils.formatTimeStampYear(data.getLastPlayed()));
replaceMap.put("%logintimes%", data.getLoginTimes()); replaceMap.put("logintimes", data.getLoginTimes());
replaceMap.put("%geoloc%", data.getGeolocation()); replaceMap.put("geoloc", data.getGeolocation());
long now = MiscUtils.getTime(); long now = MiscUtils.getTime();
boolean isActive = AnalysisUtils.isActive(now, data.getLastPlayed(), data.getPlayTime(), data.getLoginTimes()); boolean isActive = AnalysisUtils.isActive(now, data.getLastPlayed(), data.getPlayTime(), data.getLoginTimes());
replaceMap.put("%active%", isActive ? Locale.get(Msg.HTML_ACTIVE).parse() : Locale.get(Msg.HTML_INACTIVE).parse()); replaceMap.put("active", isActive ? Locale.get(Msg.HTML_ACTIVE).parse() : Locale.get(Msg.HTML_INACTIVE).parse());
GamemodePart gmPart = new GamemodePart(); GamemodePart gmPart = new GamemodePart();
Map<String, Long> gmTimes = data.getGmTimes().getTimes(); Map<String, Long> gmTimes = data.getGmTimes().getTimes();
String[] gms = GMTimesTable.getGMKeyArray(); String[] gms = GMTimesTable.getGMKeyArray();
@ -94,32 +94,32 @@ public class PlaceholderUtils {
gmPart.analyse(); gmPart.analyse();
replaceMap.putAll(gmPart.getReplaceMap()); replaceMap.putAll(gmPart.getReplaceMap());
replaceMap.put("%ips%", showIPandUUID ? data.getIps().toString() : "Hidden (Config)"); replaceMap.put("ips", showIPandUUID ? data.getIps().toString() : "Hidden (Config)");
replaceMap.put("%nicknames%", HtmlUtils.removeXSS(HtmlUtils.swapColorsToSpan(data.getNicknames().toString()))); replaceMap.put("nicknames", HtmlUtils.removeXSS(HtmlUtils.swapColorsToSpan(data.getNicknames().toString())));
replaceMap.put("%name%", data.getName()); replaceMap.put("name", data.getName());
replaceMap.put("%registered%", FormatUtils.formatTimeStampYear(data.getRegistered())); replaceMap.put("registered", FormatUtils.formatTimeStampYear(data.getRegistered()));
replaceMap.put("%timeskicked%", data.getTimesKicked()); replaceMap.put("timeskicked", data.getTimesKicked());
replaceMap.put("%playtime%", FormatUtils.formatTimeAmount(data.getPlayTime())); replaceMap.put("playtime", FormatUtils.formatTimeAmount(data.getPlayTime()));
replaceMap.put("%banned%", data.isBanned() ? Locale.get(Msg.HTML_BANNED).parse() : ""); replaceMap.put("banned", data.isBanned() ? Locale.get(Msg.HTML_BANNED).parse() : "");
replaceMap.put("%op%", data.isOp() ? Locale.get(Msg.HTML_OP).parse() : ""); replaceMap.put("op", data.isOp() ? Locale.get(Msg.HTML_OP).parse() : "");
replaceMap.put("%isonline%", data.isOnline() ? Locale.get(Msg.HTML_ONLINE).parse() : Locale.get(Msg.HTML_OFFLINE).parse()); replaceMap.put("isonline", data.isOnline() ? Locale.get(Msg.HTML_ONLINE).parse() : Locale.get(Msg.HTML_OFFLINE).parse());
replaceMap.put("%deaths%", data.getDeaths()); replaceMap.put("deaths", data.getDeaths());
replaceMap.put("%playerkills%", data.getPlayerKills().size()); replaceMap.put("playerkills", data.getPlayerKills().size());
replaceMap.put("%mobkills%", data.getMobKills()); replaceMap.put("mobkills", data.getMobKills());
replaceMap.put("%sessionaverage%", FormatUtils.formatTimeAmount(MathUtils.averageLong(AnalysisUtils.transformSessionDataToLengths(data.getSessions())))); replaceMap.put("sessionaverage", FormatUtils.formatTimeAmount(MathUtils.averageLong(AnalysisUtils.transformSessionDataToLengths(data.getSessions()))));
replaceMap.put("%killstable%", KillsTableCreator.createKillsTable(data.getPlayerKills())); replaceMap.put("killstable", KillsTableCreator.createKillsTable(data.getPlayerKills()));
Plan plugin = Plan.getInstance(); Plan plugin = Plan.getInstance();
replaceMap.put("%version%", plugin.getDescription().getVersion()); replaceMap.put("version", plugin.getDescription().getVersion());
replaceMap.put("%playersgraphcolor%", Settings.HCOLOR_ACT_ONL.toString()); replaceMap.put("playersgraphcolor", Settings.HCOLOR_ACT_ONL.toString());
Set<SessionData> sessions = new HashSet<>(data.getSessions()); Set<SessionData> sessions = new HashSet<>(data.getSessions());
List<Long> lengths = AnalysisUtils.transformSessionDataToLengths(sessions); List<Long> lengths = AnalysisUtils.transformSessionDataToLengths(sessions);
replaceMap.put("%punchcardseries%", PunchCardGraphCreator.createDataSeries(sessions)); replaceMap.put("punchcardseries", PunchCardGraphCreator.createDataSeries(sessions));
replaceMap.put("%sessionlengthseries%", SessionLengthDistributionGraphCreator.createDataSeries(lengths)); replaceMap.put("sessionlengthseries", SessionLengthDistributionGraphCreator.createDataSeries(lengths));
replaceMap.put("%playersonlineseries%", PlayerActivityGraphCreator.buildSeriesDataStringSessions(sessions)); replaceMap.put("playersonlineseries", PlayerActivityGraphCreator.buildSeriesDataStringSessions(sessions));
WorldTimes worldTimes = data.getWorldTimes(); WorldTimes worldTimes = data.getWorldTimes();
replaceMap.put("%worldseries%", WorldPieCreator.createSeriesData(worldTimes.getTimes())); replaceMap.put("worldseries", WorldPieCreator.createSeriesData(worldTimes.getTimes()));
replaceMap.put("%worldtotal%", FormatUtils.formatTimeAmount(worldTimes.getTotal())); replaceMap.put("worldtotal", FormatUtils.formatTimeAmount(worldTimes.getTotal()));
String[] colors = new String[]{Settings.HCOLOR_MAIN.toString(), Settings.HCOLOR_MAIN_DARK.toString(), Settings.HCOLOR_SEC.toString(), Settings.HCOLOR_TER.toString(), Settings.HCOLOR_TER_DARK.toString()}; String[] colors = new String[]{Settings.HCOLOR_MAIN.toString(), Settings.HCOLOR_MAIN_DARK.toString(), Settings.HCOLOR_SEC.toString(), Settings.HCOLOR_TER.toString(), Settings.HCOLOR_TER_DARK.toString()};
String[] defaultCols = new String[]{"348e0f", "267F00", "5cb239", "89c471", "5da341"}; String[] defaultCols = new String[]{"348e0f", "267F00", "5cb239", "89c471", "5da341"};
@ -129,13 +129,13 @@ public class PlaceholderUtils {
} }
} }
long cacheTime = plugin.getInspectCache().getCacheTime(uuid); long cacheTime = plugin.getInspectCache().getCacheTime(uuid);
replaceMap.put("%refresh%", FormatUtils.formatTimeAmountDifference(cacheTime, now)); replaceMap.put("refresh", FormatUtils.formatTimeAmountDifference(cacheTime, now));
replaceMap.put("%refreshlong%", cacheTime); replaceMap.put("refreshlong", cacheTime);
replaceMap.put("%servername%", Settings.SERVER_NAME.toString()); replaceMap.put("servername", Settings.SERVER_NAME.toString());
String pluginsTabHtml = plugin.getHookHandler().getPluginsTabLayoutForInspect(); String pluginsTabHtml = plugin.getHookHandler().getPluginsTabLayoutForInspect();
Map<String, Serializable> additionalReplaceRules = plugin.getHookHandler().getAdditionalInspectReplaceRules(uuid); Map<String, Serializable> additionalReplaceRules = plugin.getHookHandler().getAdditionalInspectReplaceRules(uuid);
String replacedOnce = HtmlUtils.replacePlaceholders(pluginsTabHtml, additionalReplaceRules); String replacedOnce = HtmlUtils.replacePlaceholders(pluginsTabHtml, additionalReplaceRules);
replaceMap.put("%plugins%", HtmlUtils.replacePlaceholders(replacedOnce, additionalReplaceRules)); replaceMap.put("plugins", HtmlUtils.replacePlaceholders(replacedOnce, additionalReplaceRules));
return replaceMap; return replaceMap;
} }
} }

View File

@ -4,16 +4,16 @@ Analysis FAIL - No Data || Analyse | Analyse fehlgeschlagen, k
Analysis FAIL - No Players || Analyse | Analyse fehlgeschlagen, keine bekannten Spieler. Analysis FAIL - No Players || Analyse | Analyse fehlgeschlagen, keine bekannten Spieler.
Analysis - Fetch Phase || Analyse | Hole Daten... Analysis - Fetch Phase || Analyse | Hole Daten...
Analysis - Fetch Phase Start || Analyse | Suche nach verfügbaren Spieler... Analysis - Fetch Phase Start || Analyse | Suche nach verfügbaren Spieler...
Analysis - Complete || Analyse | Analyse vollständig. (dauerte REPLACE0ms) REPLACE1 Analysis - Complete || Analyse | Analyse vollständig. (dauerte ${0}ms) ${1}
Analysis - Begin Analysis || Analyse | Daten geholt (REPLACE0 Spieler, dauerte REPLACE1ms), beginne mit der Analyse der Daten... Analysis - Begin Analysis || Analyse | Daten geholt (${0} Spieler, dauerte ${1}ms), beginne mit der Analyse der Daten...
Analysis - Start || Analyse | Beginne die Analyse der Spieler Daten... Analysis - Start || Analyse | Beginne die Analyse der Spieler Daten...
>Constant - CMD Footer || §f» >Constant - CMD Footer || §f»
>Constant - List Ball || §7 •§2 >Constant - List Ball || §7 •§2
Cmd FAIL - No Data View || §e[Plan] Dieser Befehl kann nur benutzt werden wenn der WebServer oder das TextUI auf dem Server aktiviert ist. Cmd FAIL - No Data View || §e[Plan] Dieser Befehl kann nur benutzt werden wenn der WebServer oder das TextUI auf dem Server aktiviert ist.
Cmd FAIL - No Permission || §c[Plan] Du hast nicht die benötigte Berechtigung. Cmd FAIL - No Permission || §c[Plan] Du hast nicht die benötigte Berechtigung.
Cmd FAIL - Requires Arguments || §c[Plan] Dieser Befehl erfordert Argumente. REPLACE0 Cmd FAIL - Requires Arguments || §c[Plan] Dieser Befehl erfordert Argumente. ${0}
Cmd FAIL - Require only one Argument || §c[Plan] Der Befehl benötigt ein Argument. Cmd FAIL - Require only one Argument || §c[Plan] Der Befehl benötigt ein Argument.
Cmd FAIL - Timeout || §c[Plan] REPLACE0 Befehl ausgetimed! Mehr Infos unter '/plan status' und in der Serverkonsole. Cmd FAIL - Timeout || §c[Plan] ${0} Befehl ausgetimed! Mehr Infos unter '/plan status' und in der Serverkonsole.
Cmd FAIL - Unknown Username || §c[Plan] Der Spielername konnte in der Datenbank nicht gefunden werden. Cmd FAIL - Unknown Username || §c[Plan] Der Spielername konnte in der Datenbank nicht gefunden werden.
Cmd FAIL - Unseen Username || §c[Plan] Dieser Spieler war noch nie auf diesem Server. Cmd FAIL - Unseen Username || §c[Plan] Dieser Spieler war noch nie auf diesem Server.
Cmd FAIL - Invalid Username || §c[Plan] Dieser Spieler existiert nicht. Cmd FAIL - Invalid Username || §c[Plan] Dieser Spieler existiert nicht.
@ -40,7 +40,7 @@ Analysis NOTIFY - Temporary Disable || §eAnalyse wurde temporär aufgrund
Cmd - Click Me || Klick Mich Cmd - Click Me || Klick Mich
Cmd - Fetch Data || §f»§2 Hole Daten in den Cache... Cmd - Fetch Data || §f»§2 Hole Daten in den Cache...
Cmd - Link || §7 •§2 Link: §f Cmd - Link || §7 •§2 Link: §f
Cmd - No Results || §7 •§2 Keine Ergebnisse für §7REPLACE0§2. Cmd - No Results || §7 •§2 Keine Ergebnisse für §7${0}§2.
Cmd - Reload Success || §a[Plan] Reload abgeschlossen. Cmd - Reload Success || §a[Plan] Reload abgeschlossen.
Cmd - Results || §7 Übereinstimmender Spieler: §f Cmd - Results || §7 Übereinstimmender Spieler: §f
Cmd - Searching || §f»§2Suchen... Cmd - Searching || §f»§2Suchen...
@ -75,16 +75,16 @@ Enable || Player Analytics aktiviert.
Enable - Boot Analysis 30s Notify || Analyse | Boot Analyse in 30 Sekunden... Enable - Boot Analysis 30s Notify || Analyse | Boot Analyse in 30 Sekunden...
Enable - Boot Analysis Notify || Analyse | Starte Boot Analyse... Enable - Boot Analysis Notify || Analyse | Starte Boot Analyse...
Enable Db FAIL - Disable Info || Datenbank Initialisierung fehlgeschlagen, deaktiviere Plan. Enable Db FAIL - Disable Info || Datenbank Initialisierung fehlgeschlagen, deaktiviere Plan.
Enable - Db Info || REPLACE0-Datenbank Verbindung hergestellt. Enable - Db Info || ${0}-Datenbank Verbindung hergestellt.
Enable - Db || Datenbank Initialisierung... Enable - Db || Datenbank Initialisierung...
Enable FAIL-Db || REPLACE0-Datenbank Verbindung fehlgeschlagen: REPLACE1 Enable FAIL-Db || ${0}-Datenbank Verbindung fehlgeschlagen: ${1}
Enable FAIL - Wrong Db Type || Dieser Datenbank Typ existiert nicht. Enable FAIL - Wrong Db Type || Dieser Datenbank Typ existiert nicht.
Enable Notify - ChatListener || §eChataufzeichnung deaktiviert, die Information der Nicknamen ist nicht akkurat. Enable Notify - ChatListener || §eChataufzeichnung deaktiviert, die Information der Nicknamen ist nicht akkurat.
Enable Notify - Disabled CommandListener || §eBefehlsaufzeichnung deaktiviert. Enable Notify - Disabled CommandListener || §eBefehlsaufzeichnung deaktiviert.
Enable Notify - Disabled DeathListener || §eTodesaufzeichnung deaktiviert, Spieler & Mob Kills werden nicht aufgezeichnet. Enable Notify - Disabled DeathListener || §eTodesaufzeichnung deaktiviert, Spieler & Mob Kills werden nicht aufgezeichnet.
Enable Notify - No data view || §eWebserver deaktiviert, aber es wird keine alternative IP benutzt, sodass Daten nicht angezeigt werden können! Enable Notify - No data view || §eWebserver deaktiviert, aber es wird keine alternative IP benutzt, sodass Daten nicht angezeigt werden können!
Enable - WebServer || Initialisiere Webserver... Enable - WebServer || Initialisiere Webserver...
Enable - WebServer Info || Webserver läuft auf PORT REPLACE0 Enable - WebServer Info || Webserver läuft auf PORT ${0}
Html - Active || Spieler ist aktiv Html - Active || Spieler ist aktiv
Html - Banned || | <span class="darkred">Gesperrt</span> Html - Banned || | <span class="darkred">Gesperrt</span>
Html - Inactive || Spieler ist inaktiv Html - Inactive || Spieler ist inaktiv
@ -93,7 +93,7 @@ Html - Offline || | <span class="darkred">Offline</sp
Html - Online || | <span class="darkgreen">Online</span> Html - Online || | <span class="darkgreen">Online</span>
Html - OP || , Operator (Op) Html - OP || , Operator (Op)
Html - Table No Kills || Keine Kills Html - Table No Kills || Keine Kills
Manage FAIL - Confirm Action || §c[Plan] Füge -a hinzu um den Befehl zu bestätigen! REPLACE0 Manage FAIL - Confirm Action || §c[Plan] Füge -a hinzu um den Befehl zu bestätigen! ${0}
Manage FAIL - Faulty DB Connection || §c[Plan] Eine der Datenbanken wurde nicht richtig initialisiert. Manage FAIL - Faulty DB Connection || §c[Plan] Eine der Datenbanken wurde nicht richtig initialisiert.
Manage FAIL - Backup File Not Found || §c[Plan] Sicherheitskopie existiert nicht! Manage FAIL - Backup File Not Found || §c[Plan] Sicherheitskopie existiert nicht!
Manage FAIL - Incorrect DB || §c[Plan] Falsche Datenbank! (SQlite/MySQL wird unterstützt): Manage FAIL - Incorrect DB || §c[Plan] Falsche Datenbank! (SQlite/MySQL wird unterstützt):
@ -107,11 +107,11 @@ Manage - Copy Success || §a[Plan] Alle Daten wurden erfolgr
Manage - Process Fail || §c[Plan] Irgendwas lief schief während die Daten verarbeitet wurden! Manage - Process Fail || §c[Plan] Irgendwas lief schief während die Daten verarbeitet wurden!
Manage - Import || §f» §2 Importiere Daten... Manage - Import || §f» §2 Importiere Daten...
Manage - Move Success || §a[Plan] Alle Daten wurden erfolgreich verschoben! Manage - Move Success || §a[Plan] Alle Daten wurden erfolgreich verschoben!
Manage - Remove Success || §f» §2Daten von §fREPLACE0§2 wurden aus dieser Datenbank entfernt §fREPLACE1§2. Manage - Remove Success || §f» §2Daten von §f${0}§2 wurden aus dieser Datenbank entfernt §f${1}§2.
Manage - Start || Ȥ7 Verarbeite Daten... Manage - Start || Ȥ7 Verarbeite Daten...
Manage - Success || §f» §2 Erfolgreich! Manage - Success || §f» §2 Erfolgreich!
Manage NOTIFY - Overwrite || Daten in REPLACE0-Datenbank werden überschrieben! Manage NOTIFY - Overwrite || Daten in ${0}-Datenbank werden überschrieben!
Manage NOTIFY - Partial Overwrite || Einige Daten in REPLACE0-Datenbank werden überschrieben! Manage NOTIFY - Partial Overwrite || Einige Daten in ${0}-Datenbank werden überschrieben!
Manage NOTIFY - Remove || Daten in REPLACE0-Datenbank werden entfernt! Manage NOTIFY - Remove || Daten in ${0}-Datenbank werden entfernt!
Manage NOTIFY - Rewrite || Daten in REPLACE0-Datenbank werden neu geschrieben! Manage NOTIFY - Rewrite || Daten in ${0}-Datenbank werden neu geschrieben!
WARN - Too Small Queue Size || Warteschlagengröße ist zu klein! (REPLACE0), änder diese Einstellung zu einer höheren! (Derzeit REPLACE1) WARN - Too Small Queue Size || Warteschlagengröße ist zu klein! (${0}), änder diese Einstellung zu einer höheren! (Derzeit ${1})

View File

@ -4,16 +4,16 @@ Analysis FAIL - No Data || Analyysi | Analyysi ei onnistunut,
Analysis FAIL - No Players || Analyysi | Analyysi ei onnistunut, Ei tunnettuja pelaajia Analysis FAIL - No Players || Analyysi | Analyysi ei onnistunut, Ei tunnettuja pelaajia
Analysis - Fetch Phase || Analyysi | Haetaan Dataa.. Analysis - Fetch Phase || Analyysi | Haetaan Dataa..
Analysis - Fetch Phase Start || Analyysi | Tarkistetaan saatavilla olevia pelaajia.. Analysis - Fetch Phase Start || Analyysi | Tarkistetaan saatavilla olevia pelaajia..
Analysis - Complete || Analyysi | Analyysi Valmis. (meni REPLACE0ms) REPLACE1 Analysis - Complete || Analyysi | Analyysi Valmis. (meni ${0}ms) ${1}
Analysis - Begin Analysis || Analyysi | Data Haettu (REPLACE0 käyttäjää, meni REPLACE1ms), aloitetaan Datan analysointi.. Analysis - Begin Analysis || Analyysi | Data Haettu (${0} käyttäjää, meni ${1}ms), aloitetaan Datan analysointi..
Analysis - Start || Analyysi | Aloitetaan Analyysi.. Analysis - Start || Analyysi | Aloitetaan Analyysi..
>Constant - CMD Footer || §f» >Constant - CMD Footer || §f»
>Constant - List Ball || §7 •§2 >Constant - List Ball || §7 •§2
Cmd FAIL - No Data View || §e[Plan] Dataa ei voida näyttää. Cmd FAIL - No Data View || §e[Plan] Dataa ei voida näyttää.
Cmd FAIL - No Permission || §c[Plan] Sinulla ei ole lupaa tähän komentoon. Cmd FAIL - No Permission || §c[Plan] Sinulla ei ole lupaa tähän komentoon.
Cmd FAIL - Requires Arguments || §c[Plan] Komento tarvitsee argumentteja. REPLACE0 Cmd FAIL - Requires Arguments || §c[Plan] Komento tarvitsee argumentteja. ${0}
Cmd FAIL - Require only one Argument || §c[Plan] Komento tarvitsee yhden argumentin. Cmd FAIL - Require only one Argument || §c[Plan] Komento tarvitsee yhden argumentin.
Cmd FAIL - Timeout || §c[Plan] REPLACE0 komento aikakatkaistu! Tarkista '/plan status' & konsoli. Cmd FAIL - Timeout || §c[Plan] ${0} komento aikakatkaistu! Tarkista '/plan status' & konsoli.
Cmd FAIL - Unknown Username || §c[Plan] Pelaajaa ei löytynyt tietokannasta Cmd FAIL - Unknown Username || §c[Plan] Pelaajaa ei löytynyt tietokannasta
Cmd FAIL - Unseen Username || §c[Plan] Pelaaja ei ole pelannut palvelimella. Cmd FAIL - Unseen Username || §c[Plan] Pelaaja ei ole pelannut palvelimella.
Cmd FAIL - Invalid Username || §c[Plan] Pelaajaa ei ole olemassa. Cmd FAIL - Invalid Username || §c[Plan] Pelaajaa ei ole olemassa.
@ -40,7 +40,7 @@ Analysis NOTIFY - Temporary Disable || §eAnalyysi poistettu käytöstä t
Cmd - Click Me || Klikkaa minua Cmd - Click Me || Klikkaa minua
Cmd - Fetch Data || §f»§2 Haetaan tietoja välimuistiin.. Cmd - Fetch Data || §f»§2 Haetaan tietoja välimuistiin..
Cmd - Link || §7 • §2Linkki: §f Cmd - Link || §7 • §2Linkki: §f
Cmd - No Results || §7 • §2Ei tuloksia hakusanalle §7REPLACE0§2. Cmd - No Results || §7 • §2Ei tuloksia hakusanalle §7${0}§2.
Cmd - Reload Success || §a[Plan] Uudelleenkäynnistys Valmis. Cmd - Reload Success || §a[Plan] Uudelleenkäynnistys Valmis.
Cmd - Results || §7 Sopivat pelaajat: §f Cmd - Results || §7 Sopivat pelaajat: §f
Cmd - Searching || §f»§2Haetaaan.. Cmd - Searching || §f»§2Haetaaan..
@ -75,9 +75,9 @@ Enable || Player Analytics Enabled.
Enable - Boot Analysis 30s Notify || Analyysi | Käynnistyksen yhteinen analyysi 30 sekunnin kuluttua.. Enable - Boot Analysis 30s Notify || Analyysi | Käynnistyksen yhteinen analyysi 30 sekunnin kuluttua..
Enable - Boot Analysis Notify || Analysis | Aloitetaan Käynnistyksen yhteinen analyysi.. Enable - Boot Analysis Notify || Analysis | Aloitetaan Käynnistyksen yhteinen analyysi..
Enable Db FAIL - Disable Info || Database initialization has failed, disabling Plan. Enable Db FAIL - Disable Info || Database initialization has failed, disabling Plan.
Enable - Db Info || REPLACE0-tietokantayhteys onnistui. Enable - Db Info || ${0}-tietokantayhteys onnistui.
Enable - Db || Tietokannan käynnistys.. Enable - Db || Tietokannan käynnistys..
Enable FAIL-Db || REPLACE0-Database Connection failed: REPLACE1 Enable FAIL-Db || ${0}-Database Connection failed: ${1}
Enable FAIL - Wrong Db Type || Tietokantatyyppiä ei ole olemassa Enable FAIL - Wrong Db Type || Tietokantatyyppiä ei ole olemassa
Enable Notify - ChatListener || §eViestien kuuntelu pois käytöstä, nimi tieto voi olla väärin. Enable Notify - ChatListener || §eViestien kuuntelu pois käytöstä, nimi tieto voi olla väärin.
Enable Notify - Disabled CommandListener || §eKomentojen kuuntelu pois käytöstä. Enable Notify - Disabled CommandListener || §eKomentojen kuuntelu pois käytöstä.
@ -85,7 +85,7 @@ Enable Notify - Disabled DeathListener || §eKuolema kuuntelu pois käytöst
Enable Notify-Empty IP || §eIP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given! Enable Notify-Empty IP || §eIP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given!
Enable Notify - No data view || §eNetti Palvelin Poissa käytöstä, mutta Alternative IP/TextUI ei ole käytössä, dataa ei voi tarkastella! Enable Notify - No data view || §eNetti Palvelin Poissa käytöstä, mutta Alternative IP/TextUI ei ole käytössä, dataa ei voi tarkastella!
Enable - WebServer || Käynnistetään Netti Palvelin.. Enable - WebServer || Käynnistetään Netti Palvelin..
Enable - WebServer Info || Netti Palvelin pyörii PORTILLA REPLACE0 Enable - WebServer Info || Netti Palvelin pyörii PORTILLA ${0}
Html - Active || Pelaaja on aktiivinen Html - Active || Pelaaja on aktiivinen
Html - Banned || | <span class="darkred">Pannassa</span> Html - Banned || | <span class="darkred">Pannassa</span>
Html - Inactive || Pelaaja ei ole aktiivinen Html - Inactive || Pelaaja ei ole aktiivinen
@ -94,7 +94,7 @@ Html - Offline || | <span class="darkred">Offline</sp
Html - Online || | <span class="darkgreen">Online</span> Html - Online || | <span class="darkgreen">Online</span>
Html - OP || , Operaattori (Op) Html - OP || , Operaattori (Op)
Html - Table No Kills || Ei tappoja Html - Table No Kills || Ei tappoja
Manage FAIL - Confirm Action || §c[Plan] Lisää -a vahvistaaksesi! REPLACE0 Manage FAIL - Confirm Action || §c[Plan] Lisää -a vahvistaaksesi! ${0}
Manage FAIL - Faulty DB Connection || §c[Plan] Toinen tietokannoista ei käynnistynyt odotetusti. Manage FAIL - Faulty DB Connection || §c[Plan] Toinen tietokannoista ei käynnistynyt odotetusti.
Manage FAIL - Backup File Not Found || §c[Plan] Varmuuskopiota ei ole olemassa! Manage FAIL - Backup File Not Found || §c[Plan] Varmuuskopiota ei ole olemassa!
Manage FAIL - Incorrect DB || §c[Plan] Väärä tietokanta! (sqlite/mysql hyväksytään): Manage FAIL - Incorrect DB || §c[Plan] Väärä tietokanta! (sqlite/mysql hyväksytään):
@ -108,11 +108,11 @@ Manage - Copy Success || §a[Plan] Kaikki tiedot kopioitu on
Manage - Process Fail || §c[Plan] Jokin meni vikaan dataa käsitellessä! Manage - Process Fail || §c[Plan] Jokin meni vikaan dataa käsitellessä!
Manage - Import || §f» §2 Tuodaan Dataa.. Manage - Import || §f» §2 Tuodaan Dataa..
Manage - Move Success || §a[Plan] Kaikki data siirretty onnistuneesti! Manage - Move Success || §a[Plan] Kaikki data siirretty onnistuneesti!
Manage - Remove Success || §f» §fREPLACE0:n§2 data poistettiin tietokannasta §fREPLACE1§2. Manage - Remove Success || §f» §f${0}:n§2 data poistettiin tietokannasta §f${1}§2.
Manage - Start || »§7 Käsitellään Dataa.. Manage - Start || »§7 Käsitellään Dataa..
Manage - Success || §f» §2 Onnistui! Manage - Success || §f» §2 Onnistui!
Manage NOTIFY - Overwrite || Tiedot REPLACE0-tietokannassa ylikirjoitetaan! Manage NOTIFY - Overwrite || Tiedot ${0}-tietokannassa ylikirjoitetaan!
Manage NOTIFY - Partial Overwrite || Osa tiedoista REPLACE0-tietokannassa ylikirjoitetaan! Manage NOTIFY - Partial Overwrite || Osa tiedoista ${0}-tietokannassa ylikirjoitetaan!
Manage NOTIFY - Remove || Tiedot REPLACE0-tietokannassa poistetaan! Manage NOTIFY - Remove || Tiedot ${0}-tietokannassa poistetaan!
Manage NOTIFY - Rewrite || Tiedot REPLACE0-tietokannassa uudelleenkirjoitetaan! Manage NOTIFY - Rewrite || Tiedot ${0}-tietokannassa uudelleenkirjoitetaan!
WARN - Too Small Queue Size || Queue size is too small! (REPLACE0), change the setting to a higher number! (Currently REPLACE1) WARN - Too Small Queue Size || Queue size is too small! (${0}), change the setting to a higher number! (Currently ${1})

View File

@ -28,7 +28,7 @@ public class HtmlTest {
@Test @Test
public void testParseWithZeroArgs() { public void testParseWithZeroArgs() {
Html instance = Html.SPAN; Html instance = Html.SPAN;
String expResult = "REPLACE0</span>"; String expResult = "${0}</span>";
String result = instance.parse(); String result = instance.parse();
assertEquals(expResult, result); assertEquals(expResult, result);
} }