feat(events): migrate distribution to Java 25 and Purpur
BREAKING CHANGE: New releases require Java 25/Purpur 26.2 and use purpur-event-producer-<version>.jar. Runtime SpigotEventProducer identity, server UUID, SQLite outbox and CloudEvent delivery contracts remain unchanged. Replace the old JAR rather than installing both distributions.
This commit is contained in:
@@ -1,18 +1,20 @@
|
||||
# Spigot Event Producer
|
||||
# Purpur Event Producer
|
||||
|
||||
A Spigot 26.2 plugin that records Minecraft activity as CloudEvents 1.0, persists it in a local SQLite outbox, and sends newline-delimited batches to `game-ingest-server`.
|
||||
A Purpur 26.2 plugin that records Minecraft activity as CloudEvents 1.0, persists it in a local SQLite outbox, and sends newline-delimited batches to `game-ingest-server`.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Spigot 26.2
|
||||
- Java 17 or newer
|
||||
- Purpur 26.2 build 2618
|
||||
- Java 25
|
||||
- Network access to the ingest endpoint
|
||||
|
||||
The repository, checkout and new artifacts use `purpur-event-producer`. Runtime `SpigotEventProducer`, Java entrypoint/packages, existing configuration/server UUID and `plugins/SpigotEventProducer/event-outbox.sqlite3` remain unchanged, as do CloudEvent types/source/payloads and delivery semantics. The SQLite driver stays bundled. Replace the old JAR rather than installing both distributions. Old tags/assets remain available; new releases no longer support Java 17.
|
||||
|
||||
## Build and install
|
||||
|
||||
```bash
|
||||
./gradlew clean test jar
|
||||
cp build/libs/spigot-event-producer-0.1.0-SNAPSHOT.jar /path/to/server/plugins/
|
||||
./gradlew clean check jar
|
||||
cp build/libs/purpur-event-producer-0.1.0-SNAPSHOT.jar /path/to/server/plugins/
|
||||
```
|
||||
|
||||
Start the Minecraft server once to create `plugins/SpigotEventProducer/config.yml`. Set a meaningful, stable `server-name`. When `server-id` is empty, the plugin generates and persists a UUID. Do not reuse that generated UUID on another server.
|
||||
@@ -52,7 +54,7 @@ Public chat events contain the complete message text.
|
||||
|
||||
Private-message events recognize `/msg`, `/message`, `/tell`, `/w`, `/whisper`, `/pm`, `/reply`, and `/r`, including namespaced variants such as `/minecraft:tell`. Explicit commands contain the destination token. Reply commands set `reply: true` and omit the recipient so downstream processing can infer it from earlier ordered events. The event also reports whether the command was cancelled.
|
||||
|
||||
Spigot has no universal private-message event. Commands implemented with unrelated aliases or entirely custom plugin logic will not be recognized until their syntax is added. A recognized command event reports observation of the command, not guaranteed delivery to its recipient.
|
||||
The Bukkit-compatible server API has no universal private-message event. Commands implemented with unrelated aliases or entirely custom plugin logic will not be recognized until their syntax is added. A recognized command event reports observation of the command, not guaranteed delivery to its recipient.
|
||||
|
||||
### Location snapshots
|
||||
|
||||
@@ -114,7 +116,7 @@ Gitea Actions runs the Gradle checks for every push and pull request and stores
|
||||
- `feat:` creates a minor release;
|
||||
- a breaking-change footer or `!` creates a major release.
|
||||
|
||||
A successful release creates a `vX.Y.Z` tag and attaches `spigot-event-producer-X.Y.Z.jar` permanently to the corresponding Gitea Release. The release workflow requires a repository secret named `RELEASE_TOKEN` with repository contents write permission.
|
||||
A successful release creates a `vX.Y.Z` tag and attaches `purpur-event-producer-X.Y.Z.jar` permanently to the corresponding Gitea Release. The release workflow requires a repository secret named `RELEASE_TOKEN` with repository contents write permission.
|
||||
|
||||
For a local versioned build:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user