#1429: Implement TrialSpawnerSpawnEvent
This commit is contained in:
parent
bf13e91130
commit
13ece474f6
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
public Codec<TrialSpawner> codec() {
|
public Codec<TrialSpawner> codec() {
|
||||||
return RecordCodecBuilder.create((instance) -> {
|
return RecordCodecBuilder.create((instance) -> {
|
||||||
@@ -219,13 +219,13 @@
|
@@ -219,13 +219,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
entityinsentient.setPersistenceRequired();
|
entityinsentient.setPersistenceRequired();
|
||||||
@ -34,7 +34,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- if (!worldserver.tryAddFreshEntityWithPassengers(entity)) {
|
- if (!worldserver.tryAddFreshEntityWithPassengers(entity)) {
|
||||||
+ if (!worldserver.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.TRIAL_SPAWNER)) { // CraftBukkit
|
+ // CraftBukkit start
|
||||||
|
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callTrialSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
|
||||||
|
+ return Optional.empty();
|
||||||
|
+ }
|
||||||
|
+ if (!worldserver.tryAddFreshEntityWithPassengers(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.TRIAL_SPAWNER)) {
|
||||||
|
+ // CraftBukkit end
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
} else {
|
} else {
|
||||||
TrialSpawner.a trialspawner_a = this.isOminous ? TrialSpawner.a.OMINOUS : TrialSpawner.a.NORMAL;
|
TrialSpawner.a trialspawner_a = this.isOminous ? TrialSpawner.a.OMINOUS : TrialSpawner.a.NORMAL;
|
||||||
|
@ -211,6 +211,7 @@ import org.bukkit.event.entity.ProjectileHitEvent;
|
|||||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||||
import org.bukkit.event.entity.SpawnerSpawnEvent;
|
import org.bukkit.event.entity.SpawnerSpawnEvent;
|
||||||
import org.bukkit.event.entity.StriderTemperatureChangeEvent;
|
import org.bukkit.event.entity.StriderTemperatureChangeEvent;
|
||||||
|
import org.bukkit.event.entity.TrialSpawnerSpawnEvent;
|
||||||
import org.bukkit.event.entity.VillagerCareerChangeEvent;
|
import org.bukkit.event.entity.VillagerCareerChangeEvent;
|
||||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
import org.bukkit.event.inventory.InventoryOpenEvent;
|
||||||
@ -1568,6 +1569,21 @@ public class CraftEventFactory {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Trial Mob spawner event.
|
||||||
|
*/
|
||||||
|
public static TrialSpawnerSpawnEvent callTrialSpawnerSpawnEvent(Entity spawnee, BlockPosition pos) {
|
||||||
|
org.bukkit.craftbukkit.entity.CraftEntity entity = spawnee.getBukkitEntity();
|
||||||
|
BlockState state = CraftBlock.at(spawnee.level(), pos).getState();
|
||||||
|
if (!(state instanceof org.bukkit.block.TrialSpawner)) {
|
||||||
|
state = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
TrialSpawnerSpawnEvent event = new TrialSpawnerSpawnEvent(entity, (org.bukkit.block.TrialSpawner) state);
|
||||||
|
entity.getServer().getPluginManager().callEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
public static EntityToggleGlideEvent callToggleGlideEvent(EntityLiving entity, boolean gliding) {
|
public static EntityToggleGlideEvent callToggleGlideEvent(EntityLiving entity, boolean gliding) {
|
||||||
EntityToggleGlideEvent event = new EntityToggleGlideEvent((LivingEntity) entity.getBukkitEntity(), gliding);
|
EntityToggleGlideEvent event = new EntityToggleGlideEvent((LivingEntity) entity.getBukkitEntity(), gliding);
|
||||||
entity.level().getCraftServer().getPluginManager().callEvent(event);
|
entity.level().getCraftServer().getPluginManager().callEvent(event);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user