feat(limbo): felis-limbo in-game login flow over the shared account-link client
The login limbo now performs the onboarding inside Limbo: on join it checks the collision blacklist, mints a bind code, opens a book linking the player to console.<root_domain> (guiding them to the system browser), polls link-status, and transfers to the lobby via BungeeCord Connect — fail-closed on blacklist, mint/transport error, or window elapse. FelisApiClient gains linkStatus/isBlacklisted on the existing internal transport.
This commit is contained in:
5 files changed
+494
No files matched your search
@@ -0,0 +1,58 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'best.lolicon.felis'
|
||||
version = '0.1.0'
|
||||
|
||||
// Build with a JDK 21 toolchain but emit portable Java 17 bytecode (options.release
|
||||
// below). Current LOOHP/Limbo releases ship Java 21 API classes (class-file major
|
||||
// 65), so the compiler JDK must be >= 21 to *read* them — a JDK 17 fails with
|
||||
// "wrong version 65.0, should be 61.0". Targeting release 17 keeps the plugin
|
||||
// loadable on any Limbo running Java 17+. See deploy/limbo/Dockerfile (21-jdk).
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
// LOOHP publishes the Limbo API artifact to their own repository.
|
||||
maven {
|
||||
name = 'loohp'
|
||||
url = 'https://repo.loohpjames.com/repository'
|
||||
}
|
||||
}
|
||||
|
||||
// Pull in the platform-neutral link core (best.lolicon.felis.link) the same way
|
||||
// every other module does — a source include, not a jar dependency — so the
|
||||
// account-link client (LinkClient), the internal read/drive client (FelisApiClient)
|
||||
// and the env/properties config loader compile straight into this jar with nothing
|
||||
// to shade. See plugins/README.md "Architecture".
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDir '../shared/src/main/java'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The Limbo API version this plugin compiles against. It is CODE-ONLY in this Go
|
||||
// repo (not built by CI); a deployer building the image passes the release that
|
||||
// matches the Limbo.jar they bundle, e.g. -PlimboVersion=0.7.11-ALPHA. Kept a
|
||||
// property so no specific build number is hardcoded into the tree.
|
||||
def limboVersion = project.findProperty('limboVersion') ?: '+'
|
||||
|
||||
dependencies {
|
||||
// Limbo provides its own API at runtime (the plugin is loaded into the Limbo
|
||||
// JVM), so it is compile-only — nothing to shade.
|
||||
compileOnly "com.loohp:Limbo:${limboVersion}"
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8'
|
||||
// Portable output: read the Java 21 Limbo API with the JDK 21 toolchain above,
|
||||
// but emit Java 17 bytecode so the plugin loads on any Limbo running Java 17+.
|
||||
options.release = 17
|
||||
}
|
||||
Reference in new issue
Block a user