fix(transfer): use transferPlayer() beta API and enable experiments in level.dat

Switch from runCommand("transfer ...") to the @minecraft/server-admin
transferPlayer() function for reliable server-to-server transfers.
Enable Beta APIs experiment (gametest flag) in all 4 world level.dat files.
Add spawn protection to prevent transfer loops on arrival.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 02:34:29 +00:00
parent 2b0a0c4997
commit c12a468958
6 changed files with 165 additions and 13 deletions

View File

@@ -16,6 +16,16 @@ Four Bedrock servers on `10.0.0.247`, connected via native `/transfer` (no proxy
Players connect to `10.0.0.247:19132` (lobby) and use portal zones to transfer to child worlds.
Child worlds have a hub-return addon (compass, `!hub`/`!lobby` commands, portal zone) to transfer back.
### Transfer Mechanism
Transfers use `@minecraft/server-admin` beta API (`transferPlayer()` function). This requires:
- **Beta APIs experiment** enabled in each world's `level.dat` (`gametest` experiment flag)
- `@minecraft/server-admin` v1.0.0-beta dependency in manifest.json
- `permissions.json` allowing `@minecraft/server-admin`
The behavior packs are **bind-mounted** from the host project directory into Docker containers.
Deploy path on server: `/home/sysadmin/minecraft-multiworld/`
## Connection
The mc-ai-bridge runs at `10.0.0.247`: