1
0
forked from xjboss/KCauldronX

Update to Forge 1343. Small fixes.

This commit is contained in:
gamerforEA 2015-03-30 10:25:29 +03:00
parent 3c203341c9
commit 6f8f13347d
16 changed files with 203 additions and 200 deletions

View File

@ -44,7 +44,7 @@ minecraft {
group = 'net.minecraftforge' group = 'net.minecraftforge'
ext.mcVersion = "1.7.10" ext.mcVersion = "1.7.10"
ext.cauldronVersion = "1" ext.cauldronVersion = "1"
ext.forgeVersion = "1291" ext.forgeVersion = "1343"
ext.bukkitVersion = "01" ext.bukkitVersion = "01"
version = "${mcVersion}-${cauldronVersion}.${forgeVersion}.${bukkitVersion}.0" version = "${mcVersion}-${cauldronVersion}.${forgeVersion}.${bukkitVersion}.0"
@ -65,7 +65,7 @@ tasks.packageUniversal.manifest {
'Implementation-Vendor': 'Cauldron', 'Implementation-Vendor': 'Cauldron',
'Implementation-Title': 'Cauldron', 'Implementation-Title': 'Cauldron',
'Implementation-Version': 'git-Cauldron-Reloaded-'+project.version, 'Implementation-Version': 'git-Cauldron-Reloaded-'+project.version,
'Forge-Version': '10.13.2.1291', 'Forge-Version': '10.13.2.1343',
'Specification-Vendor': 'Bukkit Team', 'Specification-Vendor': 'Bukkit Team',
'Specification-Title': 'Bukkit', 'Specification-Title': 'Bukkit',
'Specification-Version': '1.7.10-R0.1-SNAPSHOT' 'Specification-Version': '1.7.10-R0.1-SNAPSHOT'

View File

@ -1,6 +1,6 @@
--- ../src-base/minecraft/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java --- ../src-base/minecraft/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java
+++ ../src-work/minecraft/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java +++ ../src-work/minecraft/cpw/mods/fml/common/network/handshake/NetworkDispatcher.java
@@ -72,7 +72,7 @@ @@ -76,7 +76,7 @@
public static final AttributeKey<Boolean> IS_LOCAL = new AttributeKey<Boolean>("fml:isLocal"); public static final AttributeKey<Boolean> IS_LOCAL = new AttributeKey<Boolean>("fml:isLocal");
public final NetworkManager manager; public final NetworkManager manager;
private final ServerConfigurationManager scm; private final ServerConfigurationManager scm;
@ -9,16 +9,16 @@
private ConnectionState state; private ConnectionState state;
private ConnectionType connectionType; private ConnectionType connectionType;
private final Side side; private final Side side;
@@ -202,7 +202,7 @@ @@ -219,7 +219,7 @@
} }
else else
{ {
- FMLLog.info("Unexpected packet during modded negotiation - assuming vanilla or keepalives : %s", msg.getClass().getName()); - FMLLog.info("Unexpected packet during modded negotiation - assuming vanilla or keepalives : %s", msg.getClass().getName());
+ //FMLLog.info("Unexpected packet during modded negotiation - assuming vanilla or keepalives : %s", msg.getClass().getName()); // Cauldron - unneeded spam + // FMLLog.info("Unexpected packet during modded negotiation - assuming vanilla or keepalives : %s", msg.getClass().getName());
} }
return false; return false;
} }
@@ -287,6 +287,7 @@ @@ -304,6 +304,7 @@
state = ConnectionState.HANDSHAKING; state = ConnectionState.HANDSHAKING;
} }
String channelName = msg.func_149559_c(); String channelName = msg.func_149559_c();
@ -26,7 +26,7 @@
if ("FML|HS".equals(channelName) || "REGISTER".equals(channelName) || "UNREGISTER".equals(channelName)) if ("FML|HS".equals(channelName) || "REGISTER".equals(channelName) || "UNREGISTER".equals(channelName))
{ {
FMLProxyPacket proxy = new FMLProxyPacket(msg); FMLProxyPacket proxy = new FMLProxyPacket(msg);
@@ -308,6 +309,7 @@ @@ -325,6 +326,7 @@
else if (NetworkRegistry.INSTANCE.hasChannel(channelName, Side.SERVER)) else if (NetworkRegistry.INSTANCE.hasChannel(channelName, Side.SERVER))
{ {
FMLProxyPacket proxy = new FMLProxyPacket(msg); FMLProxyPacket proxy = new FMLProxyPacket(msg);
@ -34,12 +34,12 @@
proxy.setDispatcher(this); proxy.setDispatcher(this);
context.fireChannelRead(proxy); context.fireChannelRead(proxy);
return true; return true;
@@ -465,7 +467,7 @@ @@ -482,7 +484,7 @@
// Stop the epic channel closed spam at close // Stop the epic channel closed spam at close
if (!(cause instanceof ClosedChannelException)) if (!(cause instanceof ClosedChannelException))
{ {
- FMLLog.log(Level.ERROR, cause, "NetworkDispatcher exception"); - FMLLog.log(Level.ERROR, cause, "NetworkDispatcher exception");
+ //FMLLog.log(Level.ERROR, cause, "NetworkDispatcher exception"); // Cauldron - disable unneeded spam + // FMLLog.log(Level.ERROR, cause, "NetworkDispatcher exception");
} }
super.exceptionCaught(ctx, cause); super.exceptionCaught(ctx, cause);
} }

View File

@ -10,7 +10,7 @@
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
@@ -1024,4 +1026,56 @@ @@ -1025,4 +1027,56 @@
throw new RuntimeException("WHAT?"); throw new RuntimeException("WHAT?");
} }
} }

View File

