2323 */
2424package com .lunarclient .apollo .module .evnt ;
2525
26+ import com .lunarclient .apollo .Apollo ;
27+ import com .lunarclient .apollo .client .version .MinecraftVersion ;
2628import com .lunarclient .apollo .common .ApolloComponent ;
2729import com .lunarclient .apollo .event .ApolloReceivePacketEvent ;
30+ import com .lunarclient .apollo .event .player .ApolloPlayerHandshakeEvent ;
2831import com .lunarclient .apollo .evnt .v1 .CharacterAbilityMessage ;
2932import com .lunarclient .apollo .evnt .v1 .CloseGuiMessage ;
3033import com .lunarclient .apollo .evnt .v1 .EventGameOverviewMessage ;
5558import java .util .List ;
5659import java .util .UUID ;
5760import java .util .stream .Collectors ;
61+ import net .kyori .adventure .text .Component ;
62+ import net .kyori .adventure .text .format .NamedTextColor ;
63+ import net .kyori .adventure .text .format .TextDecoration ;
5864
5965/**
6066 * Provides the EVNT module.
@@ -71,6 +77,7 @@ public final class EVNTModuleImpl extends EVNTModule {
7177 public EVNTModuleImpl () {
7278 super ();
7379 this .handle (ApolloReceivePacketEvent .class , this ::onCharacterSelection );
80+ this .handle (ApolloPlayerHandshakeEvent .class , this ::onApolloPlayerHandshake );
7481 }
7582
7683
@@ -207,6 +214,10 @@ public void updateEventOverview(@NonNull Recipients recipients, @NonNull List<Ev
207214 }
208215
209216 private void onCharacterSelection (ApolloReceivePacketEvent event ) {
217+ if (!this .getOptions ().get (EVNTModule .DEBUG )) {
218+ return ;
219+ }
220+
210221 event .unpack (OverrideCharacterMessage .class ).ifPresent (packet -> {
211222 ApolloPlayer apolloPlayer = event .getPlayer ();
212223
@@ -219,6 +230,36 @@ private void onCharacterSelection(ApolloReceivePacketEvent event) {
219230 });
220231 }
221232
233+ private void onApolloPlayerHandshake (ApolloPlayerHandshakeEvent event ) {
234+ if (this .getOptions ().get (EVNTModule .DISABLE_NOTIFY_MISMATCH )) {
235+ return ;
236+ }
237+
238+ boolean isRunningCorrectVersion = event .getMinecraftVersion () == MinecraftVersion .V1_18_2 ;
239+ boolean isOnCorrectBranch = event .getLunarClientVersion ().getGitBranch ().contains ("evnt" );
240+
241+ if (isRunningCorrectVersion && isOnCorrectBranch ) {
242+ return ;
243+ }
244+
245+ String state = null ;
246+ if (!isRunningCorrectVersion && !isOnCorrectBranch ) {
247+ state = "branch and version!" ;
248+ } else if (!isRunningCorrectVersion ) {
249+ state = "version!" ;
250+ } else {
251+ state = "branch!" ;
252+ }
253+
254+ Component message = Component .text (event .getPlayer ().getName (), NamedTextColor .RED )
255+ .append (Component .text (" has connected without using the correct " , NamedTextColor .GRAY ))
256+ .append (Component .text (state , NamedTextColor .RED , TextDecoration .BOLD ));
257+
258+ Apollo .getPlayerManager ().getPlayers ().stream ()
259+ .filter (player -> player .hasPermission ("apollo.evnt.notify" ))
260+ .forEach (player -> player .sendMessage (message ));
261+ }
262+
222263 private com .lunarclient .apollo .evnt .v1 .CharacterType toProtobuf (@ NonNull CharacterType type ) {
223264 return com .lunarclient .apollo .evnt .v1 .CharacterType .forNumber (type .ordinal () + 1 );
224265 }
0 commit comments