#772: Add API to set equipment silently

By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
CraftBukkit/Spigot
2020-12-21 18:30:48 +11:00
parent df4db23320
commit 9f19f0b9c4
6 changed files with 212 additions and 70 deletions

View File

@@ -30,7 +30,30 @@
@Override
public void updateSize() {
double d0 = this.locX();
@@ -383,6 +399,21 @@
@@ -110,13 +126,20 @@
@Override
public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack) {
+ // CraftBukkit start
+ this.setSlot(enumitemslot, itemstack, false);
+ }
+
+ @Override
+ public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack, boolean silent) {
+ // CraftBukkit end
switch (enumitemslot.a()) {
case HAND:
- this.b(itemstack);
+ this.b(itemstack, silent); // CraftBukkit
this.handItems.set(enumitemslot.b(), itemstack);
break;
case ARMOR:
- this.b(itemstack);
+ this.b(itemstack, silent); // CraftBukkit
this.armorItems.set(enumitemslot.b(), itemstack);
}
@@ -383,6 +406,21 @@
return false;
} else {
ItemStack itemstack2;
@@ -52,7 +75,7 @@
if (entityhuman.abilities.canInstantlyBuild && itemstack1.isEmpty() && !itemstack.isEmpty()) {
itemstack2 = itemstack.cloneItemStack();
@@ -411,12 +442,22 @@
@@ -411,12 +449,22 @@
public boolean damageEntity(DamageSource damagesource, float f) {
if (!this.world.isClientSide && !this.dead) {
if (DamageSource.OUT_OF_WORLD.equals(damagesource)) {
@@ -78,7 +101,7 @@
return false;
} else if (DamageSource.FIRE.equals(damagesource)) {
if (this.isBurning()) {
@@ -441,7 +482,7 @@
@@ -441,7 +489,7 @@
} else if (damagesource.v()) {
this.F();
this.D();
@@ -87,7 +110,7 @@
return flag1;
} else {
long i = this.world.getTime();
@@ -452,7 +493,7 @@
@@ -452,7 +500,7 @@
} else {
this.f(damagesource);
this.D();
@@ -96,7 +119,7 @@
}
return true;
@@ -479,7 +520,7 @@
@@ -479,7 +527,7 @@
f1 -= f;
if (f1 <= 0.5F) {
this.g(damagesource);
@@ -105,7 +128,7 @@
} else {
this.setHealth(f1);
}
@@ -487,13 +528,13 @@
@@ -487,13 +535,13 @@
}
private void f(DamageSource damagesource) {
@@ -121,7 +144,7 @@
ItemStack itemstack;
int i;
@@ -501,7 +542,7 @@
@@ -501,7 +549,7 @@
for (i = 0; i < this.handItems.size(); ++i) {
itemstack = (ItemStack) this.handItems.get(i);
if (!itemstack.isEmpty()) {
@@ -130,7 +153,7 @@
this.handItems.set(i, ItemStack.b);
}
}
@@ -509,10 +550,11 @@
@@ -509,10 +557,11 @@
for (i = 0; i < this.armorItems.size(); ++i) {
itemstack = (ItemStack) this.armorItems.get(i);
if (!itemstack.isEmpty()) {
@@ -143,7 +166,7 @@
}
@@ -613,8 +655,16 @@
@@ -613,8 +662,16 @@
return this.isSmall();
}