diff --git a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java index 0c1e542..a86ac16 100644 --- a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java +++ b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java @@ -11,6 +11,7 @@ import com.github.stefvanschie.inventoryframework.pane.PaginatedPane; import com.github.stefvanschie.inventoryframework.pane.StaticPane; import net.islandearth.rpgregions.RPGRegions; import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion; +import net.islandearth.rpgregions.translation.Translations; import net.islandearth.rpgregions.utils.ItemStackBuilder; import net.islandearth.rpgregions.utils.StringUtils; import org.bukkit.ChatColor; @@ -149,8 +150,8 @@ public class RPGRegionsCommand extends BaseCommand { ? ChatColor.GREEN : ChatColor.RED; String lore = account.getDiscoveredRegions().containsKey(configuredRegion.getId()) - ? ChatColor.GRAY + "Discovered on: " - + account.getDiscoveredRegions().get(configuredRegion.getId()).getDate() + ? Translations.DISCOVERED_ON.get(player, + account.getDiscoveredRegions().get(configuredRegion.getId()).getDate()) : ""; items.add(new GuiItem(new ItemStackBuilder(configuredRegion.getIcon()) .withName(colour + configuredRegion.getCustomName()) diff --git a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java index 647ca8b..452c9b0 100644 --- a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java +++ b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java @@ -13,8 +13,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import java.time.Instant; -import java.util.Date; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; public class RegionListener implements Listener { @@ -32,17 +32,23 @@ public class RegionListener implements Listener { Player player = ree.getPlayer(); plugin.getManagers().getStorageManager().getAccount(player.getUniqueId()).thenAccept(account -> { for (String region : ree.getRegions()) { - boolean has = false; - for (Discovery discoveredRegion : account.getDiscoveredRegions().values()) { - if (discoveredRegion.getRegion().equals(region)) { - has = true; - break; + if (plugin.getManagers().getRegionsCache().getConfiguredRegions().containsKey(region)) { + boolean has = false; + for (Discovery discoveredRegion : account.getDiscoveredRegions().values()) { + if (discoveredRegion.getRegion().equals(region)) { + has = true; + break; + } } - } - if (!has) { - account.addDiscovery(new WorldDiscovery(Date.from(Instant.now()).toString(), region)); - Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, region)); + if (!has) { + LocalDateTime date = LocalDateTime.now(); + DateTimeFormatter format = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"); + + String formattedDate = date.format(format); + account.addDiscovery(new WorldDiscovery(formattedDate, region)); + Bukkit.getPluginManager().callEvent(new RegionDiscoverEvent(player, region)); + } } } }); diff --git a/src/main/java/net/islandearth/rpgregions/managers/data/sql/SqlStorage.java b/src/main/java/net/islandearth/rpgregions/managers/data/sql/SqlStorage.java index 375a224..963d323 100644 --- a/src/main/java/net/islandearth/rpgregions/managers/data/sql/SqlStorage.java +++ b/src/main/java/net/islandearth/rpgregions/managers/data/sql/SqlStorage.java @@ -15,7 +15,7 @@ import java.util.concurrent.ConcurrentMap; public class SqlStorage implements StorageManager { - private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS Discoveries (uuid varchar(32) NOT NULL, region varchar(32) NOT NULL, time varchar(64) NOT NULL, PRIMARY KEY(uuid))"; + private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS Discoveries (uuid varchar(32) NOT NULL, region varchar(32) NOT NULL, time varchar(64) NOT NULL, PRIMARY KEY(uuid, region))"; private static final String SELECT_REGION = "SELECT * FROM Discoveries WHERE uuid = ?"; private static final String INSERT_DISCOVERY = "INSERT INTO Discoveries (uuid, region, time) VALUES (?, ?, ?)"; diff --git a/src/main/java/net/islandearth/rpgregions/translation/Translations.java b/src/main/java/net/islandearth/rpgregions/translation/Translations.java index c7701b5..082c063 100644 --- a/src/main/java/net/islandearth/rpgregions/translation/Translations.java +++ b/src/main/java/net/islandearth/rpgregions/translation/Translations.java @@ -11,6 +11,7 @@ import java.io.IOException; import java.util.List; public enum Translations { + DISCOVERED_ON("&7Discovered on: %0"), DISCOVERED_TITLE("&d%0 discovered!"), DISCOVERED_SUBTITLE("&fKeep exploring to discover more!");