Skip to content

Announce each ClickCrystals staff member only once per server - #153

Closed
I-No-oNe wants to merge 3 commits into
clickcrystals-development:mainfrom
I-No-oNe:fix/staff-join-notification-spam
Closed

Announce each ClickCrystals staff member only once per server#153
I-No-oNe wants to merge 3 commits into
clickcrystals-development:mainfrom
I-No-oNe:fix/staff-join-notification-spam

Conversation

@I-No-oNe

@I-No-oNe I-No-oNe commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Type of change

  • Bug fix
  • New feature

Description

Stacked on #151 (and through it #152), which have to be merged first. Once they are merged this diff is only the notification change.

The "CC Staff Joined!" notification fired on every ClientboundPlayerInfoUpdatePacket that carried ADD_PLAYER for a staff member. Servers re-send those entries on tab list refreshes and on every lobby switch, and notifications are only deduplicated by object identity, so the same staff member was announced over and over.

NetworkEventListener now remembers which player ids it has already walked and skips the ones it has seen, so each staff member is announced once. The set is cleared on game leave, so rejoining a server announces them again.

Related issues

None open for this.

Checklist:

  • My code follows the style guidelines of ItziSpyder(ImproperIssues).
  • I have added comments to my code in more complex areas.
  • I have tested the code in both development and production environments.
  • I have joined the ClickCrystals Discord.

MixinGui mix into Gui, but cancelled branch cast this to
AccessorMinecraftClient, which mix into Minecraft. Every cancelled screen
change throw ClassCastException, so joining server with no-load-screen on
kill the connection on level loading screen.

Go through mc.gui.setScreen(null). Invoker for setScreenAndShow now unused,
so drop it.
Server push resource pack during configuration phase. No player then, so
MixinConnection dropped the event and the module saw nothing. Packet event
now fire regardless and carry the listener that got the packet, which exist
in both phases and own the connection the spoofed handshake go back on.
@I-No-oNe

I-No-oNe commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #154, which carries all four fixes.

@I-No-oNe I-No-oNe closed this Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant