mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-11-19 10:25:00 +00:00
Fixed getting and setting of blocks in unloaded chunks
This commit is contained in:
parent
02d8acfa81
commit
bc6315fb24
@ -162,6 +162,8 @@ public class EditSession {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
world.checkLoadedChuck(pt);
|
||||||
|
|
||||||
// No invalid blocks
|
// No invalid blocks
|
||||||
if (!world.isValidBlockType(type)) {
|
if (!world.isValidBlockType(type)) {
|
||||||
return false;
|
return false;
|
||||||
@ -414,6 +416,8 @@ public class EditSession {
|
|||||||
* @return BaseBlock
|
* @return BaseBlock
|
||||||
*/
|
*/
|
||||||
public BaseBlock rawGetBlock(Vector pt) {
|
public BaseBlock rawGetBlock(Vector pt) {
|
||||||
|
world.checkLoadedChuck(pt);
|
||||||
|
|
||||||
int type = world.getBlockType(pt);
|
int type = world.getBlockType(pt);
|
||||||
int data = world.getBlockData(pt);
|
int data = world.getBlockData(pt);
|
||||||
|
|
||||||
|
@ -349,6 +349,13 @@ public abstract class LocalWorld {
|
|||||||
return type >= 0 && type < 96;
|
return type >= 0 && type < 96;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the chunk pt is in is loaded. if not, loads the chunk
|
||||||
|
*
|
||||||
|
* @param pt Position to check
|
||||||
|
*/
|
||||||
|
public abstract void checkLoadedChuck(Vector pt);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare if the other world is equal.
|
* Compare if the other world is equal.
|
||||||
*
|
*
|
||||||
|
@ -673,6 +673,13 @@ public class BukkitWorld extends LocalWorld {
|
|||||||
return type <= 255 && Material.getMaterial(type) != null;
|
return type <= 255 && Material.getMaterial(type) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void checkLoadedChuck(Vector pt) {
|
||||||
|
if (!world.isChunkLoaded(pt.getBlockX() >> 4, pt.getBlockZ() >> 4)) {
|
||||||
|
world.loadChunk(pt.getBlockX() >> 4, pt.getBlockZ() >> 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object other) {
|
public boolean equals(Object other) {
|
||||||
if (!(other instanceof BukkitWorld)) {
|
if (!(other instanceof BukkitWorld)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user