Examples of ChunkProviderServer


Examples of net.minecraft.server.ChunkProviderServer

  private static IChunkLoader getLoader(Object cps) {
    return (IChunkLoader) ChunkProviderServerRef.chunkLoader.get(cps);
  }

  public static void hook(org.bukkit.World world) {
    ChunkProviderServer oldCPS = getCPS(world, ChunkProviderServer.class);
    if (oldCPS instanceof ChunkProviderServerHook) {
      return;
    }
    ChunkProviderServerHook newCPS = new ChunkProviderServerHook(oldCPS.world, getLoader(oldCPS), oldCPS.chunkProvider);
    ChunkProviderServerRef.TEMPLATE.transfer(oldCPS, newCPS);
View Full Code Here

Examples of net.minecraft.server.ChunkProviderServer

  public static void unhook(org.bukkit.World world) {
    ChunkProviderServerHook oldCPS = getCPS(world, ChunkProviderServerHook.class);
    if (oldCPS == null) {
      return;
    }
    ChunkProviderServer newCPS = new ChunkProviderServer(oldCPS.world, getLoader(oldCPS), oldCPS.chunkProvider);
    ChunkProviderServerRef.TEMPLATE.transfer(oldCPS, newCPS);
    WorldServerRef.chunkProviderServer.set(newCPS.world, newCPS);
  }
View Full Code Here

Examples of net.minecraft.server.ChunkProviderServer

   * Reverts the previous creation of this Chunk Provider, creating the default ChunkProviderServer instance
   *
   * @return ChunkProviderServer instance this base was made from
   */
  public Object revert() {
    ChunkProviderServer chunkProvider = new ChunkProviderServer(super.world, null, null);
    ChunkProviderServerRef.TEMPLATE.transfer(this, chunkProvider);
    return chunkProvider;
  }
View Full Code Here

Examples of net.minecraft.server.v1_6_R3.ChunkProviderServer

    for (World world : worlds) {
      try {
        CraftWorld cw = (CraftWorld) world;
        Field worldServer = CraftWorld.class.getDeclaredField("world");
        worldServer.setAccessible(true);
        ChunkProviderServer cps = ((WorldServer) worldServer.get(cw)).chunkProviderServer;
        for (Chunk c : cps.chunks.values()) {
                    if (reset) {
            if (c.bukkitChunk instanceof SpoutCraftChunk) {
              ((SpoutCraftChunk) c.bukkitChunk).onReset();
            }
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

                Set<Vector2D> chunks = region.getChunks();
                IChunkProvider provider = getWorld().getChunkProvider();
                if (!(provider instanceof ChunkProviderServer)) {
                    return false;
                }
                ChunkProviderServer chunkServer = (ChunkProviderServer) provider;
                Field u;
                try {
                    u = ChunkProviderServer.class.getDeclaredField("field_73248_b"); // chunksToUnload
                } catch(NoSuchFieldException e) {
                    u = ChunkProviderServer.class.getDeclaredField("chunksToUnload");
                }
                u.setAccessible(true);
                Set<?> unloadQueue = (Set<?>) u.get(chunkServer);
                Field m;
                try {
                    m = ChunkProviderServer.class.getDeclaredField("field_73244_f"); // loadedChunkHashMap
                } catch(NoSuchFieldException e) {
                    m = ChunkProviderServer.class.getDeclaredField("loadedChunkHashMap");
                }
                m.setAccessible(true);
                LongHashMap loadedMap = (LongHashMap) m.get(chunkServer);
                Field lc;
                try {
                    lc = ChunkProviderServer.class.getDeclaredField("field_73245_g"); // loadedChunkHashMap
                } catch(NoSuchFieldException e) {
                    lc = ChunkProviderServer.class.getDeclaredField("loadedChunks");
                }
                lc.setAccessible(true);
                @SuppressWarnings("unchecked") List<Chunk> loaded = (List<Chunk>) lc.get(chunkServer);
                Field p;
                try {
                    p = ChunkProviderServer.class.getDeclaredField("field_73246_d"); // currentChunkProvider
                } catch(NoSuchFieldException e) {
                    p = ChunkProviderServer.class.getDeclaredField("currentChunkProvider");
                }
                p.setAccessible(true);
                IChunkProvider chunkProvider = (IChunkProvider) p.get(chunkServer);

                for (Vector2D coord : chunks) {
                    long pos = ChunkCoordIntPair.chunkXZ2Int(coord.getBlockX(), coord.getBlockZ());
                    Chunk mcChunk;
                    if (chunkServer.chunkExists(coord.getBlockX(), coord.getBlockZ())) {
                        mcChunk = chunkServer.loadChunk(coord.getBlockX(), coord.getBlockZ());
                        mcChunk.onChunkUnload();
                    }
                    unloadQueue.remove(pos);
                    loadedMap.remove(pos);
                    mcChunk = chunkProvider.provideChunk(coord.getBlockX(), coord.getBlockZ());
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

                WorldServer[] worlds = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers;

                for (int i = 0; i < worlds.length; i++)
                {
                    WorldServer world = worlds[i];
                    ChunkProviderServer chunkProviderServer = world.theChunkProviderServer;

                    Map<Long, List<Footprint>> footprintMap = TickHandlerServer.serverFootprintMap.get(world.provider.dimensionId);

                    if (footprintMap != null)
                    {
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

    }
    WorldServer worldObj = DimensionManager.getWorld(0);
    if (worldObj == null) {
      LogHelper.warning("Target dimension 0 is not loaded for genesis?!");
    }
    ChunkProviderServer providerServer = (ChunkProviderServer) worldObj.getChunkProvider();
    GenesisChunkProvider providerGenesis = new GenesisChunkProvider(world, newBiome);

    // clear players from the danger zone and force unload chunks in
    // question
    List<EntityPlayerMP> players = new ArrayList<EntityPlayerMP>();
    Map<EntityPlayerMP, Vec3> playerOrigPositions = new HashMap<EntityPlayerMP, Vec3>();
    players.addAll(worldObj.playerEntities);

    final int safePad = 2;
    final double safeX = ( ( chunkX.intValue() - range - safePad ) << 4 ) - 8.0;
    final double safeZ = ( ( chunkZ.intValue() - range - safePad ) << 4 ) - 8.0;
    LogHelper.info("Safe position = " + safeX + "," + safeZ);

    Map<Pair<Integer, Integer>, Chunk> chunks = new HashMap<Pair<Integer, Integer>, Chunk>();
    for (int x1 = chunkX.intValue() - range; x1 <= chunkX.intValue() + range; x1++) {
      for (int z1 = chunkZ.intValue() - range; z1 <= chunkZ.intValue() + range; z1++) {
        for (EntityPlayerMP player : players) {
          if (worldObj.getPlayerManager().isPlayerWatchingChunk(player, x1, z1) && !playerOrigPositions.containsKey(player)) {
            final Vec3 origPosition = Vec3.createVectorHelper(player.posX, player.posY,player.posZ);
            playerOrigPositions.put(player, origPosition);
            LogHelper.info("Moving player " + player);
            player.setLocationAndAngles(safeX, player.posY, safeZ, 0.0F, 0.0F);
            worldObj.updateEntityWithOptionalForce(player, true);
          }
        }
        final Chunk chunk = world.getChunkFromBlockCoords(x, z);
        chunks.put(Pair.of(x1, z1), chunk); // save map of chunks
        providerServer.unloadChunksIfNotNearSpawn(x1, z1);
      }
    }

    // verify that chunks unloaded
    int lastloaded = 0;
    while (providerServer.getLoadedChunkCount() != lastloaded) {
      lastloaded = providerServer.getLoadedChunkCount();
      providerServer.unloadQueuedChunks();

      for (final Pair<Integer, Integer> coord : chunks.keySet()) {
        final Chunk chunk = chunks.get(coord);
        if (chunk != null) {
          if (chunk.isChunkLoaded) {
            LogHelper.warning("Failed to unload chunk @ " + coord);
            /*
             * } else { LogHelper.info("Chunk unloaded @ " + coord);
             */
          }
        }
      }
    }
    chunks.clear();
    LogHelper.info(providerServer.makeString());

    IChunkLoader chunkloader = providerServer.currentChunkLoader;
    providerServer.currentChunkLoader = null;
    for (int x1 = chunkX.intValue() - range; x1 <= chunkX.intValue() + range; x1++) {
      for (int z1 = chunkZ.intValue() - range; z1 <= chunkZ.intValue() + range; z1++) {
        // GenesisBiomeOverrideHandler.myQueue.add(new
        // GenesisBiomeOverrideHandler.coord(x1, z1));

        final Chunk chunk = providerServer.loadChunk(x1, z1);
       
        byte[] chunkBiomes = chunk.getBiomeArray();
        for (int k = 0; k < chunkBiomes.length; ++k) {
          chunkBiomes[k] = (byte) newBiome.biomeID;
        }
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

    _world = world;
    _biome = biome;
  }

  public IChunkLoader getCurrentChunkLoader() {
    final ChunkProviderServer parent = (ChunkProviderServer) _world.getChunkProvider();
    return parent.currentChunkLoader;
  }
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

    final ChunkProviderServer parent = (ChunkProviderServer) _world.getChunkProvider();
    return parent.currentChunkLoader;
  }

  public void setCurrentChunkLoader(IChunkLoader loader) {
    final ChunkProviderServer parent = (ChunkProviderServer) _world.getChunkProvider();
    parent.currentChunkLoader = loader;
  }
View Full Code Here

Examples of net.minecraft.world.gen.ChunkProviderServer

    final ChunkProviderServer parent = (ChunkProviderServer) _world.getChunkProvider();
    parent.currentChunkLoader = loader;
  }

  public void unloadChunksIfNotNearSpawn(int chunkX, int chunkZ) {
    final ChunkProviderServer parent = (ChunkProviderServer) _world.getChunkProvider();
    parent.unloadChunksIfNotNearSpawn(chunkX, chunkZ);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.