diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java index 877355ef0..dc90d8db7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java @@ -39,7 +39,7 @@ public class GunData { public final CompoundTag attachmentTag; public final String id; - private static final LoadingCache dataCache = CacheBuilder.newBuilder() + public static final LoadingCache dataCache = CacheBuilder.newBuilder() .weakKeys() .build(new CacheLoader<>() { public @NotNull GunData load(@NotNull ItemStack stack) { diff --git a/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java b/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java index 0ecd70aa2..da98b758e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java @@ -25,6 +25,7 @@ public class LaunchableEntityTool { */ public static void initJsonData(ResourceManager manager) { launchableEntitiesData.clear(); + for (var entry : manager.listResources("launchable", file -> file.getPath().endsWith(".json")).entrySet()) { var attribute = entry.getValue(); try { diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java index 045508126..c7cd04716 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java @@ -19,6 +19,8 @@ public class VehicleDataTool { public static void initJsonData(ResourceManager manager) { vehicleData.clear(); + VehicleData.dataCache.invalidateAll(); + for (var entry : manager.listResources(VEHICLE_DATA_FOLDER, file -> file.getPath().endsWith(".json")).entrySet()) { var attribute = entry.getValue(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java index e05d4e9bb..8bbeb4f88 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java @@ -15,6 +15,7 @@ public abstract class EnergyVehicleEntity extends VehicleEntity { public static final EntityDataAccessor ENERGY = SynchedEntityData.defineId(EnergyVehicleEntity.class, EntityDataSerializers.INT); + // TODO 在数据更新时修改能量相关属性 protected final IEnergyStorage energyStorage = new SyncedEntityEnergyStorage(this.getMaxEnergy(), this.entityData, ENERGY); public EnergyVehicleEntity(EntityType pEntityType, Level pLevel) { diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 09dae5e03..0666dc91e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.tools; import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.data.gun.DefaultGunData; +import com.atsuishio.superbwarfare.data.gun.GunData; import com.atsuishio.superbwarfare.network.message.receive.GunsDataMessage; import com.google.gson.Gson; import net.minecraft.nbt.CompoundTag; @@ -28,6 +29,10 @@ public class GunsTool { * 初始化数据,从data中读取数据json文件 */ public static void initJsonData(ResourceManager manager) { + gunsData.clear(); + GunData.dataCache.invalidateAll(); + + // TODO 将枪械ID挪至JSON数据内 for (var entry : manager.listResources("guns", file -> file.getPath().endsWith(".json")).entrySet()) { var id = entry.getKey(); var attribute = entry.getValue();