public static void initDimension(int dim) {
    WorldServer overworld = getWorld(0);
    if (overworld == null) {
      throw new RuntimeException("Cannot Hotload Dim: Overworld is not Loaded!");
    }
    try {
      DimensionManager.getProviderType(dim);
    } catch (Exception e) {
      System.err.println("Cannot Hotload Dim: " + e.getMessage());
      return; // If a provider hasn't been registered then we can't hotload the dim
    }
    MinecraftServer mcServer = overworld.getMinecraftServer();
    ISaveHandler savehandler = overworld.getSaveHandler();
    WorldSettings worldSettings = new WorldSettings(overworld.getWorldInfo());

    WorldServer world =
        (dim == 0
            ? overworld
            : new WorldServerMulti(
                mcServer,
                savehandler,
                overworld.getWorldInfo().getWorldName(),
                dim,
                worldSettings,
                overworld,
                mcServer.theProfiler));
    world.addWorldAccess(new WorldManager(mcServer, world));
    MinecraftForge.EVENT_BUS.post(new WorldEvent.Load(world));
    if (!mcServer.isSinglePlayer()) {
      world.getWorldInfo().setGameType(mcServer.getGameType());
    }

    mcServer.func_147139_a(mcServer.func_147135_j());
  }
示例#2
0
  public WorldServerProxy(WorldServer world) {

    super(
        world.func_73046_m(),
        world.getSaveHandler(),
        getWorldName(world),
        world.provider,
        getWorldSettings(world),
        world.theProfiler);
    this.proxiedWorld = world;
    // perWorldStorage = world.perWorldStorage; // final, set in super; requires reflection
    ReflectionHelper.setPrivateValue(
        World.class,
        this,
        world.perWorldStorage,
        new String[] {"perWorldStorage"}); // forge-added, no reobf
    scheduledUpdatesAreImmediate = world.scheduledUpdatesAreImmediate;
    loadedEntityList = world.loadedEntityList;
    loadedTileEntityList = world.loadedTileEntityList;
    playerEntities = world.playerEntities;
    weatherEffects = world.weatherEffects;
    skylightSubtracted = world.skylightSubtracted;
    prevRainingStrength = world.prevRainingStrength;
    rainingStrength = world.rainingStrength;
    prevThunderingStrength = world.prevThunderingStrength;
    thunderingStrength = world.thunderingStrength;
    lastLightningBolt = world.lastLightningBolt;
    difficultySetting = world.difficultySetting;
    rand = world.rand;
    // provider = world.provider; // handled by super
    findingSpawnPoint = world.findingSpawnPoint;
    mapStorage = world.mapStorage;
    villageCollectionObj = world.villageCollectionObj;
    // theProfiler = world.theProfiler; // handled by super
    isRemote = world.isRemote;
    theChunkProviderServer = world.theChunkProviderServer;
    levelSaving = world.levelSaving;
    // allPlayersSleeping = world.allPlayersSleeping;
    customTeleporters = world.customTeleporters;
  }