diff --git a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java index f16858f..cc4501a 100755 --- a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java +++ b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java @@ -45,6 +45,7 @@ public class ChatPlugin extends JavaPlugin { } registerCommand("message", new Message()); registerCommand("reply", new Reply()); + registerCommand("continue", new Continue()); registerCommand("ignore", new Ignore()); registerCommand("unignore", new Unignore()); registerCommand("muteserver", new MuteServer()); diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java b/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java index 9ed6729..73a5d0d 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java @@ -62,6 +62,7 @@ public class PluginMessage implements PluginMessageListener { if (p != null) { ChatUser chatUser = ChatUserManager.getChatUser(uuid); if (!chatUser.getIgnoredPlayers().contains(targetuuid)) { + chatUser.setReplyTarget(target); p.sendMessage(GsonComponentSerializer.gson().deserialize(message)); // ChatUser user = ChatUserManager.getChatUser(uuid); // user.setReplyTarget(target); diff --git a/velocity/src/main/java/com/alttd/velocitychat/commands/SilentJoinCommand.java b/velocity/src/main/java/com/alttd/velocitychat/commands/SilentJoinCommand.java index 6dbdeb5..e48fdec 100755 --- a/velocity/src/main/java/com/alttd/velocitychat/commands/SilentJoinCommand.java +++ b/velocity/src/main/java/com/alttd/velocitychat/commands/SilentJoinCommand.java @@ -68,7 +68,7 @@ public class SilentJoinCommand { player.sendMessage(Utility.parseMiniMessage(Config.SILENT_JOIN_JOINING, Placeholder.unparsed("server", registeredServer.getServerInfo().getName()))); ProxyPlayerListener.addSilentJoin(player.getUniqueId()); - player.createConnectionRequest(registeredServer); + player.createConnectionRequest(registeredServer).connectWithIndication(); return 1; }) ) diff --git a/velocity/src/main/java/com/alttd/velocitychat/handlers/ChatHandler.java b/velocity/src/main/java/com/alttd/velocitychat/handlers/ChatHandler.java index d4d4a05..637ae92 100755 --- a/velocity/src/main/java/com/alttd/velocitychat/handlers/ChatHandler.java +++ b/velocity/src/main/java/com/alttd/velocitychat/handlers/ChatHandler.java @@ -14,7 +14,6 @@ import com.alttd.chat.util.Utility; import com.alttd.velocitychat.VelocityChat; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import com.mysql.cj.MessageBuilder; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ServerConnection; @@ -25,6 +24,7 @@ import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import org.jetbrains.annotations.Nullable; +import java.time.Duration; import java.util.*; public class ChatHandler { @@ -204,7 +204,7 @@ public class ChatHandler { } else { targetUUID = optionalPlayer.get().getUniqueId(); } - Mail mail = new Mail(uuid, targetUUID, message); + Mail mail = new Mail(targetUUID, uuid, message); ChatUser chatUser = ChatUserManager.getChatUser(targetUUID); chatUser.addMail(mail); // TODO load from config @@ -236,12 +236,14 @@ public class ChatHandler { mail.setReadTime(System.currentTimeMillis()); Queries.markMailRead(mail); } + Date date = new Date(mail.getSendTime()); ChatUser chatUser = ChatUserManager.getChatUser(mail.getSender()); TagResolver Placeholders = TagResolver.resolver( Placeholder.component("staffprefix", chatUser.getStaffPrefix()), Placeholder.component("sender", chatUser.getDisplayName()), Placeholder.component("message", Utility.parseMiniMessage(mail.getMessage())), - Placeholder.unparsed("date", new Date(mail.getSendTime()).toString()) + Placeholder.unparsed("date", date.toString()), + Placeholder.unparsed("time_ago", getTimeAgo(Duration.between(date.toInstant(), new Date().toInstant()))) ); Component mailMessage = Utility.parseMiniMessage(Config.mailBody, Placeholders); component = component.append(Component.newline()).append(mailMessage); @@ -270,4 +272,14 @@ public class ChatHandler { buf.writeUTF(uuid); buf.writeBoolean(muted); } + + private String getTimeAgo(Duration duration) { + StringBuilder stringBuilder = new StringBuilder(); + if (duration.toDays() != 0) + stringBuilder.append(duration.toDays()).append("d "); + if (duration.toHoursPart() != 0 || !stringBuilder.isEmpty()) + stringBuilder.append(duration.toHoursPart()).append("h "); + stringBuilder.append(duration.toMinutesPart()).append("m ago"); + return stringBuilder.toString(); + } } \ No newline at end of file