diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClicksBlockScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClicksBlockScriptEvent.java index 85889b7024..50a92baa62 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClicksBlockScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClicksBlockScriptEvent.java @@ -31,6 +31,8 @@ public class PlayerClicksBlockScriptEvent extends BukkitScriptEvent implements L // // @Group Player // + // @Warning this event may in some cases double-fire, requiring usage of the 'ratelimit' command (like 'ratelimit 1t') to prevent doubling actions. + // // @Switch with: to only process the event if a specified item was held. // @Switch using:hand/off_hand/either_hand to only process the event if the specified hand was used to click. // @Switch in: to only process the event if it occurred within a specified area. diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerRightClicksEntityScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerRightClicksEntityScriptEvent.java index 63a4e4d357..969efd87ab 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerRightClicksEntityScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerRightClicksEntityScriptEvent.java @@ -26,6 +26,8 @@ public class PlayerRightClicksEntityScriptEvent extends BukkitScriptEvent implem // @Switch in: to only process the event if it occurred within a specified area. // @Switch with: to only process the event when the player is holding a specified item. // + // @Warning this event may in some cases double-fire, requiring usage of the 'ratelimit' command (like 'ratelimit 1t') to prevent doubling actions. + // // @Cancellable true // // @Triggers when a player right clicks on an entity. diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java index e948858c02..0e01b5169d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java @@ -1747,7 +1747,11 @@ else if (mtr.angle == BlockFace.EAST) { // Returns the entity's shooter, if any. // --> registerSpawnedOnlyTag("shooter", (attribute, object) -> { - return object.getShooter().getDenizenObject(); + EntityTag shooter = object.getShooter(); + if (shooter == null) { + return null; + } + return shooter.getDenizenObject(); }, "get_shooter"); // <--[tag] diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java index 4a040c1383..77bcef134c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java @@ -3663,6 +3663,10 @@ else if (bal > goal) { // Sends the player to the specified Bungee server. // --> if (mechanism.matches("send_to") && mechanism.hasValue()) { + if (!isOnline()) { + Debug.echoError("Cannot use send_to on offline player."); + return; + } Depends.bungeeSendPlayer(getPlayerEntity(), mechanism.getValue().asString()); }