@ -219,7 +219,7 @@
score.func_96648_a(); score.func_96648_a();
} }
} }
@@ -777,6 +861,19 @@ @@ -777,6 +861,36 @@
entityitem.motionZ += Math.sin((double)f1) * (double)f; entityitem.motionZ += Math.sin((double)f1) * (double)f;
} }
@ -231,7 +231,24 @@
+ +
+ if (event.isCancelled()) + if (event.isCancelled())
+ { + {
+ player.getInventory().addItem(drop.getItemStack()); + // player.getInventory().addItem(drop.getItemStack());
+ org.bukkit.inventory.ItemStack cur = player.getInventory().getItemInHand();
+ if (p_146097_3_ && (cur == null || cur.getAmount() == 0))
+ {
+ // The complete stack was dropped
+ player.getInventory().setItemInHand(drop.getItemStack());
+ }
+ else if (p_146097_3_ && cur.isSimilar(drop.getItemStack()) && drop.getItemStack().getAmount() == 1)
+ {
+ // Only one item is dropped
+ cur.setAmount(cur.getAmount() + 1);
+ player.getInventory().setItemInHand(cur);
+ }
+ else
+ {
+ // Fallback
+ player.getInventory().addItem(drop.getItemStack());
+ }
+ return null; + return null;
+ } + }
+ // CraftBukkit end + // CraftBukkit end
@ -239,7 +256,7 @@
this.joinEntityItemWithWorld(entityitem); this.joinEntityItemWithWorld(entityitem);
this.addStat(StatList.dropStat, 1); this.addStat(StatList.dropStat, 1);
return entityitem; return entityitem;
@@ -881,6 +978,15 @@ @@ -881,6 +995,15 @@
this.wakeUpPlayer(true, true, false); this.wakeUpPlayer(true, true, false);
} }
@ -255,7 +272,7 @@
if (p_70037_1_.hasKey("SpawnX", 99) && p_70037_1_.hasKey("SpawnY", 99) && p_70037_1_.hasKey("SpawnZ", 99)) if (p_70037_1_.hasKey("SpawnX", 99) && p_70037_1_.hasKey("SpawnY", 99) && p_70037_1_.hasKey("SpawnZ", 99))
{ {
this.spawnChunk = new ChunkCoordinates(p_70037_1_.getInteger("SpawnX"), p_70037_1_.getInteger("SpawnY"), p_70037_1_.getInteger("SpawnZ")); this.spawnChunk = new ChunkCoordinates(p_70037_1_.getInteger("SpawnX"), p_70037_1_.getInteger("SpawnY"), p_70037_1_.getInteger("SpawnZ"));
@@ -925,6 +1031,7 @@ @@ -925,6 +1048,7 @@
p_70014_1_.setInteger("SpawnY", this.spawnChunk.posY); p_70014_1_.setInteger("SpawnY", this.spawnChunk.posY);
p_70014_1_.setInteger("SpawnZ", this.spawnChunk.posZ); p_70014_1_.setInteger("SpawnZ", this.spawnChunk.posZ);
p_70014_1_.setBoolean("SpawnForced", this.spawnForced); p_70014_1_.setBoolean("SpawnForced", this.spawnForced);
@ -263,7 +280,7 @@
} }
NBTTagList spawnlist = new NBTTagList(); NBTTagList spawnlist = new NBTTagList();
@@ -1003,7 +1110,7 @@ @@ -1003,7 +1127,7 @@
{ {
if (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL) if (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL)
{ {
@ -272,7 +289,7 @@
} }
if (this.worldObj.difficultySetting == EnumDifficulty.EASY) if (this.worldObj.difficultySetting == EnumDifficulty.EASY)
@@ -1017,7 +1124,7 @@ @@ -1017,7 +1141,7 @@
} }
} }
@ -281,7 +298,7 @@
{ {
return false; return false;
} }
@@ -1039,9 +1146,40 @@ @@ -1039,9 +1163,40 @@
public boolean canAttackPlayer(EntityPlayer p_96122_1_) public boolean canAttackPlayer(EntityPlayer p_96122_1_)
{ {
@ -325,7 +342,7 @@
} }
protected void damageArmor(float p_70675_1_) protected void damageArmor(float p_70675_1_)
@@ -1073,19 +1211,34 @@ @@ -1073,19 +1228,34 @@
return (float)i / (float)this.inventory.armorInventory.length; return (float)i / (float)this.inventory.armorInventory.length;
} }
@ -362,7 +379,7 @@
p_70665_2_ = this.applyPotionDamageCalculations(p_70665_1_, p_70665_2_); p_70665_2_ = this.applyPotionDamageCalculations(p_70665_1_, p_70665_2_);
float f1 = p_70665_2_; float f1 = p_70665_2_;
p_70665_2_ = Math.max(p_70665_2_ - this.getAbsorptionAmount(), 0.0F); p_70665_2_ = Math.max(p_70665_2_ - this.getAbsorptionAmount(), 0.0F);
@@ -1099,6 +1252,7 @@ @@ -1099,6 +1269,7 @@
this.func_110142_aN().func_94547_a(p_70665_1_, f2, p_70665_2_); this.func_110142_aN().func_94547_a(p_70665_1_, f2, p_70665_2_);
} }
} }
@ -370,7 +387,7 @@
} }
public void func_146101_a(TileEntityFurnace p_146101_1_) {} public void func_146101_a(TileEntityFurnace p_146101_1_) {}
@@ -1134,7 +1288,8 @@ @@ -1134,7 +1305,8 @@
if (itemstack.interactWithEntity(this, (EntityLivingBase)p_70998_1_)) if (itemstack.interactWithEntity(this, (EntityLivingBase)p_70998_1_))
{ {
@ -380,7 +397,7 @@
{ {
this.destroyCurrentEquippedItem(); this.destroyCurrentEquippedItem();
} }
@@ -1281,7 +1436,8 @@ @@ -1281,7 +1453,8 @@
{ {
itemstack.hitEntity((EntityLivingBase)object, this); itemstack.hitEntity((EntityLivingBase)object, this);
@ -390,7 +407,7 @@
{ {
this.destroyCurrentEquippedItem(); this.destroyCurrentEquippedItem();
} }
@@ -1293,7 +1449,17 @@ @@ -1293,7 +1466,17 @@
if (j > 0) if (j > 0)
{ {
@ -409,7 +426,7 @@
} }
} }
@@ -1322,6 +1488,10 @@ @@ -1322,6 +1505,10 @@
if (this.openContainer != null) if (this.openContainer != null)
{ {
@ -420,7 +437,7 @@
this.openContainer.onContainerClosed(this); this.openContainer.onContainerClosed(this);
} }
} }
@@ -1381,6 +1551,20 @@ @@ -1381,6 +1568,20 @@
this.mountEntity((Entity)null); this.mountEntity((Entity)null);
} }
@ -441,7 +458,7 @@
this.setSize(0.2F, 0.2F); this.setSize(0.2F, 0.2F);
this.yOffset = 0.2F; this.yOffset = 0.2F;
@@ -1476,6 +1660,26 @@ @@ -1476,6 +1677,26 @@
this.worldObj.updateAllPlayersSleepingFlag(); this.worldObj.updateAllPlayersSleepingFlag();
} }
@ -468,7 +485,7 @@
if (p_70999_1_) if (p_70999_1_)
{ {
this.sleepTimer = 0; this.sleepTimer = 0;
@@ -1606,11 +1810,13 @@ @@ -1606,11 +1827,13 @@
{ {
this.spawnChunk = new ChunkCoordinates(p_71063_1_); this.spawnChunk = new ChunkCoordinates(p_71063_1_);
this.spawnForced = p_71063_2_; this.spawnForced = p_71063_2_;

View File

@ -284,7 +284,7 @@
+ IChatComponent chatmessage = this.func_110142_aN().func_151521_b(); + IChatComponent chatmessage = this.func_110142_aN().func_151521_b();
+ String deathmessage = chatmessage.getUnformattedText(); + String deathmessage = chatmessage.getUnformattedText();
+ org.bukkit.event.entity.PlayerDeathEvent event = CraftEventFactory.callPlayerDeathEvent(this, loot, deathmessage); + org.bukkit.event.entity.PlayerDeathEvent event = CraftEventFactory.callPlayerDeathEvent(this, loot, deathmessage, keepInventory);
+ String deathMessage = event.getDeathMessage(); + String deathMessage = event.getDeathMessage();
+ +
+ if (deathMessage != null && deathMessage.length() > 0) + if (deathMessage != null && deathMessage.length() > 0)
@ -299,7 +299,7 @@
+ } + }
+ } + }
+ +
+ if (!keepInventory) + if (!event.getKeepInventory())
+ { + {
+ // Cauldron start - rework CraftBukkit logic to support Forge better + // Cauldron start - rework CraftBukkit logic to support Forge better
+ this.inventory.clearInventory(null, -1); // CraftBukkit - we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory. + this.inventory.clearInventory(null, -1); // CraftBukkit - we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory.

View File

@ -31,7 +31,7 @@
if (movingobjectposition.entityHit != null) if (movingobjectposition.entityHit != null)
{ {
if (movingobjectposition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.field_146042_b), 0.0F)) if (movingobjectposition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.field_146042_b), 0.0F))
@@ -509,6 +517,18 @@ @@ -509,6 +517,16 @@
if (this.field_146043_c != null) if (this.field_146043_c != null)
{ {
@ -41,8 +41,6 @@
+ +
+ if (playerFishEvent.isCancelled()) + if (playerFishEvent.isCancelled())
+ { + {
+ this.setDead();
+ this.field_146042_b.fishEntity = null;
+ return 0; + return 0;
+ } + }
+ +
@ -50,7 +48,7 @@
double d0 = this.field_146042_b.posX - this.posX; double d0 = this.field_146042_b.posX - this.posX;
double d2 = this.field_146042_b.posY - this.posY; double d2 = this.field_146042_b.posY - this.posY;
double d4 = this.field_146042_b.posZ - this.posZ; double d4 = this.field_146042_b.posZ - this.posZ;
@@ -522,6 +542,19 @@ @@ -522,6 +540,17 @@
else if (this.field_146045_ax > 0) else if (this.field_146045_ax > 0)
{ {
EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY, this.posZ, this.func_146033_f()); EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY, this.posZ, this.func_146033_f());
@ -61,8 +59,6 @@
+ +
+ if (playerFishEvent.isCancelled()) + if (playerFishEvent.isCancelled())
+ { + {
+ this.setDead();
+ this.field_146042_b.fishEntity = null;
+ return 0; + return 0;
+ } + }
+ +
@ -70,7 +66,7 @@
double d1 = this.field_146042_b.posX - this.posX; double d1 = this.field_146042_b.posX - this.posX;
double d3 = this.field_146042_b.posY - this.posY; double d3 = this.field_146042_b.posY - this.posY;
double d5 = this.field_146042_b.posZ - this.posZ; double d5 = this.field_146042_b.posZ - this.posZ;
@@ -531,15 +564,36 @@ @@ -531,15 +560,37 @@
entityitem.motionY = d3 * d9 + (double)MathHelper.sqrt_double(d7) * 0.08D; entityitem.motionY = d3 * d9 + (double)MathHelper.sqrt_double(d7) * 0.08D;
entityitem.motionZ = d5 * d9; entityitem.motionZ = d5 * d9;
this.worldObj.spawnEntityInWorld(entityitem); this.worldObj.spawnEntityInWorld(entityitem);
@ -88,11 +84,8 @@
+ +
+ if (playerFishEvent.isCancelled()) + if (playerFishEvent.isCancelled())
+ { + {
+ this.setDead();
+ this.field_146042_b.fishEntity = null;
+ return 0; + return 0;
+ } + }
+
+ // CraftBukkit end + // CraftBukkit end
b0 = 2; b0 = 2;
} }
@ -102,13 +95,17 @@
+ { + {
+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) this.field_146042_b.getBukkitEntity(), null, (Fish) this.getBukkitEntity(), PlayerFishEvent.State.FAILED_ATTEMPT); + PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) this.field_146042_b.getBukkitEntity(), null, (Fish) this.getBukkitEntity(), PlayerFishEvent.State.FAILED_ATTEMPT);
+ this.worldObj.getServer().getPluginManager().callEvent(playerFishEvent); + this.worldObj.getServer().getPluginManager().callEvent(playerFishEvent);
+ }
+ +
+ if (playerFishEvent.isCancelled())
+ {
+ return 0;
+ }
+ }
+ // CraftBukkit end + // CraftBukkit end
this.setDead(); this.setDead();
this.field_146042_b.fishEntity = null; this.field_146042_b.fishEntity = null;
return b0; return b0;
@@ -580,7 +634,7 @@ @@ -580,7 +631,7 @@
{ {
float f3 = f - f2; float f3 = f - f2;
this.field_146042_b.addStat(StatList.fishCaughtStat, 1); this.field_146042_b.addStat(StatList.fishCaughtStat, 1);

View File

@ -156,7 +156,7 @@
+ } + }
+ +
+ private final static HashSet<Integer> invalidItems = new HashSet<Integer>(java.util.Arrays.asList(8, 9, 10, 11, 26, 34, 36, 43, 51, 52, 55, 59, 60, 62, 63, + private final static HashSet<Integer> invalidItems = new HashSet<Integer>(java.util.Arrays.asList(8, 9, 10, 11, 26, 34, 36, 43, 51, 52, 55, 59, 60, 62, 63,
+ 64, 68, 71, 74, 75, 83, 90, 92, 93, 94, 104, 105, 115, 117, 118, 119, 125, 127, 132, 137, 140, 141, 142, 144)); // TODO: Check after every update. + 64, 68, 71, 74, 75, 83, 90, 92, 93, 94, 104, 105, 115, 117, 118, 119, 125, 127, 132, 140, 141, 142, 144)); // TODO: Check after every update.
+ // CraftBukkit end + // CraftBukkit end
+ +
public void onNetworkTick() public void onNetworkTick()

View File

@ -19,10 +19,10 @@
import net.minecraft.world.demo.DemoWorldManager; import net.minecraft.world.demo.DemoWorldManager;
import net.minecraft.world.storage.IPlayerFileData; import net.minecraft.world.storage.IPlayerFileData;
+import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.DimensionManager;
import net.minecraft.world.storage.SaveHandler;
import net.minecraftforge.common.chunkio.ChunkIOExecutor; import net.minecraftforge.common.chunkio.ChunkIOExecutor;
+import net.minecraftforge.common.network.ForgeMessage; +import net.minecraftforge.common.network.ForgeMessage;
+import net.minecraftforge.common.network.ForgeNetworkHandler; +import net.minecraftforge.common.network.ForgeNetworkHandler;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -135,19 +135,16 @@
{ {
HashSet hashset = new HashSet(); HashSet hashset = new HashSet();
Iterator iterator = p_96456_1_.getTeams().iterator(); Iterator iterator = p_96456_1_.getTeams().iterator();
@@ -225,6 +280,11 @@ @@ -225,6 +280,8 @@
public void setPlayerManager(WorldServer[] p_72364_1_) public void setPlayerManager(WorldServer[] p_72364_1_)
{ {
+ if (this.playerNBTManagerObj != null) + if (this.playerNBTManagerObj != null) return; // CraftBukkit
+ {
+ return; // CraftBukkit
+ }
+ +
this.playerNBTManagerObj = p_72364_1_[0].getSaveHandler().getSaveHandler(); this.playerNBTManagerObj = p_72364_1_[0].getSaveHandler().getSaveHandler();
} }
@@ -248,7 +308,7 @@ @@ -248,7 +305,7 @@
public NBTTagCompound readPlayerDataFromFile(EntityPlayerMP p_72380_1_) public NBTTagCompound readPlayerDataFromFile(EntityPlayerMP p_72380_1_)
{ {
@ -156,7 +153,7 @@
NBTTagCompound nbttagcompound1; NBTTagCompound nbttagcompound1;
if (p_72380_1_.getCommandSenderName().equals(this.mcServer.getServerOwner()) && nbttagcompound != null) if (p_72380_1_.getCommandSenderName().equals(this.mcServer.getServerOwner()) && nbttagcompound != null)
@@ -281,18 +341,61 @@ @@ -294,18 +351,61 @@
public void playerLoggedIn(EntityPlayerMP p_72377_1_) public void playerLoggedIn(EntityPlayerMP p_72377_1_)
{ {
@ -196,9 +193,8 @@
for (int i = 0; i < this.playerEntityList.size(); ++i) for (int i = 0; i < this.playerEntityList.size(); ++i)
{ {
- EntityPlayerMP entityplayermp1 = (EntityPlayerMP)this.playerEntityList.get(i); EntityPlayerMP entityplayermp1 = (EntityPlayerMP)this.playerEntityList.get(i);
- p_72377_1_.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.getCommandSenderName(), true, entityplayermp1.ping)); - p_72377_1_.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.getCommandSenderName(), true, entityplayermp1.ping));
+ EntityPlayerMP entityplayermp1 = (EntityPlayerMP) this.playerEntityList.get(i);
+ +
+ if (entityplayermp1.getBukkitEntity().canSee(p_72377_1_.getBukkitEntity())) + if (entityplayermp1.getBukkitEntity().canSee(p_72377_1_.getBukkitEntity()))
+ { + {
@ -218,12 +214,12 @@
+ +
+ // .name -> .listName + // .name -> .listName
+ p_72377_1_.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.listName, true, entityplayermp1.ping)); + p_72377_1_.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.listName, true, entityplayermp1.ping));
+ // CraftBukkit end
+ } + }
+ // CraftBukkit end
} }
public void updatePlayerPertinentChunks(EntityPlayerMP p_72358_1_) public void updatePlayerPertinentChunks(EntityPlayerMP p_72358_1_)
@@ -300,14 +403,33 @@ @@ -313,14 +413,33 @@
p_72358_1_.getServerForPlayer().getPlayerManager().updatePlayerPertinentChunks(p_72358_1_); p_72358_1_.getServerForPlayer().getPlayerManager().updatePlayerPertinentChunks(p_72358_1_);
} }
@ -259,7 +255,7 @@
{ {
worldserver.removePlayerEntityDangerously(p_72367_1_.ridingEntity); worldserver.removePlayerEntityDangerously(p_72367_1_.ridingEntity);
logger.debug("removing player mount"); logger.debug("removing player mount");
@@ -316,9 +438,35 @@ @@ -329,9 +448,35 @@
worldserver.removeEntity(p_72367_1_); worldserver.removeEntity(p_72367_1_);
worldserver.getPlayerManager().removePlayer(p_72367_1_); worldserver.getPlayerManager().removePlayer(p_72367_1_);
this.playerEntityList.remove(p_72367_1_); this.playerEntityList.remove(p_72367_1_);
@ -298,7 +294,7 @@
} }
public String allowUserToConnect(SocketAddress p_148542_1_, GameProfile p_148542_2_) public String allowUserToConnect(SocketAddress p_148542_1_, GameProfile p_148542_2_)
@@ -359,6 +507,71 @@ @@ -372,6 +517,71 @@
} }
} }
@ -364,13 +360,13 @@
+ } + }
+ +
+ return entity; + return entity;
+ // CraftBukkit end
+ } + }
+ // CraftBukkit end
+ +
public EntityPlayerMP createPlayerForUser(GameProfile p_148545_1_) public EntityPlayerMP createPlayerForUser(GameProfile p_148545_1_)
{ {
UUID uuid = EntityPlayer.func_146094_a(p_148545_1_); UUID uuid = EntityPlayer.func_146094_a(p_148545_1_);
@@ -397,116 +610,316 @@ @@ -410,80 +620,200 @@
return new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(0), p_148545_1_, (ItemInWorldManager)object); return new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(0), p_148545_1_, (ItemInWorldManager)object);
} }
@ -416,12 +412,12 @@
if (this.mcServer.isDemo()) if (this.mcServer.isDemo())
{ {
- object = new DemoWorldManager(this.mcServer.worldServerForDimension(p_72368_1_.dimension)); - object = new DemoWorldManager(this.mcServer.worldServerForDimension(p_72368_1_.dimension));
+ object = new DemoWorldManager(this.mcServer.worldServerForDimension(0)); + object = new DemoWorldManager(this.mcServer.worldServerForDimension(0));
} }
else else
{ {
- object = new ItemInWorldManager(this.mcServer.worldServerForDimension(p_72368_1_.dimension)); - object = new ItemInWorldManager(this.mcServer.worldServerForDimension(p_72368_1_.dimension));
+ object = new ItemInWorldManager(this.mcServer.worldServerForDimension(0)); + object = new ItemInWorldManager(this.mcServer.worldServerForDimension(0));
} }
- EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(p_72368_1_.dimension), p_72368_1_.getGameProfile(), (ItemInWorldManager)object); - EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(p_72368_1_.dimension), p_72368_1_.getGameProfile(), (ItemInWorldManager)object);
@ -544,7 +540,6 @@
- entityplayermp1.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(0, 0.0F)); - entityplayermp1.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(0, 0.0F));
+ location = respawnEvent.getRespawnLocation(); + location = respawnEvent.getRespawnLocation();
} }
+
+ par1EntityPlayerMP.reset(); + par1EntityPlayerMP.reset();
} }
+ else + else
@ -605,19 +600,14 @@
- FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1); - FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1);
+ // If world changed then fire the appropriate change world event else respawn + // If world changed then fire the appropriate change world event else respawn
+ if (fromWorld != location.getWorld()) + if (fromWorld != location.getWorld())
+ {
+ FMLCommonHandler.instance().firePlayerChangedDimensionEvent(entityplayermp1, ((CraftWorld) fromWorld).getHandle().provider.dimensionId, + FMLCommonHandler.instance().firePlayerChangedDimensionEvent(entityplayermp1, ((CraftWorld) fromWorld).getHandle().provider.dimensionId,
+ ((CraftWorld) location.getWorld()).getHandle().provider.dimensionId, (CraftWorld) fromWorld); // Cauldron - fire forge changed dimension event + ((CraftWorld) location.getWorld()).getHandle().provider.dimensionId, (CraftWorld) fromWorld); // Cauldron - fire forge changed dimension event
+ }
+ else + else
+ FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1); + FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1);
return entityplayermp1; return entityplayermp1;
} }
- public void transferPlayerToDimension(EntityPlayerMP p_72356_1_, int p_72356_2_) @@ -492,34 +822,110 @@
+ // Cauldron start - refactor transferPlayerToDimension to be compatible with Bukkit. These methods are to be used when a player comes in contact with a portal
+ public void transferPlayerToDimension(EntityPlayerMP p_72356_1_, int p_72356_2_) // wrapper for vanilla compatibility
{
transferPlayerToDimension(p_72356_1_, p_72356_2_, mcServer.worldServerForDimension(p_72356_2_).getDefaultTeleporter()); transferPlayerToDimension(p_72356_1_, p_72356_2_, mcServer.worldServerForDimension(p_72356_2_).getDefaultTeleporter());
} }
@ -740,13 +730,13 @@
{ {
- transferEntityToWorld(p_82448_1_, p_82448_2_, p_82448_3_, p_82448_4_, p_82448_4_.getDefaultTeleporter()); - transferEntityToWorld(p_82448_1_, p_82448_2_, p_82448_3_, p_82448_4_, p_82448_4_.getDefaultTeleporter());
+ // CraftBukkit start - Split into modular functions + // CraftBukkit start - Split into modular functions
+ //transferEntityToWorld(p_82448_1_, p_82448_2_, p_82448_3_, p_82448_4_, p_82448_4_.getDefaultTeleporter()); + // transferEntityToWorld(p_82448_1_, p_82448_2_, p_82448_3_, p_82448_4_, p_82448_4_.getDefaultTeleporter());
+ Location exit = this.calculateTarget(p_82448_1_.getBukkitEntity().getLocation(), p_82448_4_); + Location exit = this.calculateTarget(p_82448_1_.getBukkitEntity().getLocation(), p_82448_4_);
+ this.repositionEntity(p_82448_1_, exit, true); + this.repositionEntity(p_82448_1_, exit, true);
} }
public void transferEntityToWorld(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_, Teleporter teleporter) public void transferEntityToWorld(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_, Teleporter teleporter)
@@ -592,6 +1005,197 @@ @@ -605,6 +1011,109 @@
p_82448_1_.setWorld(p_82448_4_); p_82448_1_.setWorld(p_82448_4_);
} }
@ -763,35 +753,15 @@
+ double d1 = enter.getZ(); + double d1 = enter.getZ();
+ double d2 = 8.0D; + double d2 = 8.0D;
+ +
+ /*
+ double d3 = entity.locX;
+ double d4 = entity.locY;
+ double d5 = entity.locZ;
+ float f = entity.yaw;
+
+ worldserver.methodProfiler.a("moving");
+ */
+ if (worldserver1.dimension == -1) + if (worldserver1.dimension == -1)
+ { + {
+ d0 /= d2; + d0 /= d2;
+ d1 /= d2; + d1 /= d2;
+ /*
+ entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ */
+ } + }
+ else if (worldserver1.dimension == 0) + else if (worldserver1.dimension == 0)
+ { + {
+ d0 *= d2; + d0 *= d2;
+ d1 *= d2; + d1 *= d2;
+ /*
+ entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ */
+ } + }
+ else + else
+ { + {
@ -817,34 +787,14 @@
+ yaw = 90.0F; + yaw = 90.0F;
+ pitch = 0.0F; + pitch = 0.0F;
+ } + }
+ // Cauldron end
+ /*
+ entity.setPositionRotation(d0, entity.locY, d1, 90.0F, 0.0F);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ */
+ } + }
+ +
+ // worldserver.methodProfiler.b();
+ if (i != 1) + if (i != 1)
+ { + {
+ // worldserver.methodProfiler.a("placing");
+ d0 = (double) MathHelper.clamp_int((int) d0, -29999872, 29999872); + d0 = (double) MathHelper.clamp_int((int) d0, -29999872, 29999872);
+ d1 = (double) MathHelper.clamp_int((int) d1, -29999872, 29999872); + d1 = (double) MathHelper.clamp_int((int) d1, -29999872, 29999872);
+ /*
+ if (entity.isAlive()) {
+ worldserver1.addEntity(entity);
+ entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch);
+ worldserver1.entityJoinedWorld(entity, false);
+ worldserver1.t().a(entity, d3, d4, d5, f);
+ }
+
+ worldserver.methodProfiler.b();
+ */
+ } + }
+ +
+ // entity.spawnIn(worldserver1);
+ return new Location(worldserver1.getWorld(), d0, y, d1, yaw, pitch); + return new Location(worldserver1.getWorld(), d0, y, d1, yaw, pitch);
+ } + }
+ +
@ -854,15 +804,6 @@
+ int i = entity.dimension; + int i = entity.dimension;
+ WorldServer worldserver = (WorldServer) entity.worldObj; + WorldServer worldserver = (WorldServer) entity.worldObj;
+ WorldServer worldserver1 = ((CraftWorld) exit.getWorld()).getHandle(); + WorldServer worldserver1 = ((CraftWorld) exit.getWorld()).getHandle();
+ /*
+ double d0 = entity.locX;
+ double d1 = entity.locZ;
+ double d2 = 8.0D;
+ double d3 = entity.locX;
+ double d4 = entity.locY;
+ double d5 = entity.locZ;
+ float f = entity.yaw;
+ */
+ worldserver.theProfiler.startSection("moving"); + worldserver.theProfiler.startSection("moving");
+ entity.setLocationAndAngles(exit.getX(), exit.getY(), exit.getZ(), exit.getYaw(), exit.getPitch()); + entity.setLocationAndAngles(exit.getX(), exit.getY(), exit.getZ(), exit.getYaw(), exit.getPitch());
+ +
@ -871,53 +812,14 @@
+ worldserver.updateEntityWithOptionalForce(entity, false); + worldserver.updateEntityWithOptionalForce(entity, false);
+ } + }
+ +
+ /*
+ if (entity.dimension == -1) {
+ d0 /= d2;
+ d1 /= d2;
+ entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ } else if (entity.dimension == 0) {
+ d0 *= d2;
+ d1 *= d2;
+ entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ } else {
+ ChunkCoordinates chunkcoordinates;
+
+ if (i == 1) {
+ chunkcoordinates = worldserver1.getSpawn();
+ } else {
+ chunkcoordinates = worldserver1.getDimensionSpawn();
+ }
+
+ d0 = (double) chunkcoordinates.x;
+ entity.locY = (double) chunkcoordinates.y;
+ d1 = (double) chunkcoordinates.z;
+ entity.setPositionRotation(d0, entity.locY, d1, 90.0F, 0.0F);
+ if (entity.isAlive()) {
+ worldserver.entityJoinedWorld(entity, false);
+ }
+ }
+ */
+ worldserver.theProfiler.endSection(); + worldserver.theProfiler.endSection();
+ +
+ if (i != 1) + if (i != 1)
+ { + {
+ worldserver.theProfiler.startSection("placing"); + worldserver.theProfiler.startSection("placing");
+ +
+ /*
+ d0 = (double) MathHelper.a((int) d0, -29999872, 29999872);
+ d1 = (double) MathHelper.a((int) d1, -29999872, 29999872);
+ */
+ if (entity.isEntityAlive()) + if (entity.isEntityAlive())
+ { + {
+ // entity.setPositionRotation(d0, entity.locY, d1, entity.yaw, entity.pitch)
+ // worldserver1.s().a(entity, d3, d4, d5, f);
+ if (portal) + if (portal)
+ { + {
+ Vector velocity = entity.getBukkitEntity().getVelocity(); + Vector velocity = entity.getBukkitEntity().getVelocity();
@ -938,13 +840,13 @@
+ } + }
+ +
+ entity.setWorld(worldserver1); + entity.setWorld(worldserver1);
+ // CraftBukkit end
+ } + }
+ // CraftBukkit end
+ +
public void sendPlayerInfoToAllPlayers() public void sendPlayerInfoToAllPlayers()
{ {
if (++this.playerPingIndex > 600) if (++this.playerPingIndex > 600)
@@ -599,11 +1203,13 @@ @@ -612,11 +1121,13 @@
this.playerPingIndex = 0; this.playerPingIndex = 0;
} }
@ -958,7 +860,7 @@
} }
public void sendPacketToAllPlayers(Packet p_148540_1_) public void sendPacketToAllPlayers(Packet p_148540_1_)
@@ -864,13 +1470,24 @@ @@ -877,13 +1388,24 @@
for (int j = 0; j < this.playerEntityList.size(); ++j) for (int j = 0; j < this.playerEntityList.size(); ++j)
{ {
EntityPlayerMP entityplayermp = (EntityPlayerMP)this.playerEntityList.get(j); EntityPlayerMP entityplayermp = (EntityPlayerMP)this.playerEntityList.get(j);
@ -985,14 +887,11 @@
if (d4 * d4 + d5 * d5 + d6 * d6 < p_148543_8_ * p_148543_8_) if (d4 * d4 + d5 * d5 + d6 * d6 < p_148543_8_ * p_148543_8_)
{ {
entityplayermp.playerNetServerHandler.sendPacket(p_148543_11_); entityplayermp.playerNetServerHandler.sendPacket(p_148543_11_);
@@ -925,16 +1542,19 @@ @@ -941,13 +1463,16 @@
if (p_72354_2_.isRaining())
{
+ // CraftBukkit start - handle player weather
p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(1, 0.0F)); p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(1, 0.0F));
p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(7, p_72354_2_.getRainStrength(1.0F))); p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(7, p_72354_2_.getRainStrength(1.0F)));
p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(8, p_72354_2_.getWeightedThunderStrength(1.0F))); p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(8, p_72354_2_.getWeightedThunderStrength(1.0F)));
+ // CraftBukkit start - handle player weather
+ p_72354_1_.setPlayerWeather(org.bukkit.WeatherType.DOWNFALL, false); + p_72354_1_.setPlayerWeather(org.bukkit.WeatherType.DOWNFALL, false);
+ // CraftBukkit end + // CraftBukkit end
} }
@ -1006,7 +905,7 @@
p_72385_1_.playerNetServerHandler.sendPacket(new S09PacketHeldItemChange(p_72385_1_.inventory.currentItem)); p_72385_1_.playerNetServerHandler.sendPacket(new S09PacketHeldItemChange(p_72385_1_.inventory.currentItem));
} }
@@ -950,7 +1570,10 @@ @@ -963,7 +1488,10 @@
public String[] getAvailablePlayerDat() public String[] getAvailablePlayerDat()
{ {
@ -1018,7 +917,7 @@
} }
public void setWhiteListEnabled(boolean p_72371_1_) public void setWhiteListEnabled(boolean p_72371_1_)
@@ -1019,12 +1642,30 @@ @@ -1032,12 +1560,30 @@
public void removeAllPlayers() public void removeAllPlayers()
{ {

View File

@ -1,14 +1,6 @@
--- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java --- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java
+++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java +++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java
@@ -10,6 +10,7 @@ @@ -21,6 +21,13 @@
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.StartupQuery;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
@@ -19,6 +20,13 @@
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -22,7 +14,7 @@
public class SaveHandler implements ISaveHandler, IPlayerFileData public class SaveHandler implements ISaveHandler, IPlayerFileData
{ {
private static final Logger logger = LogManager.getLogger(); private static final Logger logger = LogManager.getLogger();
@@ -27,6 +35,8 @@ @@ -29,6 +36,8 @@
private final File mapDataDir; private final File mapDataDir;
private final long initializationTime = MinecraftServer.getSystemTimeMillis(); private final long initializationTime = MinecraftServer.getSystemTimeMillis();
private final String saveDirectoryName; private final String saveDirectoryName;
@ -31,7 +23,7 @@
private static final String __OBFID = "CL_00000585"; private static final String __OBFID = "CL_00000585";
public SaveHandler(File p_i2146_1_, String p_i2146_2_, boolean p_i2146_3_) public SaveHandler(File p_i2146_1_, String p_i2146_2_, boolean p_i2146_3_)
@@ -65,7 +75,7 @@ @@ -67,7 +76,7 @@
catch (IOException ioexception) catch (IOException ioexception)
{ {
ioexception.printStackTrace(); ioexception.printStackTrace();
@ -40,7 +32,7 @@
} }
} }
@@ -85,7 +95,7 @@ @@ -87,7 +96,7 @@
{ {
if (datainputstream.readLong() != this.initializationTime) if (datainputstream.readLong() != this.initializationTime)
{ {
@ -49,7 +41,7 @@
} }
} }
finally finally
@@ -95,7 +105,10 @@ @@ -97,7 +106,10 @@
} }
catch (IOException ioexception) catch (IOException ioexception)
{ {
@ -61,7 +53,7 @@
} }
} }
@@ -120,6 +133,7 @@ @@ -122,6 +134,7 @@
nbttagcompound1 = nbttagcompound.getCompoundTag("Data"); nbttagcompound1 = nbttagcompound.getCompoundTag("Data");
worldInfo = new WorldInfo(nbttagcompound1); worldInfo = new WorldInfo(nbttagcompound1);
FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound); FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
@ -69,7 +61,7 @@
return worldInfo; return worldInfo;
} }
catch (StartupQuery.AbortedException e) catch (StartupQuery.AbortedException e)
@@ -143,6 +157,7 @@ @@ -145,6 +158,7 @@
nbttagcompound1 = nbttagcompound.getCompoundTag("Data"); nbttagcompound1 = nbttagcompound.getCompoundTag("Data");
worldInfo = new WorldInfo(nbttagcompound1); worldInfo = new WorldInfo(nbttagcompound1);
FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound); FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
@ -77,16 +69,15 @@
return worldInfo; return worldInfo;
} }
catch (StartupQuery.AbortedException e) catch (StartupQuery.AbortedException e)
@@ -154,7 +169,7 @@ @@ -157,6 +171,7 @@
exception.printStackTrace();
} }
} }
-
+ this.initBukkitData(worldInfo); // Cauldron + this.initBukkitData(worldInfo); // Cauldron
return null; return null;
} }
@@ -282,6 +297,18 @@ @@ -284,6 +299,18 @@
if (nbttagcompound != null) if (nbttagcompound != null)
{ {
@ -96,16 +87,16 @@
+ CraftPlayer player = (CraftPlayer) p_75752_1_.getBukkitEntity(); // Cauldron + CraftPlayer player = (CraftPlayer) p_75752_1_.getBukkitEntity(); // Cauldron
+ // Only update first played if it is older than the one we have + // Only update first played if it is older than the one we have
+ long modified = new File(playersDirectory, p_75752_1_.getCommandSenderName() + ".dat").lastModified(); + long modified = new File(playersDirectory, p_75752_1_.getCommandSenderName() + ".dat").lastModified();
+ if (modified < player.getFirstPlayed()) { + if (modified < player.getFirstPlayed())
+ {
+ player.setFirstPlayed(modified); + player.setFirstPlayed(modified);
+ } + }
+ } + }
+ // CraftBukkit end + // CraftBukkit end
+
p_75752_1_.readFromNBT(nbttagcompound); p_75752_1_.readFromNBT(nbttagcompound);
} }
@@ -289,6 +316,27 @@ @@ -291,6 +318,27 @@
return nbttagcompound; return nbttagcompound;
} }
@ -133,11 +124,10 @@
public IPlayerFileData getSaveHandler() public IPlayerFileData getSaveHandler()
{ {
return this; return this;
@@ -320,4 +368,97 @@ @@ -323,6 +371,99 @@
{
return this.saveDirectoryName; return this.saveDirectoryName;
} }
+
+ // CraftBukkit start + // CraftBukkit start
+ public UUID getUUID() + public UUID getUUID()
+ { + {
@ -230,4 +220,7 @@
+ } + }
+ } + }
+ // Cauldron end + // Cauldron end
} +
public NBTTagCompound getPlayerNBT(EntityPlayerMP player)
{
try

View File

@ -5,7 +5,7 @@
public static final int revisionVersion = 2; public static final int revisionVersion = 2;
//This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code. //This number is incremented every time Jenkins builds Forge, and never reset. Should always be 0 in the repo code.
- public static final int buildVersion = 0; - public static final int buildVersion = 0;
+ public static final int buildVersion = 1291; // Cauldron + public static final int buildVersion = 1343; // Cauldron
private static Status status = PENDING; private static Status status = PENDING;
private static String target = null; private static String target = null;

View File

@ -0,0 +1,65 @@
--- ../src-base/minecraft/net/minecraftforge/fluids/BlockFluidClassic.java
+++ ../src-work/minecraft/net/minecraftforge/fluids/BlockFluidClassic.java
@@ -133,9 +133,21 @@
world.setBlockMetadataWithNotify(x, y, z, 0, 2);
}
+ // Cauldron start
+ org.bukkit.Server server = world.getServer();
+ org.bukkit.World bworld = world.getWorld();
+ org.bukkit.block.Block source = bworld == null ? null : bworld.getBlockAt(x, y, z);
+ // Cauldron end
+
// Flow vertically if possible
if (canDisplace(world, x, y + densityDir, z))
{
+ // Cauldron start
+ org.bukkit.block.BlockFace face = densityDir < 0 ? org.bukkit.block.BlockFace.DOWN : org.bukkit.block.BlockFace.UP;
+ org.bukkit.event.block.BlockFromToEvent event = new org.bukkit.event.block.BlockFromToEvent(source, face);
+ if (server != null) server.getPluginManager().callEvent(event);
+ if (event.isCancelled()) return;
+ // Cauldron end
flowIntoBlock(world, x, y + densityDir, z, 1);
return;
}
@@ -155,10 +167,38 @@
}
boolean flowTo[] = getOptimalFlowDirections(world, x, y, z);
- if (flowTo[0]) flowIntoBlock(world, x - 1, y, z, flowMeta);
+ // Cauldron start
+ /*if (flowTo[0]) flowIntoBlock(world, x - 1, y, z, flowMeta);
if (flowTo[1]) flowIntoBlock(world, x + 1, y, z, flowMeta);
if (flowTo[2]) flowIntoBlock(world, x, y, z - 1, flowMeta);
- if (flowTo[3]) flowIntoBlock(world, x, y, z + 1, flowMeta);
+ if (flowTo[3]) flowIntoBlock(world, x, y, z + 1, flowMeta);*/
+ org.bukkit.block.BlockFace[] faces = new org.bukkit.block.BlockFace[] { org.bukkit.block.BlockFace.NORTH, org.bukkit.block.BlockFace.SOUTH,
+ org.bukkit.block.BlockFace.EAST, org.bukkit.block.BlockFace.WEST };
+ for (int i = 0; i < 4; i++)
+ {
+ if (flowTo[i])
+ {
+ org.bukkit.event.block.BlockFromToEvent event = new org.bukkit.event.block.BlockFromToEvent(source, faces[i]);
+ if (server != null) server.getPluginManager().callEvent(event);
+ if (event.isCancelled()) continue;
+ switch (i)
+ {
+ case 0:
+ flowIntoBlock(world, x - 1, y, z, flowMeta);
+ break;
+ case 1:
+ flowIntoBlock(world, x + 1, y, z, flowMeta);
+ break;
+ case 2:
+ flowIntoBlock(world, x, y, z - 1, flowMeta);
+ break;
+ case 3:
+ flowIntoBlock(world, x, y, z + 1, flowMeta);
+ break;
+ }
+ }
+ }
+ // Cauldron end
}
}

