4drian3d / 4drian3d/SignedVelocity

Issue warning, if possible, when behavior changes due to backend plugin handling

Offen
#17 4 Kommentare 2 Reaktionen 1 zugewiesene Person Beansprucht von @4drian3d Auf GitHub ansehen
bug
Vorherrschende Sprache
Java
Sterne
73
Forks
23
Ø Merge
11 Std. 19 Min.
Gemergte PRs (30 T.)
9

Beschreibung

In the pre-existing Velocity API, canceling a chat event prevents it from being sent to the backend servers. Chat canceled on the proxy is therefore invisible to Bukkit plugins. However, using SignedVelocity fundamentally alters this behavior by forwarding **all** chat events, even if canceled, to the backend servers. While this makes the plugin work, it is a behavioral change from the prior status quo, and leaks the abstraction SignedVelocity employs to shore up chat handling in a post-1.19.4 world.

This can be confusing for users who are acquainted to the previous behavior. For example, it may cause certain proxy plugin features to stop working when switching from pre-1.19.4 to post-1.19.4 with SignedVelocity, since the behavior of chat events is now different.

Most of the time, however, uncanceling a canceled chat event doesn't make sense. Fortunately, SignedVelocity is in the unique position of knowing exactly when a chat event was canceled by the proxy but uncanceled by the backend server. I therefore propose SignedVelocity add another listener on `EventPriority.HIGHEST` to log a brief warning if behavior has fundamentally changed as a result of a backend plugin *uncanceling* the event. It should be relatively straightforward given you already have a queue of chat data, so no additional data structure overhead would be incurred. If you want to avoid annoying users, the brief warning can be one-time, or it can be disabled by a config option. However, I argue it should be enabled by default, because it presents a behavioral change from the typical Velocity API proxy plugins are used to.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Look at the chat event handling code in SignedVelocity, likely where chat events are queued and forwarded. Identify the listener that currently uncancels events for backend servers. Add a HIGHEST priority listener to detect when a backend plugin uncancels a proxy-canceled event. Implement a configurable warning log, possibly one-time per event type. Check existing configuration options for adding a new toggle.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend, devtools
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.