Skip to content

Commit 5dcaf51

Browse files
author
Circulate233
committed
保证IDataUtils的安全性
1 parent f610fb1 commit 5dcaf51

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

src/main/java/github/kasuminova/novaeng/common/handler/DreamEnergyPortHandler.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import net.minecraft.util.math.BlockPos;
88
import net.minecraft.world.World;
99
import sonar.fluxnetworks.common.connection.transfer.BasicTransferHandler;
10-
import sonar.fluxnetworks.common.tileentity.TileFluxStorage;
1110

1211
public class DreamEnergyPortHandler extends BasicTransferHandler<TileDreamEnergyPort> {
1312
private long removed;
@@ -36,10 +35,6 @@ public void onCycleStart() {
3635
@Override
3736
public void onCycleEnd() {
3837
this.removed = 0L;
39-
if (this.buffer > 0){
40-
this.addToBuffer(this.buffer);
41-
this.buffer = 0L;
42-
}
4338
}
4439

4540
@Override
@@ -50,7 +45,7 @@ public void updateTransfers(EnumFacing... enumFacings) {
5045
public void addToBuffer(long energy) {
5146
if (energy > 0L) {
5247
DreamEnergyCore.receiveEnergy(getCtrl(),1,energy);
53-
((TileFluxStorage)this.device).markServerEnergyChanged();
48+
((TileDreamEnergyPort)this.device).markServerEnergyChanged();
5449
}
5550
}
5651

@@ -61,7 +56,7 @@ public long removeFromBuffer(long energy) {
6156
} else {
6257
DreamEnergyCore.extractEnergy(getCtrl(),1,a);
6358
this.removed += a;
64-
((TileFluxStorage)this.device).markServerEnergyChanged();
59+
((TileDreamEnergyPort)this.device).markServerEnergyChanged();
6560
return a;
6661
}
6762
}

src/main/java/github/kasuminova/novaeng/common/util/IDataUtils.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,94 +15,104 @@
1515
@ZenExpansion("crafttweaker.data.IData")
1616
public class IDataUtils {
1717

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;
2030
}
2131

2232
@ZenMethod
2333
public static IData get(IData data,String path,@Optional IData defaultValue) {
2434
if (check(data,path)){
25-
return CraftTweakerMC.getIData(get(data).getTag(path));
35+
return CraftTweakerMC.getIData(get(data,path).getTag(path));
2636
}
2737
return defaultValue;
2838
}
2939

3040
@ZenMethod
3141
public static boolean getBool(IData data, String path,@Optional boolean defaultValue){
3242
if (check(data,path)){
33-
return get(data).getBoolean(path);
43+
return get(data,path).getBoolean(path);
3444
}
3545
return defaultValue;
3646
}
3747

3848
@ZenMethod
3949
public static byte getByte(IData data, String path,@Optional byte defaultValue) {
4050
if (check(data,path)){
41-
return get(data).getByte(path);
51+
return get(data,path).getByte(path);
4252
}
4353
return defaultValue;
4454
}
4555

4656
@ZenMethod
4757
public static double getDouble(IData data, String path, @Optional double defaultValue) {
4858
if (check(data, path)) {
49-
return get(data).getDouble(path);
59+
return get(data,path).getDouble(path);
5060
}
5161
return defaultValue;
5262
}
5363

5464
@ZenMethod
5565
public static float getFloat(IData data, String path, @Optional float defaultValue) {
5666
if (check(data, path)) {
57-
return get(data).getFloat(path);
67+
return get(data,path).getFloat(path);
5868
}
5969
return defaultValue;
6070
}
6171

6272
@ZenMethod
6373
public static int getInt(IData data, String path, @Optional int defaultValue) {
6474
if (check(data, path)) {
65-
return get(data).getInteger(path);
75+
return get(data,path).getInteger(path);
6676
}
6777
return defaultValue;
6878
}
6979

7080
@ZenMethod
7181
public static List<IData> getList(IData data, String path, @Optional List<IData> defaultValue) {
7282
if (check(data, path)) {
73-
return CraftTweakerMC.getIData(get(data).getTag(path)).asList();
83+
return CraftTweakerMC.getIData(get(data,path).getTag(path)).asList();
7484
}
7585
return defaultValue;
7686
}
7787

7888
@ZenMethod
7989
public static long getLong(IData data, String path, @Optional long defaultValue) {
8090
if (check(data, path)) {
81-
return get(data).getLong(path);
91+
return get(data,path).getLong(path);
8292
}
8393
return defaultValue;
8494
}
8595

8696
@ZenMethod
8797
public static Map<String, IData> getMap(IData data, String path, @Optional Map<String, IData> defaultValue) {
8898
if (check(data, path)) {
89-
return CraftTweakerMC.getIData(get(data).getTag(path)).asMap();
99+
return CraftTweakerMC.getIData(get(data,path).getTag(path)).asMap();
90100
}
91101
return defaultValue;
92102
}
93103

94104
@ZenMethod
95105
public static short getShort(IData data, String path, @Optional short defaultValue) {
96106
if (check(data, path)) {
97-
return get(data).getShort(path);
107+
return get(data,path).getShort(path);
98108
}
99109
return defaultValue;
100110
}
101111

102112
@ZenMethod
103113
public static String getString(IData data, String path, @Optional String defaultValue) {
104114
if (check(data, path)) {
105-
return get(data).getString(path);
115+
return get(data,path).getString(path);
106116
}
107117
return defaultValue;
108118
}

0 commit comments

Comments
 (0)