summaryrefslogtreewikicommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java20
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java13
2 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
index dfdb197..06dbb99 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
@@ -21,6 +21,7 @@ package net.tylermurphy.hideAndSeek.configuration;
import com.cryptomorin.xseries.XItemStack;
import net.tylermurphy.hideAndSeek.Main;
+import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
@@ -129,4 +130,23 @@ public class Items {
item.getBoolean("particles")
);
}
+
+ public static boolean matchItem(ItemStack stack){
+ for(ItemStack check : HIDER_ITEMS)
+ if(equals(stack,check)) return true;
+ for(ItemStack check : SEEKER_ITEMS)
+ if(equals(stack,check)) return true;
+ return false;
+ }
+
+ private static boolean equals(ItemStack a, ItemStack b) {
+ if (a == null) {
+ return false;
+ } else if (a == b) {
+ return true;
+ } else {
+ return a.getType() == b.getType() && a.hasItemMeta() == b.hasItemMeta() && (!a.hasItemMeta() || Bukkit.getItemFactory().equals(a.getItemMeta(), b.getItemMeta()));
+ }
+ }
+
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java
index d8790fd..1e7ba69 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java
@@ -1,13 +1,18 @@
package net.tylermurphy.hideAndSeek.game.listener;
import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.configuration.Items;
+import net.tylermurphy.hideAndSeek.game.Game;
+import net.tylermurphy.hideAndSeek.game.util.Status;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
+import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.inventory.ItemStack;
public class PlayerHandler implements Listener {
@@ -36,4 +41,12 @@ public class PlayerHandler implements Listener {
}
}
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onItemSpawn(ItemSpawnEvent event){
+ if(Main.getInstance().getGame().getStatus() == Status.STANDBY) return;
+ ItemStack item = event.getEntity().getItemStack();
+ if(!Items.matchItem(item)) return;
+ event.setCancelled(true);
+ }
+
}