@@ -48,17 +48,17 @@ public void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
4848
4949 if (event .getLoginResult () == AsyncPlayerPreLoginEvent .Result .ALLOWED ) {
5050 checkIPBanSync (event );
51- }
52-
53- if ( event . getLoginResult () == AsyncPlayerPreLoginEvent . Result . ALLOWED ) {
54- foliaLib . getScheduler (). runAsync ( task -> {
55- try {
56- handlePlayerDataAsync ( event );
57- } catch ( Exception e ) {
58- plugin . getLogger (). severe ( "Error handling player data for " + event . getName () + ": " + e . getMessage () );
59- e . printStackTrace ();
60- }
61- });
51+
52+ if ( event . getLoginResult () == AsyncPlayerPreLoginEvent . Result . ALLOWED ) {
53+ foliaLib . getScheduler (). runAsync ( task -> {
54+ try {
55+ handlePlayerDataAsync ( event );
56+ } catch ( Exception e ) {
57+ plugin . getLogger (). severe ( "Error handling player data for " + event . getName () + ": " + e . getMessage ());
58+ e . printStackTrace ( );
59+ }
60+ });
61+ }
6262 }
6363
6464 } catch (Exception e ) {
@@ -97,16 +97,6 @@ private void handlePlayerDataAsync(AsyncPlayerPreLoginEvent event) {
9797
9898 private void checkPunishmentsSync (AsyncPlayerPreLoginEvent event ) {
9999 try {
100- Boolean isBanned = databaseManager .isPlayerBanned (event .getUniqueId ()).join ();
101- plugin .debug ("Direct ban check for %s: %s" , event .getName (), isBanned );
102-
103- if (isBanned != null && isBanned ) {
104- plugin .debug ("Player %s is banned (direct check), blocking connection" , event .getName ());
105- event .disallow (AsyncPlayerPreLoginEvent .Result .KICK_BANNED ,
106- MessageUtils .toComponent ("&c&lYOU ARE BANNED\n &7You have been banned from this server." ));
107- return ;
108- }
109-
110100 List <Punishment > punishments = databaseManager .getActivePunishments (event .getUniqueId ()).join ();
111101 plugin .debug ("Checking %d active punishments for player: %s" , punishments .size (), event .getName ());
112102
@@ -123,7 +113,17 @@ private void checkPunishmentsSync(AsyncPlayerPreLoginEvent event) {
123113 continue ;
124114 }
125115
126- plugin .debug ("Found punishment: type=%s, active=%s, expired=%s, target=%s" ,
116+ if (!punishment .isActive ()) {
117+ plugin .debug ("Skipping inactive punishment for %s" , event .getName ());
118+ continue ;
119+ }
120+
121+ if (punishment .isExpired ()) {
122+ plugin .debug ("Punishment expired for %s, skipping" , event .getName ());
123+ continue ;
124+ }
125+
126+ plugin .debug ("Found active punishment: type=%s, active=%s, expired=%s, target=%s" ,
127127 punishment .getType (), punishment .isActive (), punishment .isExpired (), punishment .getTargetName ());
128128
129129 if (punishment .getType () == PunishmentType .BAN || punishment .getType () == PunishmentType .TEMPBAN ) {
@@ -165,9 +165,19 @@ private void checkIPBanSync(AsyncPlayerPreLoginEvent event) {
165165
166166 if (isIPBanned ) {
167167 String ipBanMessage = plugin .getMessage ("screen.ipban" ,
168- "&c&lYOU ARE IP BANNED\n &7Your IP address has been banned from this server.\n &7Appeal at: &e{appeal-url}" );
168+ "&c&l&m====================\n " +
169+ "&c&lIP BANNED\n " +
170+ "&7&m====================\n \n " +
171+ "&7Your IP address has been banned from this server.\n " +
172+ "&7IP: &f" + playerIP + "\n \n " +
173+ "&7Appeal at: &e{appeal-url}\n " +
174+ "&7&m====================" );
169175 String appealUrl = plugin .getAppealUrl ();
170- ipBanMessage = ipBanMessage .replace ("{appeal-url}" , appealUrl );
176+ if (appealUrl != null && !appealUrl .isEmpty ()) {
177+ ipBanMessage = ipBanMessage .replace ("{appeal-url}" , appealUrl );
178+ } else {
179+ ipBanMessage = ipBanMessage .replace ("&7Appeal at: &e{appeal-url}\n " , "" );
180+ }
171181
172182 Component kickComponent = MessageUtils .toComponent (ipBanMessage );
173183
@@ -224,17 +234,51 @@ public void onPlayerQuit(PlayerQuitEvent event) {
224234
225235 private String getBanMessage (Punishment punishment ) {
226236 String template = switch (punishment .getType ()) {
227- case BAN -> plugin .getMessage ("screen.ban" , "&c&lYOU ARE BANNED" );
228- case TEMPBAN -> plugin .getMessage ("screen.tempban" , "&e&lTEMPORARY BAN" );
229- default -> "&cYou are banned from this server." ;
237+ case BAN -> plugin .getMessage ("screen.ban" ,
238+ "&c&l&m====================\n " +
239+ "&c&lYOU ARE BANNED\n " +
240+ "&7&m====================\n \n " +
241+ "&7Reason: &f{reason}\n " +
242+ "&7Staff: &f{staff}\n " +
243+ "&7Date: &f{datetime}\n " +
244+ "&7Duration: &f{duration}\n \n " +
245+ "&7Appeal at: &e{appeal-url}\n " +
246+ "&7&m====================" );
247+ case TEMPBAN -> plugin .getMessage ("screen.tempban" ,
248+ "&e&l&m====================\n " +
249+ "&e&lTEMPORARY BAN\n " +
250+ "&7&m====================\n \n " +
251+ "&7Reason: &f{reason}\n " +
252+ "&7Staff: &f{staff}\n " +
253+ "&7Date: &f{datetime}\n " +
254+ "&7Expires: &f{expires}\n " +
255+ "&7Time Left: &f{time-left}\n \n " +
256+ "&7Appeal at: &e{appeal-url}\n " +
257+ "&7&m====================" );
258+ default -> "&c&lYOU ARE BANNED\n &7You have been banned from this server." ;
230259 };
231260
232- return MessageUtils .formatPunishmentMessage (template , punishment );
261+ String appealUrl = plugin .getAppealUrl ();
262+ if (appealUrl != null && !appealUrl .isEmpty ()) {
263+ return MessageUtils .formatPunishmentMessage (template , punishment , appealUrl );
264+ } else {
265+ return MessageUtils .formatPunishmentMessage (template , punishment );
266+ }
233267 }
234268
235269 private String getMuteMessage (Punishment punishment ) {
236- String key = "actionbar." + punishment .getType ().name ().toLowerCase ();
237- String template = plugin .getMessage (key , "" );
270+ String template = switch (punishment .getType ()) {
271+ case MUTE -> plugin .getMessage ("actionbar.mute" ,
272+ "&c&lMUTED &8| &7Reason: &f{reason} &8| &7Staff: &f{staff}" );
273+ case TEMPMUTE -> plugin .getMessage ("actionbar.tempmute" ,
274+ "&e&lTEMPORARILY MUTED &8| &7Time Left: &f{time-left} &8| &7Reason: &f{reason}" );
275+ default -> "" ;
276+ };
277+
278+ if (template .isEmpty ()) {
279+ return "" ;
280+ }
281+
238282 return MessageUtils .formatPunishmentMessage (template , punishment );
239283 }
240284}
0 commit comments