Syrent / SayanVanish

A modular vanish system for Minecraft servers
https://docs.sayandev.org/sayanvanish
67 stars 15 forks source link

Still showing join/quit messages from VelocityControl #306

Closed Sikatsu closed 5 months ago

Sikatsu commented 6 months ago

Server backend version

1.20.4

Server backend Java version

21

Server Velocity version

3.3.0-b378

Server Velocity Java version

21

VelocityVanish version

3.27.3-build.60

Describe the bug

For some reason, the join/quit messages from VelocityControl are still showing up when I join the server vanished. image

Expected behavior

The join/quit messages should not be visible when I join the server in vanish.

Steps to reproduce

Install VelocityControl + VelocityVanish on the bungee. Install ChatControlRed Setup join/quit messages in the messages folder of VelocityControl Give yourself the permission to join in vanish Voila

LuckPerms webview link

No response

VelocityVanish's configuration file

Full wiki is available at https://github.com/Syrent/VelocityVanish/wiki

config_version: 9 default_language: en_US show_dependency_suggestions: true

IMPORTANT: Legacy code support is strongly discouraged. It adversely affects performance and lacks new Minecraft chat features.

support_legacy_color_codes: false

If you're the first player to join the server, Vanish data may not synchronize correctly,

and you may not enter vanish mode. With this option enabled, you can still enter vanish mode

if you have operator privileges or the "velocityvanish.action.vanish.force" permission.

If you weren't previously in vanish mode, you'll be unvanished after a few seconds.

force_vanish_if_first: true

bstats: true

Leave sounds blank to disable them

Example: command: ""

sounds: command: ENTITY_EXPERIENCE_ORB_PICKUP vanish: ENTITY_EXPERIENCE_ORB_PICKUP unvanish: ENTITY_EXPERIENCE_ORB_PICKUP vanish:

Show players an actionbar when they are vanished

actionbar: true

Remember vanish data after switching servers?

Note: Requires Velocity as a proxy server

remember: true

Should we change player type to spectator in tablist for players who have permission to see vanished players?

Note: Requires ProtocolLib in versions lower than 1.19

see_as_spectator: true

Should vanished players be protected from all damage sources?

invincible: true

You can also achieve this by setting the fake join/leave message to blank in the language file

fake_join_leave_message: true silent_open_container: true

Might cause incompatibility with some plugins like TAB and eGlow

disable_collision: false prevent: pickup: true block_break: false block_place: false interact: false

Only works on PaperMC servers (Paper, Purpur, Pufferfish, etc...)

advancement: true

hooks: essentials: enabled: false force_prevent_private_messages: false sunlight: enabled: false placeholderapi: enabled: true protocollib: enabled: true squaremap: enabled: true discordsrv: enabled: false cmi: enabled: true

Plugins

-

Additional info

-

Checklist

Syrent commented 6 months ago

hey, i couldn't find VelocityControl plugin. can you send me the link?

Sikatsu commented 6 months ago

Hey, it's this one for ChatControlRed;

https://builtbybit.com/resources/velocitycontrol-cross-network-chat.43226/

Syrent commented 6 months ago

It appears that VelocityControl is receiving vanish data from ChatControlRed. Since ChatControlRed isn't open-source, I'm unable to inspect how it determines a player's vanished status. Additionally, I couldn't locate any public API for ChatControlRed to integrate its support independently.

Sikatsu commented 6 months ago

I'll inform the developer of ChatControlRed about this matter, he's aware of this too.

We have a /prefix command that opens a GUI where you can choose join/quit message designs (basically), it gives you a different permission and shows the right join/quit message from VelocityControl's messages folder. Once you switched to a different one, it'll for some reason always be visible when I join or leave the server, can't make it undone either..

kangarko commented 6 months ago

@Syrent we simply check for vanished metadata, is your plugin adding them?

a

Syrent commented 6 months ago

VelocityVanish sets the Vanished metadata, but the issue lies in how it uses PluginMessage to synchronize data between servers, which isn't entirely reliable and can't ensure synchronization at player join time. To address this, a delay of around 20 ticks for join/quit messages is necessary to ensure the metadata is properly set.

Using PluginMessage as a database was not the best decision on my part, and it's a fundamental flaw with VelocityVanish that cannot be easily rectified by changing the database method.

I'm currently working on a new vanish plugin called SayanVanish, but it won't be publicly available for the next 2-3 months.

For now, the available options are either to refrain from adding VelocityVanish support or to implement a delay for vanish checks to mitigate the issue.

kangarko commented 6 months ago

Cool, so are you saying I should just wait for 20 ticks after the player has joined - at minimum?

@Sikatsu we have an option to delay join message, can you try some value like 30-40ticks even 60 ticks to see if that does the trick? On velocitycontrol there's that option too

Kaassss commented 6 months ago

(From the same server as Sikatsu) Tested both 60tick delay from ChatControlRed and VelocityControl. Both still sent the join/quit messages in chat with the custom (join/quit) message from VelocityControl for people in vanish.

Syrent commented 5 months ago

Fixed in SayanVanish release candidate 1