/
IngredientBlacklist.java
64 lines (50 loc) · 2.05 KB
/
IngredientBlacklist.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package mezz.jei;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.google.common.base.Preconditions;
import mezz.jei.api.ingredients.IIngredientBlacklist;
import mezz.jei.api.ingredients.IIngredientHelper;
import mezz.jei.api.ingredients.IIngredientRegistry;
import mezz.jei.config.Config;
import mezz.jei.util.IngredientUtil;
public class IngredientBlacklist implements IIngredientBlacklist {
private final IIngredientRegistry ingredientRegistry;
private final Set<String> ingredientBlacklist = new HashSet<String>();
public IngredientBlacklist(IIngredientRegistry ingredientRegistry) {
this.ingredientRegistry = ingredientRegistry;
}
@Override
public <V> void addIngredientToBlacklist(V ingredient) {
Preconditions.checkNotNull(ingredient, "Null ingredient");
IIngredientHelper<V> ingredientHelper = ingredientRegistry.getIngredientHelper(ingredient);
String uniqueName = ingredientHelper.getUniqueId(ingredient);
ingredientBlacklist.add(uniqueName);
}
@Override
public <V> void removeIngredientFromBlacklist(V ingredient) {
Preconditions.checkNotNull(ingredient, "Null ingredient");
IIngredientHelper<V> ingredientHelper = ingredientRegistry.getIngredientHelper(ingredient);
String uniqueName = ingredientHelper.getUniqueId(ingredient);
ingredientBlacklist.remove(uniqueName);
}
@Override
public <V> boolean isIngredientBlacklisted(V ingredient) {
Preconditions.checkNotNull(ingredient, "Null ingredient");
if (isIngredientBlacklistedByApi(ingredient)) {
return true;
}
IIngredientHelper<V> ingredientHelper = ingredientRegistry.getIngredientHelper(ingredient);
return Config.isIngredientOnConfigBlacklist(ingredient, ingredientHelper);
}
public <V> boolean isIngredientBlacklistedByApi(V ingredient) {
IIngredientHelper<V> ingredientHelper = ingredientRegistry.getIngredientHelper(ingredient);
List<String> uids = IngredientUtil.getUniqueIdsWithWildcard(ingredientHelper, ingredient);
for (String uid : uids) {
if (ingredientBlacklist.contains(uid)) {
return true;
}
}
return false;
}
}