From abc2556ea350d0baecec7165e7dfaf6762f4bedf Mon Sep 17 00:00:00 2001 From: SamB440 Date: Fri, 17 Jan 2020 20:45:11 +0000 Subject: [PATCH] Allow regions to show coords --- .../commands/RPGRegionsCommand.java | 16 ++++++++---- .../managers/RPGRegionsManagers.java | 4 ++- .../data/region/ConfiguredRegion.java | 26 +++++++++++++++++-- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java index 0cbc881..41a0abc 100644 --- a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java +++ b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java @@ -58,17 +58,19 @@ public class RPGRegionsCommand extends BaseCommand { @Subcommand("add") @CommandPermission("rpgregions.add") - public void onAdd(CommandSender sender, String[] args) { + public void onAdd(Player player, String[] args) { if (args.length == 1) { String region = args[0]; - ConfiguredRegion configuredRegion = new ConfiguredRegion(region, region, new ArrayList<>()); + int x = player.getLocation().getBlockX(); + int z = player.getLocation().getBlockZ(); + ConfiguredRegion configuredRegion = new ConfiguredRegion(region, region, new ArrayList<>(), x, z); plugin.getManagers().getRegionsCache().addConfiguredRegion(configuredRegion); - sender.sendMessage(StringUtils.colour("&aAdded configured region " + region + "!")); - sender.sendMessage(StringUtils.colour("&e&oNow use /rpgregions edit " + player.sendMessage(StringUtils.colour("&aAdded configured region " + region + "!")); + player.sendMessage(StringUtils.colour("&e&oNow use /rpgregions edit " + region + " to edit it!")); } else { - sender.sendMessage(StringUtils.colour("&cUsage: /rpgregions add ")); + player.sendMessage(StringUtils.colour("&cUsage: /rpgregions add ")); } } @@ -166,9 +168,13 @@ public class RPGRegionsCommand extends BaseCommand { ? Translations.DISCOVERED_ON.get(player, account.getDiscoveredRegions().get(configuredRegion.getId()).getDate()) : ""; + String lore2 = configuredRegion.isShowCoords() + ? ChatColor.GRAY + "" + configuredRegion.getX() + ", " + configuredRegion.getZ() + : ""; items.add(new GuiItem(new ItemStackBuilder(configuredRegion.getIcon()) .withName(colour + configuredRegion.getCustomName()) .withLore(lore) + .withLore(lore2) .addFlags(ItemFlag.HIDE_ATTRIBUTES) .build(), event -> event.setCancelled(true))); diff --git a/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java b/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java index d03bc16..2273032 100644 --- a/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java +++ b/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java @@ -49,7 +49,9 @@ public class RPGRegionsManagers { rewards.add(new ConsoleCommandReward("say Server sees you discovered a region!")); ConfiguredRegion configuredRegion = new ConfiguredRegion("exampleconfig", "ExampleConfig", rewards, Sound.AMBIENT_UNDERWATER_EXIT, - Material.WOODEN_AXE); + Material.WOODEN_AXE, + 0, + 0); try { configuredRegion.save(plugin); } catch (IOException e) { diff --git a/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java b/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java index 0c77f8c..4dcc120 100644 --- a/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java +++ b/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java @@ -19,21 +19,31 @@ public class ConfiguredRegion { private final List rewards; private final Sound sound; private final Material icon; + private final boolean showCoords; + private final int x; + private final int z; - public ConfiguredRegion(String id, String customName, List rewards) { + public ConfiguredRegion(String id, String customName, List rewards, int x, int z) { this.id = id; this.customName = customName; this.rewards = rewards; this.sound = Sound.UI_TOAST_CHALLENGE_COMPLETE; this.icon = Material.TOTEM_OF_UNDYING; + this.showCoords = false; + this.x = x; + this.z = z; } - public ConfiguredRegion(String id, String customName, List rewards, Sound sound, Material icon) { + public ConfiguredRegion(String id, String customName, + List rewards, Sound sound, Material icon, int x, int z) { this.id = id; this.customName = customName; this.rewards = rewards; this.sound = sound; this.icon = icon; + this.showCoords = false; + this.x = x; + this.z = z; } public String getId() { @@ -56,6 +66,18 @@ public class ConfiguredRegion { return icon; } + public int getX() { + return x; + } + + public int getZ() { + return z; + } + + public boolean isShowCoords() { + return showCoords; + } + public void save(RPGRegions plugin) throws IOException { File file = new File(plugin.getDataFolder() + "/regions/" + this.id + ".json"); Writer writer = new FileWriter(file);