Add more Witch API
== AT == public net.minecraft.world.entity.monster.Witch usingTime
This commit is contained in:
@@ -17,20 +17,51 @@
|
||||
}
|
||||
|
||||
this.gameEvent(GameEvent.DRINK);
|
||||
@@ -146,7 +152,11 @@
|
||||
@@ -146,17 +152,7 @@
|
||||
}
|
||||
|
||||
if (holder != null) {
|
||||
- this.setItemSlot(EquipmentSlot.MAINHAND, PotionContents.createItemStack(Items.POTION, holder));
|
||||
+ // Paper start
|
||||
+ ItemStack potion = PotionContents.createItemStack(Items.POTION, holder);
|
||||
+ potion = org.bukkit.craftbukkit.event.CraftEventFactory.handleWitchReadyPotionEvent(this, potion);
|
||||
+ this.setItemSlot(EquipmentSlot.MAINHAND, potion);
|
||||
+ // Paper end
|
||||
this.usingTime = this.getMainHandItem().getUseDuration(this);
|
||||
this.setUsingItem(true);
|
||||
if (!this.isSilent()) {
|
||||
@@ -231,6 +241,13 @@
|
||||
- this.usingTime = this.getMainHandItem().getUseDuration(this);
|
||||
- this.setUsingItem(true);
|
||||
- if (!this.isSilent()) {
|
||||
- this.level().playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.WITCH_DRINK, this.getSoundSource(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
|
||||
- }
|
||||
-
|
||||
- AttributeInstance attributemodifiable = this.getAttribute(Attributes.MOVEMENT_SPEED);
|
||||
-
|
||||
- attributemodifiable.removeModifier(Witch.SPEED_MODIFIER_DRINKING_ID);
|
||||
- attributemodifiable.addTransientModifier(Witch.SPEED_MODIFIER_DRINKING);
|
||||
+ this.setDrinkingPotion(PotionContents.createItemStack(Items.POTION, holder)); // Paper - logic moved into setDrinkingPotion, copy exact impl into the method and then comment out
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,7 +162,24 @@
|
||||
}
|
||||
|
||||
super.aiStep();
|
||||
+ }
|
||||
+
|
||||
+ // Paper start - moved to its own method
|
||||
+ public void setDrinkingPotion(ItemStack potion) {
|
||||
+ potion = org.bukkit.craftbukkit.event.CraftEventFactory.handleWitchReadyPotionEvent(this, potion);
|
||||
+ this.setItemSlot(EquipmentSlot.MAINHAND, potion);
|
||||
+ this.usingTime = this.getMainHandItem().getUseDuration(this);
|
||||
+ this.setUsingItem(true);
|
||||
+ if (!this.isSilent()) {
|
||||
+ this.level().playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.WITCH_DRINK, this.getSoundSource(), 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
|
||||
+ }
|
||||
+
|
||||
+ AttributeInstance attributemodifiable = this.getAttribute(Attributes.MOVEMENT_SPEED);
|
||||
+
|
||||
+ attributemodifiable.removeModifier(Witch.SPEED_MODIFIER_DRINKING_ID);
|
||||
+ attributemodifiable.addTransientModifier(Witch.SPEED_MODIFIER_DRINKING);
|
||||
}
|
||||
+ // Paper end
|
||||
|
||||
@Override
|
||||
public SoundEvent getCelebrateSound() {
|
||||
@@ -231,6 +244,13 @@
|
||||
ServerLevel worldserver = (ServerLevel) world;
|
||||
ItemStack itemstack = PotionContents.createItemStack(Items.SPLASH_POTION, holder);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user