diff --git a/src/main/java/org/ultramine/server/MultiWorld.java b/src/main/java/org/ultramine/server/MultiWorld.java index 2573d58..0f31815 100644 --- a/src/main/java/org/ultramine/server/MultiWorld.java +++ b/src/main/java/org/ultramine/server/MultiWorld.java @@ -48,6 +48,7 @@ private final TIntObjectMap dimToNameMap = new TIntObjectHashMap(); private final TIntObjectMap dimToWorldMap = new TIntObjectHashMap(); private final Map nameToWorldMap = new HashMap(); + private final TIntObjectMap dimToConfigMap = new TIntObjectHashMap(); private final Set backupDirs = new HashSet(); private TIntSet isolatedDataDims; @@ -98,6 +99,7 @@ isolatedDataDimsSet.add(conf.dimension); dimToNameMap.put(conf.dimension, ent.getKey()); + dimToConfigMap.put(conf.dimension, conf); } isolatedDataDims = TCollections.unmodifiableSet(isolatedDataDimsSet); @@ -318,6 +320,15 @@ return dimToNameMap.get(id); } + @SideOnly(Side.SERVER) + public WorldConfig getConfigByID(int dim) + { + WorldConfig cfg = dimToConfigMap.get(dim); + if(cfg == null) + return ConfigurationHandler.getWorldsConfig().global; + return cfg; + } + public Set getDirsForBackup() { return backupDirs; diff --git a/src/main/java/org/ultramine/server/data/ServerDataLoader.java b/src/main/java/org/ultramine/server/data/ServerDataLoader.java index 2ebb356..4e389d8 100644 --- a/src/main/java/org/ultramine/server/data/ServerDataLoader.java +++ b/src/main/java/org/ultramine/server/data/ServerDataLoader.java @@ -20,6 +20,8 @@ import com.mojang.authlib.GameProfile; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.command.CommandHandler; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; @@ -205,6 +207,7 @@ } } + @SideOnly(Side.SERVER) private void playerLoadCallback(NetworkManager network, EntityPlayerMP player, NetHandlerPlayServer nethandler, NBTTagCompound nbt, PlayerData data, StatisticsFile stats) { if(data != null) @@ -227,7 +230,7 @@ } else { - String warpName = mgr.getServerInstance().getMultiWorld().getWorldByID(player.dimension).getConfig().settings.reconnectOnWarp; + String warpName = mgr.getServerInstance().getMultiWorld().getConfigByID(player.dimension).settings.reconnectOnWarp; if(warpName != null) spawn = getWarp(warpName); }