diff --git a/varo/src/main/java/de/cliffbreak/varo/Varo.java b/varo/src/main/java/de/cliffbreak/varo/Varo.java index b385835..cb80ed0 100644 --- a/varo/src/main/java/de/cliffbreak/varo/Varo.java +++ b/varo/src/main/java/de/cliffbreak/varo/Varo.java @@ -30,6 +30,7 @@ import de.cliffbreak.varo.managers.GameTimeManager; import de.cliffbreak.varo.managers.NPCManager; import de.cliffbreak.varo.managers.TeamManager; import de.cliffbreak.varo.utils.BanUtils; +import de.cliffbreak.varo.utils.LangUtils; import de.cliffbreak.varo.utils.MessageUtils; import de.cliffbreak.varo.utils.PlayerCache; import de.cliffbreak.varo.utils.PlayerUtils; @@ -50,6 +51,7 @@ public class Varo extends JavaPlugin { private GameTimeManager gameTimeManager; private PlayerUtils playerUtils; private BorderManager borderManager; + private LangUtils langUtils; private boolean canCreatePortal = false; @@ -71,6 +73,7 @@ public class Varo extends JavaPlugin { this.gameTimeManager = new GameTimeManager(this); this.playerUtils = new PlayerUtils(this); this.borderManager = new BorderManager(this); + this.langUtils = new LangUtils(); this.config.addDefault("Varo.Start", 1590393600000f); this.config.addDefault("Varo.Debug", false); @@ -89,14 +92,14 @@ public class Varo extends JavaPlugin { this.getServer().getPluginManager().registerEvents(new PlayerLoginListener(this), this); this.getServer().getPluginManager().registerEvents(new PlayerJoinQuitListener(this), this); this.getServer().getPluginManager().registerEvents(new PlayerClientOptionsChangeListener(this), this); - this.getServer().getPluginManager().registerEvents(new PlayerResourcePackStatusListener(), this); + this.getServer().getPluginManager().registerEvents(new PlayerResourcePackStatusListener(this), this); this.getServer().getPluginManager().registerEvents(new ChatListener(this), this); this.getServer().getPluginManager().registerEvents(new EntityRegainHealthListener(this), this); this.getServer().getPluginManager().registerEvents(new PlayerDeathListener(this), this); - this.getServer().getPluginManager().registerEvents(new BannedItemListener(), this); + this.getServer().getPluginManager().registerEvents(new BannedItemListener(this), this); this.getServer().getPluginManager().registerEvents(new BannedActionListener(this), this); this.getServer().getPluginManager().registerEvents(new PlayerInteractNPCListener(this), this); - this.getServer().getPluginManager().registerEvents(new InventoryClickListener(), this); + this.getServer().getPluginManager().registerEvents(new InventoryClickListener(this), this); this.getCommand("varo").setExecutor(new VaroCommand(this)); this.getCommand("varo").setTabCompleter(new VaroTabCompleter(this)); @@ -180,4 +183,8 @@ public class Varo extends JavaPlugin { public BorderManager getBorderManager() { return this.borderManager; } + + public LangUtils getLangUtils() { + return this.langUtils; + } } diff --git a/varo/src/main/java/de/cliffbreak/varo/commands/CoordsCommand.java b/varo/src/main/java/de/cliffbreak/varo/commands/CoordsCommand.java index 3c126d1..c3b8f08 100644 --- a/varo/src/main/java/de/cliffbreak/varo/commands/CoordsCommand.java +++ b/varo/src/main/java/de/cliffbreak/varo/commands/CoordsCommand.java @@ -41,7 +41,7 @@ public class CoordsCommand implements CommandExecutor { }.runTaskTimerAsynchronously(this.plugin, 0, 20)); } } else { - sender.sendMessage("§c§lFehler:§r§c Dieses Kommando kann nur durch einen Spieler ausgeführt werden."); + sender.sendMessage(this.plugin.getLangUtils().get("Error.NoPlayer")); } return true; } diff --git a/varo/src/main/java/de/cliffbreak/varo/commands/VaroCommand.java b/varo/src/main/java/de/cliffbreak/varo/commands/VaroCommand.java index 37f11bc..bb0803b 100644 --- a/varo/src/main/java/de/cliffbreak/varo/commands/VaroCommand.java +++ b/varo/src/main/java/de/cliffbreak/varo/commands/VaroCommand.java @@ -14,7 +14,6 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryCloseEvent.Reason; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import org.bukkit.scheduler.BukkitRunnable; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; diff --git a/varo/src/main/java/de/cliffbreak/varo/discord/listeners/MessageListener.java b/varo/src/main/java/de/cliffbreak/varo/discord/listeners/MessageListener.java index 9cf8e0e..1b20204 100644 --- a/varo/src/main/java/de/cliffbreak/varo/discord/listeners/MessageListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/discord/listeners/MessageListener.java @@ -48,7 +48,8 @@ public class MessageListener extends ListenerAdapter { final String id = message.getMentionedMembers().get(0).getId(); final String uuid = this.plugin.getTeamManager().getPlayerByDiscordId(id); final int kills = this.plugin.getDatabase().getKills(uuid); - channel.sendMessage("Der Spieler <@!" + id + "> hat momentan " + kills + " Kills.").queue(); + channel.sendMessage(this.plugin.getLangUtils().get("Discord.PlayerStats").replace("%id%", id) + .replace("%kills%", "" + kills)).queue(); } } } \ No newline at end of file diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/BannedActionListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/BannedActionListener.java index 4326118..3b7d313 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/BannedActionListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/BannedActionListener.java @@ -29,8 +29,7 @@ public class BannedActionListener implements Listener { if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { if (e.getClickedBlock().getType().equals(Material.OBSIDIAN) && e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.FLINT_AND_STEEL)) { - e.getPlayer() - .sendMessage("§cEin Nether-Portal kann nicht erzeugt werden.\n §rGehe hierzu in die Mitte."); + e.getPlayer().sendMessage(this.plugin.getLangUtils().get("Error.NetherPortalCreate")); } } } diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/BannedItemListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/BannedItemListener.java index fbbd430..82e9f44 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/BannedItemListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/BannedItemListener.java @@ -7,14 +7,22 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.inventory.InventoryClickEvent; +import de.cliffbreak.varo.Varo; + public class BannedItemListener implements Listener { + private final Varo plugin; + + public BannedItemListener(final Varo plugin) { + this.plugin = plugin; + } + @EventHandler public void onEntityPickupItem(final EntityPickupItemEvent e) { if (e.getEntity() instanceof Player) { final Material mat = e.getItem().getItemStack().getType(); if (isForbiddenMaterial(mat)) { - e.getEntity().sendMessage("§cVerbotenes Item wurde entfernt."); + e.getEntity().sendMessage(this.plugin.getLangUtils().get("Error.BannedItemPickup")); e.getItem().remove(); e.setCancelled(true); } @@ -27,7 +35,7 @@ public class BannedItemListener implements Listener { return; final Material mat = e.getCurrentItem().getType(); if (isForbiddenMaterial(mat)) { - e.getWhoClicked().sendMessage("§cVerbotenes Item kann nicht ins Inventar verschoben werden."); + e.getWhoClicked().sendMessage(this.plugin.getLangUtils().get("Error.BannedItemMove")); e.setCancelled(true); } } diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/InventoryClickListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/InventoryClickListener.java index d4bc8d1..1038cd9 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/InventoryClickListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/InventoryClickListener.java @@ -6,8 +6,16 @@ import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; +import de.cliffbreak.varo.Varo; + public class InventoryClickListener implements Listener { + private final Varo plugin; + + public InventoryClickListener(final Varo plugin) { + this.plugin = plugin; + } + @EventHandler public void onInventoryClick(final InventoryClickEvent e) { if (e.getInventory().getType().equals(InventoryType.BREWING)) { @@ -20,7 +28,7 @@ public class InventoryClickListener implements Listener { } else { e.setCancelled(true); - e.getWhoClicked().sendMessage("§cEs kann nur ein Heilungstrank gebraut werden."); + e.getWhoClicked().sendMessage(this.plugin.getLangUtils().get("Error.Brew")); } } } diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerDeathListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerDeathListener.java index efab556..307712e 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerDeathListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerDeathListener.java @@ -6,6 +6,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.scheduler.BukkitRunnable; import de.cliffbreak.varo.Varo; @@ -23,7 +24,7 @@ public class PlayerDeathListener implements Listener { new BukkitRunnable() { @Override public void run() { - e.getEntity().kickPlayer("§4Du bist gestorben.\n \n§cDamit bist du aus §eVaro§c ausgeschieden."); + e.getEntity().kickPlayer(plugin.getLangUtils().get("Service.BannedDead")); } }.runTaskLater(this.plugin, 20); final EntityDamageEvent damageCause = e.getEntity().getLastDamageCause(); @@ -39,54 +40,68 @@ public class PlayerDeathListener implements Listener { switch (damageCause.getCause()) { case BLOCK_EXPLOSION: // TNT - if (killer == null) { - e.setDeathMessage("Hier die Todesnachricht einfügen.."); - } else { - e.setDeathMessage("Hier die Todesnachricht einfügen.. mit " + killer + "."); - } + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.BLOCK_EXPLOSION)); break; case CONTACT: // Cactus + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.CONTACT)); break; case DROWNING: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.DROWNING)); break; case ENTITY_EXPLOSION: // Creeper + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.ENTITY_EXPLOSION)); break; case ENTITY_ATTACK: case ENTITY_SWEEP_ATTACK: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.ENTITY_ATTACK)); break; case FALL: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.FALL)); break; case FALLING_BLOCK: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.FALLING_BLOCK)); break; case FIRE: case FIRE_TICK: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.FIRE)); break; case HOT_FLOOR: // Magma Block + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.HOT_FLOOR)); break; case LAVA: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.LAVA)); break; case LIGHTNING: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.LIGHTNING)); break; case MAGIC: // Potion (should be impossible) + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.MAGIC)); break; case POISON: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.POISON)); break; case PROJECTILE: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.PROJECTILE)); break; case STARVATION: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.STARVATION)); break; case SUFFOCATION: // Border damage or sand/gravel + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.SUFFOCATION)); break; case THORNS: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.THORNS)); break; case VOID: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.VOID)); break; case WITHER: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.WITHER)); break; case CRAMMING: // Very rare so handle as default death case CUSTOM: // No custom damage provider so impossible @@ -96,6 +111,7 @@ public class PlayerDeathListener implements Listener { case MELTING: // No snowman so impossible case SUICIDE: // No access to /kill command default: + e.setDeathMessage(this.getDeathMessage(e.getEntity(), killer, DamageCause.CUSTOM)); // CUSTOM == default break; } @@ -109,4 +125,13 @@ public class PlayerDeathListener implements Listener { + this.plugin.getTeamManager().getDiscordIdByPlayer(e.getEntity()) + "> ist gestorben."); } + private String getDeathMessage(final Player victim, final Player killer, final DamageCause cause) { + if (killer == null) { + return this.plugin.getLangUtils().get("Death." + cause.toString()).replace("%player%", victim.getName()); + } else { + return this.plugin.getLangUtils().get("Death." + cause.toString() + "killer") + .replace("%player%", victim.getName()).replace("%killer%", killer.getName()); + } + } + } \ No newline at end of file diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerJoinQuitListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerJoinQuitListener.java index d8da8fc..5098c81 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerJoinQuitListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerJoinQuitListener.java @@ -49,8 +49,7 @@ public class PlayerJoinQuitListener implements Listener { this.plugin.getNPCManager().syncClones(e.getPlayer()); if (!this.plugin.getTeamManager().setTeam(e.getPlayer())) { - e.getPlayer().kickPlayer( - "§4§lFehler!\n \n§cDu bist keinem Team zugeordnet.\n \n§r§7Kontaktiere bitte die §f§l@Admins §r§7auf dem Discord-Server."); + e.getPlayer().kickPlayer(this.plugin.getLangUtils().get("Error.NoTeam")); return; } diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerLoginListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerLoginListener.java index a98d363..3c189fe 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerLoginListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerLoginListener.java @@ -18,9 +18,9 @@ public class PlayerLoginListener implements Listener { @EventHandler public void onPlayerLogin(final PlayerLoginEvent e) { if (this.plugin.getBanUtils().isBanned(e.getPlayer().getUniqueId())) { - e.disallow(Result.KICK_BANNED, "§4Du bist gestorben.\n \n§cDamit bist du aus §eVaro§c ausgeschieden."); + e.disallow(Result.KICK_BANNED, this.plugin.getLangUtils().get("Service.BannedDead")); } else if (!this.plugin.getGameTimeManager().canLogin()) { - e.disallow(Result.KICK_OTHER, "Außerhalb der Playtime"); + e.disallow(Result.KICK_OTHER, this.plugin.getLangUtils().get("Service.KickNoPlayTime")); } } } \ No newline at end of file diff --git a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerResourcePackStatusListener.java b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerResourcePackStatusListener.java index 95a8f4b..aae45fd 100644 --- a/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerResourcePackStatusListener.java +++ b/varo/src/main/java/de/cliffbreak/varo/listeners/PlayerResourcePackStatusListener.java @@ -5,16 +5,22 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerResourcePackStatusEvent; import org.bukkit.event.player.PlayerResourcePackStatusEvent.Status; +import de.cliffbreak.varo.Varo; + public class PlayerResourcePackStatusListener implements Listener { + private final Varo plugin; + + public PlayerResourcePackStatusListener(final Varo plugin) { + this.plugin = plugin; + } + @EventHandler public void onPlayerResourcePackStatus(PlayerResourcePackStatusEvent e) { if (e.getStatus().equals(Status.DECLINED)) { - e.getPlayer().kickPlayer( - "§4Du wurdest gekickt.\n \n§r§7Aktiviere §f§lRessourcepacks§r§7 in den\n§f§lServer-Einstellungen§r§7, um spielen zu können.\n \nBei Problemen kontaktiere die §f§l@Admins §r§7auf dem Discord-Server."); + e.getPlayer().kickPlayer(this.plugin.getLangUtils().get("Error.ResourcepackDeclined")); } else if (e.getStatus().equals(Status.FAILED_DOWNLOAD)) { - e.getPlayer().kickPlayer( - "§4Du wurdest gekickt.\n \n§r§7Das §f§lServer-Ressourcepack §r§7konnte\n§r§7nicht erfolgreich heruntergeladen werden.\n \nBitte versuche es erneut.\n \nBei Problemen kontaktiere die §f§l@Admins §r§7auf dem Discord-Server."); + e.getPlayer().kickPlayer(this.plugin.getLangUtils().get("Error.ResourcepackFailed")); } } diff --git a/varo/src/main/java/de/cliffbreak/varo/managers/BorderManager.java b/varo/src/main/java/de/cliffbreak/varo/managers/BorderManager.java index bf04dcc..1671133 100644 --- a/varo/src/main/java/de/cliffbreak/varo/managers/BorderManager.java +++ b/varo/src/main/java/de/cliffbreak/varo/managers/BorderManager.java @@ -40,8 +40,6 @@ public class BorderManager { } private void setBorderSize(final int size, final int time) { - System.out.println("Size: " + size); - System.out.println("Time: " + time); for (final World world : Bukkit.getWorlds()) { final Environment env = world.getEnvironment(); if (env.equals(Environment.THE_END)) @@ -65,9 +63,8 @@ public class BorderManager { size = size - 110; // 55*2 for both directions this.plugin.getConfig().set("Varo.Border.NextSize", size); this.plugin.saveConfig(); - this.plugin.getDiscordBot() - .broadcastMessage("@everyone In 30 Minuten geht es los!\nDie Border schrumpft heute auf " + size / 2 - + "x" + size / 2 + " Blöcke."); + this.plugin.getDiscordBot().broadcastMessage( + this.plugin.getLangUtils().get("Discord.BorderUpdate").replaceAll("%size%", "" + size / 2)); return curr.atZone(ZoneId.systemDefault()).toLocalDateTime(); } diff --git a/varo/src/main/java/de/cliffbreak/varo/managers/GameTimeManager.java b/varo/src/main/java/de/cliffbreak/varo/managers/GameTimeManager.java index 7280979..01bc1be 100644 --- a/varo/src/main/java/de/cliffbreak/varo/managers/GameTimeManager.java +++ b/varo/src/main/java/de/cliffbreak/varo/managers/GameTimeManager.java @@ -104,7 +104,7 @@ public class GameTimeManager { public void run() { if (isPlayTimeOver()) { for (final Player p : Bukkit.getOnlinePlayers()) { - p.kickPlayer("Spielzeit abgelaufen"); + p.kickPlayer(plugin.getLangUtils().get("Service.KickPlayTimeOver")); } this.cancel(); } diff --git a/varo/src/main/java/de/cliffbreak/varo/managers/NPCManager.java b/varo/src/main/java/de/cliffbreak/varo/managers/NPCManager.java index 8e2800c..55c2215 100644 --- a/varo/src/main/java/de/cliffbreak/varo/managers/NPCManager.java +++ b/varo/src/main/java/de/cliffbreak/varo/managers/NPCManager.java @@ -182,6 +182,7 @@ public class NPCManager { }.runTask(this.plugin); // Run Task in sync to be thread safe this.plugin.getBanUtils().addBan(npc.getUniqueID()); + // TODO: Bukkit.broadcastMessage("TODO: Player(" + "??" + ") killed AFK Player (" + npc.getName() + ")"); new BukkitRunnable() { diff --git a/varo/src/main/java/de/cliffbreak/varo/utils/LangUtils.java b/varo/src/main/java/de/cliffbreak/varo/utils/LangUtils.java new file mode 100644 index 0000000..b8c1f19 --- /dev/null +++ b/varo/src/main/java/de/cliffbreak/varo/utils/LangUtils.java @@ -0,0 +1,98 @@ +package de.cliffbreak.varo.utils; + +import java.io.File; +import java.io.IOException; + +import org.bukkit.configuration.file.YamlConfiguration; + +import de.cliffbreak.varo.Varo; + +public class LangUtils { + private final File file; + private final YamlConfiguration config; + + public LangUtils() { + this.file = new File("plugins/CliffbreakVaro", "lang.yml"); + this.config = YamlConfiguration.loadConfiguration(this.file); + + this.config.addDefault("Service.KickNoPlayTime", "Service.KickNoPlayTime"); + this.config.addDefault("Service.KickPlayTimeOver", "Service.KickPlayTimeOver"); + this.config.addDefault("Service.LoadingTitle", "Varo 2020"); + this.config.addDefault("Service.LoadingSubTitle", "Bitte warte, bis das Spiel geladen hat..."); + this.config.addDefault("Service.LoadingCountdown", "§r§l Noch: %02d:%02d"); + this.config.addDefault("Service.BannedDead", + "§4Du bist gestorben.\n \n§cDamit bist du aus §eVaro§c ausgeschieden."); + this.config.addDefault("Error.NoPlayer", + "§c§lFehler:§r§c Dieses Kommando kann nur durch einen Spieler ausgeführt werden."); + this.config.addDefault("Error.ResourcepackDeclined", + "§4Du wurdest gekickt.\n \n§r§7Aktiviere §f§lRessourcepacks§r§7 in den\n§f§lServer-Einstellungen§r§7, um spielen zu können.\n \nBei Problemen kontaktiere die §f§l@Admins §r§7auf dem Discord-Server."); + this.config.addDefault("Error.ResourcepackFailed", + "§4Du wurdest gekickt.\n \n§r§7Das §f§lServer-Ressourcepack §r§7konnte\n§r§7nicht erfolgreich heruntergeladen werden.\n \nBitte versuche es erneut.\n \nBei Problemen kontaktiere die §f§l@Admins §r§7auf dem Discord-Server."); + this.config.addDefault("Error.NoTeam", + "§4§lFehler!\n \n§cDu bist keinem Team zugeordnet.\n \n§r§7Kontaktiere bitte die §f§l@Admins §r§7auf dem Discord-Server."); + this.config.addDefault("Error.Brew", "§cEs kann nur ein Heilungstrank gebraut werden."); + this.config.addDefault("Error.BannedItemMove", + "§cVerbotenes Item kann nicht ins Inventar verschoben werden."); + this.config.addDefault("Error.BannedItemPickup", "§cVerbotenes Item wurde entfernt."); + this.config.addDefault("Error.NetherPortalCreate", + "§cEin Nether-Portal kann nicht erzeugt werden.\n §rGehe hierzu in die Mitte."); + this.config.addDefault("Discord.BorderUpdate", + "@everyone In 30 Minuten geht es los!\nDie Border schrumpft heute auf %size%x%size% Blöcke."); + this.config.addDefault("Discord.PlayerStats", "Der Spieler <@!%id%> hat momentan %kills% Kills."); + this.config.addDefault("Death.CUSTOM", "%player% ist gestorben."); + this.config.addDefault("Death.CUSTOMkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.BLOCK_EXPLOSION", "%player% ist explodiert."); + this.config.addDefault("Death.BLOCK_EXPLOSIONkiller", + "%player% ist im Kampf gegen %killer% explodiert."); + this.config.addDefault("Death.CONTACT", "%player% ist gestorben."); + this.config.addDefault("Death.CONTACTkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.DROWNING", "%player% ist ertrunken."); + this.config.addDefault("Death.DROWNINGkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.ENTITY_EXPLOSION", "%player% ist gestorben."); + this.config.addDefault("Death.ENTITY_EXPLOSIONkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.ENTITY_ATTACK", "%player% ist gestorben."); + this.config.addDefault("Death.ENTITY_ATTACKkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.FALL", "%player% ist gestorben."); + this.config.addDefault("Death.FALLkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.FALLING_BLOCK", "%player% ist gestorben."); + this.config.addDefault("Death.FALLING_BLOCKkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.FIRE", "%player% ist gestorben."); + this.config.addDefault("Death.FIREkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.HOT_FLOOR", "%player% ist gestorben."); + this.config.addDefault("Death.HOT_FLOORkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.LAVA", "%player% ist gestorben."); + this.config.addDefault("Death.LAVAkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.LIGHTNING", "%player% ist gestorben."); + this.config.addDefault("Death.LIGHTNINGkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.MAGIC", "%player% ist gestorben."); + this.config.addDefault("Death.MAGICkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.POISON", "%player% ist gestorben."); + this.config.addDefault("Death.POISONkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.PROJECTILE", "%player% ist gestorben."); + this.config.addDefault("Death.PROJECTILEkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.STARVATION", "%player% ist gestorben."); + this.config.addDefault("Death.STARVATIONkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.SUFFOCATION", "%player% ist gestorben."); + this.config.addDefault("Death.SUFFOCATIONkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.THORNS", "%player% ist gestorben."); + this.config.addDefault("Death.THORNSkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.VOID", "%player% ist gestorben."); + this.config.addDefault("Death.VOIDkiller", "%player% wurde von %killer% getötet."); + this.config.addDefault("Death.WITHER", "%player% ist gestorben."); + this.config.addDefault("Death.WITHERkiller", "%player% wurde von %killer% getötet."); + this.config.options().copyDefaults(true); + this.saveConfig(); + } + + public String get(final String path) { + return this.config.getString(path); + } + + private void saveConfig() { + try { + this.config.save(this.file); + } catch (final IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/varo/src/main/java/de/cliffbreak/varo/utils/PlayerUtils.java b/varo/src/main/java/de/cliffbreak/varo/utils/PlayerUtils.java index e9ccd73..1b75dab 100644 --- a/varo/src/main/java/de/cliffbreak/varo/utils/PlayerUtils.java +++ b/varo/src/main/java/de/cliffbreak/varo/utils/PlayerUtils.java @@ -37,8 +37,8 @@ public class PlayerUtils { p.setGameMode(GameMode.SPECTATOR); p.setFlying(true); p.setFlySpeed(0.0f); - final Title title = new Title("Varo 2020", "Bitte warte, bis das Spiel geladen hat...", 20, (seconds - 2) * 20, - 20); + final Title title = new Title(this.plugin.getLangUtils().get("Service.LoadingTitle"), + this.plugin.getLangUtils().get("Service.LoadingSubTitle"), 20, (seconds - 2) * 20, 20); p.sendTitle(title); p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, seconds * 20, 1, false, false)); @@ -59,8 +59,8 @@ public class PlayerUtils { this.cancel(); p.sendActionBar(""); } else { - p.sendActionBar( - String.format("§r§l Noch: %02d:%02d", (int) Math.floor(seconds / 60), seconds % 60)); + p.sendActionBar(String.format(plugin.getLangUtils().get("Service.LoadingCountdown"), + (int) Math.floor(seconds / 60), seconds % 60)); } } }.runTaskTimer(this.plugin, 0, 20);