mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-11-24 19:45:43 +01:00
184 lines
8.8 KiB
Java
184 lines
8.8 KiB
Java
package com.dre.dungeonsxl;
|
||
|
||
import java.io.File;
|
||
import java.io.IOException;
|
||
import java.util.Map;
|
||
import java.util.Set;
|
||
import java.util.TreeMap;
|
||
|
||
import org.bukkit.configuration.file.FileConfiguration;
|
||
import org.bukkit.configuration.file.YamlConfiguration;
|
||
|
||
public class LanguageReader {
|
||
private Map<String, String> entries = new TreeMap<String, String>();
|
||
private Map<String, String> defaults = new TreeMap<String, String>();
|
||
|
||
private File file;
|
||
private boolean changed;
|
||
|
||
public LanguageReader(File file) {
|
||
this.setDefaults();
|
||
|
||
/* Load */
|
||
this.file = file;
|
||
|
||
FileConfiguration configFile = YamlConfiguration.loadConfiguration(file);
|
||
|
||
Set<String> keySet = configFile.getKeys(false);
|
||
for (String key : keySet) {
|
||
entries.put(key, configFile.getString(key));
|
||
}
|
||
|
||
/* Check */
|
||
this.check();
|
||
}
|
||
|
||
private void setDefaults() {
|
||
|
||
/* Log */
|
||
defaults.put("Log_NewDungeon", "&6New Dungeon");
|
||
defaults.put("Log_GenerateNewWorld", "&6Generate new world...");
|
||
defaults.put("Log_WorldGenerationFinished", "&6World generation finished!");
|
||
defaults.put("Log_Error_MobEnchantment", "&4Error at loading mob.yml: Enchantmet &6&v1&4 doesn't exist!");
|
||
defaults.put("Log_Error_MobType", "&4Error at loading mob.yml: Mob &6&v1&4 doesn't exist!");
|
||
defaults.put("Log_Error_Spout", "&4Spout wurde nicht gefunden!");
|
||
defaults.put("Log_Error_Spout_Skin", "&4Der Spout Skin von &6&v1&4 ist kein png!");
|
||
defaults.put("Log_Error_NoConsoleCommand", "&6/dxl &v1&4 kann man nicht als Konsole ausf<73>hren!");
|
||
|
||
/* Player */
|
||
defaults.put("Player_CheckpointReached", "&6Checkpoint erreicht!");
|
||
defaults.put("Player_LootAdded", "&6Deinem Belohnungsinventar sind&4&v1&6 hinzugef<65>gt worden!");
|
||
defaults.put("Player_Ready", "&6Du bist nun bereit f<>r den Dungeon!");
|
||
defaults.put("Player_FinishedDungeon", "&6Du hast den Dungeon erfolgreich beendet!");
|
||
defaults.put("Player_WaitForOtherPlayers", "&6Noch auf Mitspieler warten...");
|
||
defaults.put("Player_LeaveGroup", "&6Du hast deine Gruppe erfolgreich verlassen!");
|
||
defaults.put("Player_Offline", "&6Spieler &4&v1&6 ging Offline. Er wird in &4&v2&6 Sekunden automatisch aus der Instanz geworfen!");
|
||
defaults.put("Player_OfflineNever", "&6Spieler &4&v1&6 ging Offline. Er wird &4nicht&6 automatisch aus der Instanz geworfen!");
|
||
defaults.put("Player_LeftGroup", "&6Spieler &4&v1&6 hat die Gruppe verlassen!");
|
||
defaults.put("Player_JoinGroup", "&6Spieler &4&v1&6 hat die Gruppe betreten!");
|
||
defaults.put("Player_PortalAbort", "&6Portal erstellen abgebrochen!");
|
||
defaults.put("Player_PortalIntroduction", "&6W<36>hle mit dem Holzschwert die zwei Eckpunkte des Portals!");
|
||
defaults.put("Player_PortalDeleted", "&6Portal gel<65>scht!");
|
||
defaults.put("Player_PortalProgress", "&6Erster Block gew<65>hlt, nun der zweite!");
|
||
defaults.put("Player_PortalCreated", "&6Portal erstellt!");
|
||
defaults.put("Player_SignCreated", "&6Schild erstellt!");
|
||
defaults.put("Player_SignCopied", "&6Kopiert!");
|
||
defaults.put("Player_BlockInfo", "&6Block-ID: &2&v1");
|
||
|
||
/* Cmds */
|
||
defaults.put("Cmd_Chat_DungeonChat", "&6Du bist nun im Dungeon-Chat");
|
||
defaults.put("Cmd_Chat_NormalChat", "&6Du bist nun im <20>ffentlichen Chat");
|
||
defaults.put("Cmd_Chatspy_Stopped", "&6Du hast aufgeh<65>rt den DXL-Chat auszusp<73>hen!");
|
||
defaults.put("Cmd_Chatspy_Start", "&Du hast begonnen den DXL-Chat auszusp<73>hen!");
|
||
defaults.put("Cmd_Invite_Success", "&6Spieler &4&v1&6 wurde erfolgreich eingeladen am Dungeon &4&v2&6 zu arbeiten!");
|
||
defaults.put("Cmd_Leave_Success", "&6Du hast deine Gruppe erfolgreich verlassen!");
|
||
defaults.put("Cmd_Msg_Added", "&6Neue Nachricht (&4&v1&6) hinzugef<65>gt!");
|
||
defaults.put("Cmd_Msg_Updated", "&6Nachricht (&4&v1&6) aktualisiert!");
|
||
defaults.put("Cmd_Reload_Start", "&6DungeonsXL wird neu geladen");
|
||
defaults.put("Cmd_Reload_Done", "&6DungeonsXL erfolgreich neu geladen!");
|
||
defaults.put("Cmd_Save_Success", "&6Dungeon erfolgreich gespeichert!");
|
||
defaults.put("Cmd_Uninvite_Success", "&4&v1&6 wurde erfolgreich ausgeladen an &4&v1&6 zu arbeiten!");
|
||
|
||
/* Errors */
|
||
defaults.put("Error_Enderchest", "&4Du kannst keine Enderchest in einem Dungeon verwenden!");
|
||
defaults.put("Error_Dispenser", "&4Du kannst nicht auf diesen Dispenser zugreifen!");
|
||
defaults.put("Error_Ready", "&4W<34>hle zuerst eine Klasse aus!");
|
||
defaults.put("Error_Cooldown", "&4Du kannst den Dungeon nur alle &6&v1&4 Stunden betreten!");
|
||
defaults.put("Error_Requirements", "&4Du erf<72>llst nicht die Anforderungen f<>r diesen Dungeon!");
|
||
defaults.put("Error_Leftklick", "&4Du musst das Schild mit Links-klick ber<65>hren!");
|
||
defaults.put("Error_Drop", "&4Du kannst keine sicheren Objekte droppen");
|
||
defaults.put("Error_Cmd", "&4Befehle sind w<>hrend des Dungeons nicht erlaubt!");
|
||
defaults.put("Error_NotInGroup", "&4Du musst zuerst einer Gruppe beitreten!");
|
||
defaults.put("Error_NoPermissions", "&4Du hast keine Erlaubnis dies zu tun!");
|
||
defaults.put("Error_CmdNotExist1", "&4Befehl &6&v1&4 existiert nicht!");
|
||
defaults.put("Error_CmdNotExist2", "&4Bitte gib &6/dxl help&4 f<>r Hilfe ein!");
|
||
defaults.put("Error_NotInDungeon", "&4Du bist in keinem Dungeon!");
|
||
defaults.put("Error_DungeonNotExist", "&4Dungeon &6&v1&4 existiert nicht!");
|
||
defaults.put("Error_LeaveDungeon", "&4Du musst zuerst den aktuellen Dungeon verlassen!");
|
||
defaults.put("Error_NameToLong", "&4Der Name darf nicht l<>nger sein als 15 Zeichen!");
|
||
defaults.put("Error_LeaveGroup", "&4Du musst zuerst deine Gruppe verlassen!");
|
||
defaults.put("Error_NoLeaveInTutorial", "&4Du kannst diesen Befehl nicht in einem Tutorial benutzen!");
|
||
defaults.put("Error_MsgIdNotExist", "&4Nachricht mit der Id &6&v1&4 existiert nicht!");
|
||
defaults.put("Error_MsgFormat", "&4Die Nachricht muss zwischen \" liegen!");
|
||
defaults.put("Error_MsgNoInt", "&4Parameter <id> muss eine Zahl beinhalten!");
|
||
defaults.put("Error_TutorialNotExist", "&4Tutorial Dungeon existiert nicht!");
|
||
defaults.put("Error_SpoutCraftOnly", "&4Du brauchst SpoutCraft um diesen Dungeon spielen zu k<>nnen!");
|
||
defaults.put("Error_NoPortal", "&4Du musst ein Portal anschauen!");
|
||
defaults.put("Error_NoPlayerCommand", "&6/dxl &v1&4 kann man nicht als Spieler ausf<73>hren!");
|
||
defaults.put("Error_SignWrongFormat", "&4 Das Schild ist nicht im richtigen Format!");
|
||
|
||
/* Help */
|
||
defaults.put("Help_Cmd_Chat", "/dxl chat - <20>ndert den Chat-Modus");
|
||
defaults.put("Help_Cmd_Chatspy", "/dxl chatspy - De/Aktiviert den Spioniermodus");
|
||
defaults.put("Help_Cmd_Create", "/dxl create <name> - Erstellt einen neuen Dungeon");
|
||
defaults.put("Help_Cmd_Edit", "/dxl edit <name> - Editiere einen existierenden Dungeon");
|
||
defaults.put("Help_Cmd_Help", "/dxl help - Zeigt die Hilfeseite an");
|
||
defaults.put("Help_Cmd_Invite", "/dxl invite <player> <dungeon> - Ladet einen Spieler dazu ein den Dungeon zu editieren");
|
||
defaults.put("Help_Cmd_Leave", "/dxl leave - Verl<72>sst den aktuellen Dungeon");
|
||
defaults.put("Help_Cmd_Escape", "/dxl escape - Verl<72>sst den Dungeon, ohne ihn zu speichern");
|
||
defaults.put("Help_Cmd_List", "/dxl list - Zeigt alle Dungeons an");
|
||
defaults.put("Help_Cmd_Msg", "/dxl msg <id> '[msg]' - Zeigt oder editiert eine Nachricht");
|
||
defaults.put("Help_Cmd_Portal", "/dxl portal - Erstellt ein Portal welches in Dungeons f<>hrt");
|
||
defaults.put("Help_Cmd_DeletePortal", "/dxl deleteportal - L<>scht das Portal welches du ansiehst");
|
||
defaults.put("Help_Cmd_Reload", "/dxl reload - Ladet das Plugin neu");
|
||
defaults.put("Help_Cmd_Save", "/dxl save - Speichert den aktuellen Dungeon");
|
||
defaults.put("Help_Cmd_Test", "/dxl test [dungeon] - Testet einen Dungeon");
|
||
defaults.put("Help_Cmd_Uninvite", "/dxl uninvite <player> <dungeon> - L<>dt einen Spieler aus den Dungeon zu editieren");
|
||
|
||
}
|
||
|
||
private void check() {
|
||
for (String defaultEntry : defaults.keySet()) {
|
||
if (!entries.containsKey(defaultEntry)) {
|
||
entries.put(defaultEntry, defaults.get(defaultEntry));
|
||
changed = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
public void save() {
|
||
if (changed) {
|
||
/* Copy old File */
|
||
File source = new File(file.getPath());
|
||
String filePath = file.getPath();
|
||
File temp = new File(filePath.substring(0, filePath.length() - 4) + "_old.yml");
|
||
|
||
if (temp.exists())
|
||
temp.delete();
|
||
|
||
source.renameTo(temp);
|
||
|
||
/* Save */
|
||
FileConfiguration configFile = new YamlConfiguration();
|
||
|
||
for (String key : entries.keySet()) {
|
||
configFile.set(key, entries.get(key));
|
||
}
|
||
|
||
try {
|
||
configFile.save(file);
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
|
||
public String get(String key, String... args) {
|
||
String entry = entries.get(key);
|
||
|
||
if (entry != null) {
|
||
int i = 0;
|
||
for (String arg : args) {
|
||
i++;
|
||
if(arg != null){
|
||
entry = entry.replace("&v" + i, arg);
|
||
} else {
|
||
entry = entry.replace("&v" + i, "null");
|
||
}
|
||
}
|
||
}
|
||
|
||
return entry;
|
||
}
|
||
}
|