add get-set drop chance to EntityEquipment

== AT ==
public net.minecraft.world.entity.Mob getEquipmentDropChance(Lnet/minecraft/world/entity/EquipmentSlot;)F
This commit is contained in:
Jake Potrebic 2021-04-22 00:28:11 -07:00
parent 8683cde7c0
commit 12f070c05a
2 changed files with 24 additions and 10 deletions

View file

@ -244,15 +244,22 @@ public class CraftEntityEquipment implements EntityEquipment {
public void setBootsDropChance(float chance) {
this.setDropChance(net.minecraft.world.entity.EquipmentSlot.FEET, chance);
}
// Paper start
@Override
public float getDropChance(EquipmentSlot slot) {
return getDropChance(CraftEquipmentSlot.getNMS(slot));
}
@Override
public void setDropChance(EquipmentSlot slot, float chance) {
setDropChance(CraftEquipmentSlot.getNMS(slot), chance);
}
// Paper end
private void setDropChance(net.minecraft.world.entity.EquipmentSlot slot, float chance) {
Preconditions.checkArgument(this.entity.getHandle() instanceof Mob, "Cannot set drop chance for non-Mob entity");
if (slot == net.minecraft.world.entity.EquipmentSlot.MAINHAND || slot == net.minecraft.world.entity.EquipmentSlot.OFFHAND) {
((Mob) this.entity.getHandle()).handDropChances[slot.getIndex()] = chance;
} else {
((Mob) this.entity.getHandle()).armorDropChances[slot.getIndex()] = chance;
}
((Mob) this.entity.getHandle()).setDropChance(slot, chance); // Paper - use setter on Mob
}
private float getDropChance(net.minecraft.world.entity.EquipmentSlot slot) {
@ -260,10 +267,6 @@ public class CraftEntityEquipment implements EntityEquipment {
return 1;
}
if (slot == net.minecraft.world.entity.EquipmentSlot.MAINHAND || slot == net.minecraft.world.entity.EquipmentSlot.OFFHAND) {
return ((Mob) this.entity.getHandle()).handDropChances[slot.getIndex()];
} else {
return ((Mob) this.entity.getHandle()).armorDropChances[slot.getIndex()];
}
return ((Mob) this.entity.getHandle()).getEquipmentDropChance(slot); // Paper - use getter on Mob
}
}

View file

@ -353,4 +353,15 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
public void setBootsDropChance(float chance) {
throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
}
// Paper start
@Override
public float getDropChance(EquipmentSlot slot) {
return 1;
}
@Override
public void setDropChance(EquipmentSlot slot, float chance) {
throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
}
// Paper end
}