| # DreamWall AfterBlock Paper Bridge |
|
|
| This is the Minecraft server bridge for DreamWall: AfterBlock Museum. |
|
|
| The hackathon Space is the official submission surface. This plugin scaffold is the live-demo layer: it connects a Paper server to the Space API and prepares the path for placing generated wall art inside Minecraft. |
|
|
| ## Current Demo Behavior |
|
|
| - `/dreamwall` shows the configured Space endpoint. |
| - `/dreamwall fetch` calls the Space app domain and confirms the bridge can reach Hugging Face. |
| - `/dreamwall pack` asks the player client to load the Hugging Face-hosted `AfterBlockMuseum.zip` resource pack. |
| - `/dreamwall demo` places a safe local pedestal proof, spawns an `ItemDisplay` relic, engraves the name/caption in-world, adds a lectern passport book and profile button, and gives the player a Paper item with `CustomModelData 730002`. |
| - `/dreamwall import` calls the live `quick_curate` Gradio endpoint, parses the returned `dreamwall.museum.v1` packet, places a packet-derived pedestal/`ItemDisplay`/engraved nameplate/lectern passport/profile button/item at the artifact coordinates, marks the living entry atlas, paints a lit route from `YOU ARE HERE` to that plot, and gives the player a route compass. |
| - `/dreamwall import object | story | @owner` lets a visitor paste the command generated by the Hugging Face Space so their own object, story, and signature are imported without server-owner config changes. |
| - `/dreamwall import here` uses the same live packet but places it two blocks in front of the player for fast video proof. |
| - `/dreamwall museum where` prints the coordinate contract used by the Space and server. |
| - `/dreamwall museum build` creates the 12 x 12 living museum campus at the configured origin, with plot pads, memory rails, hall gates, banner markers, a physical entry atlas, and a `YOU ARE HERE` entry. |
| - `/dreamwall museum check` verifies that all 144 plot pads, relic focus blocks, the entry beacon, and the living entry atlas exist in the current world. |
| - A scheduled task can be extended to poll approved museum artifacts. |
| - The Space now emits `dreamwall.museum.v1`, the main AfterBlock packet for the hackathon demo. |
| - The Space also emits `living_canvas.mc.v1` for the secondary wall/canvas mode. |
|
|
| ## Planned Placement Behavior |
|
|
| The main Space endpoint is `quick_curate`, which emits `dreamwall.museum.v1` with: |
|
|
| - artifact title |
| - owner handle |
| - hall and zone |
| - plot and coordinates |
| - block palette/materials |
| - plaque text |
| - spirit first line |
| - passport QR payload |
| - curation scores |
| - resonance links |
|
|
| Implemented `/dreamwall import` V1 behavior: |
|
|
| 1. Fetch latest artifact packet. |
| 2. Place pedestal/sign/painting marker at coordinates. |
| 3. Display plaque line and owner handle. |
| 4. Place a written-book passport on a lectern so visitors can open the relic profile/history in Minecraft. |
| 5. Mark the entry atlas and paint a lit route from the entry beacon to the generated plot. |
| 6. Set the player's compass target and give a named route compass for the relic. |
| 7. Optionally create particles or a simple animation based on artifact type. |
|
|
| The legacy `generate_art` endpoint emits a `dreamwall.mc.v1` JSON packet with: |
|
|
| - `job_id` |
| - `player` |
| - `prompt` |
| - `gallery_zone` |
| - `origin` |
| - `palette` |
| - `plot` |
| - `market` |
| - `grid.row_runs` |
| - WorldEdit preview lines |
|
|
| The secondary canvas path uses `living_canvas.mc.v1` from the `living_canvas` endpoint: |
|
|
| - `tile_size_blocks`: `32 x 32` |
| - `canvas_size_tiles`: `12 x 12` |
| - `minecraft_wall_size_blocks`: `384 x 384` |
| - `tiles[].minecraft_origin` |
| - `tiles[].minecraft_bounds` |
| - `tiles[].stage` |
| - `tiles[].weather` |
| - `fusion_links` |
| - `evolution_events` |
| - `minecraft_animation_plan` |
|
|
| The plugin should treat each tile as a stable wall address. Motion comes from particles, map updates, or block-frame updates, not from moving the artifact to a new plot. |
|
|
| The next plugin step is converting `grid.row_runs` into wall block placement: |
|
|
| ```text |
| origin + (x, -y, 0) -> block |
| ``` |
|
|
| The Space also emits a `neuropets.mc.v1` packet from the `hatch_pet` endpoint. The server can use it to create: |
|
|
| - named creature sign |
| - armor stand / mob placeholder |
| - habitat marker |
| - particle effect |
| - leaderboard entry |
|
|
| For the hackathon video, the safest route is: |
|
|
| 1. Run AfterBlock Museum in the Space. |
| 2. Copy the `dreamwall.museum.v1` packet or call the Gradio API. |
| 3. Place one artifact pedestal/sign at `museum.coordinates`. |
| 4. Add signs for owner, title, hall, plaque, and spirit first line. |
| 5. Use particles around the pedestal for the artifact spirit. |
| 6. Walk through the museum gallery. |
|
|
| ## Flat World Canvas |
|
|
| Recommended V1 canvas: |
|
|
| - Flat Paper world |
| - `12 x 12` plots |
| - `32 x 32` blocks per plot |
| - Canvas origin: `-192, 80, -192` |
| - Use signs or floating text later for creator, prompt, value, and fusion history. |
|
|
| The Space assigns the plot. The plugin should trust the packet and place the mural at: |
|
|
| ```text |
| canvas_origin + plot.x * plot_size, y=80, canvas_origin_z + plot.z * plot_size |
| ``` |
|
|
| For `living_canvas.mc.v1`, the packet already includes `tiles[].minecraft_origin`, so the plugin can skip recomputing the address. |
|
|
| ## Build |
|
|
| GitHub Actions builds the jar through `.github/workflows/build-plugin.yml`. |
|
|
| Local build, if Maven is installed: |
|
|
| ```bash |
| mvn package |
| ``` |
|
|
| The jar will be in `target/dreamwall-paper-bridge-0.1.0.jar`. |
|
|
| ## Install |
|
|
| 1. Stop the PebbleHost Paper server. |
| 2. Upload the jar to `plugins/`. |
| 3. Upload or link the `resource-pack/AfterBlockMuseum/` zip as a server resource pack if you want custom item rendering. The default config can also request the Hugging Face-hosted pack with `/dreamwall pack`. |
| 4. Start the server. |
| 5. Edit `plugins/DreamWall/config.yml` if needed. |
| 6. Run `/dreamwall fetch` in game or console. |
| 7. Run `/dreamwall pack` in game and accept the resource pack. |
| 8. Run `/dreamwall museum build` once to create the coordinate-accurate museum campus and physical entry atlas. |
| 9. Run `/dreamwall museum check` to confirm the built world matches the Space coordinate map and atlas contract. |
| 10. Run `/dreamwall demo` in game to place a pedestal proof, visible `ItemDisplay`, engraved name/caption, lectern passport, profile button, and receive the AirPods demo item. |
| 11. Run `/dreamwall import object | story | @owner` from the Space to place a live Hugging Face artifact packet at its generated plot, update the route trail, receive the route compass, and right-click the profile button for the relic history, or `/dreamwall import here object | story | @owner` for a nearby proof. |
|
|
| ## Local Server Proof |
|
|
| Codex verified the plugin in a temporary Paper server: |
|
|
| ```text |
| Paper 1.21.4 build 232 |
| Java Temurin 21.0.11 |
| commands: dreamwall, dreamwall fetch, dreamwall pack, stop |
| ``` |
|
|
| Proof artifact: |
|
|
| ```text |
| artifacts/stress/paper_plugin_local_load_test.json |
| ``` |
|
|