Improve StreamingCommand

This commit is contained in:
2025-09-29 08:17:49 +02:00
parent 524ce0c579
commit 5fe62d67d9
6 changed files with 17 additions and 17 deletions
@@ -25,10 +25,7 @@ import com.velocitypowered.proxy.protocol.packet.UpsertPlayerInfoPacket;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@UtilityClass @UtilityClass
public class Storage { public class Storage {
@@ -49,4 +46,6 @@ public class Storage {
public static final Map<Integer, ServerInfo> teamServers = new HashMap<>(); // TeamID -> ServerInfo map public static final Map<Integer, ServerInfo> teamServers = new HashMap<>(); // TeamID -> ServerInfo map
public static final Map<Player, Map<UUID, UpsertPlayerInfoPacket.Entry>> directTabItems = new HashMap<>(); public static final Map<Player, Map<UUID, UpsertPlayerInfoPacket.Entry>> directTabItems = new HashMap<>();
public static final Set<Integer> streamingPlayers = new HashSet<>(); // SteamwarUser ID
} }
@@ -589,6 +589,7 @@ CHECK_CHECKING=§cYou are checking a Schematic!
JOIN_ARENA=§7Click §ehere§7 to join §e{0} JOIN_ARENA=§7Click §ehere§7 to join §e{0}
JOIN_ARENA_HOVER=§eJoin Arena JOIN_ARENA_HOVER=§eJoin Arena
JOIN_FIRST=§7Please greet §e{0}§7 on the server§8! JOIN_FIRST=§7Please greet §e{0}§7 on the server§8!
JOIN_STREAMING=§5Streaming Mode§7 is still active§8.§7 Keep in mind that you will not receive TeamChat nor ServerTeamChat messages§8.
#EventModeListener #EventModeListener
EVENTMODE_KICK=§cYou are not an event participant. EVENTMODE_KICK=§cYou are not an event participant.
@@ -563,6 +563,7 @@ CHECK_CHECKING=§cDu prüfst gerade eine Schematic!
JOIN_ARENA=§7Klicke §ehier§7, um §e{0} §7beizutreten JOIN_ARENA=§7Klicke §ehier§7, um §e{0} §7beizutreten
JOIN_ARENA_HOVER=§eArena beitreten JOIN_ARENA_HOVER=§eArena beitreten
JOIN_FIRST=§7Begrüßt alle mal §e{0} §7auf dem Server§8! JOIN_FIRST=§7Begrüßt alle mal §e{0} §7auf dem Server§8!
JOIN_STREAMING=§5Streaming-Modus§7 ist weiterhin aktiv§8.§7 Beachten Sie, dass Sie keine TeamChat- oder ServerTeamChat-Nachrichten erhalten§8.
#EventModeListener #EventModeListener
EVENTMODE_KICK=§cDu bist kein Eventteilnehmer. EVENTMODE_KICK=§cDu bist kein Eventteilnehmer.
@@ -21,22 +21,18 @@ package de.steamwar.velocitycore.commands;
import de.steamwar.command.SWCommand; import de.steamwar.command.SWCommand;
import de.steamwar.messages.Chatter; import de.steamwar.messages.Chatter;
import de.steamwar.persistent.Storage;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserPerm; import de.steamwar.sql.UserPerm;
import java.util.HashSet;
import java.util.Set;
public class StreamingCommand extends SWCommand { public class StreamingCommand extends SWCommand {
private static final Set<Integer> streaming = new HashSet<>();
public static boolean isNotStreaming(Chatter sender) { public static boolean isNotStreaming(Chatter sender) {
return isNotStreaming(sender.user()); return isNotStreaming(sender.user());
} }
public static boolean isNotStreaming(SteamwarUser user) { public static boolean isNotStreaming(SteamwarUser user) {
return !streaming.contains(user.getId()); return !Storage.streamingPlayers.contains(user.getId());
} }
public StreamingCommand() { public StreamingCommand() {
@@ -46,11 +42,11 @@ public class StreamingCommand extends SWCommand {
@Register @Register
public void toggleStreamingMode(Chatter sender) { public void toggleStreamingMode(Chatter sender) {
int userId = sender.user().getId(); int userId = sender.user().getId();
if (streaming.contains(userId)) { if (Storage.streamingPlayers.contains(userId)) {
streaming.remove(userId); Storage.streamingPlayers.remove(userId);
sender.system("STREAMING_DISABLE"); sender.system("STREAMING_DISABLE");
} else { } else {
streaming.add(userId); Storage.streamingPlayers.add(userId);
sender.system("STREAMING_ENABLE"); sender.system("STREAMING_ENABLE");
} }
} }
@@ -316,9 +316,10 @@ public class TeamCommand extends SWCommand {
StringBuilder st = new StringBuilder(); StringBuilder st = new StringBuilder();
if (VelocityCore.getProxy().getPlayer(user.getUUID()).isPresent()) { if (VelocityCore.getProxy().getPlayer(user.getUUID()).isPresent()) {
if (!StreamingCommand.isNotStreaming(user)) { if (!StreamingCommand.isNotStreaming(user)) {
st.append("§5"); st.append("§5");
} else {
st.append("§a");
} }
st.append("§a");
} else { } else {
st.append("§e"); st.append("§e");
} }
@@ -34,7 +34,6 @@ import de.steamwar.sql.CheckedSchematic;
import de.steamwar.sql.SchematicType; import de.steamwar.sql.SchematicType;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserPerm; import de.steamwar.sql.UserPerm;
import de.steamwar.velocitycore.EventStarter;
import de.steamwar.velocitycore.commands.*; import de.steamwar.velocitycore.commands.*;
import de.steamwar.velocitycore.discord.DiscordBot; import de.steamwar.velocitycore.discord.DiscordBot;
import de.steamwar.velocitycore.discord.util.DiscordRanks; import de.steamwar.velocitycore.discord.util.DiscordRanks;
@@ -45,7 +44,6 @@ import net.kyori.adventure.text.event.ClickEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.function.BiConsumer;
public class ConnectionListener extends BasicListener { public class ConnectionListener extends BasicListener {
@@ -105,6 +103,10 @@ public class ConnectionListener extends BasicListener {
newPlayers.remove(player.getUniqueId()); newPlayers.remove(player.getUniqueId());
} }
if (!StreamingCommand.isNotStreaming(user)) {
chatter.system("JOIN_STREAMING");
}
DiscordBot.withBot(bot -> DiscordRanks.update(user)); DiscordBot.withBot(bot -> DiscordRanks.update(user));
if (player.getProtocolVersion().noLessThan(ProtocolVersion.MINECRAFT_1_20_5)) { if (player.getProtocolVersion().noLessThan(ProtocolVersion.MINECRAFT_1_20_5)) {