HuskChat
HuskChat copied to clipboard
Velocity 1.19.1 / 1.19.2 Disconnecting Players ("A plugin tried to cancel a signed chat message")
A plugin tried to cancel a signed chat message. This is no longer possible in 1.19.1 and newer. Disconnecting player ...
Running Velocity 3.1.2-SNAPSHOT (git-1a3fba42-b163) & HuskChat 2.3
This issue is caused by Velocity as of yet not having implemented a chat API for the chat changes introduced in 1.19.2. To fix it, simply install UnsignedVelocity and its' dependency, VPacketEvents on your Velocity server alongside HuskChat. This plugin will remove signatures from chat messages coming into the server, allowing HuskChat to function normally. When chat has stabilised and Velocity implement a full API for Minecraft 1.19.2 chat, I will look into updating HuskChat to remove this requirement.
More details...
tl;dr-- Velocity haven't added chat API support for 1.19.1+ yet because they want to fully implement Mojang's signed chat / chat reporting, while Bungee haven't bothered and just strip messages of signatures from clients. Thus, all proxy chat plugins are broken with Velocity atm.
Note (Added 26-Oct-2022) ~~I've updated the fork of Velocity that implements BungeeCord's approach of not caring about chat signing, called "Velocity-NoChatSigning". Use it at your own risk, of course, but it seems stable as it only really changes the chat functionality. If you're like me and really just don't care about the whole chat situation and would rather something that works safely, that's the solution. Otherwise, wait for Velocity to create their implementation.~~ (Edit: Use UnsignedVelocity instead of this)
HuskChat on Velocty 1.19.1 / 1.19.2 / 1.19.3 is broken as the current implementation of Velocity does not support cancelling inbound signed chat messages. BungeeCord is unaffected.
Read on for some answers to frequently asked questions. Please note details are subject to change.
-
What does this mean? Velocity's current implementation on Minecraft 1.19.X does not support cancelling inbound signed chat messages, thereby meaning HuskChat is unable to process these. Signed (or "secure chat") is a feature added in Minecraft 1.19.1 to enable chat reporting, a new social feature to enable the reporting of in-game chat messages to Microsoft, to ensure the message's authenticity. Instead of cancelling the message, if Velocity detects a message with a signature attached that was sent to the server, the message will not be cancelled and instead an error will be thrown and the player disconnected.
-
Is there a workaround? Velocity will cancel messages sent from 1.19.1+ clients without a signature (pre-stripped) just fine, though this requires your users having a mod that strips messages of their signature at dispatch time. Alternatively, someone made a fork of Velocity called Velocity-NoChatSigning that removes impositions made against signed chat messages.
-
Is this a bug with HuskChat? No. This is caused by Velocity. It does not affect BungeeCord, as Bungee's approach is to strip inbound messages of their signature before cancelling, thereby not supporting secured chat at all.
-
When/how will Velocity be updated to correct this? The changes carried out in Minecraft 1.19.1 were immense and this requires a complete retooling of Velocity's chat API. The Velocity team is working on this and the new Velocity API will support cancelling chat messages in general, provided signed chat is not enforced by backend servers. New API will also be added to allow for modifying header data of the sent messages to support secure chat. When Velocity makes that API available, I will most likely need to update HuskChat to accommodate it.
-
Why is Bungee supported but not Velocty? The Velocity team is prioritizing supporting secured chat in line with Vanilla and the general direction of travel with chat in the game. Chat is in a state of flux at the moment due to the changes made by Mojang, and there's no telling whether secured chat will be a requirement in the future. Bungee, on the other hand, simply strips messages of their signature, which allows them to still be cancelled, but does not support secured chat at all at the moment.
-
When/how will HuskChat support Velocity's new API I will assess the new API provided by Velocity when it is made available and finalized further. This may require some significant retooling and a change to the minimum supported version (1.16 --> 1.19). At the moment, my priority is supporting the plugin on servers that don't want to use secured chat (instead using system messages). I will assess the new Velocity API when it comes out to see if supporting secured chat is viable (or perhaps preferred).
Source: (Paper discord, #velocity-dev
)
Original post: Caused by a breaking Velocity API change that HuskChat relies on... We'll have to either look for alternatives or workarounds or see if Velocity will implement this behaviour.
~~Update: Enquired with the Velocity team, they're working on the API still and this will be resolved soonish :-) I'll leave this open until then!~~
It'll probably be awhile before this gets fixed. It's a result of changed Velocity API needed to accommodate 1.19.1 -- there were some mixed messages before, but it seems like it is definitely going to be fixed. Eventually.
I have updated this post https://github.com/WiIIiam278/HuskChat/issues/72#issuecomment-1200896060 with more details and a FAQ.
Hey any updates reguarding that ?
Hey any updates reguarding that ?
Nope. When Velocity adds their chat API, things can move. Waiting on them :)
Is there a workaround with like using a older Velocity Version?
Is there a workaround with like using a older Velocity Version?
Nope. This is a Velocity issue; they haven't implemented a chat API yet as they want to do so with full respect and support to Mojang's chat signing- that's their decision as explained in the FAQ and so no versions of velocity support cancelling signed chat that work with 1.19.2 currently.
I just did something without canceling any messages: https://github.com/voruti/CopyChat/blob/main/src/main/java/voruti/copychat/CopyChat.java#L43. That's all I need for now; I'll come back to HuskChat later.
@voruti That's neat! Only issue of course is that you can't format the (at least, locally received) messages, or do channel switching, etc, which I think is pretty extremely important
any update?
Read the second comment. There's mitigation instructions there.
HuskChat 2.5 will depend on UnsignedVelocity & VPacketEvents on Velocity going forward.