CoreProtect

CoreProtect

1M Downloads

Hover events on team suffixes break when using CoreProtect

n-aspen opened this issue · 3 comments

commented

Adding CoreProtect seems to disable the hover event on the vanilla teams prefix/suffix system. I'm assuming that this is a paper issue but I'm not sure where to start on debugging that, just that it's replicable with CoreProtect and paper alone.

paper-1.16.5-786 (Also tested on paper-1.17.1-231)
CoreProtect 20.1
openjdk "16.0.2" 2021-07-20

Logs and images without CoreProtect and the hover event working on player join, player chat, and advancement announcement.
Logs
MOV-2021-08-30__7717
MOV-2021-08-30__7718
MOV-2021-08-30__7719

Logs and images withCoreProtect and the hover event working on player join and advancement announcement but not working on player chat.
Logs
MOV-2021-08-30__7720
MOV-2021-08-30__7721
MOV-2021-08-30__7722

commented

Simplified version of the suffix command used and steps to get it to appear.

Set use-vanilla-world-scoreboard-name-coloring to true in paper.yml then run these commands.

/team add <team>
/team join <team>
/team modify <team> suffix [{"text":"\u2463","color":"red","hoverEvent":{"action":"show_text","contents":[{"text":"TestMe!","bold":true,"color":"dark_aqua"},{"text":"\n"},{"text":"Can you see this?","bold":false,"color":"gray"}]}}]

commented

I'll need to perform additional testing. However, CoreProtect doesn't touch anything relating to the team/scoreboard system.

A bug report may need to be submitted to Spigot or Paper. Please test with Spigot, and see if the issue is replicable there.

commented

I had similar issues yesterday when developing a paper plugin. CoreProtect listens to AsyncPlayerChatEvent which on a paper server is considered legacy. Just having a registered listener for the event is enough for paper to have to handle legacy stuff I think, even if it doesn't modify the message and has monitor priority. Legacy text formatting does not support hover events which would explain the problem in this issue.

A possible solution could maybe be to not listen to AsyncPlayerChatEvent on paper servers and instead listen to the paper AsyncChatEvent variant.