From 930c5e0a80f0ade995189779d05b1e3a8b6bd1de Mon Sep 17 00:00:00 2001 From: Joakim <21Joakim@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:25:16 +0100 Subject: [PATCH] fixed using the wrong protocol version --- .../java/club/minnced/discord/jdave/DaveSessionImpl.java | 9 ++++++++- .../discord/jdave/manager/DaveSessionManager.java | 7 ++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/club/minnced/discord/jdave/DaveSessionImpl.java b/api/src/main/java/club/minnced/discord/jdave/DaveSessionImpl.java index 5c89ce6..f0ae431 100644 --- a/api/src/main/java/club/minnced/discord/jdave/DaveSessionImpl.java +++ b/api/src/main/java/club/minnced/discord/jdave/DaveSessionImpl.java @@ -24,7 +24,14 @@ public static DaveSessionImpl create(@Nullable String authSessionId) { MemorySegment authSessionIdSegment = authSessionId != null ? local.allocateFrom(authSessionId) : MemorySegment.NULL; MemorySegment session = LibDaveSessionBinding.createSession(MemorySegment.NULL, authSessionIdSegment); - return new DaveSessionImpl(session); + + DaveSessionImpl result = new DaveSessionImpl(session); + // this part of memory is not initialized by libdave + // until we call #initialize or #reset meaning it just + // has a random value of whatever was there before making + // it very confusing to debug + result.setProtocolVersion((short) -1); + return result; } } diff --git a/api/src/main/java/club/minnced/discord/jdave/manager/DaveSessionManager.java b/api/src/main/java/club/minnced/discord/jdave/manager/DaveSessionManager.java index 9b08f78..a0ba043 100644 --- a/api/src/main/java/club/minnced/discord/jdave/manager/DaveSessionManager.java +++ b/api/src/main/java/club/minnced/discord/jdave/manager/DaveSessionManager.java @@ -229,7 +229,7 @@ public synchronized void onMLSPrepareCommitTransition(int transitionId, @NonNull prepareProtocolTransition(transitionId, session.getProtocolVersion()); } else { sendInvalidCommitWelcome(transitionId); - handleDaveProtocolInit(transitionId); + handleDaveProtocolInit(session.getProtocolVersion()); } } } @@ -247,7 +247,7 @@ public synchronized void onMLSWelcome(int transitionId, @NonNull ByteBuffer welc prepareProtocolTransition(transitionId, session.getProtocolVersion()); } else { sendInvalidCommitWelcome(transitionId); - handleDaveProtocolInit(transitionId); + handleDaveProtocolInit(session.getProtocolVersion()); } } @@ -292,9 +292,10 @@ private void prepareProtocolTransition(int transitionId, int protocolVersion) { encryptor.processTransition(protocolVersion); } else { preparedTransitions.put(transitionId, protocolVersion); - currentProtocolVersion = protocolVersion; callbacks.sendDaveProtocolReadyForTransition(transitionId); } + + currentProtocolVersion = protocolVersion; } private void executeProtocolTransition(int transitionId) {