Пример #1
0
  public static int countLoadedChunks(
      ICommandSender sender, EntityPlayerMP player, boolean details, LoadedChunksVisitor visitor) {
    MinecraftServer server = ForgeTools.server;
    int total = 0;
    for (WorldServer s : server.worldServers) {
      World tmp = ((World) s);
      ImmutableSetMultimap<ChunkCoordIntPair, ForgeChunkManager.Ticket> forcedChunks =
          tmp.getPersistentChunks();
      Set loadedChunks = new LinkedHashSet<ChunkCoordIntPair>();
      for (ChunkCoordIntPair c : forcedChunks.keys()) {
        for (ForgeChunkManager.Ticket t : forcedChunks.get(c)) {
          loadedChunks = Sets.union(t.getChunkList(), loadedChunks);
        }
      }
      total += loadedChunks.size();

      boolean playerInWorld =
          (player != null) ? s.getWorldInfo().equals(player.worldObj.getWorldInfo()) : false;
      visitor.visit(sender, player, details, playerInWorld, s, loadedChunks.size());
    }
    return total;
  }