diff --git a/common/src/main/java/org/geysermc/floodgate/crypto/AesCipher.java b/common/src/main/java/org/geysermc/floodgate/crypto/AesCipher.java index 2627584f6..f602f4be0 100644 --- a/common/src/main/java/org/geysermc/floodgate/crypto/AesCipher.java +++ b/common/src/main/java/org/geysermc/floodgate/crypto/AesCipher.java @@ -31,6 +31,7 @@ import lombok.RequiredArgsConstructor; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.GCMParameterSpec; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.security.Key; import java.security.SecureRandom; @@ -99,13 +100,15 @@ public final class AesCipher implements FloodgateCipher { } ivLength = buffer.position() - mark - 1; // don't include the splitter itself - buffer.position(mark); // reset to the pre-while index + // don't remove this cast, it'll cause problems if you remove it + ((Buffer) buffer).position(mark); // reset to the pre-while index } byte[] iv = new byte[ivLength]; buffer.get(iv); - buffer.position(buffer.position() + 1); // skip splitter + // don't remove this cast, it'll cause problems if you remove it + ((Buffer) buffer).position(buffer.position() + 1); // skip splitter byte[] cipherText = new byte[buffer.remaining()]; buffer.get(cipherText);