HeruEdhel 7a4a0bd4bd
Build Plugin / build (push) Has been cancelled
Build Plugin / release (push) Has been cancelled
feat: Enhance ServerTemplatesUpdateEndpoint with additional request fields and validation rules
feat: Expand PlayersApi with new endpoints for better player management

feat: Update ServerApi to include new instance-related endpoints

feat: Add new endpoints to ServiceAccountsApi for improved service account management

fix: Update TokensRotateEndpoint and TokensStoreEndpoint to include new validation rules

feat: Introduce ControlPlaneHttpClient for handling HTTP requests to the control plane

feat: Implement PathBuilder for dynamic URI resolution

feat: Add PlayerEntitlement and PlayerSessionProfile models for player data handling

feat: Create server-related models including HeartbeatPayload, PresenceState, and ReadinessState

feat: Develop RegistrationPayload and ServerInstance models for server management

feat: Add ServerProfile model to encapsulate server instance details

refactor: Update network class to include builder method for ControlPlaneClient

chore: Update manifest.json for plugin metadata and dependencies
2026-05-30 23:25:22 -07:00
2026-05-27 20:34:13 -07:00

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-plane repository

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 now lives under:

src/main/java/net/kewwbec/network/generated/api/v1/
  ControlPlaneApiV1.java
  shared/
  announcements/
  audit/
  health/
  infrastructure/
  integrations/
  moderation/
  players/
  plugins/
  server/
  serviceaccounts/
  social/
  support/

What that means:

  • each top-level API domain has its own package
  • each domain has a <Domain>Api entry point
  • each route has its own generated *Endpoint file
  • shared descriptor records live in shared/

Example imports now 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.

How generation works

The source of truth for the generated API tree is the sibling 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

If the upstream Hytale server artifact is unavailable, full Gradle compilation may fail before it reaches your plugin code. In that case, validate generated Java-only slices separately and re-run once the dependency is resolvable.

Project structure

core-network/
  src/main/java/
    net/kewwbec/network/
      network.java
      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.
  • ../core-control-plane owns the Laravel API and the SDK sync commands.
  • core-network consumes the generated Java tree and will host the gameplay-facing wrappers around it.
S
Description
No description provided
Readme 257 KiB
Languages
Java 97.4%
Kotlin 2.6%