Tweaked mails, added notifs, added config options

This commit is contained in:
2022-02-19 16:58:22 +01:00
committed by destro174
parent ce0cad2586
commit 630cd6c133
3 changed files with 29 additions and 3 deletions
@@ -22,6 +22,7 @@ import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import org.jetbrains.annotations.Nullable;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class ChatHandler {
@@ -215,7 +216,9 @@ public class ChatHandler {
chatUser.addMail(mail);
// TODO load from config
String finalSenderName = senderName;
optionalPlayer.ifPresent(player -> player.sendMessage(Utility.parseMiniMessage("<yellow>New mail from " + finalSenderName)));
optionalPlayer.ifPresent(player -> player.sendMessage(Utility.parseMiniMessage(Config.mailReceived, List.of(
Template.template("sender", finalSenderName))
)));
}
public void readMail(CommandSource commandSource, String targetPlayer) {
@@ -243,11 +246,13 @@ public class ChatHandler {
Queries.markMailRead(mail);
}
ChatUser chatUser = ChatUserManager.getChatUser(mail.getSender());
Date sentTime = new Date(mail.getSendTime());
List<Template> templates = new ArrayList<>(List.of(
Template.template("staffprefix", chatUser.getStaffPrefix()),
Template.template("sender", chatUser.getDisplayName()),
Template.template("message", mail.getMessage()),
Template.template("date", new Date(mail.getSendTime()).toString())
Template.template("date", sentTime.toString()),
Template.template("time_ago", String.valueOf(TimeUnit.MILLISECONDS.toDays(new Date().getTime() - sentTime.getTime())))
));
Component mailMessage = Utility.parseMiniMessage(Config.mailBody, templates);
component = component.append(Component.newline()).append(mailMessage);
@@ -2,6 +2,7 @@ package com.alttd.velocitychat.listeners;
import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.objects.Mail;
import com.alttd.chat.util.Utility;
import com.alttd.velocitychat.VelocityChat;
import com.alttd.chat.config.Config;
@@ -14,6 +15,7 @@ import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.LoginEvent;
import com.velocitypowered.api.event.player.ServerConnectedEvent;
import com.velocitypowered.api.event.player.ServerPostConnectEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import net.kyori.adventure.text.minimessage.Template;
@@ -44,6 +46,20 @@ public class ProxyPlayerListener {
ServerHandler.addPlayerUUID(player.getUsername(), uuid);
}
@Subscribe(order = PostOrder.LAST)
public void afterPlayerLogin(ServerPostConnectEvent event) {
if (event.getPreviousServer() != null)
return;
Player player = event.getPlayer();
ChatUser chatUser = ChatUserManager.getChatUser(player.getUniqueId());
List<Mail> unReadMail = chatUser.getUnReadMail();
if (unReadMail.isEmpty())
return;
player.sendMessage(Utility.parseMiniMessage(Config.mailUnread, List.of(
Template.template("amount", String.valueOf(unReadMail.size()))
)));
}
@Subscribe
public void quitEvent(DisconnectEvent event) {
UUID uuid = event.getPlayer().getUniqueId();