Skip to content

Commit

Permalink
New Event: PlayerPickupArrowEvent (#5588)
Browse files Browse the repository at this point in the history
  • Loading branch information
NotSoDelayed authored Jun 27, 2023
1 parent e08ec47 commit 59b4bb5
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/main/java/ch/njol/skript/classes/data/BukkitEventValues.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
import org.bukkit.event.player.PlayerItemDamageEvent;
import org.bukkit.event.player.PlayerItemMendEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerPickupArrowEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerQuitEvent.QuitReason;
Expand Down Expand Up @@ -1649,6 +1650,25 @@ public Location get(LootGenerateEvent event) {
}, EventValues.TIME_NOW);
}

// PlayerPickupArrowEvent
// This event value is restricted to MC 1.14+ due to an API change which has the return type changed
// which throws a NoSuchMethodError if used in a 1.13 server.
if (Skript.isRunningMinecraft(1, 14))
EventValues.registerEventValue(PlayerPickupArrowEvent.class, Projectile.class, new Getter<Projectile, PlayerPickupArrowEvent>() {
@Override
public Projectile get(PlayerPickupArrowEvent event) {
return event.getArrow();
}
}, EventValues.TIME_NOW);

EventValues.registerEventValue(PlayerPickupArrowEvent.class, ItemStack.class, new Getter<ItemStack, PlayerPickupArrowEvent>() {
@Override
@Nullable
public ItemStack get(PlayerPickupArrowEvent event) {
return event.getItem().getItemStack();
}
}, EventValues.TIME_NOW);

//PlayerQuitEvent
if (Skript.classExists("org.bukkit.event.player.PlayerQuitEvent$QuitReason"))
EventValues.registerEventValue(PlayerQuitEvent.class, QuitReason.class, new Getter<QuitReason, PlayerQuitEvent>() {
Expand All @@ -1658,5 +1678,7 @@ public QuitReason get(PlayerQuitEvent event) {
return event.getReason();
}
}, EventValues.TIME_NOW);

}

}
11 changes: 11 additions & 0 deletions src/main/java/ch/njol/skript/events/SimpleEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerLocaleChangeEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerPickupArrowEvent;
import org.bukkit.event.player.PlayerPortalEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
Expand Down Expand Up @@ -710,6 +711,16 @@ public class SimpleEvents {
.requiredPlugins("Paper 1.16+");
}

Skript.registerEvent("Player Pickup Arrow", SimpleEvent.class, PlayerPickupArrowEvent.class, "[player] (pick[ing| ]up [an] arrow|arrow pick[ing| ]up)")
.description("Called when a player picks up an arrow from the ground.")
.examples(
"on arrow pickup:",
"\tcancel the event",
"\tteleport event-projectile to block 5 above event-projectile"
)
.since("INSERT VERSION")
.requiredPlugins("Minecraft 1.14+ (event-projectile)");

Skript.registerEvent("Inventory Drag", SimpleEvent.class, InventoryDragEvent.class, "inventory drag[ging]")
.description("Called when a player drags an item in their cursor across the inventory.")
.examples(
Expand Down

0 comments on commit 59b4bb5

Please sign in to comment.