Update to Minecraft 1.8
For more information please see http://www.spigotmc.org/ By: Thinkofdeath <thinkofdeath@spigotmc.org>
This commit is contained in:
82
paper-server/nms-patches/EntityExperienceOrb.patch
Normal file
82
paper-server/nms-patches/EntityExperienceOrb.patch
Normal file
@@ -0,0 +1,82 @@
|
||||
--- ../work/decompile-bb26c12b/net/minecraft/server/EntityExperienceOrb.java 2014-11-27 08:59:46.673421970 +1100
|
||||
+++ src/main/java/net/minecraft/server/EntityExperienceOrb.java 2014-11-27 08:42:10.100851012 +1100
|
||||
@@ -1,5 +1,11 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
+import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
+import org.bukkit.event.entity.EntityTargetEvent;
|
||||
+// CraftBukkit end
|
||||
+
|
||||
public class EntityExperienceOrb extends Entity {
|
||||
|
||||
public int a;
|
||||
@@ -34,6 +40,7 @@
|
||||
|
||||
public void s_() {
|
||||
super.s_();
|
||||
+ EntityHuman prevTarget = this.targetPlayer;// CraftBukkit - store old target
|
||||
if (this.c > 0) {
|
||||
--this.c;
|
||||
}
|
||||
@@ -65,6 +72,16 @@
|
||||
}
|
||||
|
||||
if (this.targetPlayer != null) {
|
||||
+ // CraftBukkit start
|
||||
+ boolean cancelled = false;
|
||||
+ if (this.targetPlayer != prevTarget) {
|
||||
+ EntityTargetLivingEntityEvent event = CraftEventFactory.callEntityTargetLivingEvent(this, targetPlayer, EntityTargetEvent.TargetReason.CLOSEST_PLAYER);
|
||||
+ EntityLiving target = event.getTarget() == null ? null : ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle();
|
||||
+ targetPlayer = target instanceof EntityHuman ? (EntityHuman) target : null;
|
||||
+ cancelled = event.isCancelled();
|
||||
+ }
|
||||
+
|
||||
+ if (!cancelled && targetPlayer != null) {
|
||||
double d1 = (this.targetPlayer.locX - this.locX) / d0;
|
||||
double d2 = (this.targetPlayer.locY + (double) this.targetPlayer.getHeadHeight() - this.locY) / d0;
|
||||
double d3 = (this.targetPlayer.locZ - this.locZ) / d0;
|
||||
@@ -77,6 +94,8 @@
|
||||
this.motY += d2 / d4 * d5 * 0.1D;
|
||||
this.motZ += d3 / d4 * d5 * 0.1D;
|
||||
}
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
|
||||
this.move(this.motX, this.motY, this.motZ);
|
||||
@@ -141,7 +160,7 @@
|
||||
entityhuman.bn = 2;
|
||||
this.world.makeSound(entityhuman, "random.orb", 0.1F, 0.5F * ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.8F));
|
||||
entityhuman.receive(this, 1);
|
||||
- entityhuman.giveExp(this.value);
|
||||
+ entityhuman.giveExp(CraftEventFactory.callPlayerExpChangeEvent(entityhuman, this.value).getAmount()); // CraftBukkit - this.value -> event.getAmount()
|
||||
this.die();
|
||||
}
|
||||
|
||||
@@ -153,6 +172,24 @@
|
||||
}
|
||||
|
||||
public static int getOrbValue(int i) {
|
||||
+ // CraftBukkit start
|
||||
+ if (i > 162670129) return i - 100000;
|
||||
+ if (i > 81335063) return 81335063;
|
||||
+ if (i > 40667527) return 40667527;
|
||||
+ if (i > 20333759) return 20333759;
|
||||
+ if (i > 10166857) return 10166857;
|
||||
+ if (i > 5083423) return 5083423;
|
||||
+ if (i > 2541701) return 2541701;
|
||||
+ if (i > 1270849) return 1270849;
|
||||
+ if (i > 635413) return 635413;
|
||||
+ if (i > 317701) return 317701;
|
||||
+ if (i > 158849) return 158849;
|
||||
+ if (i > 79423) return 79423;
|
||||
+ if (i > 39709) return 39709;
|
||||
+ if (i > 19853) return 19853;
|
||||
+ if (i > 9923) return 9923;
|
||||
+ if (i > 4957) return 4957;
|
||||
+ // CraftBukkit end
|
||||
return i >= 2477 ? 2477 : (i >= 1237 ? 1237 : (i >= 617 ? 617 : (i >= 307 ? 307 : (i >= 149 ? 149 : (i >= 73 ? 73 : (i >= 37 ? 37 : (i >= 17 ? 17 : (i >= 7 ? 7 : (i >= 3 ? 3 : 1)))))))));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user