org.bukkit.Chunk#isLoaded ( )源码实例Demo

下面列出了org.bukkit.Chunk#isLoaded ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Holograms   文件: HologramListener.java
@EventHandler
public void onChunkLoad(ChunkLoadEvent event) {
    Chunk chunk = event.getChunk();
    if (chunk == null || !chunk.isLoaded()) {
        return;
    }

    Collection<Hologram> holograms = plugin.getHologramManager().getActiveHolograms().values();
    for (Hologram holo : holograms) {
        int chunkX = (int) Math.floor(holo.getLocation().getBlockX() / 16.0D);
        int chunkZ = (int) Math.floor(holo.getLocation().getBlockZ() / 16.0D);
        if (chunkX == chunk.getX() && chunkZ == chunk.getZ()) {
            plugin.getServer().getScheduler().runTaskLater(plugin, holo::spawn, 10L);
        }
    }
}
 
源代码2 项目: RedProtect   文件: VersionHelper18.java
private static Set<Player> getNearbyPlayersInChunks(Location location) {
    World world = location.getWorld();
    int chunkX = location.getBlockX() >> 4;
    int chunkZ = location.getBlockZ() >> 4;
    int range = 3;

    Set<Player> players = new HashSet<>();
    for (int x = chunkX - range; x <= chunkX + range; x++) {
        for (int z = chunkZ - range; z <= chunkZ + range; z++) {
            Chunk chunk = world.getChunkAt(x, z);
            if (chunk.isLoaded())
                players.addAll(Arrays.stream(chunk.getEntities())
                        .filter((it) -> it.getType() == EntityType.PLAYER)
                        .map((it) -> (Player) it).collect(Collectors.toSet()));
        }
    }

    return players;
}
 
源代码3 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_8_R1.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (chunk == null) {
            try {
                chunk = new CraftChunk(nmsChunk);
            } catch (NullPointerException e) {
                throw new HologramEntitySpawnException("Attempted to spawn hologram entity in invalid chunk", e);
            }
        }

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码4 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_8_R2.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (chunk == null) {
            try {
                chunk = new CraftChunk(nmsChunk);
            } catch (NullPointerException e) {
                throw new HologramEntitySpawnException("Attempted to spawn hologram entity in invalid chunk", e);
            }
        }

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码5 项目: BedWars   文件: GameStore.java
/**
 * @return killed entity
 */
public LivingEntity kill() {
    final LivingEntity livingEntity = entity;
    if (entity != null) {
        final Chunk chunk = entity.getLocation().getChunk();

        if (!chunk.isLoaded()) {
            chunk.load();
        }
        entity.remove();
        entity = null;
    }
    return livingEntity;
}
 
源代码6 项目: BedWars   文件: GameStore.java
/**
 * @return killed entity
 */
public LivingEntity kill() {
    final LivingEntity livingEntity = entity;
    if (entity != null) {
        final Chunk chunk = entity.getLocation().getChunk();

        if (!chunk.isLoaded()) {
            chunk.load();
        }
        entity.remove();
        entity = null;
    }
    return livingEntity;
}
 
源代码7 项目: Civs   文件: UnloadedInventoryHandler.java
public void loadChunks() {
    for (Map.Entry<String, HashMap<String, CVInventory>> outerEntry : unloadedChestInventories.entrySet()) {
        for (Map.Entry<String, CVInventory> entry : outerEntry.getValue().entrySet()) {
            CVInventory cvInventory = entry.getValue();
            if (cvInventory.getLastUnloadedModification() != -1 &&
                    System.currentTimeMillis() > ConfigManager.getInstance().getUnloadedChestRefreshRate() +
                            cvInventory.getLastUnloadedModification()) {
                Chunk chunk = cvInventory.getLocation().getChunk();
                if (!chunk.isLoaded()) {
                    chunk.load();
                }
            }
        }
    }
}
 
源代码8 项目: BedwarsRel   文件: Game.java
public void updateSigns() {
  boolean removedItem = false;

  Iterator<GameJoinSign> iterator = Game.this.joinSigns.values().iterator();
  while (iterator.hasNext()) {
    GameJoinSign sign = iterator.next();

    Chunk signChunk = sign.getSign().getLocation().getChunk();
    if (!signChunk.isLoaded()) {
      signChunk.load(true);
    }

    if (sign.getSign() == null) {
      iterator.remove();
      removedItem = true;
      continue;
    }

    Block signBlock = sign.getSign().getLocation().getBlock();
    if (!(signBlock.getState() instanceof Sign)) {
      iterator.remove();
      removedItem = true;
      continue;
    }
    sign.updateSign();
  }

  if (removedItem) {
    Game.this.updateSignConfig();
  }
}
 
