Skip to content

Commit e873349

Browse files
committed
feat: Added support for material types in type filter (Closes #15)
1 parent e3825a3 commit e873349

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

bukkit/src/main/java/com/blank038/servermarket/api/handler/filter/impl/TypeFilterImpl.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.blank038.servermarket.internal.cache.sale.SaleCache;
44
import com.blank038.servermarket.api.handler.filter.interfaces.IFilter;
55
import lombok.Getter;
6+
import org.bukkit.Material;
67
import org.bukkit.inventory.ItemStack;
78

89
import java.util.ArrayList;
@@ -27,7 +28,28 @@ public boolean check(SaleCache saleItem) {
2728
if (this.types.contains("all")) {
2829
return true;
2930
}
30-
return this.types.stream().anyMatch((s) -> saleItem.getSaleTypes().contains(s));
31+
return this.types.stream().anyMatch((s) -> {
32+
if (s.startsWith("is:") && this.isType(saleItem, s.substring(3))) {
33+
return true;
34+
}
35+
return saleItem.getSaleTypes().contains(s);
36+
});
37+
}
38+
39+
private boolean isType(SaleCache saleCache, String type) {
40+
Material material = saleCache.getSaleItem().getType();
41+
switch (type.toLowerCase()) {
42+
case "block":
43+
return material.isBlock();
44+
case "edible":
45+
return material.isEdible();
46+
case "item":
47+
return material.isItem();
48+
case "burnable":
49+
return material.isBurnable();
50+
default:
51+
return false;
52+
}
3153
}
3254

3355
@Override

0 commit comments

Comments
 (0)