diff --git a/src/main/java/appeng/core/worlddata/DimensionData.java b/src/main/java/appeng/core/worlddata/DimensionData.java index 27cc3edc..426160e6 100644 --- a/src/main/java/appeng/core/worlddata/DimensionData.java +++ b/src/main/java/appeng/core/worlddata/DimensionData.java @@ -19,7 +19,6 @@ package appeng.core.worlddata; -import java.io.File; import java.util.List; import javax.annotation.Nonnull; @@ -64,13 +63,11 @@ final class DimensionData implements IWorldDimensionData, IOnWorldStartable, IOn private final Configuration config; private final List storageCellDimensionIDs; - DimensionData( @Nonnull final File parentFile, @Nonnull final String configVersion ) + DimensionData( @Nonnull final Configuration parentFile ) { Preconditions.checkNotNull( parentFile ); - Preconditions.checkNotNull( configVersion ); - Preconditions.checkArgument( !configVersion.isEmpty() ); - this.config = new Configuration( parentFile, configVersion ); + this.config = parentFile; final int[] storageCellIDs = this.storageCellIDsProperty().getIntList(); diff --git a/src/main/java/appeng/core/worlddata/PlayerData.java b/src/main/java/appeng/core/worlddata/PlayerData.java index 41f2e5d1..07b536cf 100644 --- a/src/main/java/appeng/core/worlddata/PlayerData.java +++ b/src/main/java/appeng/core/worlddata/PlayerData.java @@ -19,7 +19,6 @@ package appeng.core.worlddata; -import java.io.File; import java.util.UUID; import javax.annotation.Nonnull; @@ -57,13 +56,11 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS private int lastPlayerID; - public PlayerData( @Nonnull final File configFile, @Nonnull final String configVersion ) + public PlayerData( @Nonnull final Configuration configFile ) { Preconditions.checkNotNull( configFile ); - Preconditions.checkNotNull( configVersion ); - Preconditions.checkArgument( !configVersion.isEmpty() ); - this.config = new Configuration( configFile, configVersion ); + this.config = configFile; final ConfigCategory playerList = this.config.getCategory( "players" ); this.playerMapping = new PlayerMapping( playerList ); diff --git a/src/main/java/appeng/core/worlddata/StorageData.java b/src/main/java/appeng/core/worlddata/StorageData.java index 34dfffb8..f7d290b2 100644 --- a/src/main/java/appeng/core/worlddata/StorageData.java +++ b/src/main/java/appeng/core/worlddata/StorageData.java @@ -19,7 +19,6 @@ package appeng.core.worlddata; -import java.io.File; import java.lang.ref.WeakReference; import java.util.Map; import java.util.WeakHashMap; @@ -55,13 +54,11 @@ final class StorageData implements IWorldGridStorageData, IOnWorldStartable, IOn private long lastGridStorage; - public StorageData( @Nonnull final File settingsFile, @Nonnull final String version ) + public StorageData( @Nonnull final Configuration settingsFile ) { Preconditions.checkNotNull( settingsFile ); - Preconditions.checkNotNull( version ); - Preconditions.checkArgument( !version.isEmpty() ); - this.config = new Configuration( settingsFile, version ); + this.config = settingsFile; } /** diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index 40ece0af..c351fa9b 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -30,6 +30,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.config.Configuration; import appeng.core.AEConfig; import appeng.services.CompassService; @@ -39,7 +40,8 @@ import appeng.services.compass.CompassThreadFactory; /** * Singleton access to anything related to world-based data. * - * Data will change depending which world is loaded. Will probably not affect SMP at all since only one world is loaded, but SSP more, cause they play on + * Data will change depending which world is loaded. Will probably not affect SMP at all since only one world is loaded, + * but SSP more, cause they play on * different worlds. * * @author thatsIch @@ -69,6 +71,8 @@ public final class WorldData implements IWorldData private final File spawnDirectory; private final File compassDirectory; + private final Configuration sharedConfig; + private WorldData( @Nonnull final File worldDirectory ) { Preconditions.checkNotNull( worldDirectory ); @@ -79,10 +83,11 @@ public final class WorldData implements IWorldData this.compassDirectory = new File( this.ae2directory, COMPASS_DIR_NAME ); final File settingsFile = new File( this.ae2directory, SETTING_FILE_NAME ); + this.sharedConfig = new Configuration( settingsFile, AEConfig.VERSION ); - final PlayerData playerData = new PlayerData( settingsFile, AEConfig.VERSION ); - final DimensionData dimensionData = new DimensionData( settingsFile, AEConfig.VERSION ); - final StorageData storageData = new StorageData( settingsFile, AEConfig.VERSION ); + final PlayerData playerData = new PlayerData( this.sharedConfig ); + final DimensionData dimensionData = new DimensionData( this.sharedConfig ); + final StorageData storageData = new StorageData( this.sharedConfig ); final ThreadFactory compassThreadFactory = new CompassThreadFactory(); final CompassService compassService = new CompassService( this.compassDirectory, compassThreadFactory );