A 377 client written in Kotlin. Originally based on Promises/refactored-client-377, fully converted to Kotlin with deobfuscation and engine improvements.
  • Kotlin 99.6%
  • Shell 0.4%
Find a file
Patrick W. 16c6459987
All checks were successful
ci / build (push) Successful in 35s
feat: update workflow, add scripts
2026-06-25 09:42:35 -04:00
.forgejo/workflows feat: update ci; 2026-06-24 20:05:23 -04:00
config feat: swap to server.properties, drop snakeyaml 2026-06-24 19:39:03 -04:00
gradle/wrapper chore: update ci 2026-04-02 18:27:29 -04:00
META-INF feat: sound 2026-03-08 15:58:40 -04:00
src feat: swap to server.properties, drop snakeyaml 2026-06-24 19:39:03 -04:00
.gitignore feat: swap to server.properties, drop snakeyaml 2026-06-24 19:39:03 -04:00
.ignore bunch of fixes 2024-04-20 02:29:08 +02:00
build-client.sh feat: update ci; 2026-06-24 20:05:23 -04:00
build.gradle feat: swap to server.properties, drop snakeyaml 2026-06-24 19:39:03 -04:00
gradlew feat: update ci; 2026-06-24 20:05:23 -04:00
gradlew.bat chore: update ci, update sound system 2026-04-02 18:26:52 -04:00
README.md feat: swap to server.properties, drop snakeyaml 2026-06-24 19:39:03 -04:00
run.bat feat: update ci; 2026-06-24 20:05:23 -04:00
run.command feat: update ci; 2026-06-24 20:05:23 -04:00
run.sh feat: update ci; 2026-06-24 20:05:23 -04:00
settings.gradle Add Kotlin Gradle plugin (migration Phase 1) 2026-04-02 21:21:28 -04:00

RS377-Kt

A 377 client written in Kotlin. Originally based on Promises/refactored-client-377, fully converted to Kotlin with deobfuscation and engine improvements.


Client Config

Copy config/EXAMPLE-server.properties to config/server.properties and edit as needed. The config file is not tracked by git.

Running

Windows: Double-click run.bat

Linux: Run ./run.sh

macOS: Double-click run.command. If macOS blocks it with an unverified developer warning, run:

xattr -d com.apple.quarantine /path/to/run.command

RSA Login Encryption (Optional)

RSA encrypts the login block between client and server. Disabled by default — both sides must match.

In config/server.properties, set the modulus from the server's mix rsa.keygen output:

rsa.rsaEnabled=true
rsa.rsaPub=65537
rsa.rsaModulus=<decimal modulus from server>