aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch')
-rw-r--r--patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch149
1 files changed, 149 insertions, 0 deletions
diff --git a/patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch
new file mode 100644
index 0000000000..4d84c9e1b1
--- /dev/null
+++ b/patches/api/0244-Added-PlayerChangeBeaconEffectEvent.patch
@@ -0,0 +1,149 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Wed, 24 Jun 2020 15:12:18 -0600
+Subject: [PATCH] Added PlayerChangeBeaconEffectEvent
+
+
+diff --git a/src/main/java/io/papermc/paper/event/player/PlayerChangeBeaconEffectEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerChangeBeaconEffectEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..1cc5dfb6d31f312f07acb1d5fb4719d6f4c2c4ff
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/event/player/PlayerChangeBeaconEffectEvent.java
+@@ -0,0 +1,137 @@
++package io.papermc.paper.event.player;
++
++import org.bukkit.block.Block;
++import org.bukkit.entity.Player;
++import org.bukkit.event.Cancellable;
++import org.bukkit.event.HandlerList;
++import org.bukkit.event.player.PlayerEvent;
++import org.bukkit.potion.PotionEffectType;
++import org.jetbrains.annotations.ApiStatus;
++import org.jetbrains.annotations.NotNull;
++import org.jetbrains.annotations.Nullable;
++
++/**
++ * Called when a player sets the effect for a beacon
++ */
++public class PlayerChangeBeaconEffectEvent extends PlayerEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ private final Block beacon;
++ private PotionEffectType primary;
++ private PotionEffectType secondary;
++ private boolean consumeItem = true;
++
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public PlayerChangeBeaconEffectEvent(@NotNull Player player, @Nullable PotionEffectType primary, @Nullable PotionEffectType secondary, @NotNull Block beacon) {
++ super(player);
++ this.primary = primary;
++ this.secondary = secondary;
++ this.beacon = beacon;
++ }
++
++ /**
++ * @return the primary effect
++ */
++ @Nullable public PotionEffectType getPrimary() {
++ return this.primary;
++ }
++
++ /**
++ * Sets the primary effect
++ * <p>
++ * NOTE: The primary effect still has to be one of the valid effects for a beacon.
++ *
++ * @param primary the primary effect
++ */
++ public void setPrimary(@Nullable PotionEffectType primary) {
++ this.primary = primary;
++ }
++
++ /**
++ * @return the secondary effect
++ */
++ @Nullable public PotionEffectType getSecondary() {
++ return this.secondary;
++ }
++
++ /**
++ * Sets the secondary effect
++ * <p>
++ * This only has an effect when the beacon is able to accept a secondary effect.
++ * NOTE: The secondary effect still has to be a valid effect for a beacon.
++ *
++ * @param secondary the secondary effect
++ */
++ public void setSecondary(@Nullable PotionEffectType secondary) {
++ this.secondary = secondary;
++ }
++
++ /**
++ * @return the beacon block associated with this event
++ */
++ @NotNull
++ public Block getBeacon() {
++ return this.beacon;
++ }
++
++ /**
++ * Gets if the item used to change the beacon will be consumed.
++ * <p>
++ * Independent of {@link #isCancelled()}. If the event is cancelled
++ * the item will <b>NOT</b> be consumed.
++ *
++ * @return {@code true} if item will be consumed
++ */
++ public boolean willConsumeItem() {
++ return this.consumeItem;
++ }
++
++ /**
++ * Sets if the item used to change the beacon should be consumed.
++ * <p>
++ * Independent of {@link #isCancelled()}. If the event is cancelled
++ * the item will <b>NOT</b> be consumed.
++ *
++ * @param consumeItem {@code true} if item should be consumed
++ */
++ public void setConsumeItem(boolean consumeItem) {
++ this.consumeItem = consumeItem;
++ }
++
++ /**
++ * {@inheritDoc}
++ * <p>
++ * If a {@link PlayerChangeBeaconEffectEvent} is cancelled, the changes will
++ * not take effect
++ */
++ @Override
++ public boolean isCancelled() {
++ return this.cancelled;
++ }
++
++ /**
++ * {@inheritDoc}
++ * <p>
++ * If cancelled, the item will <b>NOT</b> be consumed regardless of what {@link #willConsumeItem()} says
++ * <p>
++ * If a {@link PlayerChangeBeaconEffectEvent} is cancelled, the changes will not be applied
++ * or saved.
++ */
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @Override
++ public @NotNull HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}