Commit Graph

7 Commits

Author SHA1 Message Date
kayjaydee eb37c11e13 docs: top-level README 2026-04-28 16:30:48 +02:00
kayjaydee 5fc3bda1c5 feat(examples): four runnable plugin examples
- player-load: load-on-join (PlayerReadyEvent → IO → modify).
- async-moderation: IAsyncEvent → coroutine bridge for chat moderation.
- periodic-leaderboard: pluginScope loop with parallel reads.
- bounty-board: kitchen-sink demo exercising every v0.1 primitive.
2026-04-28 16:30:39 +02:00
kayjaydee ad1379c267 feat(dist): shaded jar aggregator
Bundles core + ecs + binding into a single shaded JAR via
com.gradleup.shadow. Regular jar stays enabled so composite builds
in examples/ can consume project(":dist") directly.
2026-04-28 16:30:26 +02:00
kayjaydee f23bb2178f feat(binding): Hytale SDK glue
The only module that imports com.hypixel.*. Provides World.asExecutor,
EntityHandle adapters for Ref/PlayerRef/Player, scope helpers
(playerScope, worldScope, pluginScope), and installAsync() which wires
PlayerDisconnectEvent to PlayerScopes.cancel.
2026-04-28 16:30:16 +02:00
kayjaydee 1870aeea12 feat(ecs): suspending component DSL
read / readOrNull / modify primitives that take an EntityHandle,
switch to the entity's world dispatcher, run the block on the world
thread, and return to the caller's dispatcher. ComponentRegistry
maps KClass to opaque ComponentType keys for O(1) hot-path lookup.
2026-04-28 16:30:02 +02:00
kayjaydee a10294c01f feat(core): dispatchers, scopes, and exceptions
HytaleDispatchers (World/HytaleIO/HytaleScheduled), per-key scope
registries (PlayerScopes, WorldScopes, PluginScopes) keyed by UUID
or plugin identity, and the sealed AsyncException hierarchy.
Includes unit tests against in-memory stubs.
2026-04-28 16:29:55 +02:00
kayjaydee e201a227ea chore: project scaffolding and CI
Gradle 9.4 multi-module setup with Kotlin DSL and version catalog.
GitHub Actions builds on push and PR with JDK 25 (Temurin).
2026-04-28 16:29:46 +02:00