|
15 | 15 | @ZenExpansion("crafttweaker.data.IData") |
16 | 16 | public class IDataUtils { |
17 | 17 |
|
18 | | - public static NBTTagCompound get(IData data) { |
19 | | - return CraftTweakerMC.getNBTCompound(data); |
| 18 | + private static NBTTagCompound get(IData data) { |
| 19 | + return get(data,"NULL"); |
| 20 | + } |
| 21 | + |
| 22 | + private static NBTTagCompound get(IData data,String path) { |
| 23 | + var datan = CraftTweakerMC.getNBT(data); |
| 24 | + if (datan instanceof NBTTagCompound nt){ |
| 25 | + return nt; |
| 26 | + } |
| 27 | + var nbt = new NBTTagCompound(); |
| 28 | + nbt.setTag(path,datan); |
| 29 | + return nbt; |
20 | 30 | } |
21 | 31 |
|
22 | 32 | @ZenMethod |
23 | 33 | public static IData get(IData data,String path,@Optional IData defaultValue) { |
24 | 34 | if (check(data,path)){ |
25 | | - return CraftTweakerMC.getIData(get(data).getTag(path)); |
| 35 | + return CraftTweakerMC.getIData(get(data,path).getTag(path)); |
26 | 36 | } |
27 | 37 | return defaultValue; |
28 | 38 | } |
29 | 39 |
|
30 | 40 | @ZenMethod |
31 | 41 | public static boolean getBool(IData data, String path,@Optional boolean defaultValue){ |
32 | 42 | if (check(data,path)){ |
33 | | - return get(data).getBoolean(path); |
| 43 | + return get(data,path).getBoolean(path); |
34 | 44 | } |
35 | 45 | return defaultValue; |
36 | 46 | } |
37 | 47 |
|
38 | 48 | @ZenMethod |
39 | 49 | public static byte getByte(IData data, String path,@Optional byte defaultValue) { |
40 | 50 | if (check(data,path)){ |
41 | | - return get(data).getByte(path); |
| 51 | + return get(data,path).getByte(path); |
42 | 52 | } |
43 | 53 | return defaultValue; |
44 | 54 | } |
45 | 55 |
|
46 | 56 | @ZenMethod |
47 | 57 | public static double getDouble(IData data, String path, @Optional double defaultValue) { |
48 | 58 | if (check(data, path)) { |
49 | | - return get(data).getDouble(path); |
| 59 | + return get(data,path).getDouble(path); |
50 | 60 | } |
51 | 61 | return defaultValue; |
52 | 62 | } |
53 | 63 |
|
54 | 64 | @ZenMethod |
55 | 65 | public static float getFloat(IData data, String path, @Optional float defaultValue) { |
56 | 66 | if (check(data, path)) { |
57 | | - return get(data).getFloat(path); |
| 67 | + return get(data,path).getFloat(path); |
58 | 68 | } |
59 | 69 | return defaultValue; |
60 | 70 | } |
61 | 71 |
|
62 | 72 | @ZenMethod |
63 | 73 | public static int getInt(IData data, String path, @Optional int defaultValue) { |
64 | 74 | if (check(data, path)) { |
65 | | - return get(data).getInteger(path); |
| 75 | + return get(data,path).getInteger(path); |
66 | 76 | } |
67 | 77 | return defaultValue; |
68 | 78 | } |
69 | 79 |
|
70 | 80 | @ZenMethod |
71 | 81 | public static List<IData> getList(IData data, String path, @Optional List<IData> defaultValue) { |
72 | 82 | if (check(data, path)) { |
73 | | - return CraftTweakerMC.getIData(get(data).getTag(path)).asList(); |
| 83 | + return CraftTweakerMC.getIData(get(data,path).getTag(path)).asList(); |
74 | 84 | } |
75 | 85 | return defaultValue; |
76 | 86 | } |
77 | 87 |
|
78 | 88 | @ZenMethod |
79 | 89 | public static long getLong(IData data, String path, @Optional long defaultValue) { |
80 | 90 | if (check(data, path)) { |
81 | | - return get(data).getLong(path); |
| 91 | + return get(data,path).getLong(path); |
82 | 92 | } |
83 | 93 | return defaultValue; |
84 | 94 | } |
85 | 95 |
|
86 | 96 | @ZenMethod |
87 | 97 | public static Map<String, IData> getMap(IData data, String path, @Optional Map<String, IData> defaultValue) { |
88 | 98 | if (check(data, path)) { |
89 | | - return CraftTweakerMC.getIData(get(data).getTag(path)).asMap(); |
| 99 | + return CraftTweakerMC.getIData(get(data,path).getTag(path)).asMap(); |
90 | 100 | } |
91 | 101 | return defaultValue; |
92 | 102 | } |
93 | 103 |
|
94 | 104 | @ZenMethod |
95 | 105 | public static short getShort(IData data, String path, @Optional short defaultValue) { |
96 | 106 | if (check(data, path)) { |
97 | | - return get(data).getShort(path); |
| 107 | + return get(data,path).getShort(path); |
98 | 108 | } |
99 | 109 | return defaultValue; |
100 | 110 | } |
101 | 111 |
|
102 | 112 | @ZenMethod |
103 | 113 | public static String getString(IData data, String path, @Optional String defaultValue) { |
104 | 114 | if (check(data, path)) { |
105 | | - return get(data).getString(path); |
| 115 | + return get(data,path).getString(path); |
106 | 116 | } |
107 | 117 | return defaultValue; |
108 | 118 | } |
|
0 commit comments