36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
![]() |
package tc.oc.pgm.modules;
|
||
|
|
||
|
import java.util.Set;
|
||
|
|
||
|
import com.google.common.collect.ImmutableSet;
|
||
|
import org.bukkit.event.EventHandler;
|
||
|
import org.bukkit.event.EventPriority;
|
||
|
import org.bukkit.event.Listener;
|
||
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||
|
import org.bukkit.inventory.ItemStack;
|
||
|
|
||
|
import tc.oc.pgm.match.Match;
|
||
|
import tc.oc.pgm.match.MatchModule;
|
||
|
import tc.oc.pgm.match.MatchScope;
|
||
|
import tc.oc.pgm.events.ListenerScope;
|
||
|
import tc.oc.pgm.utils.MaterialPattern;
|
||
|
|
||
|
@ListenerScope(MatchScope.RUNNING)
|
||
|
public class ItemDestroyMatchModule extends MatchModule implements Listener {
|
||
|
protected final ImmutableSet<MaterialPattern> patterns;
|
||
|
|
||
|
public ItemDestroyMatchModule(Match match, Set<MaterialPattern> patterns) {
|
||
|
super(match);
|
||
|
this.patterns = ImmutableSet.copyOf(patterns);
|
||
|
}
|
||
|
|
||
|
@SuppressWarnings("deprecation")
|
||
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||
|
public void processItemRemoval(ItemSpawnEvent event) {
|
||
|
final ItemStack item = event.getEntity().getItemStack();
|
||
|
if(patterns.stream().anyMatch(pattern -> pattern.matches(item))) {
|
||
|
event.setCancelled(true);
|
||
|
}
|
||
|
}
|
||
|
}
|