View File

@ -8,7 +8,7 @@
import org.bukkit.potion.Potion; import org.bukkit.potion.Potion;
/** /**
@@ -79,27 +80,183 @@ @@ -79,27 +80,188 @@
/** /**
* The flames seen on a mobspawner; a visual effect. * The flames seen on a mobspawner; a visual effect.
*/ */
@ -139,6 +139,11 @@
+ */ + */
+ HAPPY_VILLAGER("happyVillager", Type.PARTICLE), + HAPPY_VILLAGER("happyVillager", Type.PARTICLE),
+ /** + /**
+ * The smoke particles that appears on blazes, minecarts
+ * with furnaces and fire
+ */
+ LARGE_SMOKE("largesmoke", Type.PARTICLE),
+ /**
+ * The particles generated when a tool breaks. + * The particles generated when a tool breaks.
+ * This particle requires a Material so that the client can select the correct texture. + * This particle requires a Material so that the client can select the correct texture.
+ */ + */
@ -196,7 +201,7 @@
* @deprecated Magic value * @deprecated Magic value
*/ */
@Deprecated @Deprecated
@@ -108,6 +265,15 @@ @@ -108,6 +270,15 @@
} }
/** /**
@ -212,7 +217,7 @@
* @return The type of the effect. * @return The type of the effect.
*/ */
public Type getType() { public Type getType() {
@@ -115,8 +281,7 @@ @@ -115,8 +286,7 @@
} }
/** /**
@ -222,7 +227,7 @@
*/ */
public Class<?> getData() { public Class<?> getData() {
return this.data; return this.data;
@@ -136,12 +301,32 @@ @@ -136,12 +306,32 @@
static { static {
for (Effect effect : values()) { for (Effect effect : values()) {

View File

@ -0,0 +1,14 @@
--- ../src-base/minecraft/org/bukkit/command/defaults/DeopCommand.java
+++ ../src-work/minecraft/org/bukkit/command/defaults/DeopCommand.java
@@ -49,9 +49,9 @@
if (args.length == 1) {
List<String> completions = new ArrayList<String>();
- for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ for (OfflinePlayer player : Bukkit.getOperators()) {
String playerName = player.getName();
- if (player.isOp() && StringUtil.startsWithIgnoreCase(playerName, args[0])) {
+ if (StringUtil.startsWithIgnoreCase(playerName, args[0])) {
completions.add(playerName);
}
}

View File

@ -0,0 +1,11 @@
--- ../src-base/minecraft/org/bukkit/command/defaults/WhitelistCommand.java
+++ ../src-work/minecraft/org/bukkit/command/defaults/WhitelistCommand.java
@@ -104,7 +104,7 @@
} else if (args.length == 2) {
if (args[0].equalsIgnoreCase("add")) {
List<String> completions = new ArrayList<String>();
- for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
+ for (OfflinePlayer player : Bukkit.getOnlinePlayers()) {
String name = player.getName();
if (StringUtil.startsWithIgnoreCase(name, args[1]) && !player.isWhitelisted()) {
completions.add(name);

View File

@ -375,9 +375,10 @@ public class CraftEventFactory {
return event; return event;
} }
public static PlayerDeathEvent callPlayerDeathEvent(net.minecraft.entity.player.EntityPlayerMP victim, List<org.bukkit.inventory.ItemStack> drops, String deathMessage) { public static PlayerDeathEvent callPlayerDeathEvent(net.minecraft.entity.player.EntityPlayerMP victim, List<org.bukkit.inventory.ItemStack> drops, String deathMessage, boolean keepInventory) {
CraftPlayer entity = victim.getBukkitEntity(); CraftPlayer entity = victim.getBukkitEntity();
PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage); PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage);
event.setKeepInventory(keepInventory);
//org.bukkit.World world = entity.getWorld(); //org.bukkit.World world = entity.getWorld();
Bukkit.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
@ -386,6 +387,7 @@ public class CraftEventFactory {
victim.newTotalExp = event.getNewTotalExp(); victim.newTotalExp = event.getNewTotalExp();
victim.expToDrop = event.getDroppedExp(); victim.expToDrop = event.getDroppedExp();
victim.newExp = event.getNewExp(); victim.newExp = event.getNewExp();
if (event.getKeepInventory()) return event;
victim.capturedDrops.clear(); // Cauldron - we must clear pre-capture to avoid duplicates victim.capturedDrops.clear(); // Cauldron - we must clear pre-capture to avoid duplicates
for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {

View File

@ -1,6 +1,6 @@
fmlbuild.major.number=7 fmlbuild.major.number=7
fmlbuild.minor.number=10 fmlbuild.minor.number=10
fmlbuild.revision.number=85 fmlbuild.revision.number=97
fmlbuild.build.number=1291 fmlbuild.build.number=1343
fmlbuild.mcversion=1.7.10 fmlbuild.mcversion=1.7.10
fmlbuild.mcpversion=9.05 fmlbuild.mcpversion=9.05