blob: 65a2ebd152bfa2a018f940a4a451ace3d5471728 (
plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package com.anthonyhilyard.iceberg.util;
import net.minecraft.world.item.ItemStack;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextColor;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
public class Selectors
{
private static Map<String, Rarity> rarities = new HashMap<String, Rarity>() {{
put("common", Rarity.COMMON);
put("uncommon", Rarity.UNCOMMON);
put("rare", Rarity.RARE);
put("epic", Rarity.EPIC);
}};
public static boolean itemMatches(ItemStack item, String selector)
{
String itemResourceLocation = item.getItem().getRegistryName().toString();
if (selector.equals(itemResourceLocation) || selector.equals(itemResourceLocation.replace("minecraft:", "")))
{
return true;
}
else if (selector.startsWith("#"))
{
TextColor entryColor = TextColor.parseColor(selector);
if (entryColor != null && entryColor.equals(ItemColor.getColorForItem(item, TextColor.fromRgb(0xFFFFFF))))
{
return true;
}
}
else if (selector.startsWith("!"))
{
if (item.getRarity() == rarities.get(selector.substring(1)))
{
return true;
}
}
else if (selector.startsWith("@"))
{
if (itemResourceLocation.startsWith(selector.substring(1) + ":"))
{
return true;
}
}
else if (selector.startsWith("$"))
{
if (ItemTags.getAllTags().getTagOrEmpty(new ResourceLocation(selector.substring(1))).getValues().contains(item.getItem()))
{
return true;
}
}
else if (selector.startsWith("%"))
{
if (item.getDisplayName().getString().contains(selector.substring(1)))
{
return true;
}
}
else if (selector.startsWith("^"))
{
Minecraft mc = Minecraft.getInstance();
List<Component> lines = item.getTooltipLines(mc.player, TooltipFlag.Default.ADVANCED);
String tooltipText = "";
// Skip title line.
for (int n = 1; n < lines.size(); n++)
{
tooltipText += lines.get(n).getString() + '\n';
}
if (tooltipText.contains(selector.substring(1)))
{
return true;
}
}
return false;
}
}
|