From 966f3fe9b10466ac24064702b623aa1d81b3ec48 Mon Sep 17 00:00:00 2001 From: ericek111 Date: Thu, 20 Aug 2026 06:57:23 +0000 Subject: [PATCH] Log our own channel switches in the server tab Every other client's move was logged; ours went by silently. Co-Authored-By: Claude Opus 5 --- .../ts3client/net/ConnectionEventHandler.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ts3-client/core/src/main/java/com/ts3client/net/ConnectionEventHandler.java b/ts3-client/core/src/main/java/com/ts3client/net/ConnectionEventHandler.java index 3cda48e..b3e153a 100644 --- a/ts3-client/core/src/main/java/com/ts3client/net/ConnectionEventHandler.java +++ b/ts3-client/core/src/main/java/com/ts3client/net/ConnectionEventHandler.java @@ -76,6 +76,7 @@ final class ConnectionEventHandler implements TS3Listener { c.channelId = e.getTargetChannelId(); if (e.getClientId() == conn.getSelfClientId()) { announceOwnMove(safeInt(e, "reasonid"), e); + logOwnMove(e, from, e.getTargetChannelId()); } else { announceClientMoved(safeInt(e, "reasonid"), e.getClientId(), from, e.getTargetChannelId()); logClientMoved(e, conn.clientLink(c.id), from, e.getTargetChannelId()); @@ -153,6 +154,25 @@ final class ConnectionEventHandler implements TS3Listener { } } + /** Our own move between channels, logged the way TS3 does for everyone else. */ + private void logOwnMove(ClientMovedEvent e, int fromChannel, int toChannel) { + String reasonMsg = TeamspeakConnection.orEmpty(e.get("reasonmsg")); + String suffix = reasonMsg.isEmpty() ? "" : " (" + reasonMsg + ")"; + switch (safeInt(e, "reasonid")) { + case REASON_MOVED: + conn.log("You were moved from channel \"" + conn.channelLink(fromChannel) + "\" to \"" + + conn.channelLink(toChannel) + "\" by " + invokerName(e)); + break; + case REASON_CHANNEL_KICK: + conn.log("You were kicked from channel \"" + conn.channelLink(fromChannel) + "\" to \"" + + conn.channelLink(toChannel) + "\" by " + invokerName(e) + suffix); + break; + default: + conn.log("You switched from channel \"" + conn.channelLink(fromChannel) + "\" to \"" + + conn.channelLink(toChannel) + "\""); + } + } + /** * A client became visible: either they just connected, or they moved in from a * channel we could not see — TeamSpeak's "appears" case.