下面列出了org.bukkit.Chunk#load ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static ArrayList<Integer> pasteSchematic(Location loc, File schematicFile, int loadingArea) throws Exception{
if (loadingArea > 0){
for (int x = (loc.getBlockX()/16)-loadingArea; x < (loc.getBlockX()/16)+loadingArea; x++) {
for (int z = (loc.getBlockZ()/16)-loadingArea; z < (loc.getBlockZ()/16)+loadingArea; z++) {
Chunk chunk = loc.getWorld().getChunkAt(x,z);
chunk.load(true);
chunk.unload(true);
}
}
}
if (UhcCore.getVersion() < 13){
return SchematicHandler8.pasteSchematic(loc, schematicFile.getPath());
}else {
return SchematicHandler13.pasteSchematic(loc, schematicFile.getPath());
}
}
@Override
public void run() {
int counter = plugin.getSettings().getRecalculateChunksPerTick();
while (isRunning()) {
if (counter-- <= 0) {
break;
}
ChunkPos pos = toRecalculate.pop();
Chunk chunk = pos.getChunk(plugin.getServer());
if (chunk != null && chunk.load()) {
plugin.getWorthManager().recalculate(chunk, RecalculateReason.COMMAND);
}
}
if (!isRunning()) {
plugin.getWorthManager().updateAllFactions();
plugin.getServer().getScheduler().cancelTask(taskId);
plugin.getServer().broadcastMessage(plugin.getSettings().getRecalculationFinishMessage());
}
}
@Override
public boolean doUnloadChunkFlagCheck(org.bukkit.World world, Chunk chunk)
{
for (ProtectedRegion region : this.getRegionContainer().get(world).getApplicableRegions(new ProtectedCuboidRegion("UnloadChunkFlagTester", BlockVector3.at(chunk.getX() * 16, 0, chunk.getZ() * 16), BlockVector3.at(chunk.getX() * 16 + 15, 256, chunk.getZ() * 16 + 15))))
{
if (region.getFlag(Flags.CHUNK_UNLOAD) == State.DENY)
{
if (WorldGuardSevenCommunicator.supportsForceLoad)
{
chunk.setForceLoaded(true);
chunk.load(true);
return true;
}
return false;
}
}
return true;
}
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);
}
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);
}
/**
* @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;
}
/**
* @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;
}
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();
}
}
}
}
}
public void loadChunks() {
int minX = (int) Math.floor(this.minCorner.getX());
int maxX = (int) Math.ceil(this.maxCorner.getX());
int minZ = (int) Math.floor(this.minCorner.getZ());
int maxZ = (int) Math.ceil(this.maxCorner.getZ());
for (int x = minX; x <= maxX; x += Region.CHUNK_SIZE) {
for (int z = minZ; z <= maxZ; z += Region.CHUNK_SIZE) {
Chunk chunk = this.world.getChunkAt(x, z);
if (!chunk.isLoaded()) {
chunk.load();
}
}
}
}
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();
}
}
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
net.minecraft.server.v1_12_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);
}
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);
}
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);
}
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);
}
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
net.minecraft.server.v1_10_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);
}
private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) {
net.minecraft.server.v1_13_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);
}
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);
}
@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.");
}
}
@Override
public void run() {
int maxgen = 10;
int i = 0;
for (int x = startX; x <= stopX; x++) {
for (int z = startZ; z <= stopZ; z++) {
i++;
Chunk chunk = Bukkit.getWorld("world").getChunkAt(x, z);
if (!chunk.load(true)) {
}
if (!chunk.unload(true, false)) {
}
if (i > maxgen) {
TaskMaster.syncTask(new ChunkGenerateTask(x, z, stopX, stopZ));
return;
}
}
}
}
@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;
}