diff options
Diffstat (limited to '')
3 files changed, 34 insertions, 4 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java index bfc6c85..f19cb09 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java @@ -26,7 +26,7 @@ public class About implements ICommand { public void execute(CommandSender sender, String[] args) { sender.sendMessage( - String.format("%s%sHide and Seek %s(%s1.4.0%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) + + String.format("%s%sHide and Seek %s(%s1.4.1%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) + String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) + String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE) ); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java index f18ec5f..4b13e1c 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -19,11 +19,15 @@ package net.tylermurphy.hideAndSeek.configuration; +import com.cryptomorin.xseries.XMaterial; import net.tylermurphy.hideAndSeek.util.Version; +import org.bukkit.Material; import org.bukkit.util.Vector; +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; public class Config { @@ -84,6 +88,10 @@ public class Config { seekerPingLevel2, seekerPingLevel3; + public static List<String> + blockedCommands, + blockedInteracts; + public static String LOBBY_TITLE, GAME_TITLE, @@ -101,9 +109,6 @@ public class Config { public static List<String> LOBBY_CONTENTS, GAME_CONTENTS; - - public static List<String> - blockedCommands; public static void loadConfig() { @@ -198,6 +203,17 @@ public class Config { teleportToExit = config.getBoolean("teleportToExit"); locale = config.getString("locale", "local"); blockedCommands = config.getStringList("blockedCommands"); + blockedInteracts = new ArrayList<>(); + List<String> tempInteracts = config.getStringList("blockedInteracts"); + for(String id : tempInteracts){ + Optional<XMaterial> optional_mat = XMaterial.matchXMaterial(id); + if(optional_mat.isPresent()){ + Material mat = optional_mat.get().parseMaterial(); + if(mat != null){ + blockedInteracts.add(mat.name()); + } + } + } //Leaderboard LOBBY_TITLE = leaderboard.getString("lobby.title"); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java index 0c84058..a8418e2 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java @@ -36,6 +36,7 @@ import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; import org.bukkit.event.entity.*; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.player.*; @@ -159,6 +160,7 @@ public class EventListener implements Listener { } } } + return; } if (Game.status != Status.PLAYING) { event.setCancelled(true); @@ -169,17 +171,20 @@ public class EventListener implements Listener { Entity damager = ((EntityDamageByEntityEvent) event).getDamager(); if (damager instanceof Player) { attacker = (Player) damager; + if (!Board.isPlayer(attacker)) event.setCancelled(true); if (Board.onSameTeam(player, attacker)) event.setCancelled(true); if (Board.isSpectator(player)) event.setCancelled(true); } else if(damager instanceof Arrow){ ProjectileSource source = ((Arrow) damager).getShooter(); if(source instanceof Player){ attacker = (Player) source; + if (!Board.isPlayer(attacker)) event.setCancelled(true); if (Board.onSameTeam(player, attacker)) event.setCancelled(true); if (Board.isSpectator(player)) event.setCancelled(true); } } } + if(event.isCancelled()) return; if (player.getHealth() - event.getFinalDamage() < 0.5 || !pvpEnabled) { if (spawnPosition == null) return; event.setCancelled(true); @@ -269,4 +274,13 @@ public class EventListener implements Listener { } } } + + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerInteract(PlayerInteractEvent event) { + if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if(Board.isPlayer(event.getPlayer()) && blockedInteracts.contains(event.getClickedBlock().getType().name())){ + event.setCancelled(true); + } + } + } }
\ No newline at end of file |