3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-11-17 05:20:05 +01:00

Code cleanup, fixed doors, chunk entity fetching

Dieser Commit ist enthalten in:
Tahg 2011-03-11 16:25:35 -05:00
Ursprung 786fdfb9fe
Commit 078f48c0fb
17 geänderte Dateien mit 61 neuen und 52 gelöschten Zeilen

Datei anzeigen

@ -10,9 +10,9 @@ public class BlockBloodStone extends Block {
super(i, j, Material.STONE); super(i, j, Material.STONE);
} }
//Craftbukkit start // Craftbukkit start
public void a(World world, int i, int j, int k, int l) { public void a(World world, int i, int j, int k, int l) {
if(net.minecraft.server.Block.byId[l].c()) { if (net.minecraft.server.Block.byId[l].c()) {
CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftWorld craftWorld = ((WorldServer) world).getWorld();
CraftServer server = ((WorldServer) world).getServer(); CraftServer server = ((WorldServer) world).getServer();
org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k); org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k);
@ -21,5 +21,5 @@ public class BlockBloodStone extends Block {
server.getPluginManager().callEvent(eventRedstone); server.getPluginManager().callEvent(eventRedstone);
} }
} }
//Craftbukkit end // Craftbukkit end
} }

Datei anzeigen

@ -171,15 +171,18 @@ public class BlockDoor extends Block {
} else if (l > 0 && Block.byId[l].c()) { } else if (l > 0 && Block.byId[l].c()) {
boolean flag1 = world.p(i, j, k) || world.p(i, j + 1, k); boolean flag1 = world.p(i, j, k) || world.p(i, j + 1, k);
//Craftbukkit start // Craftbukkit start
CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftWorld craftWorld = ((WorldServer) world).getWorld();
CraftServer server = ((WorldServer) world).getServer(); CraftServer server = ((WorldServer) world).getServer();
org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k); org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k);
org.bukkit.block.Block blockTop = craftWorld.getBlockAt(i, j + 1, k);
int power = block.getBlockPower(); int power = block.getBlockPower();
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, (world.getData(i, j, k) & 4) > 0 ? 15: 0, flag1 ? 15 : 0); int powerTop = blockTop.getBlockPower();
if (powerTop > power) power = powerTop;
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, (world.getData(i, j, k) & 4) > 0 ? 15: 0, power);
server.getPluginManager().callEvent(eventRedstone); server.getPluginManager().callEvent(eventRedstone);
this.a(world, i, j, k, eventRedstone.getNewCurrent()); this.a(world, i, j, k, eventRedstone.getNewCurrent() > 0);
//Craftbukkit end // Craftbukkit end
} }
} }
} }

Datei anzeigen

@ -51,9 +51,9 @@ public class BlockPumpkin extends Block {
world.c(i, j, k, l); world.c(i, j, k, l);
} }
//Craftbukkit start // Craftbukkit start
public void a(World world, int i, int j, int k, int l) { public void a(World world, int i, int j, int k, int l) {
if(net.minecraft.server.Block.byId[l].c()) { if (net.minecraft.server.Block.byId[l].c()) {
CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftWorld craftWorld = ((WorldServer) world).getWorld();
CraftServer server = ((WorldServer) world).getServer(); CraftServer server = ((WorldServer) world).getServer();
org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k); org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k);
@ -62,5 +62,5 @@ public class BlockPumpkin extends Block {
server.getPluginManager().callEvent(eventRedstone); server.getPluginManager().callEvent(eventRedstone);
} }
} }
//Craftbukkit end // Craftbukkit end
} }

Datei anzeigen

@ -262,7 +262,7 @@ public class BlockRedstoneWire extends Block {
} }
} }
public int g(World world, int i, int j, int k, int l) { //Craftbukkit made public public int g(World world, int i, int j, int k, int l) { // Craftbukkit made public
if (world.getTypeId(i, j, k) != this.id) { if (world.getTypeId(i, j, k) != this.id) {
return l; return l;
} else { } else {
@ -280,7 +280,9 @@ public class BlockRedstoneWire extends Block {
if (!flag) { if (!flag) {
this.b_(world, i, j, k, i1); this.b_(world, i, j, k, i1);
world.e(i, j, k, 0); world.e(i, j, k, 0);
} else if((Block.byId[l] != null && Block.byId[l].c()) || Block.DIODE_OFF.id == l && Block.DIODE_ON.id == l) { //condition added by Craftbukkit } else
// Craftbukkit
if ((Block.byId[l] != null && Block.byId[l].c()) || Block.DIODE_OFF.id == l && Block.DIODE_ON.id == l) {
this.g(world, i, j, k); this.g(world, i, j, k);
} }

Datei anzeigen

@ -105,8 +105,8 @@ public class BlockSign extends BlockContainer {
super.a(world, i, j, k, l); super.a(world, i, j, k, l);
//Craftbukkit start // Craftbukkit start
if(net.minecraft.server.Block.byId[l].c()) { if (net.minecraft.server.Block.byId[l].c()) {
CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftWorld craftWorld = ((WorldServer) world).getWorld();
CraftServer server = ((WorldServer) world).getServer(); CraftServer server = ((WorldServer) world).getServer();
Block block = craftWorld.getBlockAt(i, j, k); Block block = craftWorld.getBlockAt(i, j, k);
@ -114,6 +114,6 @@ public class BlockSign extends BlockContainer {
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, power, power); BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, power, power);
server.getPluginManager().callEvent(eventRedstone); server.getPluginManager().callEvent(eventRedstone);
} }
//Craftbukkit end // Craftbukkit end
} }
} }

Datei anzeigen

@ -109,8 +109,8 @@ public class ChunkProviderServer implements IChunkProvider {
Chunk chunk = (Chunk) this.e.get(i, j); // CraftBukkit Chunk chunk = (Chunk) this.e.get(i, j); // CraftBukkit
chunk = chunk == null ? (this.g.r ? this.d(i, j) : this.b) : chunk; chunk = chunk == null ? (this.g.r ? this.d(i, j) : this.b) : chunk;
if(chunk == this.b) return chunk; if (chunk == this.b) return chunk;
if(i != chunk.j || j != chunk.k) { if (i != chunk.j || j != chunk.k) {
MinecraftServer.a.info("Chunk (" + chunk.j + ", " + chunk.k +") stored at (" + i + ", " + j + ")"); MinecraftServer.a.info("Chunk (" + chunk.j + ", " + chunk.k +") stored at (" + i + ", " + j + ")");
MinecraftServer.a.info(chunk.getClass().getName()); MinecraftServer.a.info(chunk.getClass().getName());
Throwable x = new Throwable(); Throwable x = new Throwable();

Datei anzeigen

@ -71,10 +71,10 @@ public class EntityTrackerEntry {
boolean flag = Math.abs(i) >= 8 || Math.abs(j) >= 8 || Math.abs(k) >= 8; boolean flag = Math.abs(i) >= 8 || Math.abs(j) >= 8 || Math.abs(k) >= 8;
boolean flag1 = Math.abs(l - this.g) >= 8 || Math.abs(i1 - this.h) >= 8; boolean flag1 = Math.abs(l - this.g) >= 8 || Math.abs(i1 - this.h) >= 8;
//CraftBukkit - Create relative movement packet only if distance is greater than zero. // CraftBukkit - Create relative movement packet only if distance is greater than zero.
int distanceSquared = j1*j1+k1*k1+l1*l1; int distanceSquared = j1*j1+k1*k1+l1*l1;
flag = (distanceSquared > 0) && flag; flag = (distanceSquared > 0) && flag;
//CraftBukkit stop // CraftBukkit stop
if (j1 >= -128 && j1 < 128 && k1 >= -128 && k1 < 128 && l1 >= -128 && l1 < 128) { if (j1 >= -128 && j1 < 128 && k1 >= -128 && k1 < 128 && l1 >= -128 && l1 < 128) {
if (flag && flag1) { if (flag && flag1) {

Datei anzeigen

@ -204,7 +204,7 @@ public class MinecraftServer implements Runnable, ICommandListener {
server.loadPlugins(); // CraftBukkit server.loadPlugins(); // CraftBukkit
} }
void f() { //CraftBukkit - private -> default void f() { // CraftBukkit - private -> default
a.info("Saving chunks"); a.info("Saving chunks");
// CraftBukkit start // CraftBukkit start

Datei anzeigen

@ -73,7 +73,9 @@ public class CraftChunk implements Chunk {
} }
Entity[] entities = new Entity[count]; Entity[] entities = new Entity[count];
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
for (net.minecraft.server.Entity entity : (net.minecraft.server.Entity[])chunk.m[i].toArray()) { for (Object obj : (net.minecraft.server.Entity[])chunk.m[i].toArray()) {
if (!(obj instanceof net.minecraft.server.Entity)) continue;
net.minecraft.server.Entity entity = (net.minecraft.server.Entity) obj;
entities[index++] = entity.getBukkitEntity(); entities[index++] = entity.getBukkitEntity();
} }
} }
@ -84,7 +86,9 @@ public class CraftChunk implements Chunk {
int index = 0; int index = 0;
net.minecraft.server.Chunk chunk = getHandle(); net.minecraft.server.Chunk chunk = getHandle();
BlockState[] entities = new BlockState[chunk.l.size()]; BlockState[] entities = new BlockState[chunk.l.size()];
for (ChunkPosition position : (ChunkPosition[])chunk.l.keySet().toArray()) { for (Object obj : chunk.l.keySet().toArray()) {
if (!(obj instanceof ChunkPosition)) continue;
ChunkPosition position = (ChunkPosition) obj;
entities[index++] = worldServer.getWorld().getBlockAt(position.a, position.b, position.c).getState(); entities[index++] = worldServer.getWorld().getBlockAt(position.a, position.b, position.c).getState();
} }
return entities; return entities;

Datei anzeigen

@ -118,7 +118,7 @@ public final class CraftServer implements Server {
found = player; found = player;
delta = curDelta; delta = curDelta;
} }
if(curDelta == 0) break; if (curDelta == 0) break;
} }
} }
return found; return found;

Datei anzeigen

@ -155,7 +155,7 @@ public class CraftWorld implements World {
net.minecraft.server.Chunk chunk = null; net.minecraft.server.Chunk chunk = null;
if(provider.c == null) { if (provider.c == null) {
chunk = provider.b; chunk = provider.b;
} else { } else {
chunk = provider.c.b(x, z); chunk = provider.c.b(x, z);
@ -169,7 +169,7 @@ public class CraftWorld implements World {
} }
public boolean refreshChunk(int x, int z) { public boolean refreshChunk(int x, int z) {
if(!isChunkLoaded(x, z)) { if (!isChunkLoaded(x, z)) {
return false; return false;
} }

Datei anzeigen

@ -92,7 +92,7 @@ public class CraftBlock implements Block {
} }
public void setData(final byte data, boolean applyPhysics) { public void setData(final byte data, boolean applyPhysics) {
if(applyPhysics) { if (applyPhysics) {
chunk.getHandle().d.c(x, y, z, data); chunk.getHandle().d.c(x, y, z, data);
} else { } else {
chunk.getHandle().d.d(x, y, z, data); chunk.getHandle().d.d(x, y, z, data);
@ -128,7 +128,7 @@ public class CraftBlock implements Block {
} }
public boolean setTypeId(final int type, final boolean applyPhysics) { public boolean setTypeId(final int type, final boolean applyPhysics) {
if(applyPhysics) { if (applyPhysics) {
return setTypeId(type); return setTypeId(type);
} else { } else {
return chunk.getHandle().d.setTypeId(x, y, z, type); return chunk.getHandle().d.setTypeId(x, y, z, type);
@ -136,7 +136,7 @@ public class CraftBlock implements Block {
} }
public boolean setTypeIdAndData(final int type, final byte data, final boolean applyPhysics) { public boolean setTypeIdAndData(final int type, final byte data, final boolean applyPhysics) {
if(applyPhysics) { if (applyPhysics) {
return chunk.getHandle().d.b(x, y, z, type, data); return chunk.getHandle().d.b(x, y, z, type, data);
} else { } else {
return chunk.getHandle().d.setTypeIdAndData(x, y, z, type, data); return chunk.getHandle().d.setTypeIdAndData(x, y, z, type, data);
@ -383,12 +383,12 @@ public class CraftBlock implements Block {
int power = 0; int power = 0;
BlockRedstoneWire wire = (BlockRedstoneWire) net.minecraft.server.Block.REDSTONE_WIRE; BlockRedstoneWire wire = (BlockRedstoneWire) net.minecraft.server.Block.REDSTONE_WIRE;
net.minecraft.server.World world = chunk.getHandle().d; net.minecraft.server.World world = chunk.getHandle().d;
if((face == BlockFace.DOWN || face == BlockFace.SELF) && world.i(x, y - 1, z, 0)) power = wire.g(world, x, y - 1, z, power); if ((face == BlockFace.DOWN || face == BlockFace.SELF) && world.i(x, y - 1, z, 0)) power = wire.g(world, x, y - 1, z, power);
if((face == BlockFace.UP || face == BlockFace.SELF) && world.i(x, y + 1, z, 1)) power = wire.g(world, x, y + 1, z, power); if ((face == BlockFace.UP || face == BlockFace.SELF) && world.i(x, y + 1, z, 1)) power = wire.g(world, x, y + 1, z, power);
if((face == BlockFace.EAST || face == BlockFace.SELF) && world.i(x, y, z - 1, 2)) power = wire.g(world, x, y, z - 1, power); if ((face == BlockFace.EAST || face == BlockFace.SELF) && world.i(x, y, z - 1, 2)) power = wire.g(world, x, y, z - 1, power);
if((face == BlockFace.WEST || face == BlockFace.SELF) && world.i(x, y, z + 1, 3)) power = wire.g(world, x, y, z + 1, power); if ((face == BlockFace.WEST || face == BlockFace.SELF) && world.i(x, y, z + 1, 3)) power = wire.g(world, x, y, z + 1, power);
if((face == BlockFace.NORTH || face == BlockFace.SELF) && world.i(x - 1, y, z, 4)) power = wire.g(world, x - 1, y, z, power); if ((face == BlockFace.NORTH || face == BlockFace.SELF) && world.i(x - 1, y, z, 4)) power = wire.g(world, x - 1, y, z, power);
if((face == BlockFace.SOUTH || face == BlockFace.SELF) && world.i(x + 1, y, z, 5)) power = wire.g(world, x + 1, y, z, power); if ((face == BlockFace.SOUTH || face == BlockFace.SELF) && world.i(x + 1, y, z, 5)) power = wire.g(world, x + 1, y, z, power);
return face == BlockFace.SELF ? power - 1 : power; return face == BlockFace.SELF ? power - 1 : power;
} }

Datei anzeigen

@ -61,7 +61,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
} }
public double getEyeHeight(boolean ignoreSneaking) { public double getEyeHeight(boolean ignoreSneaking) {
if(ignoreSneaking) { if (ignoreSneaking) {
return 1.62D; return 1.62D;
} else { } else {
if (isSneaking()) { if (isSneaking()) {

Datei anzeigen

@ -19,7 +19,7 @@ public abstract class CraftVehicle extends CraftEntity implements Vehicle {
} }
public boolean setPassenger(Entity passenger) { public boolean setPassenger(Entity passenger) {
if(passenger instanceof CraftEntity){ if (passenger instanceof CraftEntity){
((CraftEntity)passenger).getHandle().setPassengerOf(getHandle()); ((CraftEntity)passenger).getHandle().setPassengerOf(getHandle());
return true; return true;
} else { } else {

Datei anzeigen

@ -25,7 +25,7 @@ public class CraftFuture<T> implements Runnable, Future<T> {
public void run() { public void run() {
synchronized(this) { synchronized(this) {
if(cancelled) { if (cancelled) {
return; return;
} }
running = true; running = true;
@ -51,7 +51,7 @@ public class CraftFuture<T> implements Runnable, Future<T> {
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
synchronized(this) { synchronized(this) {
if(isDone()) { if (isDone()) {
return getResult(); return getResult();
} }
this.wait(TimeUnit.MILLISECONDS.convert(timeout, unit)); this.wait(TimeUnit.MILLISECONDS.convert(timeout, unit));
@ -60,10 +60,10 @@ public class CraftFuture<T> implements Runnable, Future<T> {
} }
public T getResult() throws ExecutionException { public T getResult() throws ExecutionException {
if(cancelled) { if (cancelled) {
throw new CancellationException(); throw new CancellationException();
} }
if(e!=null) { if (e!=null) {
throw new ExecutionException(e); throw new ExecutionException(e);
} }
return returnStore.getObject(); return returnStore.getObject();
@ -83,14 +83,14 @@ public class CraftFuture<T> implements Runnable, Future<T> {
public boolean cancel(boolean mayInterruptIfRunning) { public boolean cancel(boolean mayInterruptIfRunning) {
synchronized(this) { synchronized(this) {
if(cancelled) { if (cancelled) {
return false; return false;
} }
cancelled = true; cancelled = true;
if(taskId!=-1) { if (taskId!=-1) {
craftScheduler.cancelTask(taskId); craftScheduler.cancelTask(taskId);
} }
if(!running && !done) { if (!running && !done) {
return true; return true;
} else { } else {
return false; return false;

Datei anzeigen

@ -13,9 +13,9 @@ public class LongHashtable<V> extends LongHash
public void put(int msw, int lsw, V value) { public void put(int msw, int lsw, V value) {
put(toLong(msw, lsw), value); put(toLong(msw, lsw), value);
if(value instanceof Chunk) { if (value instanceof Chunk) {
Chunk c = (Chunk)value; Chunk c = (Chunk)value;
if(msw != c.j || lsw != c.k) { if (msw != c.j || lsw != c.k) {
MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")"); MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")");
Throwable x = new Throwable(); Throwable x = new Throwable();
x.fillInStackTrace(); x.fillInStackTrace();
@ -26,9 +26,9 @@ public class LongHashtable<V> extends LongHash
public V get(int msw, int lsw) { public V get(int msw, int lsw) {
V value = get(toLong(msw, lsw)); V value = get(toLong(msw, lsw));
if(value instanceof Chunk) { if (value instanceof Chunk) {
Chunk c = (Chunk)value; Chunk c = (Chunk)value;
if(msw != c.j || lsw != c.k) { if (msw != c.j || lsw != c.k) {
MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")"); MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")");
Throwable x = new Throwable(); Throwable x = new Throwable();
x.fillInStackTrace(); x.fillInStackTrace();

Datei anzeigen

@ -100,13 +100,13 @@ public class SoftMap<K,V> {
private V fastGet(K key) { private V fastGet(K key) {
SoftMapReference<K,V> ref = map.get(key); SoftMapReference<K,V> ref = map.get(key);
if(ref==null) { if (ref==null) {
return null; return null;
} }
V value = ref.get(); V value = ref.get();
if(value!=null) { if (value!=null) {
strongReferenceQueue.addFirst(value); strongReferenceQueue.addFirst(value);
if(strongReferenceQueue.size() > strongReferenceSize) { if (strongReferenceQueue.size() > strongReferenceSize) {
strongReferenceQueue.removeLast(); strongReferenceQueue.removeLast();
} }
} }
@ -146,7 +146,7 @@ public class SoftMap<K,V> {
private void fastPut(K key, V value) { private void fastPut(K key, V value) {
map.put(key, new SoftMapReference<K,V>(key, value, queue)); map.put(key, new SoftMapReference<K,V>(key, value, queue));
strongReferenceQueue.addFirst(value); strongReferenceQueue.addFirst(value);
if(strongReferenceQueue.size() > strongReferenceSize) { if (strongReferenceQueue.size() > strongReferenceSize) {
strongReferenceQueue.removeLast(); strongReferenceQueue.removeLast();
} }
} }
@ -167,7 +167,7 @@ public class SoftMap<K,V> {
public V remove(K key) { public V remove(K key) {
emptyQueue(); emptyQueue();
SoftMapReference<K,V> ref = map.remove(key); SoftMapReference<K,V> ref = map.remove(key);
if(ref != null) { if (ref != null) {
return ref.get(); return ref.get();
} }
return null; return null;