2022-10-20 07:31:42 +11:00
|
|
|
From ec295ee7b8cfc1845ad9588c985e22404eca3d56 Mon Sep 17 00:00:00 2001
|
2016-03-03 19:46:15 +11:00
|
|
|
From: md_5 <git@md-5.net>
|
|
|
|
Date: Thu, 3 Mar 2016 19:45:46 +1100
|
|
|
|
Subject: [PATCH] Implement SpawnerSpawnEvent.
|
|
|
|
|
|
|
|
|
2021-03-16 09:00:00 +11:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
|
2022-06-08 02:00:00 +10:00
|
|
|
index de82750c2..69c64e7ac 100644
|
2021-03-16 09:00:00 +11:00
|
|
|
--- a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
|
2022-06-08 02:00:00 +10:00
|
|
|
@@ -154,6 +154,18 @@ public abstract class MobSpawnerAbstract {
|
2020-02-20 09:26:22 +11:00
|
|
|
}
|
2021-06-11 15:00:00 +10:00
|
|
|
// Spigot End
|
|
|
|
}
|
|
|
|
+ // Spigot Start
|
|
|
|
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
|
|
|
|
+ Entity vehicle = entity.getVehicle();
|
|
|
|
+ if (vehicle != null) {
|
2021-11-22 09:00:00 +11:00
|
|
|
+ vehicle.discard();
|
2018-09-15 15:22:20 +10:00
|
|
|
+ }
|
2021-11-22 09:00:00 +11:00
|
|
|
+ for (Entity passenger : entity.getIndirectPassengers()) {
|
|
|
|
+ passenger.discard();
|
2021-06-11 15:00:00 +10:00
|
|
|
+ }
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ // Spigot End
|
2020-02-20 09:26:22 +11:00
|
|
|
|
2021-11-22 09:00:00 +11:00
|
|
|
if (!worldserver.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER)) { // CraftBukkit
|
|
|
|
this.delay(worldserver, blockposition);
|
2016-03-03 19:46:15 +11:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2022-10-20 07:31:42 +11:00
|
|
|
index 8aabc1ae1..e9b2a8dfa 100644
|
2016-03-03 19:46:15 +11:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
2022-10-20 07:31:42 +11:00
|
|
|
@@ -233,6 +233,8 @@ import org.bukkit.inventory.InventoryView;
|
2021-01-31 10:08:46 +11:00
|
|
|
import org.bukkit.inventory.meta.BookMeta;
|
2019-04-23 15:12:43 +10:00
|
|
|
import org.bukkit.potion.PotionEffect;
|
|
|
|
|
|
|
|
+import org.bukkit.event.entity.SpawnerSpawnEvent; // Spigot
|
|
|
|
+
|
|
|
|
public class CraftEventFactory {
|
2021-06-11 15:00:00 +10:00
|
|
|
public static final DamageSource MELTING = CraftDamageSource.copyOf(DamageSource.ON_FIRE);
|
2019-04-23 15:12:43 +10:00
|
|
|
public static final DamageSource POISON = CraftDamageSource.copyOf(DamageSource.MAGIC);
|
2022-10-20 07:31:42 +11:00
|
|
|
@@ -1497,6 +1499,21 @@ public class CraftEventFactory {
|
2016-03-03 19:46:15 +11:00
|
|
|
return event;
|
|
|
|
}
|
2016-03-12 20:59:15 +11:00
|
|
|
|
2016-03-03 19:46:15 +11:00
|
|
|
+ /**
|
|
|
|
+ * Mob spawner event.
|
|
|
|
+ */
|
|
|
|
+ public static SpawnerSpawnEvent callSpawnerSpawnEvent(Entity spawnee, BlockPosition pos) {
|
|
|
|
+ org.bukkit.craftbukkit.entity.CraftEntity entity = spawnee.getBukkitEntity();
|
|
|
|
+ BlockState state = entity.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ()).getState();
|
|
|
|
+ if (!(state instanceof org.bukkit.block.CreatureSpawner)) {
|
|
|
|
+ state = null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ SpawnerSpawnEvent event = new SpawnerSpawnEvent(entity, (org.bukkit.block.CreatureSpawner) state);
|
|
|
|
+ entity.getServer().getPluginManager().callEvent(event);
|
|
|
|
+ return event;
|
|
|
|
+ }
|
2016-03-12 20:59:15 +11:00
|
|
|
+
|
|
|
|
public static EntityToggleGlideEvent callToggleGlideEvent(EntityLiving entity, boolean gliding) {
|
|
|
|
EntityToggleGlideEvent event = new EntityToggleGlideEvent((LivingEntity) entity.getBukkitEntity(), gliding);
|
2021-06-11 21:39:23 +10:00
|
|
|
entity.level.getCraftServer().getPluginManager().callEvent(event);
|
2016-03-03 19:46:15 +11:00
|
|
|
--
|
2022-06-12 18:29:19 +10:00
|
|
|
2.34.1
|
2016-03-03 19:46:15 +11:00
|
|
|
|