- Updated response descriptors in various endpoints to utilize specific resource classes instead of generic JsonResponse. - Changed response types for friendship, guild, party, and support issue endpoints to their respective resource classes. - Incremented version number in manifest.json to 0.5.3 for the new changes.
3.7 KiB
Kweebec Network Core
This repository contains the Hytale plugin-side code for the Kweebec network along with the generated Java view of the control-plane API.
It is not just a generic plugin template anymore. The repo now has two important responsibilities:
- handwritten Hytale plugin and runtime code
- generator-owned Java API packages synced from the sibling
core-control-planerepository
Repository purpose
core-network is where game-side integrations for the network live.
That includes:
- plugin entry points and handwritten Java glue
- future gameplay-facing integrations that consume the control-plane API
- the generated versioned API tree under
net.kewwbec.network.generated.api.v1
The generated files are meant to make the control plane feel like a stable Java dependency instead of a pile of raw route strings.
Generated control-plane SDK tree
The generated Java API output lives under:
src/main/java/net/kewwbec/network/generated/api/v1/
ControlPlaneApiV1.java
shared/
announcements/
assets/
audit/
batch/
configs/
entitlements/
gamepermissions/
gameplay/
health/
hub/
infrastructure/
integrations/
moderation/
players/
plugins/
server/
serviceaccounts/
social/
support/
worlds/
What that means:
- each top-level API domain has its own package
- each domain has a
<Domain>Apientry point - each route has its own generated
*Endpointfile - shared descriptor records live in
shared/
Example imports look like:
import net.kewwbec.network.generated.api.v1.ControlPlaneApiV1;
import net.kewwbec.network.generated.api.v1.plugins.PluginsApi;
import net.kewwbec.network.generated.api.v1.moderation.CasesShowEndpoint;
The handwritten bridge is still:
src/main/java/net/kewwbec/network/network.java
Everything under src/main/java/net/kewwbec/network/generated is generator-owned and should not be edited manually. If they need edits check the generator in the control panel repo
How generation works
The source of truth for the generated API tree is the core-control-plane repository.
Run the sync from that repository:
php artisan control-plane:sync-network-sdk --dry-run
php artisan control-plane:sync-network-sdk
That command exports the Laravel API contract and rewrites the generated Java tree in this repository.
Common commands
# Compile Java sources
gradlew.bat compileJava
# Build the plugin jar
gradlew.bat shadowJar
# Build with the standard lifecycle
gradlew.bat build
# Run the Hytale server workflow when local server prerequisites are available
gradlew.bat runServer
Wiki docs
Developer-facing wiki pages live under:
docs/wiki/
Start with:
- Core Network Wiki
- Getting Started
- Batched API Calls
- API Response Storage
- Control Plane Client
- Generated SDK
Project structure
core-network/
docs/wiki/
src/main/java/
net/kewwbec/network/
network.java
batch/
cache/
generated/api/v1/...
src/main/resources/
manifest.json
build.gradle
gradle.properties
settings.gradle
Working rules
- Do not patch generated files by hand.
- Fix the control-plane routes or generator, then re-run the sync command.
- Keep handwritten plugin code outside the generated tree.
- Treat the control plane as the API owner; the game-side repo is the consumer.
Related repositories
../core-control-planeowns the Laravel API and the SDK sync commands.core-networkconsumes the generated Java tree and will host the gameplay-facing wrappers around it.