From 0012ecf70667cf749a8c0628387a66ed8340e18d Mon Sep 17 00:00:00 2001 From: SamB440 Date: Sat, 9 Oct 2021 20:43:42 +0100 Subject: [PATCH] Auto-add translation key if it does not exist --- .../rpgregions/requirements/PreventType.java | 12 +++--------- .../rpgregions/translation/Translations.java | 12 ++++++++++-- api/src/main/resources/lang/en_gb.yml | 3 ++- .../rpgregions/RPGRegionsIntegration.java | 1 + 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java index 6c489a5..875ccf0 100644 --- a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java +++ b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java @@ -14,15 +14,9 @@ public enum PreventType { if (event.getTo() == null) return; Player player = event.getPlayer(); switch (this) { - case TELEPORT: - PaperLib.teleportAsync(player, event.getFrom()); - break; - case PUSH: - player.setVelocity(event.getTo().toVector().subtract(event.getFrom().toVector()).multiply(-3)); - break; - case CANCEL: - event.setCancelled(true); - break; + case TELEPORT -> PaperLib.teleportAsync(player, event.getFrom()); + case PUSH -> player.setVelocity(event.getTo().toVector().subtract(event.getFrom().toVector()).multiply(-3)); + case CANCEL -> event.setCancelled(true); } player.spawnParticle(Particle.BARRIER, event.getTo().getBlock().getLocation().add(0.5, 0.5, 0.5), 1); } diff --git a/api/src/main/java/net/islandearth/rpgregions/translation/Translations.java b/api/src/main/java/net/islandearth/rpgregions/translation/Translations.java index ba526ed..f6ceb39 100644 --- a/api/src/main/java/net/islandearth/rpgregions/translation/Translations.java +++ b/api/src/main/java/net/islandearth/rpgregions/translation/Translations.java @@ -11,6 +11,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -32,7 +33,8 @@ public enum Translations { EXIT_LORE("&fExit the GUI", true), CANNOT_ENTER("&cYou require %0 to enter this area."), COOLDOWN("&cThat is currently on cooldown."), - REGION_ENTER_ACTIONBAR("&a%0"); + REGION_ENTER_ACTIONBAR("&a%0"), + TEST("test"); private final String defaultValue; private final boolean isList; @@ -122,8 +124,14 @@ public enum Translations { FileConfiguration config = YamlConfiguration.loadConfiguration(file); for (Translations key : values()) { if (config.get(key.toString().toLowerCase()) == null) { + config.set(key.toString().toLowerCase(), key.defaultValue); + try { + config.save(file); + } catch (IOException e) { + e.printStackTrace(); + } plugin.getLogger().warning("No value in translation file for key " - + key.toString() + " was found. Regenerate language files?"); + + key + " was found. We will attempt to fix this. Otherwise, try to regenerate language files?"); } } } diff --git a/api/src/main/resources/lang/en_gb.yml b/api/src/main/resources/lang/en_gb.yml index aee1440..da902a8 100644 --- a/api/src/main/resources/lang/en_gb.yml +++ b/api/src/main/resources/lang/en_gb.yml @@ -22,4 +22,5 @@ next_page_lore: exit_lore: - "&fExit the GUI" cooldown: "&cThat is currently on cooldown." -region_enter_actionbar: "&a%0" \ No newline at end of file +region_enter_actionbar: "&a%0" +test: "test" \ No newline at end of file diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java index 704b621..090c181 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java @@ -38,6 +38,7 @@ public class RPGRegionsIntegration implements IntegrationManager { public RPGRegionsIntegration(IRPGRegionsAPI plugin) { this.plugin = plugin; this.regions = new HashMap<>(); + // Register command completions and command, it's here because we only want it to enable if enabled. if (plugin instanceof RPGRegions rpgRegions) { rpgRegions.getCommandManager().getCommandContexts().registerContext(RPGRegionsRegion.class, context -> { String id = context.popFirstArg();