Skip to content

feat: ShowingHitMarkerEventArgs#791

Open
Vretu-Dev wants to merge 2 commits intoExMod-Team:masterfrom
Vretu-Dev:master
Open

feat: ShowingHitMarkerEventArgs#791
Vretu-Dev wants to merge 2 commits intoExMod-Team:masterfrom
Vretu-Dev:master

Conversation

@Vretu-Dev
Copy link
Copy Markdown

@Vretu-Dev Vretu-Dev commented Mar 29, 2026

Description

Describe the changes
Added new event ShowingHitMarker

What is the current behavior? (You can also link to an open issue here)

What is the new behavior? (if this is a feature change)

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:


Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentations

Submission checklist

  • I have checked the project can be compiled
  • I have tested my changes and it worked as expected

Patches (if there are any changes related to Harmony patches)

  • I have checked no IL patching errors in the console

Other

  • Still requires more testing

Copilot AI review requested due to automatic review settings March 29, 2026 14:35
@Vretu-Dev Vretu-Dev changed the title ShowingHitMarkerEventArgs feat: ShowingHitMarkerEventArgs Mar 29, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Player event to allow plugins to observe/modify (or deny) hitmarker display before it is sent to a client.

Changes:

  • Introduces Handlers.Player.ShowingHitMarker and its invoker OnShowingHitMarker.
  • Adds a Harmony transpiler patch for Hitmarker.SendHitmarkerDirectly(...) to raise the event and apply modified args / cancellation.
  • Adds ShowingHitMarkerEventArgs carrying size, audio flag, hitmarker type, and a deniable IsAllowed.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
EXILED/Exiled.Events/Patches/Events/Player/ShowingHitMarker.cs Hooks Hitmarker.SendHitmarkerDirectly to invoke the new event and optionally block/override hitmarker parameters.
EXILED/Exiled.Events/Handlers/Player.cs Exposes the new ShowingHitMarker event and adds the corresponding OnShowingHitMarker invoker.
EXILED/Exiled.Events/EventArgs/Player/ShowingHitMarkerEventArgs.cs Defines the event args used by the new event, including overridable parameters and IsAllowed.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +14 to +15
/// Contains all information before a hitmarker is show to player.
/// </summary>
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The XML doc summary has grammatical errors ("is show to player"); please correct to something like "...before a hitmarker is shown to a player." so generated docs/readers are clear.

Copilot uses AI. Check for mistakes.
Comment on lines +42 to +44
/// Gets or sets the player that the hitmarker is being shown to.
/// </summary>
public Player Player { get; set; }
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Player is settable here, but the patch only uses the original ReferenceHub argument and does not read back ev.Player, so changing ev.Player in handlers will have no effect and may mislead API consumers. Consider making Player get-only (like most other IPlayerEvent args, e.g. ChangedItemEventArgs / HitEventArgs) or updating the patch/API to support redirecting if that is intended.

Suggested change
/// Gets or sets the player that the hitmarker is being shown to.
/// </summary>
public Player Player { get; set; }
/// Gets the player that the hitmarker is being shown to.
/// </summary>
public Player Player { get; private set; }

Copilot uses AI. Check for mistakes.
public bool ShouldPlayAudio { get; set; }

/// <summary>
/// Gets or sets a the type of the hitmarker.
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor grammar issue in the property XML doc ("a the type"). Please fix to "the type" to avoid typos in generated documentation.

Suggested change
/// Gets or sets a the type of the hitmarker.
/// Gets or sets the type of the hitmarker.

Copilot uses AI. Check for mistakes.
@louis1706
Copy link
Copy Markdown

why copilot is here bruh ?

@Vretu-Dev
Copy link
Copy Markdown
Author

why copilot is here bruh ?

Idk he want to cook XD

@Someone-193
Copy link
Copy Markdown

@louis1706 if you remember Joker's new plans for Exiled 10, I dont think we should implement this event as a transpiler considering the LabAPI equivalent already exists. I've just pinged Joker for some more clarification on whether we should implement this event as a wrapper anyways but we'll have to wait for his response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants