Merge branch 'master' of github.com:Bukkit/CraftBukkit
This commit is contained in:
@@ -167,7 +167,7 @@ public class BlockButton extends Block {
|
||||
if (j1 == 0) {
|
||||
return true;
|
||||
} else {
|
||||
//Allow the lever to change the current
|
||||
//Allow the button to change the current
|
||||
int old = (j1 != 8) ? 1 : 0;
|
||||
int current = (j1 == 8) ? 1 : 0;
|
||||
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, old, current);
|
||||
@@ -243,6 +243,15 @@ public class BlockButton extends Block {
|
||||
int l = world.getData(i, j, k);
|
||||
|
||||
if ((l & 8) != 0) {
|
||||
// Craftbukkit start
|
||||
CraftWorld craftWorld = ((WorldServer) world).getWorld();
|
||||
CraftServer server = ((WorldServer) world).getServer();
|
||||
CraftBlock block = (CraftBlock) craftWorld.getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, 1, 0);
|
||||
server.getPluginManager().callEvent(eventRedstone);
|
||||
if (eventRedstone.getNewCurrent() > 0) return;
|
||||
// Craftbukkit end
|
||||
|
||||
world.c(i, j, k, l & 7);
|
||||
world.h(i, j, k, this.id);
|
||||
int i1 = l & 7;
|
||||
|
||||
@@ -4,7 +4,8 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.block.BlockFace;import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.entity.CraftLivingEntity;
|
||||
@@ -115,6 +116,15 @@ public class BlockPressurePlate extends Block {
|
||||
flag1 = true;
|
||||
}
|
||||
|
||||
// Craftbukkit start
|
||||
CraftWorld craftWorld = ((WorldServer) world).getWorld();
|
||||
CraftServer server = ((WorldServer) world).getServer();
|
||||
CraftBlock block = (CraftBlock) craftWorld.getBlockAt(i, j, k);
|
||||
BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, flag ? 1 : 0, flag1 ? 1 : 0);
|
||||
server.getPluginManager().callEvent(eventRedstone);
|
||||
flag1 = eventRedstone.getNewCurrent() > 0;
|
||||
// Craftbukkit end
|
||||
|
||||
if (flag1 && !flag) {
|
||||
world.c(i, j, k, 1);
|
||||
world.h(i, j, k, this.id);
|
||||
|
||||
@@ -6,6 +6,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
|
||||
public class Chunk {
|
||||
|
||||
public static boolean a;
|
||||
@@ -44,7 +46,11 @@ public class Chunk {
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
bukkitChunk = new org.bukkit.craftbukkit.CraftChunk( this );
|
||||
CraftWorld cw = ((WorldServer) world).getWorld();
|
||||
bukkitChunk = (cw == null) ? null:cw.popPreservedChunk( i, j );
|
||||
if (bukkitChunk == null) {
|
||||
bukkitChunk = new org.bukkit.craftbukkit.CraftChunk( this );
|
||||
}
|
||||
}
|
||||
|
||||
public org.bukkit.Chunk bukkitChunk;
|
||||
|
||||
@@ -10,15 +10,16 @@ import java.util.Set;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.craftbukkit.CraftChunk;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.world.ChunkLoadEvent;
|
||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public class ChunkProviderServer implements IChunkProvider {
|
||||
|
||||
public LongHashset a = new LongHashset(); // CraftBukkit
|
||||
private Chunk b;
|
||||
private IChunkProvider c;
|
||||
@@ -39,7 +40,7 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
return this.e.containsKey(i, j);
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
public void c(int i, int j) {
|
||||
int k = i * 16 + 8 - this.g.spawnX;
|
||||
int l = j * 16 + 8 - this.g.spawnZ;
|
||||
@@ -197,16 +198,23 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
public boolean a() {
|
||||
if (!this.g.C) {
|
||||
// CraftBukkit start
|
||||
Server server = g.getServer();
|
||||
while (!this.a.isEmpty()) {
|
||||
long chunkcoordinates = this.a.popFirst();
|
||||
Chunk chunk = e.get(chunkcoordinates);
|
||||
if (chunk == null) continue;
|
||||
chunk.e();
|
||||
this.b(chunk);
|
||||
this.a(chunk);
|
||||
this.a.remove(chunkcoordinates);
|
||||
this.e.remove(chunkcoordinates);
|
||||
this.f.remove(chunk);
|
||||
|
||||
ChunkUnloadEvent cue = new ChunkUnloadEvent(Type.CHUNK_UNLOADED, chunk.bukkitChunk);
|
||||
server.getPluginManager().callEvent(cue);
|
||||
if (!cue.isCancelled()) {
|
||||
g.getWorld().preserveChunk( (CraftChunk) chunk.bukkitChunk );
|
||||
|
||||
chunk.e();
|
||||
this.b(chunk);
|
||||
this.a(chunk);
|
||||
this.e.remove(chunkcoordinates);
|
||||
this.f.remove(chunk);
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ package net.minecraft.server;
|
||||
import org.bukkit.craftbukkit.entity.CraftMonster;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.TrigMath;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
@@ -118,7 +119,7 @@ public class EntityCreature extends EntityLiving {
|
||||
double d1 = vec3d.a - this.locX;
|
||||
double d2 = vec3d.c - this.locZ;
|
||||
double d3 = vec3d.b - (double) l1;
|
||||
float f4 = (float) (Math.atan2(d2, d1) * 180.0D / 3.1415927410125732D) - 90.0F;
|
||||
float f4 = (float) (TrigMath.atan2(d2, d1) * 180.0D / 3.1415927410125732D) - 90.0F;
|
||||
float f5 = f4 - this.yaw;
|
||||
|
||||
for (this.by = this.bC; f5 < -180.0F; f5 += 360.0F) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
// CraftBukkit start
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.TrigMath;
|
||||
import org.bukkit.craftbukkit.entity.CraftItemDrop;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
@@ -124,7 +125,7 @@ public abstract class EntityHuman extends EntityLiving {
|
||||
this.as = this.at;
|
||||
super.o();
|
||||
float f = MathHelper.a(this.motX * this.motX + this.motZ * this.motZ);
|
||||
float f1 = (float) Math.atan(-this.motY * 0.20000000298023224D) * 15.0F;
|
||||
float f1 = (float) TrigMath.atan(-this.motY * 0.20000000298023224D) * 15.0F;
|
||||
|
||||
if (f > 0.1F) {
|
||||
f = 0.1F;
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
||||
import org.bukkit.craftbukkit.TrigMath;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
@@ -236,7 +237,7 @@ public abstract class EntityLiving extends Entity {
|
||||
if (f > 0.05F) {
|
||||
f3 = 1.0F;
|
||||
f2 = f * 3.0F;
|
||||
f1 = (float) Math.atan2(d1, d0) * 180.0F / 3.1415927F - 90.0F;
|
||||
f1 = (float) TrigMath.atan2(d1, d0) * 180.0F / 3.1415927F - 90.0F;
|
||||
}
|
||||
|
||||
if (this.aY > 0.0F) {
|
||||
|
||||
@@ -29,9 +29,8 @@ public class Explosion {
|
||||
public Entity e;
|
||||
public float f;
|
||||
public Set g = new HashSet();
|
||||
// Craftbukkit start
|
||||
public boolean wasCanceled = false;
|
||||
// Craftbukkit end
|
||||
|
||||
public boolean wasCanceled = false; // Craftbukkit
|
||||
|
||||
public Explosion(World world, Entity entity, double d0, double d1, double d2, float f) {
|
||||
this.i = world;
|
||||
@@ -240,7 +239,7 @@ public class Explosion {
|
||||
}
|
||||
|
||||
if (i1 > 0) {
|
||||
Block.byId[i1].a(this.i, j, k, l, this.i.getData(j, k, l), 0.3F);
|
||||
Block.byId[i1].a(this.i, j, k, l, this.i.getData(j, k, l), event.getYield()); // Craftbukkit
|
||||
this.i.e(j, k, l, 0);
|
||||
Block.byId[i1].a_(this.i, j, k, l);
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
// Craftbukkit start
|
||||
for (WorldServer world : worlds) {
|
||||
world.a(true, (IProgressUpdate) null);
|
||||
|
||||
|
||||
Event worldSaved = new WorldEvent( Event.Type.WORLD_SAVED, world.getWorld() );
|
||||
server.getPluginManager().callEvent( worldSaved );
|
||||
}
|
||||
@@ -310,14 +310,14 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
}
|
||||
|
||||
((CraftScheduler) server.getScheduler()).mainThreadHeartbeat(this.h);
|
||||
|
||||
|
||||
for (WorldServer world : worlds) {
|
||||
world.f();
|
||||
|
||||
while (world.d()) {
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
world.c();
|
||||
}
|
||||
// Craftbukkit end
|
||||
@@ -366,11 +366,11 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
// Craftbukkit start
|
||||
for (WorldServer world : worlds) {
|
||||
world.a(true, (IProgressUpdate) null);
|
||||
|
||||
|
||||
Event worldSaved = new WorldEvent( Event.Type.WORLD_SAVED, world.getWorld() );
|
||||
server.getPluginManager().callEvent( worldSaved );
|
||||
}
|
||||
|
||||
|
||||
this.f.d();
|
||||
// Craftbukkit end
|
||||
|
||||
@@ -398,11 +398,11 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
s2 = s.substring(s.indexOf(" ")).trim();
|
||||
this.f.e(s2);
|
||||
this.a(s1, "Opping " + s2);
|
||||
this.f.a(s2, "§eYou are now op!");
|
||||
this.f.a(s2, "\u00A7eYou are now op!");
|
||||
} else if (s.toLowerCase().startsWith("deop ")) {
|
||||
s2 = s.substring(s.indexOf(" ")).trim();
|
||||
this.f.f(s2);
|
||||
this.f.a(s2, "§eYou are no longer op!");
|
||||
this.f.a(s2, "\u00A7eYou are no longer op!");
|
||||
this.a(s1, "De-opping " + s2);
|
||||
} else if (s.toLowerCase().startsWith("ban-ip ")) {
|
||||
s2 = s.substring(s.indexOf(" ")).trim();
|
||||
@@ -507,14 +507,14 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
} else if (s.toLowerCase().startsWith("say ")) {
|
||||
s = s.substring(s.indexOf(" ")).trim();
|
||||
a.info("[" + s1 + "] " + s);
|
||||
this.f.a((Packet) (new Packet3Chat("§d[Server] " + s)));
|
||||
this.f.a((Packet) (new Packet3Chat("\u00A7d[Server] " + s)));
|
||||
} else if (s.toLowerCase().startsWith("tell ")) {
|
||||
astring = s.split(" ");
|
||||
if (astring.length >= 3) {
|
||||
s = s.substring(s.indexOf(" ")).trim();
|
||||
s = s.substring(s.indexOf(" ")).trim();
|
||||
a.info("[" + s1 + "->" + astring[1] + "] " + s);
|
||||
s = "§7" + s1 + " whispers " + s;
|
||||
s = "\u00A77" + s1 + " whispers " + s;
|
||||
a.info(s);
|
||||
if (!this.f.a(astring[1], (Packet) (new Packet3Chat(s)))) {
|
||||
icommandlistener.b("There\'s no player by that name online.");
|
||||
@@ -554,7 +554,7 @@ public class MinecraftServer implements ICommandListener, Runnable {
|
||||
private void a(String s, String s1) {
|
||||
String s2 = s + ": " + s1;
|
||||
|
||||
this.f.i("§7(" + s2 + ")");
|
||||
this.f.i("\u00A77(" + s2 + ")");
|
||||
a.info(s2);
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ public class NetLoginHandler extends NetHandler {
|
||||
// Craftbukkit start
|
||||
netserverhandler.b((Packet) (new Packet1Login("", "", entityplayer.id, entityplayer.world.u, (byte) entityplayer.world.q.g)));
|
||||
netserverhandler.b((Packet) (new Packet6SpawnPosition(entityplayer.world.spawnX, entityplayer.world.spawnY, entityplayer.world.spawnZ)));
|
||||
this.e.f.a((Packet) (new Packet3Chat("§e" + entityplayer.name + " joined the game.")));
|
||||
this.e.f.a((Packet) (new Packet3Chat("\u00A7e" + entityplayer.name + " joined the game.")));
|
||||
this.e.f.a(entityplayer);
|
||||
netserverhandler.a(entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
|
||||
this.e.c.a(netserverhandler);
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.TextWrapper;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.block.BlockDamageEvent;
|
||||
@@ -82,7 +83,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
|
||||
public void a(String s) {
|
||||
// CraftBukkit start
|
||||
String leaveMessage = "§e" + this.e.name + " left the game.";
|
||||
String leaveMessage = "\u00A7e" + this.e.name + " left the game.";
|
||||
PlayerKickEvent kickEvent = new PlayerKickEvent(org.bukkit.event.Event.Type.PLAYER_KICK, server.getPlayer(this.e), s, leaveMessage);
|
||||
server.getPluginManager().callEvent(kickEvent);
|
||||
if (kickEvent.isCancelled()) {
|
||||
@@ -550,7 +551,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
|
||||
public void a(String s, Object[] aobject) {
|
||||
a.info(this.e.name + " lost connection: " + s);
|
||||
this.d.f.a((Packet) (new Packet3Chat("§e" + this.e.name + " left the game.")));
|
||||
this.d.f.a((Packet) (new Packet3Chat("\u00A7e" + this.e.name + " left the game.")));
|
||||
this.d.f.c(this.e);
|
||||
this.c = true;
|
||||
}
|
||||
@@ -593,7 +594,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
// CraftBukkit end
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// CraftBukkit start
|
||||
public boolean chat(String msg) {
|
||||
if (msg.startsWith("/")) {
|
||||
@@ -608,12 +609,14 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
if (event.isCancelled()) {
|
||||
return true;
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
a.info(msg);
|
||||
this.d.f.a((Packet) (new Packet3Chat(msg)));
|
||||
for (final String line: TextWrapper.wrapText(msg)) {
|
||||
this.d.f.a((Packet) (new Packet3Chat(line)));
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -622,7 +625,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
// CraftBukkit start
|
||||
CraftPlayer player = getPlayer();
|
||||
|
||||
PlayerChatEvent event = new PlayerChatEvent(Type.PLAYER_COMMAND, player, s);
|
||||
PlayerChatEvent event = new PlayerChatEvent(Type.PLAYER_COMMAND_PREPROCESS, player, s);
|
||||
server.getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
@@ -641,6 +644,14 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
if (targetPluginFound) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Legacy command handler
|
||||
event = new PlayerChatEvent(Type.PLAYER_COMMAND, player, s);
|
||||
server.getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
s = event.getMessage();
|
||||
player = (CraftPlayer) event.getPlayer();
|
||||
EntityPlayer e = player.getHandle();
|
||||
@@ -658,10 +669,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
if (astring.length >= 3) {
|
||||
s = s.substring(s.indexOf(" ")).trim();
|
||||
s = s.substring(s.indexOf(" ")).trim();
|
||||
s = "§7" + this.e.name + " whispers " + s;
|
||||
s = "\u00A77" + this.e.name + " whispers " + s;
|
||||
a.info(s + " to " + astring[1]);
|
||||
if (!this.d.f.a(astring[1], (Packet) (new Packet3Chat(s)))) {
|
||||
this.b((Packet) (new Packet3Chat("§cThere\'s no player by that name online.")));
|
||||
this.b((Packet) (new Packet3Chat("\u00A7cThere\'s no player by that name online.")));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -718,7 +729,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
|
||||
}
|
||||
|
||||
public void b(String s) {
|
||||
this.b((Packet) (new Packet3Chat("§7" + s)));
|
||||
this.b((Packet) (new Packet3Chat("\u00A77" + s)));
|
||||
}
|
||||
|
||||
public String c() {
|
||||
|
||||
@@ -834,6 +834,8 @@ public class World implements IBlockAccess {
|
||||
type = MobType.SPIDER;
|
||||
} else if (entity instanceof EntityZombie) {
|
||||
type = MobType.ZOMBIE;
|
||||
} else if (entity instanceof EntitySlime) {
|
||||
type = MobType.SLIME;
|
||||
}
|
||||
|
||||
if (type != null) {
|
||||
|
||||
Reference in New Issue
Block a user