From 1d0023ad0dc79c0d06da63540dd2e0fefd598d0f Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 21:29:19 -0600 Subject: [PATCH 01/10] Fix read() to return -1 at end of stream --- .../java/in/dragonbra/javasteam/util/stream/MemoryStream.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/in/dragonbra/javasteam/util/stream/MemoryStream.java b/src/main/java/in/dragonbra/javasteam/util/stream/MemoryStream.java index 52cda7f8..abb3ee4c 100644 --- a/src/main/java/in/dragonbra/javasteam/util/stream/MemoryStream.java +++ b/src/main/java/in/dragonbra/javasteam/util/stream/MemoryStream.java @@ -173,8 +173,10 @@ public synchronized int read() { @Override public synchronized int read(byte[] b, int off, int len) { - if (position >= length || len == 0) + if (len == 0) return 0; + if (position >= length) + return -1; if (position > length - len) len = length - position; From 8009ef14c69b426c015507b2333bfcf7aa264129 Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 21:32:36 -0600 Subject: [PATCH 02/10] Update enums --- .../in/dragonbra/javasteam/enums.steamd | 98 +++++++++++++++---- 1 file changed, 80 insertions(+), 18 deletions(-) diff --git a/src/main/steamd/in/dragonbra/javasteam/enums.steamd b/src/main/steamd/in/dragonbra/javasteam/enums.steamd index 7c2b2ed2..2a02fb74 100644 --- a/src/main/steamd/in/dragonbra/javasteam/enums.steamd +++ b/src/main/steamd/in/dragonbra/javasteam/enums.steamd @@ -89,7 +89,8 @@ enum EAccountFlags flags LimitedUser = 4096; LimitedUserForce = 8192; EmailValidated = 16384; - MarketingTreatment = 32768; + ValveEmail = 32768; + MarketingTreatment = 32768; removed OGGInviteOptOut = 65536; ForcePasswordChange = 131072; ForceEmailVerification = 262144; @@ -705,6 +706,13 @@ enum EPlatformType OSX = 4; PS3 = 5; Linux32 = 6; + Android32 = 7; + Android64 = 8; + IOS32 = 9; + IOS64 = 10; + TVOS = 11; + EmbeddedClient = 12; + Browser = 13; }; enum EOSType @@ -930,7 +938,7 @@ enum EServerType Steam2Emulator = 79; PublicTest = 80; SolrMgr = 81; - BroadcastIngestor = 82; + BroadcastIngester = 82; BroadcastDirectory = 83; VideoManager = 84; TradeOffer = 85; @@ -1178,7 +1186,7 @@ enum EEconTradeResponse CyberCafeInitiator = 14; CyberCafeTarget = 15; SchoolLabInitiator = 16; - SchoolLabTarget = 16; + SchoolLabTarget = 17; InitiatorBlockedTarget = 18; InitiatorNeedsVerifiedEmail = 20; InitiatorNeedsSteamGuard = 21; @@ -1417,7 +1425,7 @@ enum EDisplayStatus PresaleOnly = 13; InvalidPlatform = 14; ParentalBlocked = 15; - PreloadOnly = 16; + PreloadComplete = 16; BorrowerLocked = 17; UpdatePaused = 18; UpdateQueued = 19; @@ -1438,6 +1446,9 @@ enum EDisplayStatus CloudError = 34; CloudOutOfDate = 35; Terminating = 36; + OwnerLocked = 37; + DownloadFailed = 38; + UpdateFailed = 39; }; enum EAppType flags @@ -1562,10 +1573,11 @@ enum EVoiceCallState LocalMicOnly = 3; CreatePeerConnection = 4; InitatedWebRTCSession = 5; - WebRTCConnectedWaitingOnIceConnected = 6; - RequestedPermission = 7; - NotifyingVoiceChatOfWebRTCSession = 8; - Connected = 9; + UpdatingWebRTCSession = 6; + WebRTCConnectedWaitingOnIceConnected = 7; + RequestedPermission = 8; + NotifyingVoiceChatOfWebRTCSession = 9; + Connected = 10; }; enum ETradeOfferState @@ -1581,6 +1593,7 @@ enum ETradeOfferState CreatedNeedsConfirmation = 9; CanceledBySecondFactor = 10; InEscrow = 11; + Reverted = 12; }; enum ETradeOfferConfirmationMethod @@ -1668,9 +1681,10 @@ public enum EUIMode Tenfoot = 1; Mobile = 2; Web = 3; - ClientUI = 4; + GamePadUI = 4; MobileChat = 5; EmbeddedClient = 6; + DesktopUI = 7; } public enum EGamingDeviceType @@ -1678,14 +1692,62 @@ public enum EGamingDeviceType Unknown = 0; StandardPC = 1; - Console = 256; - PS3 = 272; // Console + 16 - Steambox = 288; // Console + 32 - Tesla = 320; // Console + 64 + ConsoleLegacy = 256; + PS3 = 273; // ConsoleLegacy + 17 + Steambox = 288; // ConsoleLegacy + 32 + Tesla = 320; // ConsoleLegacy + 64 + + Handheld_Legacy = 512; + Phone = 528; // Handheld_Legacy + 16 + Console = 540; // Handheld_Legacy + 28 + SteamOSGeneric = 541; // Console + 1 + SteamDeck = 544; // Console + 4 + LegionGoS = 545; // Console + 5 + Fremont = 546; // Console + 6 + + VR = 768; + SteamFrame = 769; // VR + 1 +} + +public enum EMobileConfirmationAction +{ + None = 0; + Allow = 1; + Cancel = 2; +} + +public enum EMobileConfirmationType +{ + Invalid = 0; + Test = 1; + Trade = 2; + MarketListing = 3; + FeatureOptOut = 4; + PhoneNumberChange = 5; + AccountRecovery = 6; + BuildChangeRequest = 7; + AddUser = 8; + RegisterApiKey = 9; + InviteToFamilyGroup = 10; + JoinFamilyGroup = 11; + MarketPurchase = 12; + RequestRefund = 13; +} + +public enum ECommentPermission +{ + Invalid = -1; + + FriendsOnly = 0; + Anyone = 1; + SelfOnly = 2; +} + +public enum ECommunityPrivacy +{ + Invalid = 0; - Handheld = 512; - Phone = 528; // Handheld + 16 - SteamOS = 541; // Handheld + 29 - SteamDeck = 544; // Handheld + 32 - LegionGoS = 545; // Handheld + 33 + Private = 1; + FriendsOnly = 2; + Public = 3; } From 2e4d3520b6320938366a65959bd6b78a2e968a0b Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 22:00:43 -0600 Subject: [PATCH 03/10] Update deps --- build.gradle.kts | 2 +- gradle/libs.versions.toml | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b11ed834..c6b44b87 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -115,7 +115,7 @@ tasks.jar { } /* Dependencies */ -tasks["lintKotlinMain"].dependsOn("formatKotlin") +tasks.matching { it.name == "lintKotlin" }.configureEach { dependsOn("formatKotlin") } tasks["check"].dependsOn("jacocoTestReport") tasks["compileJava"].dependsOn("generateSteamLanguage", "generateProjectVersion", "generateRpcMethods") tasks["compileKotlin"].dependsOn("generateSteamLanguage", "generateProjectVersion", "generateRpcMethods") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d42f0aef..56bec5ba 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,32 +5,32 @@ [versions] java = "11" -kotlin = "2.2.0" # https://kotlinlang.org/docs/releases.html#release-details -dokka = "2.0.0" # https://mvnrepository.com/artifact/org.jetbrains.dokka/dokka-gradle-plugin -kotlinter = "5.1.1" # https://plugins.gradle.org/plugin/org.jmailen.kotlinter -jacoco = "0.8.13" # https://www.eclemma.org/jacoco +kotlin = "2.2.21" # https://kotlinlang.org/docs/releases.html#release-details +dokka = "2.1.0" # https://mvnrepository.com/artifact/org.jetbrains.dokka/dokka-gradle-plugin +kotlinter = "5.3.0" # https://plugins.gradle.org/plugin/org.jmailen.kotlinter +jacoco = "0.8.14" # https://www.eclemma.org/jacoco # Standard Library versions -commons-lang3 = "3.18.0" # https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 +commons-lang3 = "3.20.0" # https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 kotlin-coroutines = "1.10.2" # https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core -ktor = "3.2.2" # https://mvnrepository.com/artifact/io.ktor/ktor-client-cio -okHttp = "5.1.0" # https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp +ktor = "3.3.3" # https://mvnrepository.com/artifact/io.ktor/ktor-client-cio +okHttp = "5.3.2" # https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp protobuf = "4.31.1" # https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java protobuf-gradle = "0.9.5" # https://mvnrepository.com/artifact/com.google.protobuf/protobuf-gradle-plugin publishPlugin = "2.0.0" # https://mvnrepository.com/artifact/io.github.gradle-nexus/publish-plugin -xz = "1.10" # https://mvnrepository.com/artifact/org.tukaani/xz -zstd = "1.5.7-4" # https://search.maven.org/artifact/com.github.luben/zstd-jni +xz = "1.11" # https://mvnrepository.com/artifact/org.tukaani/xz +zstd = "1.5.7-6" # https://search.maven.org/artifact/com.github.luben/zstd-jni # Testing Lib versions -commons-io = "2.20.0" # https://mvnrepository.com/artifact/commons-io/commons-io -commonsCodec = "1.19.0" # https://mvnrepository.com/artifact/commons-codec/commons-codec +commons-io = "2.21.0" # https://mvnrepository.com/artifact/commons-io/commons-io +commonsCodec = "1.20.0" # https://mvnrepository.com/artifact/commons-codec/commons-codec junit5 = "5.13.4" # https://mvnrepository.com/artifact/org.junit/junit-bom mockWebServer = "5.1.0" # https://mvnrepository.com/artifact/com.squareup.okhttp3/mockwebserver3-junit5 mockitoVersion = "5.18.0" # https://mvnrepository.com/artifact/org.mockito/mockito-core # Samples -bouncyCastle = "1.81" # https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on -gson = "2.13.1" # https://mvnrepository.com/artifact/com.google.code.gson/gson +bouncyCastle = "1.83" # https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on +gson = "2.13.2" # https://mvnrepository.com/artifact/com.google.code.gson/gson qrCode = "1.0.1" # https://mvnrepository.com/artifact/pro.leaco.qrcode/console-qrcode [libraries] From 0cea8d600906e12e7cd9d45bf78cd5af21bc275f Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 22:01:11 -0600 Subject: [PATCH 04/10] Update deps --- gradle/libs.versions.toml | 2 +- .../javasteam/networking/steam3/WebSocketConnection.kt | 9 +++++++-- .../javasteam/steam/authentication/AuthSession.kt | 5 ++++- .../in/dragonbra/javasteam/steam/cdn/ClientLancache.kt | 2 ++ .../steamfriends/callback/ChatMemberInfoCallback.kt | 1 + src/main/java/in/dragonbra/javasteam/types/KeyValue.kt | 4 ++++ src/main/java/in/dragonbra/javasteam/types/SteamID.kt | 1 + 7 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 56bec5ba..a878e273 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ [versions] java = "11" kotlin = "2.2.21" # https://kotlinlang.org/docs/releases.html#release-details -dokka = "2.1.0" # https://mvnrepository.com/artifact/org.jetbrains.dokka/dokka-gradle-plugin +dokka = "2.0.0" # https://mvnrepository.com/artifact/org.jetbrains.dokka/dokka-gradle-plugin kotlinter = "5.3.0" # https://plugins.gradle.org/plugin/org.jmailen.kotlinter jacoco = "0.8.14" # https://www.eclemma.org/jacoco diff --git a/src/main/java/in/dragonbra/javasteam/networking/steam3/WebSocketConnection.kt b/src/main/java/in/dragonbra/javasteam/networking/steam3/WebSocketConnection.kt index b0a4212d..fe8b3d2d 100644 --- a/src/main/java/in/dragonbra/javasteam/networking/steam3/WebSocketConnection.kt +++ b/src/main/java/in/dragonbra/javasteam/networking/steam3/WebSocketConnection.kt @@ -86,8 +86,13 @@ class WebSocketConnection : } is Frame.Close -> disconnect(false) - is Frame.Ping -> logger.debug("Received pong") // Never Used. - is Frame.Pong -> logger.debug("Received pong") // Never Used. + + is Frame.Ping -> logger.debug("Received pong") + + // Never Used. + is Frame.Pong -> logger.debug("Received pong") + + // Never Used. is Frame.Text -> logger.debug("Received plain text ${frame.readText()}") } } diff --git a/src/main/java/in/dragonbra/javasteam/steam/authentication/AuthSession.kt b/src/main/java/in/dragonbra/javasteam/steam/authentication/AuthSession.kt index 0bf1b8c7..5f3cce65 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/authentication/AuthSession.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/authentication/AuthSession.kt @@ -82,7 +82,9 @@ open class AuthSession( var pollLoop = false when (preferredConfirmation.confirmationType) { - EAuthSessionGuardType.k_EAuthSessionGuardType_None -> Unit // No steam guard + EAuthSessionGuardType.k_EAuthSessionGuardType_None -> Unit + + // No steam guard EAuthSessionGuardType.k_EAuthSessionGuardType_EmailCode, EAuthSessionGuardType.k_EAuthSessionGuardType_DeviceCode, -> { @@ -94,6 +96,7 @@ open class AuthSession( // This is a prompt that appears in the Steam mobile app pollLoop = true } + // SessionGuardType.k_EAuthSessionGuardType_EmailConfirmation -> Unit // Unknown // SessionGuardType.k_EAuthSessionGuardType_MachineToken -> Unit // Unknown else -> throw AuthenticationException( diff --git a/src/main/java/in/dragonbra/javasteam/steam/cdn/ClientLancache.kt b/src/main/java/in/dragonbra/javasteam/steam/cdn/ClientLancache.kt index eb3238ae..0108af47 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/cdn/ClientLancache.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/cdn/ClientLancache.kt @@ -59,7 +59,9 @@ object ClientLancache { 192 -> bytes[1].toInt() and 0xFF == 168 else -> false } + is Inet6Address -> (bytes[0].toInt() and 0xFE) == 0xFC || toTest.isLinkLocalAddress + else -> false } } diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/callback/ChatMemberInfoCallback.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/callback/ChatMemberInfoCallback.kt index 4b4e5b70..3bc98725 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/callback/ChatMemberInfoCallback.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/callback/ChatMemberInfoCallback.kt @@ -48,6 +48,7 @@ class ChatMemberInfoCallback(packetMsg: IPacketMsg) : CallbackMsg() { when (type) { EChatInfoType.StateChange -> stateChangeInfo = StateChangeDetails(membInfo.payload) + // todo: (SK) handle more types // based off disassembly // - for InfoUpdate, a ChatMemberInfo object is present diff --git a/src/main/java/in/dragonbra/javasteam/types/KeyValue.kt b/src/main/java/in/dragonbra/javasteam/types/KeyValue.kt index 2a05e285..1ef8e093 100644 --- a/src/main/java/in/dragonbra/javasteam/types/KeyValue.kt +++ b/src/main/java/in/dragonbra/javasteam/types/KeyValue.kt @@ -570,6 +570,7 @@ class KeyValue @JvmOverloads constructor( } Type.STRING -> localCurrent.value = input.readNullTermString(StandardCharsets.UTF_8) + Type.WIDESTRING -> { logger.debug("Encountered WideString type when parsing binary KeyValue, which is unsupported. Returning false.") return false @@ -581,8 +582,11 @@ class KeyValue @JvmOverloads constructor( -> localCurrent.value = input.readInt().toString() Type.UINT64 -> localCurrent.value = input.readLong().toString() + Type.FLOAT32 -> localCurrent.value = input.readFloat().toString() + Type.INT64 -> localCurrent.value = input.readLong().toString() + else -> return false } diff --git a/src/main/java/in/dragonbra/javasteam/types/SteamID.kt b/src/main/java/in/dragonbra/javasteam/types/SteamID.kt index 727223f2..efc565a2 100644 --- a/src/main/java/in/dragonbra/javasteam/types/SteamID.kt +++ b/src/main/java/in/dragonbra/javasteam/types/SteamID.kt @@ -236,6 +236,7 @@ class SteamID { } UNKNOWN_ACCOUNT_TYPE_CHAR -> accountType = EAccountType.Invalid + else -> accountType = CollectionUtils.getKeyByValue(ACCOUNT_TYPE_CHARS, type) } From dfd4f3240796aff17baeda8b02d908c5ee6670a2 Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 22:26:40 -0600 Subject: [PATCH 05/10] lint code --- .../handlers/steamapps/callback/PICSProductInfoCallback.kt | 1 - .../javasteam/steam/handlers/steamcontent/SteamContent.kt | 2 +- .../javasteam/steam/handlers/steamfriends/SteamFriends.kt | 2 +- .../steam/handlers/steammatchmaking/SteamMatchmaking.kt | 6 +----- .../handlers/steamunifiedmessages/SteamUnifiedMessages.kt | 2 +- .../javasteam/steam/handlers/steamuser/SteamUser.kt | 1 + .../steam/steamclient/callbacks/DisconnectedCallback.kt | 1 + .../java/in/dragonbra/javasteam/steam/webapi/WebAPI.java | 1 - src/main/java/in/dragonbra/javasteam/types/KVTextReader.kt | 6 +++--- src/main/java/in/dragonbra/javasteam/types/MessageObject.kt | 1 + src/main/java/in/dragonbra/javasteam/util/NetHelpers.kt | 2 +- .../in/dragonbra/javasteam/util/compat/InputStreamCompat.kt | 4 ++-- src/main/java/in/dragonbra/javasteam/util/log/LogManager.kt | 1 + 13 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamapps/callback/PICSProductInfoCallback.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamapps/callback/PICSProductInfoCallback.kt index ab92651f..f67cfa25 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamapps/callback/PICSProductInfoCallback.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamapps/callback/PICSProductInfoCallback.kt @@ -5,7 +5,6 @@ import `in`.dragonbra.javasteam.base.IPacketMsg import `in`.dragonbra.javasteam.protobufs.steamclient.SteammessagesClientserverAppinfo.CMsgClientPICSProductInfoResponse import `in`.dragonbra.javasteam.steam.handlers.steamapps.PICSProductInfo import `in`.dragonbra.javasteam.steam.steamclient.callbackmgr.CallbackMsg -import java.util.* /** * This callback is fired when the PICS returns the product information requested diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamcontent/SteamContent.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamcontent/SteamContent.kt index c38bdd3c..335530c3 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamcontent/SteamContent.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamcontent/SteamContent.kt @@ -38,7 +38,7 @@ class SteamContent : ClientMsgHandler() { parentScope: CoroutineScope, ): Deferred> = parentScope.async { val request = CContentServerDirectory_GetServersForSteamPipe_Request.newBuilder().apply { - this.cellId = cellId ?: client.cellID?.toInt() ?: 0 + this.cellId = cellId ?: client.cellID ?: 0 maxNumServers?.let { this.maxServers = it } }.build() diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/SteamFriends.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/SteamFriends.kt index 4091d9a9..d4f60f69 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/SteamFriends.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamfriends/SteamFriends.kt @@ -328,7 +328,7 @@ class SteamFriends : ClientMsgHandler() { * @param steamID The clan steamid. * @return The relationship of the clan to the local user. */ - fun getClanRelationship(steamID: SteamID): EClanRelationship? = cache.clans.getAccount(steamID).relationship + fun getClanRelationship(steamID: SteamID): EClanRelationship = cache.clans.getAccount(steamID).relationship /** * Gets an SHA-1 hash representing the clan's avatar. diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steammatchmaking/SteamMatchmaking.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steammatchmaking/SteamMatchmaking.kt index 139f2c09..11656978 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steammatchmaking/SteamMatchmaking.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steammatchmaking/SteamMatchmaking.kt @@ -273,11 +273,7 @@ class SteamMatchmaking : ClientMsgHandler() { appId: Int, lobbySteamId: SteamID, ): AsyncJobSingle? { - val personaName = client.getHandler()?.getPersonaName() - - if (personaName == null) { - return null - } + val personaName = client.getHandler()?.getPersonaName() ?: return null val joinLobby = ClientMsgProtobuf( CMsgClientMMSJoinLobby::class.java, diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamunifiedmessages/SteamUnifiedMessages.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamunifiedmessages/SteamUnifiedMessages.kt index 570a2336..74c2a75e 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamunifiedmessages/SteamUnifiedMessages.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamunifiedmessages/SteamUnifiedMessages.kt @@ -146,7 +146,7 @@ class SteamUnifiedMessages : ClientMsgHandler() { val hash = jobName.lastIndexOf('#') if (dot < 0 || hash < 0) return - val serviceName = jobName.substring(0, dot) + val serviceName = jobName.take(dot) val handler = handlers[serviceName] ?: return val methodName = jobName.substring(dot + 1, hash) diff --git a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.kt b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.kt index 9f859ee4..3bdb414d 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/handlers/steamuser/SteamUser.kt @@ -34,6 +34,7 @@ import `in`.dragonbra.javasteam.util.NetHelpers /** * This handler handles all user log on/log off related actions and callbacks. */ +@Suppress("unused") class SteamUser : ClientMsgHandler() { val steamID: SteamID? diff --git a/src/main/java/in/dragonbra/javasteam/steam/steamclient/callbacks/DisconnectedCallback.kt b/src/main/java/in/dragonbra/javasteam/steam/steamclient/callbacks/DisconnectedCallback.kt index 8dcb37b9..55488433 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/steamclient/callbacks/DisconnectedCallback.kt +++ b/src/main/java/in/dragonbra/javasteam/steam/steamclient/callbacks/DisconnectedCallback.kt @@ -1,5 +1,6 @@ package `in`.dragonbra.javasteam.steam.steamclient.callbacks +import `in`.dragonbra.javasteam.steam.CMClient import `in`.dragonbra.javasteam.steam.steamclient.callbackmgr.CallbackMsg /** diff --git a/src/main/java/in/dragonbra/javasteam/steam/webapi/WebAPI.java b/src/main/java/in/dragonbra/javasteam/steam/webapi/WebAPI.java index 54a936b1..350e365b 100644 --- a/src/main/java/in/dragonbra/javasteam/steam/webapi/WebAPI.java +++ b/src/main/java/in/dragonbra/javasteam/steam/webapi/WebAPI.java @@ -7,7 +7,6 @@ import okhttp3.*; import java.io.IOException; -import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/in/dragonbra/javasteam/types/KVTextReader.kt b/src/main/java/in/dragonbra/javasteam/types/KVTextReader.kt index b56db0bb..a27afc72 100644 --- a/src/main/java/in/dragonbra/javasteam/types/KVTextReader.kt +++ b/src/main/java/in/dragonbra/javasteam/types/KVTextReader.kt @@ -54,8 +54,8 @@ internal constructor( } init { - val wasQuoted = Passable(false) - val wasConditional = Passable(false) + val wasQuoted = Passable(false) + val wasConditional = Passable(false) var currentKey: KeyValue? = kv @@ -175,7 +175,7 @@ internal constructor( read() val escapedChar = read().toChar() - var replacedChar = ESCAPED_MAPPING[escapedChar] ?: escapedChar + val replacedChar = ESCAPED_MAPPING[escapedChar] ?: escapedChar sb.append(replacedChar) diff --git a/src/main/java/in/dragonbra/javasteam/types/MessageObject.kt b/src/main/java/in/dragonbra/javasteam/types/MessageObject.kt index a656ebc3..34b6d407 100644 --- a/src/main/java/in/dragonbra/javasteam/types/MessageObject.kt +++ b/src/main/java/in/dragonbra/javasteam/types/MessageObject.kt @@ -9,6 +9,7 @@ import java.io.OutputStream * @constructor Initializes a new instance of the [MessageObject] class, using the provided KeyValues object. * @param keyValues The KeyValue backing store for this message object. */ +@Suppress("unused") open class MessageObject @JvmOverloads constructor( protected var keyValues: KeyValue = KeyValue("MessageObject"), ) { diff --git a/src/main/java/in/dragonbra/javasteam/util/NetHelpers.kt b/src/main/java/in/dragonbra/javasteam/util/NetHelpers.kt index 7ebe888c..21a4bc99 100644 --- a/src/main/java/in/dragonbra/javasteam/util/NetHelpers.kt +++ b/src/main/java/in/dragonbra/javasteam/util/NetHelpers.kt @@ -103,7 +103,7 @@ object NetHelpers { return null } - var ip = stringValue.substring(0, split) + var ip = stringValue.take(split) val port = stringValue.substring(split + 1).toIntOrNull() ?: return null if (ip.startsWith("[") && ip.endsWith("]")) { diff --git a/src/main/java/in/dragonbra/javasteam/util/compat/InputStreamCompat.kt b/src/main/java/in/dragonbra/javasteam/util/compat/InputStreamCompat.kt index 5f9ff54a..40a85ce3 100644 --- a/src/main/java/in/dragonbra/javasteam/util/compat/InputStreamCompat.kt +++ b/src/main/java/in/dragonbra/javasteam/util/compat/InputStreamCompat.kt @@ -42,7 +42,7 @@ fun InputStream.readNBytesCompat(len: Int): ByteArray { var n: Int do { - var buf = ByteArray(min(remaining, 8192)) + val buf = ByteArray(min(remaining, 8192)) var nread = 0 // read to EOF which may read more or less than buffer size @@ -82,7 +82,7 @@ fun InputStream.readNBytesCompat(len: Int): ByteArray { remaining = total bufs.forEach { b -> - var count = min(b.size, remaining) + val count = min(b.size, remaining) System.arraycopy(b, 0, result, offset, count) offset += count remaining -= count diff --git a/src/main/java/in/dragonbra/javasteam/util/log/LogManager.kt b/src/main/java/in/dragonbra/javasteam/util/log/LogManager.kt index 9b636394..22b550d4 100644 --- a/src/main/java/in/dragonbra/javasteam/util/log/LogManager.kt +++ b/src/main/java/in/dragonbra/javasteam/util/log/LogManager.kt @@ -7,6 +7,7 @@ import java.util.* * @author lngtr * @since 2018-03-02 */ +@Suppress("unused") object LogManager { private val LOGGERS: MutableMap, Logger> = HashMap, Logger>() From 5fca6cdd3f45f9ae483d7eee4bae2a1fefcced9f Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Sat, 6 Dec 2025 22:38:34 -0600 Subject: [PATCH 06/10] Update gradle to the last version for java 11 --- ....xml => javasteam [wrapper --gradle-version 8.14].run.xml} | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) rename .run/{javasteam [wrapper --gradle-version 8.12].run.xml => javasteam [wrapper --gradle-version 8.14].run.xml} (90%) diff --git a/.run/javasteam [wrapper --gradle-version 8.12].run.xml b/.run/javasteam [wrapper --gradle-version 8.14].run.xml similarity index 90% rename from .run/javasteam [wrapper --gradle-version 8.12].run.xml rename to .run/javasteam [wrapper --gradle-version 8.14].run.xml index 11afda7f..b23e505b 100644 --- a/.run/javasteam [wrapper --gradle-version 8.12].run.xml +++ b/.run/javasteam [wrapper --gradle-version 8.14].run.xml @@ -1,5 +1,5 @@ - +