geforkt von Mirrors/Paper
41647af74c
We cannot put blocking network I/O onto the worldgen threads, this will crash the server if it stalls
31 Zeilen
1.8 KiB
Diff
31 Zeilen
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 16 May 2018 20:44:58 -0400
|
|
Subject: [PATCH] WitchThrowPotionEvent
|
|
|
|
Fired when a witch throws a potion at a player
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
|
index 312726d7d9030146b0db432493b2efbd5e42847a..5a3bc20015ec188debd0703654b734baf20aa52a 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
|
@@ -235,9 +235,16 @@ public class Witch extends Raider implements RangedAttackMob {
|
|
potionregistry = Potions.WEAKNESS;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ ItemStack potion = PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry);
|
|
+ com.destroystokyo.paper.event.entity.WitchThrowPotionEvent event = new com.destroystokyo.paper.event.entity.WitchThrowPotionEvent((org.bukkit.entity.Witch) this.getBukkitEntity(), (org.bukkit.entity.LivingEntity) target.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(potion));
|
|
+ if (!event.callEvent()) {
|
|
+ return;
|
|
+ }
|
|
+ potion = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion());
|
|
ThrownPotion entitypotion = new ThrownPotion(this.level, this);
|
|
-
|
|
- entitypotion.setItem(PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry));
|
|
+ entitypotion.setItem(potion);
|
|
+ // Paper end
|
|
entitypotion.setXRot(entitypotion.getXRot() - -20.0F);
|
|
entitypotion.shoot(d0, d1 + d3 * 0.2D, d2, 0.75F, 8.0F);
|
|
if (!this.isSilent()) {
|