From e4f686a0b995d6cbbb0e94463445547db0141631 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Fri, 3 Jan 2020 16:51:40 +0000 Subject: [PATCH] Send rewards, only update move if block changed, add /rpgregions add --- .../commands/RPGRegionsCommand.java | 32 ++++++++++++++++- .../rpgregions/listener/MoveListener.java | 6 ++++ .../rpgregions/listener/RegionListener.java | 34 +++++++++++-------- 3 files changed, 56 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java index c0cdefe..ed09700 100644 --- a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java +++ b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java @@ -3,13 +3,43 @@ package net.islandearth.rpgregions.commands; import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.Default; +import co.aikar.commands.annotation.Subcommand; +import net.islandearth.rpgregions.RPGRegions; +import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion; +import org.bukkit.ChatColor; import org.bukkit.entity.Player; +import java.util.ArrayList; + @CommandAlias("rpgregions") public class RPGRegionsCommand extends BaseCommand { - + + private final RPGRegions plugin; + + public RPGRegionsCommand(RPGRegions plugin) { + this.plugin = plugin; + } + @Default public void onDefault(Player player, String[] args) { } + + @Subcommand("add") + public void onAdd(Player player, String[] args) { + switch (args.length) { + case 1: { + String region = args[0]; + ConfiguredRegion configuredRegion = new ConfiguredRegion(region, new ArrayList<>()); + plugin.getManagers().getRegionsCache().addConfiguredRegion(configuredRegion); + player.sendMessage(ChatColor.GREEN + "Added configured region " + region + "!"); + player.sendMessage(ChatColor.YELLOW + "" + ChatColor.ITALIC+ "Now use /rpgregions edit " + region + " to edit it!"); + break; + } + + default: + player.sendMessage(ChatColor.RED + "Usage: /rpgregions add "); + break; + } + } } diff --git a/src/main/java/net/islandearth/rpgregions/listener/MoveListener.java b/src/main/java/net/islandearth/rpgregions/listener/MoveListener.java index 967be24..44c925d 100644 --- a/src/main/java/net/islandearth/rpgregions/listener/MoveListener.java +++ b/src/main/java/net/islandearth/rpgregions/listener/MoveListener.java @@ -15,6 +15,12 @@ public class MoveListener implements Listener { @EventHandler public void onMove(PlayerMoveEvent pme) { + int x = pme.getTo().getBlockX(); + int z = pme.getTo().getBlockZ(); + int oldX = pme.getFrom().getBlockX(); + int oldZ = pme.getFrom().getBlockZ(); + if (x == oldX && z == oldZ) return; + plugin.getManagers().getIntegrationManager().handleMove(pme); } } \ No newline at end of file diff --git a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java index 052c125..cb95e4e 100644 --- a/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java +++ b/src/main/java/net/islandearth/rpgregions/listener/RegionListener.java @@ -3,6 +3,7 @@ package net.islandearth.rpgregions.listener; import net.islandearth.rpgregions.RPGRegions; import net.islandearth.rpgregions.api.event.RegionDiscoverEvent; import net.islandearth.rpgregions.api.event.RegionsEnterEvent; +import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion; import net.islandearth.rpgregions.managers.data.region.Discovery; import net.islandearth.rpgregions.managers.data.region.WorldDiscovery; import net.islandearth.rpgregions.translation.Translations; @@ -51,21 +52,24 @@ public class RegionListener implements Listener { 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") - ); + if (plugin.getManagers().getRegionsCache().getConfiguredRegions().containsKey(region)) { + 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") + ); - //TODO give rewards + 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") + ); + + ConfiguredRegion configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion(region); + configuredRegion.getRewards().forEach(reward -> reward.award(player)); + } } }