Skip to content

"cancel event" is bypassable by spamming #7934

Description

@FemBoysAreCut3

Skript/Server Version

[05:31:54] [Render thread/INFO]: [System] [CHAT] ==============[ Skript+ Info ]==============
[05:31:54] [Render thread/INFO]: [System] [CHAT] Server Version: 1.21.5-110-320f25c (MC: 1.21.5)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] Skript (2.11.2) (skriptlang-github)
[05:31:54] [Render thread/INFO]: [System] [CHAT] 
[05:31:54] [Render thread/INFO]: [System] [CHAT] Addons [12]
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] SkBee (3.11.3)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] SkriptPlus (1.0.0)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] skript-placeholders (1.7.0)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] SkQuery (4.3.2)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] PlotSk (1.3.2)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] SkCord (3.2-RELEASE)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] DiSky (4.23.0)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] Floodgate-Skript (2.3)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] SkUniversal (2.13)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] skript-yaml (1.6.1)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] SkJson (5.4)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] skript-reflect (2.6)
[05:31:54] [Render thread/INFO]: [System] [CHAT] 
[05:31:54] [Render thread/INFO]: [System] [CHAT] Dependencies [3]
[05:31:54] [Render thread/INFO]: [System] [CHAT] [] Vault (1.7.3-b131)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] WorldGuard (7.0.13+82fdc65)
[05:31:54] [Render thread/INFO]: [System] [CHAT] [?] GriefPrevention (16.18.4)
[05:31:54] [Render thread/INFO]: [System] [CHAT] 
[05:31:54] [Render thread/INFO]: [System] [CHAT] [Discord]   [GitHub]   [Documentation]

Bug Description

The "cancel event" expression in the skript can be bypassed by spamming the command or event. For example, in the code on command: if command is "say hi": cancel event, the event is canceled most of the time, but when the command is spammed rapidly, it fails to block the command consistently. Approximately 9 out of 10 attempts are blocked, but 1 out of 10 still goes through, which should not happen. This inconsistency suggests that the event cancellation mechanism is not robust against rapid or repeated inputs.

Expected Behavior

The "cancel event" expression in the script is supposed to consistently block the execution of the specified command (e.g., "say hi") every time it is triggered, regardless of how frequently or rapidly the command is spammed. The event cancellation should work 100% of the time, preventing any instance of the command from executing.

Steps to Reproduce

To reproduce the issue, I used the following script in a Skript environment (e.g., on a Minecraft server with the Skript plugin installed):

on command:
    if command is "say hi":
        cancel event
        send "Command blocked!" to player

Then just spam /say hi multiple times

Observed behavior:

  • Most of the time (approximately 9 out of 10 attempts), the command is blocked, and the player receives the "Command blocked!" message.
  • However, when spamming the command rapidly, some instances (about 1 out of 10) bypass the cancel event and execute, resulting in the "hi" message appearing in chat.

Errors or Screenshots

none

Other

not really

Agreement

  • I have read the guidelines above and affirm I am following them with this report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn issue that needs to be fixed. Alternatively, a PR fixing an issue.cannot reproduceAn issue that cannot be replicated.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions