diff --git a/src/main/java/net/islandearth/rpgregions/RPGRegions.java b/src/main/java/net/islandearth/rpgregions/RPGRegions.java index 94f5198..7cea4f2 100644 --- a/src/main/java/net/islandearth/rpgregions/RPGRegions.java +++ b/src/main/java/net/islandearth/rpgregions/RPGRegions.java @@ -11,6 +11,7 @@ import net.islandearth.rpgregions.managers.RPGRegionsManagers; import net.islandearth.rpgregions.translation.Translations; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -55,12 +56,17 @@ public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, Langu String eol = System.getProperty("line.separator"); header = "This is the config for RPGRegions." + eol; config.options().header(header); - config.addDefault("storage", "file"); - config.addDefault("sql.host", "localhost"); - config.addDefault("sql.port", 3306); - config.addDefault("sql.db", "RPGRegions"); - config.addDefault("sql.user", "user"); - config.addDefault("sql.pass", "pass"); + config.addDefault("settings.storage.mode", "file"); + config.addDefault("settings.sql.host", "localhost"); + config.addDefault("settings.sql.port", 3306); + config.addDefault("settings.sql.db", "RPGRegions"); + config.addDefault("settings.sql.user", "user"); + config.addDefault("settings.sql.pass", "pass"); + config.addDefault("settings.server.discoveries.discovered.title.fadein", 20); + config.addDefault("settings.server.discoveries.discovered.title.stay", 60); + config.addDefault("settings.server.discoveries.discovered.title.fadeout", 20); + config.addDefault("settings.server.discoveries.discovered.sound.name", Sound.UI_TOAST_CHALLENGE_COMPLETE.toString()); + config.addDefault("settings.server.discoveries.discovered.sound.pitch", 1); config.options().copyDefaults(true); saveConfig(); } diff --git a/src/main/java/net/islandearth/rpgregions/api/event/RegionDiscoverEvent.java b/src/main/java/net/islandearth/rpgregions/api/event/RegionDiscoverEvent.java index 22a7ad8..e41f520 100644 --- a/src/main/java/net/islandearth/rpgregions/api/event/RegionDiscoverEvent.java +++ b/src/main/java/net/islandearth/rpgregions/api/event/RegionDiscoverEvent.java @@ -12,19 +12,21 @@ public class RegionDiscoverEvent extends Event { private static final HandlerList HANDLER_LIST = new HandlerList(); private final Player player; - private final Set regions; + private final String region; - public RegionDiscoverEvent(Player player, Set regions) { + public RegionDiscoverEvent(Player player, String region) { this.player = player; - this.regions = regions; + this.region = region; } + @NotNull public Player getPlayer() { return player; } - public Set getRegion() { - return regions; + @NotNull + public String getRegion() { + return region; } @NotNull diff --git a/src/main/java/net/islandearth/rpgregions/api/event/RegionsEnterEvent.java b/src/main/java/net/islandearth/rpgregions/api/event/RegionsEnterEvent.java index 0c3b509..4830581 100644 --- a/src/main/java/net/islandearth/rpgregions/api/event/RegionsEnterEvent.java +++ b/src/main/java/net/islandearth/rpgregions/api/event/RegionsEnterEvent.java @@ -19,10 +19,12 @@ public class RegionsEnterEvent extends Event { this.regions = regions; } + @NotNull public Player getPlayer() { return player; } + @NotNull public Set getRegions() { return regions; } diff --git a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java index 7c1f0ab..fa70b7b 100644 --- a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java +++ b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java @@ -6,7 +6,9 @@ import net.islandearth.rpgregions.api.event.RegionDiscoverEvent; import net.islandearth.rpgregions.api.event.RegionsEnterEvent; import net.islandearth.rpgregions.managers.data.region.Discovery; import net.islandearth.rpgregions.managers.data.region.WorldDiscovery; +import net.islandearth.rpgregions.translation.Translations; import org.bukkit.Bukkit; +import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -41,7 +43,7 @@ public class RegionListener implements Listener { if (!has) { account.addDiscovery(new WorldDiscovery(Date.from(Instant.now()), region)); - Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, ree.getRegions())); + Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, region)); } } }); @@ -49,5 +51,21 @@ public class RegionListener implements Listener { @EventHandler public void onDiscover(RegionDiscoverEvent rde) { + Player player = rde.getPlayer(); + String region = rde.getRegion(); + player.sendTitle( + Translations.DISCOVERED_TITLE.get(player, region), + Translations.DISCOVERED_SUBTITLE.get(player, region), + plugin.getConfig().getInt("settings.server.discoveries.discovered.title.fadein"), + plugin.getConfig().getInt("settings.server.discoveries.discovered.title.stay"), + plugin.getConfig().getInt("settings.server.discoveries.discovered.title.fadeout") + ); + + player.playSound( + player.getLocation(), + Sound.valueOf(plugin.getConfig().getString("settings.server.discoveries.discovered.sound.name")), + 1, + plugin.getConfig().getInt("settings.server.discoveries.discovered.sound.pitch") + ); } } diff --git a/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java b/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java index c324b3e..1492993 100644 --- a/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java +++ b/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java @@ -12,7 +12,7 @@ public class RPGRegionsManagers { private IntegrationManager integrationManager; public RPGRegionsManagers(RPGRegions plugin) { - StorageType.valueOf(plugin.getConfig().getString("storage").toUpperCase()) + StorageType.valueOf(plugin.getConfig().getString("settings.storage.mode").toUpperCase()) .get() .ifPresent(storageManager1 -> storageManager = storageManager1); if (storageManager == null) throw new IllegalStateException("Could not find StorageManager!"); diff --git a/src/main/java/net/islandearth/rpgregions/translation/Translations.java b/src/main/java/net/islandearth/rpgregions/translation/Translations.java index 240d0f5..6520d90 100644 --- a/src/main/java/net/islandearth/rpgregions/translation/Translations.java +++ b/src/main/java/net/islandearth/rpgregions/translation/Translations.java @@ -12,7 +12,8 @@ import java.io.IOException; import java.util.List; public enum Translations { - DISCOVERED("Region discovered!"); + DISCOVERED_TITLE("&d%0 discovered!"), + DISCOVERED_SUBTITLE("&fKeep exploring to discover more!"); private final String defaultValue; @@ -68,6 +69,17 @@ public enum Translations { RPGRegions plugin = JavaPlugin.getPlugin(RPGRegions.class); return plugin.getTranslator().getTranslationFor(player, this.getPath()); } + + public String get(Player player, String... values) { + RPGRegions plugin = JavaPlugin.getPlugin(RPGRegions.class); + String message = plugin.getTranslator().getTranslationFor(player, this.getPath()); + for (int i = 0; i < 10; i++) { + if (values.length > i) message = message.replaceAll("%" + i, values[i]); + else break; + } + + return message; + } public List getList(Player player) { RPGRegions plugin = JavaPlugin.getPlugin(RPGRegions.class);