aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch')
-rw-r--r--Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch126
1 files changed, 126 insertions, 0 deletions
diff --git a/Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch b/Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch
new file mode 100644
index 0000000000..2bddc56f13
--- /dev/null
+++ b/Spigot-API-Patches-Unmapped/0131-Add-TNTPrimeEvent.patch
@@ -0,0 +1,126 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Mark Vainomaa <[email protected]>
+Date: Sun, 15 Jul 2018 22:17:55 +0300
+Subject: [PATCH] Add TNTPrimeEvent
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java b/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..73dabb82c7fbea3f0cccade0a2944b11a80ede06
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java
+@@ -0,0 +1,114 @@
++package com.destroystokyo.paper.event.block;
++
++import org.bukkit.block.Block;
++import org.bukkit.entity.Entity;
++import org.bukkit.event.Cancellable;
++import org.bukkit.event.HandlerList;
++import org.bukkit.event.block.BlockEvent;
++import org.jetbrains.annotations.NotNull;
++import org.jetbrains.annotations.Nullable;
++
++/**
++ * Called when TNT block is about to turn into {@link org.bukkit.entity.TNTPrimed}
++ * <p>
++ * Cancelling it won't turn TNT into {@link org.bukkit.entity.TNTPrimed} and leaves
++ * the TNT block as-is
++ *
++ * @author Mark Vainomaa
++ */
++public class TNTPrimeEvent extends BlockEvent implements Cancellable {
++ private static final HandlerList handlers = new HandlerList();
++ private boolean cancelled;
++ @NotNull private PrimeReason reason;
++ @Nullable private Entity primerEntity;
++
++ public TNTPrimeEvent(@NotNull Block theBlock, @NotNull PrimeReason reason, @Nullable Entity primerEntity) {
++ super(theBlock);
++ this.reason = reason;
++ this.primerEntity = primerEntity;
++ }
++
++ /**
++ * Gets the TNT prime reason
++ *
++ * @return Prime reason
++ */
++ @NotNull
++ public PrimeReason getReason() {
++ return this.reason;
++ }
++
++ /**
++ * Gets the TNT primer {@link Entity}.
++ *
++ * It's null if {@link #getReason()} is {@link PrimeReason#REDSTONE} or {@link PrimeReason#FIRE}.
++ * It's not null if {@link #getReason()} is {@link PrimeReason#ITEM} or {@link PrimeReason#PROJECTILE}
++ * It might be null if {@link #getReason()} is {@link PrimeReason#EXPLOSION}
++ *
++ * @return The {@link Entity} who primed the TNT
++ */
++ @Nullable
++ public Entity getPrimerEntity() {
++ return this.primerEntity;
++ }
++
++ /**
++ * Gets whether spawning {@link org.bukkit.entity.TNTPrimed} should be cancelled or not
++ *
++ * @return Whether spawning {@link org.bukkit.entity.TNTPrimed} should be cancelled or not
++ */
++ @Override
++ public boolean isCancelled() {
++ return this.cancelled;
++ }
++
++ /**
++ * Sets whether to cancel spawning {@link org.bukkit.entity.TNTPrimed} or not
++ *
++ * @param cancel whether spawning {@link org.bukkit.entity.TNTPrimed} should be cancelled or not
++ */
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @Nullable
++ @Override
++ public HandlerList getHandlers() {
++ return handlers;
++ }
++
++ @Nullable
++ public static HandlerList getHandlerList() {
++ return handlers;
++ }
++
++ public enum PrimeReason {
++ /**
++ * When TNT prime was caused by other explosion (chain reaction)
++ */
++ EXPLOSION,
++
++ /**
++ * When TNT prime was caused by fire
++ */
++ FIRE,
++
++ /**
++ * When {@link org.bukkit.entity.Player} used {@link org.bukkit.Material#FLINT_AND_STEEL} or
++ * {@link org.bukkit.Material#FIRE_CHARGE} on given TNT block
++ */
++ ITEM,
++
++ /**
++ * When TNT prime was caused by an {@link Entity} shooting TNT
++ * using a bow with {@link org.bukkit.enchantments.Enchantment#ARROW_FIRE} enchantment
++ */
++ PROJECTILE,
++
++ /**
++ * When redstone power triggered the TNT prime
++ */
++ REDSTONE
++ }
++}