Skip to content

Commit 52538f3

Browse files
authored
PipePutEvent now supports additional, custom predicates (#1332)
* PipePutEvent now supports additional, custom predicates * undid changes to PipePutEvent; introduced PipeFilterEvent * added filters, exceptions and filteredItems to PipeFilterEvent * altered indenting of PipeFilterEvent to be conform with other files * renamed filters to includeFilters and exceptions to excludeFilters
1 parent 4e65553 commit 52538f3

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.sk89q.craftbook.mechanics.pipe;
2+
3+
import org.bukkit.block.Block;
4+
import org.bukkit.event.HandlerList;
5+
import org.bukkit.inventory.ItemStack;
6+
7+
import javax.annotation.Nonnull;
8+
import java.util.List;
9+
import java.util.Set;
10+
11+
public class PipeFilterEvent extends PipeEvent {
12+
13+
private static final HandlerList handlers = new HandlerList();
14+
15+
private Set<ItemStack> includeFilters;
16+
private Set<ItemStack> excludeFilters;
17+
private List<ItemStack> filteredItems;
18+
19+
public PipeFilterEvent(Block theBlock, List<ItemStack> items, Set<ItemStack> includeFilters, Set<ItemStack> excludeFilters, List<ItemStack> filteredItems) {
20+
super(theBlock, items);
21+
22+
this.includeFilters = includeFilters;
23+
this.excludeFilters = excludeFilters;
24+
this.filteredItems = filteredItems;
25+
}
26+
27+
public Set<ItemStack> getIncludeFilters() {
28+
return includeFilters;
29+
}
30+
31+
public Set<ItemStack> getExcludeFilters() {
32+
return excludeFilters;
33+
}
34+
35+
public List<ItemStack> getFilteredItems() {
36+
return filteredItems;
37+
}
38+
39+
public void setFilteredItems(List<ItemStack> filteredItems) {
40+
this.filteredItems = filteredItems;
41+
}
42+
43+
@Override
44+
@Nonnull
45+
public HandlerList getHandlers() {
46+
return handlers;
47+
}
48+
49+
@Nonnull
50+
public static HandlerList getHandlerList() {
51+
return handlers;
52+
}
53+
}

src/main/java/com/sk89q/craftbook/mechanics/pipe/Pipes.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ private void searchNearbyPipes(Block block, Set<Vector> visitedPipes, List<ItemS
157157

158158
List<ItemStack> filteredItems = new ArrayList<>(VerifyUtil.withoutNulls(ItemUtil.filterItems(items, pFilters, pExceptions)));
159159

160+
PipeFilterEvent filterEvent = new PipeFilterEvent(bl, items, pFilters, pExceptions, filteredItems);
161+
Bukkit.getPluginManager().callEvent(filterEvent);
162+
163+
filteredItems = filterEvent.getFilteredItems();
164+
160165
if(filteredItems.isEmpty())
161166
continue;
162167

0 commit comments

Comments
 (0)