aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch
diff options
context:
space:
mode:
authorZach Brown <[email protected]>2019-05-27 04:13:41 -0500
committerZach Brown <[email protected]>2019-05-27 04:13:41 -0500
commit70ce6ce8314b9268cb5985cf2ebbd2115e9d9f11 (patch)
tree2a8e37e46c4f9e7994a7982cb1e23e196b66296d /Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch
parent7fb12d787e21eb5861094fbc5ffcdfa628b39eec (diff)
downloadPaper-70ce6ce8314b9268cb5985cf2ebbd2115e9d9f11.tar.gz
Paper-70ce6ce8314b9268cb5985cf2ebbd2115e9d9f11.zip
Move version command update checking to the implementation
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
Diffstat (limited to 'Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch')
-rw-r--r--Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch b/Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch
new file mode 100644
index 0000000000..4456faad7f
--- /dev/null
+++ b/Spigot-API-Patches/0152-PreSpawnerSpawnEvent.patch
@@ -0,0 +1,48 @@
+From 1499f72bc455c5b57447ed95902712a585fa204b Mon Sep 17 00:00:00 2001
+From: Phoenix616 <[email protected]>
+Date: Tue, 18 Sep 2018 23:50:10 +0100
+Subject: [PATCH] PreSpawnerSpawnEvent
+
+This adds a separate event before an entity is spawned by a spawner
+which contains the location of the spawner too similarly to how the
+SpawnerSpawnEvent gets called instead of the CreatureSpawnEvent for
+spawners.
+
+diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
+new file mode 100644
+index 00000000..48cff063
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
+@@ -0,0 +1,29 @@
++package com.destroystokyo.paper.event.entity;
++
++
++import com.google.common.base.Preconditions;
++import org.bukkit.Location;
++import org.bukkit.entity.EntityType;
++import org.bukkit.event.entity.CreatureSpawnEvent;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Called before an entity is spawned into a world by a spawner.
++ *
++ * This only includes the spawner's location and not the full BlockState snapshot for performance reasons.
++ * If you really need it you have to get the spawner yourself.
++ */
++
++public class PreSpawnerSpawnEvent extends PreCreatureSpawnEvent {
++ @NotNull private final Location spawnerLocation;
++
++ public PreSpawnerSpawnEvent(@NotNull Location location, @NotNull EntityType type, @NotNull Location spawnerLocation) {
++ super(location, type, CreatureSpawnEvent.SpawnReason.SPAWNER);
++ this.spawnerLocation = Preconditions.checkNotNull(spawnerLocation, "Spawner location may not be null");
++ }
++
++ @NotNull
++ public Location getSpawnerLocation() {
++ return spawnerLocation;
++ }
++}
+--
+2.21.0
+