@@ -114,7 +114,7 @@ public final void handleLogin(final OriginBlacklistLoginEvent event) {
114114 }
115115 this .plugin .kickPlayer (this .getBlacklistedComponent ("kick" , blacklisted .getArrayString (),
116116 blacklisted .getAltString (), blacklisted .getString (), "not allowed" , "not allowed on the server" ,
117- blacklisted_value , blacklisted .getActionString ()), event );
117+ blacklisted_value , blacklisted .getActionString (), false ), event );
118118 this .sendWebhooks (event , blacklisted );
119119 final String name = player .getName ();
120120 if (isNonNull (name )) {
@@ -136,9 +136,12 @@ public final void handleMOTD(final OriginBlacklistMOTDEvent event) {
136136 } else {
137137 blacklisted_value = UNKNOWN_STR ;
138138 }
139- this .plugin .setMOTD (this .getBlacklistedComponent ("motd" , blacklisted .getArrayString (), blacklisted .getAltString (),
140- blacklisted .getString (), "blacklisted" , "blacklisted from the server" , blacklisted_value ,
141- blacklisted .getActionString ()), event );
139+ if (this .isMOTDEnabled ()) {
140+ this .plugin
141+ .setMOTD (this .getBlacklistedComponent ("motd" , blacklisted .getArrayString (), blacklisted .getAltString (),
142+ blacklisted .getString (), "blacklisted" , "blacklisted from the server" , blacklisted_value ,
143+ blacklisted .getActionString (), true ), event );
144+ }
142145 }
143146 }
144147
@@ -150,6 +153,14 @@ public final boolean isMetricsEnabled() {
150153 return this .config .getBoolean ("bStats" );
151154 }
152155
156+ public final boolean isMOTDEnabled () {
157+ return this .config .getBoolean ("motd.enabled" );
158+ }
159+
160+ public final boolean isWebhooksEnabled () {
161+ return this .config .getBoolean ("discord.webhook.enabled" );
162+ }
163+
153164 public final boolean isLogFileEnabled () {
154165 return this .config .getBoolean ("logFile" );
155166 }
@@ -165,13 +176,17 @@ public final OriginBlacklistConfig getConfig() {
165176 public final void setEaglerMOTD (final Component comp , final OriginBlacklistMOTDEvent event ) {
166177 final IMOTDConnection conn = event .getEaglerEvent ().getMOTDConnection ();
167178 final List <String > lst = new ArrayList <>();
168- for (String ln : getComponentString (comp ).split ("\n " )) {
179+ for (final String ln : getComponentString (comp ).split ("\n " )) {
169180 lst .add (ln );
170181 }
182+ final List <String > pLst = new ArrayList <>();
183+ for (final Json5Element ln : this .config .getArray ("motd.players.hover" ).getAsJson5Array ()) {
184+ pLst .add (getLegacyFromMiniMessage (ln .getAsString ().replaceAll ("%discord_invite%" , this .config .getString ("discord.invite" ))));
185+ }
171186 conn .setServerMOTD (lst );
172- conn .setPlayerTotal (0 );
173- conn .setPlayerUnlimited ( );
174- conn .setPlayerList (List . of () );
187+ conn .setPlayerTotal (this . config . getInteger ( "motd.players.online" ) );
188+ conn .setPlayerMax ( this . config . getInteger ( "motd.players.max" ) );
189+ conn .setPlayerList (pLst );
175190 conn .setServerIcon (this .config .getIconBytes ());
176191 conn .sendToUser ();
177192 conn .disconnect ();
@@ -345,8 +360,8 @@ public final IEaglerXServerAPI getEaglerAPI() {
345360
346361 private final Component getBlacklistedComponent (final String type , final String id , final String blockType ,
347362 final String blockTypeAlt , final String notAllowed , final String notAllowedAlt , final String blockValue ,
348- final String action ) {
349- final Json5Array arr = this .config .getArray (" messages." + type );
363+ final String action , final boolean isMOTD ) {
364+ final Json5Array arr = this .config .getArray (isMOTD ? ( type + ".text" ) : ( " messages." + type ) );
350365 final StringBuilder sb = new StringBuilder ();
351366 for (int i = 0 ; i < arr .size (); i ++) {
352367 if (i > 0 )
@@ -359,21 +374,26 @@ private final Component getBlacklistedComponent(final String type, final String
359374 .replaceAll ("%block_type%" , blockType )
360375 .replaceAll ("%not_allowed%" , notAllowed )
361376 .replaceAll ("%not_allowed_alt%" , notAllowedAlt )
362- .replaceAll ("%blocked_value%" , blockValue );
377+ .replaceAll ("%blocked_value%" , blockValue )
378+ .replaceAll ("%discord_invite%" , this .config .getString ("discord.invite" ));
363379 return MiniMessage .miniMessage ().deserialize (str );
364380 }
365381
366382 private final void sendWebhooks (final OriginBlacklistLoginEvent event , final EnumBlacklistType type ) {
367- if (this .config . getBoolean ( "discord.enabled" )) {
383+ if (this .isWebhooksEnabled ( )) {
368384 final OPlayer player = event .getPlayer ();
369385 final EnumConnectionType connType = event .getConnectionType ();
370- /* final String userAgent;
371- if (connType == EnumConnectionType.EAGLER) {
372- final IEaglerLoginConnection loginConn = event.getEaglerEvent().getLoginConnection();
373- userAgent = loginConn.getWebSocketHeader(EnumWebSocketHeader.HEADER_USER_AGENT);
374- } else {
375- userAgent = UNKNOWN_STR;
376- } */
386+ /*
387+ * final String userAgent;
388+ * if (connType == EnumConnectionType.EAGLER) {
389+ * final IEaglerLoginConnection loginConn =
390+ * event.getEaglerEvent().getLoginConnection();
391+ * userAgent =
392+ * loginConn.getWebSocketHeader(EnumWebSocketHeader.HEADER_USER_AGENT);
393+ * } else {
394+ * userAgent = UNKNOWN_STR;
395+ * }
396+ */
377397 final byte [] payload = String .format (
378398 """
379399 {
@@ -466,17 +486,17 @@ private final void checkForUpdates() {
466486 private final void updateLogFile (final OriginBlacklistLoginEvent event , final EnumBlacklistType type ) {
467487 if (this .isLogFileEnabled ()) {
468488 final OPlayer player = event .getPlayer ();
469- final String txt = Instant .now () + " - [player=" + player .getName () + "," + "blacklist_reason=" + type .toString () + "]" ;
489+ final String txt = Instant .now () + " - [player=" + player .getName () + "," + "blacklist_reason=" + type .toString ()
490+ + "]" ;
470491 final Path dir = Paths .get (this .getDataDir ());
471492 try {
472493 Files .createDirectories (dir );
473494 Files .writeString (
474- dir .resolve ("blacklist.log" ),
475- txt + "\n " ,
476- StandardOpenOption .CREATE ,
477- StandardOpenOption .WRITE ,
478- StandardOpenOption .APPEND
479- );
495+ dir .resolve ("blacklist.log" ),
496+ txt + "\n " ,
497+ StandardOpenOption .CREATE ,
498+ StandardOpenOption .WRITE ,
499+ StandardOpenOption .APPEND );
480500 } catch (final Throwable t ) {
481501 t .printStackTrace ();
482502 }
0 commit comments