/
InventoryUniquifier.java
68 lines (54 loc) · 1.93 KB
/
InventoryUniquifier.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
65
66
67
68
package com.denizenscript.denizen.objects.properties.inventory;
import com.denizenscript.denizen.objects.InventoryTag;
import com.denizenscript.denizencore.objects.Mechanism;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.properties.Property;
public class InventoryUniquifier implements Property {
public static boolean describes(ObjectTag inventory) {
// All inventories can potentially have a uniquifier
return inventory instanceof InventoryTag
&& (((InventoryTag) inventory).getIdType() != null
&& (((InventoryTag) inventory).getIdType().equals("generic")
|| ((InventoryTag) inventory).getIdType().equals("script")));
}
public static InventoryUniquifier getFrom(ObjectTag inventory) {
if (!describes(inventory)) {
return null;
}
return new InventoryUniquifier((InventoryTag) inventory);
}
public static final String[] handledMechs = new String[] {
"uniquifier"
};
///////////////////
// Instance Fields and Methods
/////////////
InventoryTag inventory;
public InventoryUniquifier(InventoryTag inventory) {
this.inventory = inventory;
}
/////////
// Property Methods
///////
@Override
public String getPropertyString() {
if (inventory.uniquifier == null) {
return null;
}
return String.valueOf(inventory.uniquifier);
}
@Override
public String getPropertyId() {
return "uniquifier";
}
public static void registerTags() {
// Intentionally no tags.
}
@Override
public void adjust(Mechanism mechanism) {
// Undocumented / internal
if (mechanism.matches("uniquifier")) {
inventory.uniquifier = mechanism.getValue().asLong();
}
}
}