diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java b/rpgregions/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java index efff93c..1f46c48 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java @@ -69,6 +69,10 @@ public class RegionListener implements Listener { if (canEffect) regionEffect.effect(player); }); + if (configuredRegion.alwaysShowTitles()) { + this.sendTitles(player, configuredRegion); + } + if (!has && configuredRegion.isDiscoverable()) { LocalDateTime date = LocalDateTime.now(); DateTimeFormatter format = DateTimeFormatter.ofPattern(plugin.getConfig().getString("settings.server.discoveries.date.format")); @@ -88,13 +92,7 @@ public class RegionListener implements Listener { String region = rde.getRegion(); if (plugin.getManagers().getRegionsCache().getConfiguredRegions().containsKey(region)) { ConfiguredRegion configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion(region); - List title = Translations.DISCOVERED_TITLE.getList(player, configuredRegion.getCustomName()); - List subtitle = Translations.DISCOVERED_SUBTITLE.getList(player, configuredRegion.getCustomName()); - new TitleAnimator(player, - plugin, - title, - subtitle, - plugin.getConfig().getInt("settings.server.discoveries.discovered.title.animation_speed")); + this.sendTitles(player, configuredRegion); if (configuredRegion.getSound() == null) { player.playSound( @@ -115,4 +113,14 @@ public class RegionListener implements Listener { configuredRegion.getRewards().forEach(reward -> reward.award(player)); } } + + private void sendTitles(Player player, ConfiguredRegion configuredRegion) { + List title = Translations.DISCOVERED_TITLE.getList(player, configuredRegion.getCustomName()); + List subtitle = Translations.DISCOVERED_SUBTITLE.getList(player, configuredRegion.getCustomName()); + new TitleAnimator(player, + plugin, + title, + subtitle, + plugin.getConfig().getInt("settings.server.discoveries.discovered.title.animation_speed")); + } } diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java index 5529b6a..8c7d255 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java @@ -46,6 +46,7 @@ public class ConfiguredRegion { private final List effects; private final List requirements; private final List discoveredLore; + private final boolean alwaysShowTitles; public ConfiguredRegion(@Nullable World world, String id, String customName, List rewards, List effects, int x, int y, int z) { @@ -68,6 +69,7 @@ public class ConfiguredRegion { this.effects = effects; this.requirements = Collections.singletonList(new LevelRequirement(5)); this.discoveredLore = new ArrayList<>(); + this.alwaysShowTitles = false; } public ConfiguredRegion(@Nullable World world, String id, String customName, @@ -92,6 +94,7 @@ public class ConfiguredRegion { this.effects = effects; this.requirements = Collections.singletonList(new LevelRequirement(5)); this.discoveredLore = new ArrayList<>(); + this.alwaysShowTitles = false; } public String getId() { @@ -198,7 +201,11 @@ public class ConfiguredRegion { public List getDiscoveredLore() { return discoveredLore; } - + + public boolean alwaysShowTitles() { + return alwaysShowTitles; + } + public void save(RPGRegions plugin) throws IOException { File file = new File(plugin.getDataFolder() + "/regions/" + this.id + ".json"); Writer writer = new FileWriter(file);