From 1946cd4ab7ef48ac161029b1f0ebf07cbd3d8b59 Mon Sep 17 00:00:00 2001 From: Stijn Date: Mon, 23 May 2022 21:55:36 +0200 Subject: [PATCH] Added online indicators for party info --- api/src/main/java/com/alttd/chat/config/Config.java | 6 ++++++ .../velocitychat/commands/partysubcommands/Info.java | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) 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 e94ac15..5140cd9 100755 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -5,6 +5,7 @@ import com.google.common.base.Throwables; import com.google.common.collect.Lists; import io.leangen.geantyref.TypeToken; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.yaml.NodeStyle; @@ -290,7 +291,10 @@ public final class Config { Password: Owner: Members: """; + public static Component ONLINE_PREFIX = null; + public static Component OFFLINE_PREFIX = null; private static void party() { + MiniMessage miniMessage = MiniMessage.miniMessage(); PARTY_FORMAT = getString("party.format", PARTY_FORMAT); PARTY_SPY = getString("party.spy", PARTY_SPY); NO_PERMISSION = getString("party.messages.no-permission", NO_PERMISSION); @@ -321,6 +325,8 @@ public final class Config { DISBANDED_PARTY = getString("party.messages.disbanded-party", DISBANDED_PARTY); PARTY_INFO = getString("party.messages.party-info", PARTY_INFO); ALREADY_IN_THIS_PARTY = getString("party.messages.already-in-this-party", ALREADY_IN_THIS_PARTY); + ONLINE_PREFIX = miniMessage.deserialize(getString("party.messages.online-prefix", "")); + OFFLINE_PREFIX = miniMessage.deserialize(getString("party.messages.offline-prefix", "")); } public static String PARTY_HELP_WRAPPER = "ChatParty help:\n"; diff --git a/velocity/src/main/java/com/alttd/velocitychat/commands/partysubcommands/Info.java b/velocity/src/main/java/com/alttd/velocitychat/commands/partysubcommands/Info.java index 272ec15..b22f1bd 100644 --- a/velocity/src/main/java/com/alttd/velocitychat/commands/partysubcommands/Info.java +++ b/velocity/src/main/java/com/alttd/velocitychat/commands/partysubcommands/Info.java @@ -5,16 +5,20 @@ import com.alttd.chat.managers.PartyManager; import com.alttd.chat.objects.Party; import com.alttd.chat.objects.PartyUser; import com.alttd.chat.util.Utility; +import com.alttd.velocitychat.VelocityChat; import com.alttd.velocitychat.commands.SubCommand; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import java.util.ArrayList; import java.util.List; +import java.util.Optional; public class Info implements SubCommand { + @Override public String getName() { return "info"; @@ -34,7 +38,11 @@ public class Info implements SubCommand { List displayNames = new ArrayList<>(); for (PartyUser partyUser : party.getPartyUsers()) { - displayNames.add(partyUser.getDisplayName()); + Optional optionalPlayer = VelocityChat.getPlugin().getProxy().getPlayer(partyUser.getUuid()); + if (optionalPlayer.isPresent() && optionalPlayer.get().isActive()) + displayNames.add(Config.ONLINE_PREFIX.append(partyUser.getDisplayName())); + else + displayNames.add(Config.OFFLINE_PREFIX.append(partyUser.getDisplayName())); } source.sendMessage(Utility.parseMiniMessage(Config.PARTY_INFO,