源代码9 项目: FastAsyncWorldedit   文件: BukkitQueue_1_10.java
@Deprecated
public boolean unloadChunk(final String world, final Chunk chunk) {
    net.minecraft.server.v1_10_R1.Chunk c = ((CraftChunk) chunk).getHandle();
    c.mustSave = false;
    if (chunk.isLoaded()) {
        chunk.unload(false, false);
    }
    return true;
}
 
源代码10 项目: FastAsyncWorldedit   文件: BukkitQueue_1_12.java
@Deprecated
public boolean unloadChunk(final String world, final Chunk chunk) {
    net.minecraft.server.v1_12_R1.Chunk c = ((CraftChunk) chunk).getHandle();
    c.mustSave = false;
    if (chunk.isLoaded()) {
        chunk.unload(false, false);
    }
    return true;
}
 
源代码11 项目: HolographicDisplays   文件: MainListener.java
@EventHandler (priority = EventPriority.MONITOR)
public void onChunkLoad(ChunkLoadEvent event) {
	Chunk chunk = event.getChunk();
	
	// Other plugins could call this event wrongly, check if the chunk is actually loaded.
	if (chunk.isLoaded()) {
		
		// In case another plugin loads the chunk asynchronously always make sure to load the holograms on the main thread.
		if (Bukkit.isPrimaryThread()) {
			processChunkLoad(chunk);
		} else {
			Bukkit.getScheduler().runTask(HolographicDisplays.getInstance(), () -> processChunkLoad(chunk));
		}
	}
}
 
源代码12 项目: FastAsyncWorldedit   文件: AsyncWorld.java
@Override
public boolean unloadChunk(final Chunk chunk) {
    if (chunk.isLoaded()) {
        return TaskManager.IMP.sync(new RunnableVal<Boolean>() {
            @Override
            public void run(Boolean value) {
                this.value = parent.unloadChunk(chunk);
            }
        });
    }
    return true;
}
 
源代码13 项目: civcraft   文件: SyncLoadChunk.java
@Override
public void run() {
	
	if (lock.tryLock()) {
		try {
			for (int i = 0; i < UPDATE_LIMIT; i++) {
				LoadChunkRequest request = requestQueue.poll();
				if (request == null) {
					return;
				}
				
				Chunk chunk = Bukkit.getWorld(request.worldName).getChunkAt(request.x, request.z);
				if (!chunk.isLoaded()) {
					if (!chunk.load()) {
						CivLog.error("Couldn't load chunk at "+request.x+","+request.z);
						continue;
					}
				}
				
				request.finished = true;
				request.condition.signalAll();					
			}
		} finally {
			lock.unlock();
		}
		
	} else {
		//CivLog.warning("SyncLoadChunk: lock was busy, try again next tick.");
	}
}
 
源代码14 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_11_R1.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码15 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_9_R2.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码16 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_13_R2.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码17 项目: Holograms   文件: HologramEntityControllerImpl.java
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
    net.minecraft.server.v1_9_R1.Chunk nmsChunk = nmsWorld.getChunkAtWorldCoords(nmsEntity.getChunkCoordinates());

    if (nmsChunk != null) {
        Chunk chunk = nmsChunk.bukkitChunk;

        if (!chunk.isLoaded()) {
            chunk.load();
            plugin.getLogger().info("Loaded chunk (x:" + chunk.getX() + " z:" + chunk.getZ() + ") to spawn a Hologram");
        }
    }

    return nmsWorld.addEntity(nmsEntity, CreatureSpawnEvent.SpawnReason.CUSTOM);
}
 
源代码18 项目: FastAsyncWorldedit   文件: AsyncWorld.java
@Override
public boolean isChunkLoaded(Chunk chunk) {
    return chunk.isLoaded();
}
 
源代码19 项目: EntityAPI   文件: SimpleChunkManager.java
@Override
public boolean canSpawn(Chunk chunk) {
    return chunk.isLoaded();
}
 
源代码20 项目: FastAsyncWorldedit   文件: BukkitQueue_All.java
@Override
public ChunkSnapshot loadChunk(World world, int x, int z, boolean generate) {
    Chunk chunk = world.getChunkAt(x, z);
    chunk.load(generate);
    return chunk.isLoaded() ? getAndCacheChunk(chunk) : null;
}