Entity#fromMobSpawner()

This commit is contained in:
BillyGalbreath
2017-06-18 18:17:05 -05:00
parent 3edcdeaf22
commit 760d9e300f
4 changed files with 108 additions and 98 deletions

View File

@@ -12,7 +12,7 @@
public final class TrialSpawner {
@@ -219,14 +224,19 @@
@@ -219,13 +224,19 @@
}
entityinsentient.setPersistenceRequired();
@@ -24,17 +24,17 @@
}
- if (!world.tryAddFreshEntityWithPassengers(entity)) {
+ entity.spawnedViaMobSpawner = true; // Paper
+ // CraftBukkit start
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callTrialSpawnerSpawnEvent(entity, pos).isCancelled()) {
return Optional.empty();
+ return Optional.empty();
+ }
+ if (!world.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.TRIAL_SPAWNER)) {
+ // CraftBukkit end
+ return Optional.empty();
return Optional.empty();
} else {
TrialSpawner.FlameParticle trialspawner_a = this.isOminous ? TrialSpawner.FlameParticle.OMINOUS : TrialSpawner.FlameParticle.NORMAL;
@@ -248,6 +258,15 @@
@@ -248,6 +259,15 @@
ObjectArrayList<ItemStack> objectarraylist = loottable.getRandomItems(lootparams);
if (!objectarraylist.isEmpty()) {