From f5c0a0676cea22773d7587117bbcf0226ac7d901 Mon Sep 17 00:00:00 2001
From: Len <40720638+destro174@users.noreply.github.com>
Date: Fri, 7 Feb 2025 20:44:59 +0100
Subject: [PATCH] Delay unread mail message and also send it as a title message
---
.../main/java/com/alttd/chat/config/Config.java | 2 ++
.../listeners/ProxyPlayerListener.java | 16 +++++++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java
index 0e7e8cb..380dd28 100755
--- a/api/src/main/java/com/alttd/chat/config/Config.java
+++ b/api/src/main/java/com/alttd/chat/config/Config.java
@@ -424,6 +424,7 @@ public final class Config {
public static String mailUnread = "You have unread mail, click to view it.";
public static String mailSent = "Successfully send mail to : <#2e8b57>#2e8b57>";
public static List mailCommandAlias = new ArrayList<>();
+ public static int mailDisplayDelay = 5;
private static void mailSettings() {
mailHeader = getString("settings.mail.header", mailHeader);
mailBody = getString("settings.mail.message", mailBody);
@@ -432,6 +433,7 @@ public final class Config {
mailReceived = getString("settings.mail.mail-received", mailReceived);
mailUnread = getString("settings.mail.mail-unread", mailUnread);
mailSent = getString("settings.mail.mail-sent", mailSent);
+ mailDisplayDelay = getInt("settings.mail.delay", mailDisplayDelay);
}
public static HashMap serverChannelId = new HashMap<>();
diff --git a/velocity/src/main/java/com/alttd/velocitychat/listeners/ProxyPlayerListener.java b/velocity/src/main/java/com/alttd/velocitychat/listeners/ProxyPlayerListener.java
index f8c2f83..b269b05 100755
--- a/velocity/src/main/java/com/alttd/velocitychat/listeners/ProxyPlayerListener.java
+++ b/velocity/src/main/java/com/alttd/velocitychat/listeners/ProxyPlayerListener.java
@@ -23,8 +23,10 @@ import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
+import net.kyori.adventure.title.Title;
import java.util.*;
+import java.util.concurrent.TimeUnit;
public class ProxyPlayerListener {
@@ -68,9 +70,17 @@ public class ProxyPlayerListener {
List unReadMail = chatUser.getUnReadMail();
if (unReadMail.isEmpty())
return;
- player.sendMessage(Utility.parseMiniMessage(Config.mailUnread,
- Placeholder.unparsed("amount", String.valueOf(unReadMail.size()))
- ));
+ VelocityChat plugin = VelocityChat.getPlugin();
+ plugin.getProxy().getScheduler().buildTask(plugin, () -> {
+ if (!player.isActive())
+ return;
+
+ Component message = Utility.parseMiniMessage(Config.mailUnread,
+ Placeholder.unparsed("amount", String.valueOf(unReadMail.size())));
+ player.sendMessage(message);
+ player.showTitle(Title.title(message, Component.empty()));
+ }).delay(Config.mailDisplayDelay * 50L, TimeUnit.MILLISECONDS).schedule();
+
}
@Subscribe