@kradle/challenges-sdk 0.21.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -1
- package/LLM_README.md +138 -14
- package/README.md +108 -4
- package/dist/engine.d.ts +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/builder.d.ts.map +1 -1
- package/dist/runtime/builder.js +1 -0
- package/dist/runtime/builder.js.map +1 -1
- package/dist/runtime/dialog.d.ts +83 -0
- package/dist/runtime/dialog.d.ts.map +1 -0
- package/dist/runtime/dialog.js +95 -0
- package/dist/runtime/dialog.js.map +1 -0
- package/dist/runtime/reducer.d.ts +18 -1
- package/dist/runtime/reducer.d.ts.map +1 -1
- package/dist/runtime/reducer.js +153 -4
- package/dist/runtime/reducer.js.map +1 -1
- package/dist/runtime/types.d.ts +76 -5
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/dist/runtime/wire.d.ts +64 -2
- package/dist/runtime/wire.d.ts.map +1 -1
- package/dist/runtime/wire.js +2 -0
- package/dist/runtime/wire.js.map +1 -1
- package/dist/runtime/world.d.ts +75 -1
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +253 -3
- package/dist/runtime/world.js.map +1 -1
- package/dist/test/harness.d.ts +24 -0
- package/dist/test/harness.d.ts.map +1 -1
- package/dist/test/harness.js +50 -2
- package/dist/test/harness.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,41 @@ also hand-edit this file or the [Unreleased] section at any time.
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [0.23.0] - 2026-10-15
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- `entity.nbt` holds an entity's saved NBT, and `g.blockNbt(at)` returns a block entity's saved NBT, as `/data get` shows them. Both are available at setup and update on every tick, also after a command changes them. An entity's NBT leaves out the keys that its other fields carry (position, motion, rotation, uuid, custom name, tags, fire, air, passengers, effects, absorption); a block entity's NBT leaves out its id and position.
|
|
25
|
+
- `blockNbtChanged` reports a block entity's NBT changes.
|
|
26
|
+
- `entityChanged` and `blockNbtChanged` carry `changed`, the paths that changed (`health`, `nbt.data.score`, `nbt.Items[3].count`). Use `valueAt(root, path)` to read one and `changedUnder(changed, path)` to test a subtree, so a handler skips a counter in one line. A hook with no handler still costs nothing: the paths are built only for a handler.
|
|
27
|
+
- `valueAt` and `changedUnder` are exported from `@kradle/challenges-sdk`.
|
|
28
|
+
- In tests, use `game.entityNbt(id, nbt)` and `game.blockNbt(at, nbt)` to report NBT. They send the delta from the mirrored NBT, and they copy it, so a test can change and send the same object again.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Breaking:** `entityChanged` also fires when an entity's NBT changes. A counter such as a dropped item's `Age` can cause an event on each tick. A block entity change, such as a furnace counter, fires `blockNbtChanged`. Use `changedUnder(changed, path)` to check which fields changed.
|
|
33
|
+
- `README.md` and `LLM_README.md` describe the NBT reads, what each one leaves out, and the two events. The world reads still expose no command storage; a named command reads it.
|
|
34
|
+
|
|
35
|
+
## [0.22.0] - 2026-10-14
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- Use `g.dialog(player, definition)` to show a native Minecraft dialog during play. The player must be a connected human.
|
|
40
|
+
- `dialogResponse` returns `{ player, dialogId, buttonId, inputs }` once per display. Inputs support text, booleans, options, and number ranges.
|
|
41
|
+
- Use `g.clearDialog(player)` to close a dialog. Replacement, expiry, death, disconnect, and the game end invalidate its response.
|
|
42
|
+
- Dialogs accept 1-32 buttons and up to 16 inputs. The timeout defaults to 60 seconds and accepts one tick to one hour.
|
|
43
|
+
- Text agents receive no dialog. Escape closes the screen without a response. Use an explicit cancel button when the challenge needs a response.
|
|
44
|
+
- Use `g.command(cmd, name)` to get `{ name, ok, value?, error? }` through `commandResult`. Names are available during play, but not in `.setup`.
|
|
45
|
+
- A named `data get` returns NBT as JSON. Other commands return the vanilla integer result. Forked commands return the number of successful forks.
|
|
46
|
+
- JSON does not preserve NBT number types. NBT booleans become `0` or `1`. Values over 262,144 characters cause an error.
|
|
47
|
+
- The test helpers include `game.dialogResponse` and `game.commandResult`. A roster entry accepts `human: true`.
|
|
48
|
+
- Export `Dialog`, `DialogInput`, and `DialogValues` from the author API. The engine API also exports `DialogSpec` and `DialogValues`.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- Add native dialog examples and input limits to the reference. A raw `/dialog` command does not create a `dialogResponse` event.
|
|
53
|
+
- Servers must support the selected response API. An unnamed `g.command(cmd)` retains its current behavior.
|
|
54
|
+
|
|
20
55
|
## [0.21.1] - 2026-10-14
|
|
21
56
|
|
|
22
57
|
### Changed
|
|
@@ -338,7 +373,9 @@ also hand-edit this file or the [Unreleased] section at any time.
|
|
|
338
373
|
- Voting primitives (`votedFor`, `promptVote`, `allVotesIn`, `assignDefaultVotes`) for challenges that use discuss-then-vote-then-act phases as an alternative to pad-based voting.
|
|
339
374
|
- Build-time validation of vote IDs and options against `KRADLE_CHALLENGE_VOTING_OPTIONS` (when set), matching the existing `getLocation`/`setEndState` pattern. `promptVote` also validates each announced option against the declared `votingOptions`.
|
|
340
375
|
|
|
341
|
-
[Unreleased]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.
|
|
376
|
+
[Unreleased]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.23.0...HEAD
|
|
377
|
+
[0.23.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.22.0...v0.23.0
|
|
378
|
+
[0.22.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.21.1...v0.22.0
|
|
342
379
|
[0.21.1]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.21.0...v0.21.1
|
|
343
380
|
[0.21.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.20.0...v0.21.0
|
|
344
381
|
[0.20.0]: https://github.com/Kradle-ai/challenges-sdk/compare/v0.19.1...v0.20.0
|
package/LLM_README.md
CHANGED
|
@@ -13,13 +13,14 @@ This document is the API reference for AI agents that write Kradle challenges wi
|
|
|
13
13
|
7. [The Context](#the-context)
|
|
14
14
|
8. [Players and Entities](#players-and-entities)
|
|
15
15
|
9. [Structures](#structures)
|
|
16
|
-
10. [
|
|
17
|
-
11. [
|
|
18
|
-
12. [
|
|
19
|
-
13. [
|
|
20
|
-
14. [
|
|
21
|
-
15. [Common
|
|
22
|
-
16. [
|
|
16
|
+
10. [Native dialogs](#native-dialogs)
|
|
17
|
+
11. [Constraints](#constraints)
|
|
18
|
+
12. [Testing](#testing)
|
|
19
|
+
13. [Build and Run](#build-and-run)
|
|
20
|
+
14. [Complete Examples](#complete-examples)
|
|
21
|
+
15. [Common Patterns](#common-patterns)
|
|
22
|
+
16. [Common Gotchas](#common-gotchas)
|
|
23
|
+
17. [Tips for LLMs](#tips-for-llms)
|
|
23
24
|
|
|
24
25
|
---
|
|
25
26
|
|
|
@@ -59,10 +60,12 @@ A challenge folder holds `challenge.ts` (the rules), `config.ts` (the metadata a
|
|
|
59
60
|
|
|
60
61
|
**The stages.** `CONNECTING` until every participant is connected and has a position; then the initializers run, then `setup` (the world build, confirmed by the engine), then `PLAYING` (`start`, the phases, the handlers), then `OVER`.
|
|
61
62
|
|
|
62
|
-
**The world mirror.** The engine streams the players, the entities, every loaded chunk, the block changes and the
|
|
63
|
+
**The world mirror.** The engine streams the players, the entities, every loaded chunk, the block changes, the containers and the NBT of the entities and the block entities. The SDK keeps them in the state and answers `g.blockAt`, `g.entities`, `g.containerContents`, `g.blockNbt`, `g.players` from that mirror. Nothing is declared: the mirror holds everything the server has loaded.
|
|
63
64
|
|
|
64
65
|
**Effects.** `g.give`, `g.fill`, `g.teleport`, `g.say`... queue commands for the engine. They are applied on the next server tick and reported back as facts (a placed block comes back through the mirror). A refused effect arrives as `on.effectFailed`.
|
|
65
66
|
|
|
67
|
+
Use `g.dialog(player, definition)` and `g.clearDialog(player)` for [native dialogs](#native-dialogs).
|
|
68
|
+
|
|
66
69
|
**Phases.** Named stages of the game with their own `duration`, `until`, `enter`, `exit`, timed steps and handlers. A phase or end request from a callback applies after the callback returns: exit once, enter once.
|
|
67
70
|
|
|
68
71
|
**The result.** `outcome.scores` derives the scores after every reduction, `outcome.endWhen` ends the game, `outcome.winners` and `outcome.endState` classify it. The result is frozen before `onOver` and `judgeContext` see it.
|
|
@@ -161,13 +164,16 @@ The steps register behavior and return the same challenge object. Use one chain
|
|
|
161
164
|
| `container` | `{ at, block, items, changes, by?, removed }`: a container's contents changed. |
|
|
162
165
|
| `zoneEntered`, `zoneLeft` | `{ player, zone }` |
|
|
163
166
|
| `chat` | `{ player, text }` |
|
|
167
|
+
| `dialogResponse` | `{ player, dialogId, buttonId, inputs }`: one valid response to the current native dialog. |
|
|
164
168
|
| `animation` | `{ player, animation }`: `swing` or `swing_off`. |
|
|
165
169
|
| `gamemode` | `{ player, gamemode }` |
|
|
166
|
-
| `entitySpawned`, `entityChanged`, `entityRemoved` | `{ entity }`, `{ entity, was }
|
|
170
|
+
| `entitySpawned`, `entityChanged`, `entityRemoved` | `{ entity }`, `{ entity, was, changed }` (also on every NBT change), `{ entity, cause, killer? }` |
|
|
171
|
+
| `blockNbtChanged` | `{ at, nbt, was, changed }`: a block entity's NBT changed (`nbt` is `undefined` when it is gone). |
|
|
167
172
|
| `vote` | `{ player, voteId, option }`: accepted votes only; the option is typed by the vote id after `if (voteId === "room")`. |
|
|
168
173
|
| `walkDone` | `{ player, ok }` |
|
|
169
174
|
| `timer` | `{ name }` |
|
|
170
175
|
| `batchDone` | `{ name, ok, failed }` |
|
|
176
|
+
| `commandResult` | `{ name, ok, value?, error? }`: a command sent with `g.command(cmd, name)` returned. |
|
|
171
177
|
| `effectFailed` | `{ kind, detail, effect?, batch? }` |
|
|
172
178
|
| `custom` | `{ name, player?, data }` |
|
|
173
179
|
|
|
@@ -179,7 +185,22 @@ The steps register behavior and return the same challenge object. Use one chain
|
|
|
179
185
|
|
|
180
186
|
**Reads.** `g.state`, `g.params`, `g.players`, `g.activePlayers`, `g.player(name)`, `g.playersWithRole(role)`, `g.playerWithRole(role)` (throws unless exactly one), `g.tick`, `g.elapsed` (ticks since start), `g.status`, `g.phase` (`null` without phases), `g.phaseEntry`, `g.phaseElapsed`, `g.phaseRemaining` (`null` without a duration), `g.location(name)`, `g.inZone(player, zone | box)`, `g.countItems(player, item)`, `g.worldTime`.
|
|
181
187
|
|
|
182
|
-
**The mirror.** `g.blockAt(at)` (the id, `undefined` outside the loaded chunks), `g.blockStateAt(at)` (`{ id, props }`), `g.blockMatches(at, match)` (throws `block_unknown` outside the loaded chunks), `g.blockCount(box, match, { partial? })` and `g.findBlocks(box, match, { limit?, partial? })` (they throw when a chunk of the box is not loaded, unless `partial`), `g.regionLoaded(box)`, `g.entities({ box?, type?, tag? })`, `g.entity(id)`, `g.containerContents(at)` (any container the mirror holds). A `match` is an id (any state), `{ id, props }` (the given props must match), or a function over the state.
|
|
188
|
+
**The mirror.** `g.blockAt(at)` (the id, `undefined` outside the loaded chunks), `g.blockStateAt(at)` (`{ id, props }`), `g.blockMatches(at, match)` (throws `block_unknown` outside the loaded chunks), `g.blockCount(box, match, { partial? })` and `g.findBlocks(box, match, { limit?, partial? })` (they throw when a chunk of the box is not loaded, unless `partial`), `g.regionLoaded(box)`, `g.entities({ box?, type?, tag? })`, `g.entity(id)`, `g.containerContents(at)` (any container the mirror holds), `g.blockNbt(at)` (the NBT of a block entity). A `match` is an id (any state), `{ id, props }` (the given props must match), or a function over the state.
|
|
189
|
+
|
|
190
|
+
**NBT.** `entity.nbt` is the saved NBT of an entity, and `g.blockNbt(at)` is the saved NBT of a block entity (a chest, a sign, a furnace), as `/data get` shows them. A number has no type suffix, and a byte boolean is `0` or `1`. An entity's NBT leaves out the keys that its other fields carry (position, motion, rotation, uuid, custom name, tags, fire, air, passengers, effects, absorption); a block entity's NBT leaves out its id and position. Every other key is there, also a key that changes on every tick (a TNT's `fuse`, a furnace's `cooking_time_spent`, an item's `Age`). The NBT is there at setup and stays current on every tick, also after a command changed it: `g.command("data merge entity @e[tag=flag,limit=1] {data:{taken:1b}}")` shows in `entity.nbt.data.taken` a tick later. An NBT change fires `entityChanged` for an entity and `blockNbtChanged` for a block entity, also for a key that counts on every tick (a dropped item fires on every tick for its `Age`). `changed` lists the paths that changed: a field (`health`, `tags`) or an NBT leaf (`nbt.data.score`, `nbt.Items[3].count`; a key that is not a plain name is quoted, `nbt["Paper.Delay"]`). For a block entity the paths start at its NBT (`Items[3].count`), and `""` is the whole NBT (the first sight, or the block entity is gone). `valueAt(root, path)` reads the new value (from the entity, or from the block's `nbt`), and `changedUnder(changed, path)` tells whether a change touches a subtree.
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
// no-compile
|
|
194
|
+
const flag = g.entities({ tag: "flag" })[0];
|
|
195
|
+
const taken = (flag?.nbt?.data as { taken?: number } | undefined)?.taken === 1;
|
|
196
|
+
const signText = g.blockNbt({ x: 3, y: 64, z: 7 })?.front_text;
|
|
197
|
+
|
|
198
|
+
// In .on({ ... }):
|
|
199
|
+
entityChanged(g, { entity, changed }) {
|
|
200
|
+
if (!changedUnder(changed, "nbt.data")) return; // skips a counter such as `nbt.Age`
|
|
201
|
+
const score = valueAt(entity, "nbt.data.score");
|
|
202
|
+
},
|
|
203
|
+
```
|
|
183
204
|
|
|
184
205
|
**Votes.** `g.votes(id)` (voter to option), `g.vote(player, id)`, `g.voteOpen(id)`, `g.tally(id)` (`{ counts, leaders, abstaining }`); `g.openVote(id)` (a new round; throws `vote_open` on an open round), `g.closeVote(id)`, `g.resetVote(id)`. A round is closed until opened. An eliminated player's vote is refused unless `allowEliminated`; the `player` vote (`skills.voteForPlayer`) excludes the voter unless `allowSelf`.
|
|
185
206
|
|
|
@@ -210,16 +231,46 @@ not in `say` or `tell`.
|
|
|
210
231
|
|
|
211
232
|
**Scores and roster.** `g.setScore(player, n)`, `g.addScore(player, delta)` (refused when `outcome.scores` exists), `g.eliminate(player)`, `g.random.int(lo, hi)`, `g.random.pick(items)`, `g.random.shuffle(items)`, `g.random.weighted(items)`.
|
|
212
233
|
|
|
213
|
-
**Effects.** `g.give(player, item, count?)` (`item` is an id or `{ id, count?, name?, lore?, enchantments?, damage?, components? }`; `components` is the raw item argument suffix such as `[enchantments={sharpness:1}]`, and a metadata field wins over the same component), `g.clear(player, item?, count?)`, `g.effect(player, { id, duration, amplifier? })`, `g.teleport(player, to)`, `g.kill(player)`, `g.gamemode(player, mode)`, `g.attribute(player, attribute, value)` (e.g. `minecraft:max_health`; no `generic.` prefix since Minecraft 1.21.2), `g.fill(from, to, block)`, `g.setBlock(at, block)` (`block` is an id or `{ id, props?, blockEntity? }`), `g.clone(from, to, dest, { mode? })` (copies the box so that its low corner lands at `dest`; `mode` is `replace`, `masked` or `move`; at most 32,768 blocks; `replace` and `masked` refuse an overlap, `move` accepts it), `g.summon(entity, at, { nbt? })`, `g.killEntities(types?)`, `g.time(value)`, `g.gamerule(rule, value)` (`rule` is a Minecraft 1.21.11+ id such as `minecraft:keep_inventory`; the old camelCase names are refused), `g.setSpawn(at)`, `g.worldBorder({ center?, size?, over? })`, `g.container(at, items)`, `g.command(cmd)` (runs a supported Minecraft command; see the command scope and limits below).
|
|
234
|
+
**Effects.** `g.give(player, item, count?)` (`item` is an id or `{ id, count?, name?, lore?, enchantments?, damage?, components? }`; `components` is the raw item argument suffix such as `[enchantments={sharpness:1}]`, and a metadata field wins over the same component), `g.clear(player, item?, count?)`, `g.effect(player, { id, duration, amplifier? })`, `g.teleport(player, to)`, `g.kill(player)`, `g.gamemode(player, mode)`, `g.attribute(player, attribute, value)` (e.g. `minecraft:max_health`; no `generic.` prefix since Minecraft 1.21.2), `g.fill(from, to, block)`, `g.setBlock(at, block)` (`block` is an id or `{ id, props?, blockEntity? }`), `g.clone(from, to, dest, { mode? })` (copies the box so that its low corner lands at `dest`; `mode` is `replace`, `masked` or `move`; at most 32,768 blocks; `replace` and `masked` refuse an overlap, `move` accepts it), `g.summon(entity, at, { nbt? })`, `g.killEntities(types?)`, `g.time(value)`, `g.gamerule(rule, value)` (`rule` is a Minecraft 1.21.11+ id such as `minecraft:keep_inventory`; the old camelCase names are refused), `g.setSpawn(at)`, `g.worldBorder({ center?, size?, over? })`, `g.container(at, items)`, `g.command(cmd, name?)` (runs a supported Minecraft command; with a name, `on.commandResult` reports what it returned; see the command scope and limits below).
|
|
235
|
+
|
|
236
|
+
Use `g.dialog(player, definition)` and `g.clearDialog(player)` for [native dialogs](#native-dialogs).
|
|
214
237
|
|
|
215
238
|
`g.command(cmd)` supports `data`, `dialog`, `difficulty`, `item`, `loot`, `rotate`, `swing`, `waypoint`, `spectate`, `seed`, `list`, `help`, and `version`.
|
|
216
239
|
It also supports the existing gameplay and block commands.
|
|
217
240
|
Vanilla command syntax and rules still apply.
|
|
218
241
|
Block and container changes reach the world observations, including closed containers, jukeboxes, lecterns, chiseled bookshelves, and decorated pots.
|
|
219
242
|
The typed `g.container` method does not accept jukeboxes, lecterns, chiseled bookshelves, or decorated pots.
|
|
220
|
-
The
|
|
221
|
-
Native Minecraft clients show dialogs.
|
|
222
|
-
|
|
243
|
+
The world reads expose the NBT of the entities (`entity.nbt`) and of the block entities (`g.blockNbt(at)`). They do not expose command storage; a named command can read it.
|
|
244
|
+
Native Minecraft clients show raw dialogs. Use `g.dialog` for button and input responses; text agents do not receive dialogs.
|
|
245
|
+
The printed text of a command does not return to the challenge. To read what a command returned, give it a name: `g.command(cmd, name)`.
|
|
246
|
+
`on.commandResult` then reports `{ name, ok, value?, error? }` on a later event.
|
|
247
|
+
`ok` is `false` when the command did nothing, failed, or was refused; `error` says why.
|
|
248
|
+
`value` is the NBT that a `data get` read, as JSON (an entity, a block entity, or command storage), or else the vanilla integer result (the count of `execute if entity`, for example).
|
|
249
|
+
A number loses its NBT type: `1b`, `1` and `1.0f` are all `1`, and a boolean in NBT is `0` or `1`. A value over 262,144 characters is an error.
|
|
250
|
+
A command that runs in several forks (`execute as @a run ...`) gives the count of the forks that succeeded, not the answer of one fork; `ok` is `true` when at least one succeeded.
|
|
251
|
+
The name is a free string: put what the handler needs in it (`"held:Steve"`). A name is available only while the game runs, not in `.setup`.
|
|
252
|
+
|
|
253
|
+
```ts
|
|
254
|
+
import { defineChallenge } from "@kradle/challenges-sdk";
|
|
255
|
+
import { config } from "./config";
|
|
256
|
+
|
|
257
|
+
export default defineChallenge(config, { life: "respawn" })
|
|
258
|
+
.on({
|
|
259
|
+
chat(g, { player, text }) {
|
|
260
|
+
if (text === "sword") g.command(`data get entity ${player.name} SelectedItem`, `held:${player.name}`);
|
|
261
|
+
},
|
|
262
|
+
commandResult(g, { name, ok, value, error }) {
|
|
263
|
+
if (!name.startsWith("held:")) return;
|
|
264
|
+
const holder = g.player(name.slice("held:".length));
|
|
265
|
+
if (!holder) return;
|
|
266
|
+
if (!ok) return g.tell(holder, `Nothing to read: ${error}`);
|
|
267
|
+
const item = value as { id: string; count: number };
|
|
268
|
+
g.tell(holder, `You hold ${item.count} ${item.id}`);
|
|
269
|
+
},
|
|
270
|
+
})
|
|
271
|
+
.outcome({ winners: () => [] });
|
|
272
|
+
```
|
|
273
|
+
|
|
223
274
|
Use absolute coordinates, or `execute at` for a position relative to an entity.
|
|
224
275
|
`place`, `tick`, and server control commands remain unavailable.
|
|
225
276
|
|
|
@@ -285,6 +336,79 @@ export default challenge;
|
|
|
285
336
|
|
|
286
337
|
---
|
|
287
338
|
|
|
339
|
+
## Native dialogs
|
|
340
|
+
|
|
341
|
+
Use `g.dialog(player, definition)` during play to show a native Minecraft dialog.
|
|
342
|
+
The player must have `human === true` and `connected === true`.
|
|
343
|
+
Text agents do not receive dialogs.
|
|
344
|
+
The server must support dialog responses.
|
|
345
|
+
|
|
346
|
+
```ts
|
|
347
|
+
import { defineChallenge } from "@kradle/challenges-sdk";
|
|
348
|
+
|
|
349
|
+
const challenge = defineChallenge({
|
|
350
|
+
name: "Upgrade choice",
|
|
351
|
+
challengeConfig: {},
|
|
352
|
+
roles: { player: { description: "Player", minParticipants: 1 } },
|
|
353
|
+
}, { life: "respawn" })
|
|
354
|
+
.start(g => {
|
|
355
|
+
for (const player of g.players) {
|
|
356
|
+
if (!player.human || !player.connected) continue;
|
|
357
|
+
g.dialog(player, {
|
|
358
|
+
id: "upgrade",
|
|
359
|
+
title: "Choose your upgrade",
|
|
360
|
+
inputs: [{ id: "label", type: "text", label: "Name", maxLength: 32 }],
|
|
361
|
+
buttons: [
|
|
362
|
+
{ id: "armor", label: "Better armor" },
|
|
363
|
+
{ id: "speed", label: "More speed" },
|
|
364
|
+
],
|
|
365
|
+
timeout: "60s",
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
})
|
|
369
|
+
.on({
|
|
370
|
+
dialogResponse(g, { player, dialogId, buttonId, inputs }) {
|
|
371
|
+
if (dialogId !== "upgrade") return;
|
|
372
|
+
g.log("Upgrade choice", { player, data: { buttonId, inputs } });
|
|
373
|
+
},
|
|
374
|
+
})
|
|
375
|
+
.outcome({ winners: () => [] });
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
`dialogResponse` supplies the authenticated player, the dialog ID, the button ID, and the input values.
|
|
379
|
+
`inputs` maps each input ID to a string, boolean, or number.
|
|
380
|
+
The server checks each value against the displayed field.
|
|
381
|
+
Challenge code must still check game rules before it grants an upgrade or changes a score.
|
|
382
|
+
|
|
383
|
+
| Input type | Fields | Response value |
|
|
384
|
+
| --- | --- | --- |
|
|
385
|
+
| `text` | `id`, `label`, optional `initial`, optional `maxLength` (default 32, maximum 1024) | String |
|
|
386
|
+
| `boolean` | `id`, `label`, optional `initial` (default false) | Boolean |
|
|
387
|
+
| `singleOption` | `id`, `label`, `options: [{ id, label }]`, optional `initial` option ID | Selected option ID |
|
|
388
|
+
| `numberRange` | `id`, `label`, `min`, `max`, optional `initial`, optional positive `step` | Number within the range |
|
|
389
|
+
|
|
390
|
+
Dialogs accept 1–32 buttons and up to 16 inputs. An option list accepts 1–32 options.
|
|
391
|
+
IDs contain 1–64 letters, digits, underscores, or hyphens. IDs must be unique within each list. The input ID `__proto__` is reserved.
|
|
392
|
+
Titles and labels accept up to 256 characters. Optional `body` text accepts up to 8192 characters.
|
|
393
|
+
Each definition accepts up to 32768 characters as JSON. Text fields accept up to 8192 characters in total.
|
|
394
|
+
Number sliders use Minecraft float precision. `step` controls the slider; challenge code can check additional number rules.
|
|
395
|
+
|
|
396
|
+
Each display accepts one response. A new `g.dialog` call replaces the previous dialog for that player.
|
|
397
|
+
`g.clearDialog(player)` closes the dialog and rejects later responses.
|
|
398
|
+
Death, disconnect, expiry, and the end of the game also remove the response route.
|
|
399
|
+
The timeout uses game ticks. It defaults to 60 seconds and accepts one tick to one hour.
|
|
400
|
+
The Escape key closes the screen without a response. The response route expires at its timeout.
|
|
401
|
+
Use a button with a cancel ID when challenge code needs an explicit cancel response.
|
|
402
|
+
|
|
403
|
+
Raw `/dialog` commands do not create `dialogResponse` events.
|
|
404
|
+
Use the typed methods for a dialog that needs responses. Do not mix raw dialog commands with the typed dialog for the same player.
|
|
405
|
+
|
|
406
|
+
For a harness test, declare a human with `{ role: "player", human: true }` in `game.begin`.
|
|
407
|
+
Use `game.dialogResponse(playerName, buttonId, inputs)` to submit a response to the current dialog.
|
|
408
|
+
Use `game.dispatch` with a `dialog_response` event to check old or malformed responses.
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
288
412
|
## Constraints
|
|
289
413
|
|
|
290
414
|
- Every callback is synchronous. A callback that returns a Promise is an error that ends the run.
|
package/README.md
CHANGED
|
@@ -146,11 +146,15 @@ the state; the SDK answers from that mirror:
|
|
|
146
146
|
- `g.blockCount(box, match)`, `g.findBlocks(box, match)`: they throw when a chunk of the box is not loaded, unless `{ partial: true }`
|
|
147
147
|
- `g.entities({ box?, type?, tag? })`, `g.entity(id)`: all non-player entities in loaded chunks, available before setup
|
|
148
148
|
- `g.containerContents(at)`: any chest or other container the mirror holds
|
|
149
|
+
- `entity.nbt`, `g.blockNbt(at)`: the saved NBT of an entity or a block entity, as `/data get` shows it, current on every tick
|
|
149
150
|
- `p.pos`, `p.inventory`, `p.zones`; `g.inZone(p, zone)`, `g.countItems(p, item)`
|
|
150
151
|
|
|
151
152
|
The handlers report the changes: `blockPlaced`, `blockBroken`, `blocksChanged`
|
|
152
153
|
(every cause, a fill or a clone as one entry), `container`, `inventory`, `move`,
|
|
153
|
-
`zoneEntered`, `zoneLeft`, `entitySpawned`, `entityChanged`, `entityRemoved
|
|
154
|
+
`zoneEntered`, `zoneLeft`, `entitySpawned`, `entityChanged`, `entityRemoved`,
|
|
155
|
+
`blockNbtChanged`. `entityChanged` and `blockNbtChanged` carry `changed`, the paths
|
|
156
|
+
that changed (`health`, `nbt.data.score`); `valueAt(root, path)` reads one and
|
|
157
|
+
`changedUnder(changed, path)` tests a subtree.
|
|
154
158
|
|
|
155
159
|
### Structures
|
|
156
160
|
|
|
@@ -215,8 +219,108 @@ It also supports the existing gameplay and block commands.
|
|
|
215
219
|
Vanilla command syntax and rules still apply.
|
|
216
220
|
Block and container changes reach the world observations, including closed containers, jukeboxes, lecterns, chiseled bookshelves, and decorated pots.
|
|
217
221
|
The typed `g.container` method does not accept jukeboxes, lecterns, chiseled bookshelves, or decorated pots.
|
|
218
|
-
The
|
|
219
|
-
Native Minecraft clients show dialogs.
|
|
220
|
-
|
|
222
|
+
The world reads expose the NBT of the entities (`entity.nbt`) and of the block entities (`g.blockNbt(at)`). They do not expose command storage; a named command can read it.
|
|
223
|
+
Native Minecraft clients show raw dialogs. Use `g.dialog` for button and input responses; text agents do not receive dialogs.
|
|
224
|
+
The printed text of a command does not return to the challenge. To read what a command returned, give it a name: `g.command(cmd, name)`.
|
|
225
|
+
`on.commandResult` then reports `{ name, ok, value?, error? }` on a later event.
|
|
226
|
+
`ok` is `false` when the command did nothing, failed, or was refused; `error` says why.
|
|
227
|
+
`value` is the NBT that a `data get` read, as JSON (an entity, a block entity, or command storage), or else the vanilla integer result (the count of `execute if entity`, for example).
|
|
228
|
+
A number loses its NBT type: `1b`, `1` and `1.0f` are all `1`, and a boolean in NBT is `0` or `1`. A value over 262,144 characters is an error.
|
|
229
|
+
A command that runs in several forks (`execute as @a run ...`) gives the count of the forks that succeeded, not the answer of one fork; `ok` is `true` when at least one succeeded.
|
|
230
|
+
The name is a free string: put what the handler needs in it (`"held:Steve"`). A name is available only while the game runs, not in `.setup`.
|
|
231
|
+
|
|
232
|
+
```ts
|
|
233
|
+
import { defineChallenge } from "@kradle/challenges-sdk";
|
|
234
|
+
import { config } from "./config";
|
|
235
|
+
|
|
236
|
+
export default defineChallenge(config, { life: "respawn" })
|
|
237
|
+
.on({
|
|
238
|
+
chat(g, { player, text }) {
|
|
239
|
+
if (text === "sword") g.command(`data get entity ${player.name} SelectedItem`, `held:${player.name}`);
|
|
240
|
+
},
|
|
241
|
+
commandResult(g, { name, ok, value, error }) {
|
|
242
|
+
if (!name.startsWith("held:")) return;
|
|
243
|
+
const holder = g.player(name.slice("held:".length));
|
|
244
|
+
if (!holder) return;
|
|
245
|
+
if (!ok) return g.tell(holder, `Nothing to read: ${error}`);
|
|
246
|
+
const item = value as { id: string; count: number };
|
|
247
|
+
g.tell(holder, `You hold ${item.count} ${item.id}`);
|
|
248
|
+
},
|
|
249
|
+
})
|
|
250
|
+
.outcome({ winners: () => [] });
|
|
251
|
+
```
|
|
252
|
+
|
|
221
253
|
Use absolute coordinates, or `execute at` for a position relative to an entity.
|
|
222
254
|
`place`, `tick`, and server control commands remain unavailable.
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
## Native dialogs
|
|
258
|
+
|
|
259
|
+
Use `g.dialog(player, definition)` during play to show a native Minecraft dialog.
|
|
260
|
+
The player must have `human === true` and `connected === true`.
|
|
261
|
+
Text agents do not receive dialogs.
|
|
262
|
+
The server must support dialog responses.
|
|
263
|
+
|
|
264
|
+
```ts
|
|
265
|
+
import { defineChallenge } from "@kradle/challenges-sdk";
|
|
266
|
+
|
|
267
|
+
const challenge = defineChallenge({
|
|
268
|
+
name: "Upgrade choice",
|
|
269
|
+
challengeConfig: {},
|
|
270
|
+
roles: { player: { description: "Player", minParticipants: 1 } },
|
|
271
|
+
}, { life: "respawn" })
|
|
272
|
+
.start(g => {
|
|
273
|
+
for (const player of g.players) {
|
|
274
|
+
if (!player.human || !player.connected) continue;
|
|
275
|
+
g.dialog(player, {
|
|
276
|
+
id: "upgrade",
|
|
277
|
+
title: "Choose your upgrade",
|
|
278
|
+
inputs: [{ id: "label", type: "text", label: "Name", maxLength: 32 }],
|
|
279
|
+
buttons: [
|
|
280
|
+
{ id: "armor", label: "Better armor" },
|
|
281
|
+
{ id: "speed", label: "More speed" },
|
|
282
|
+
],
|
|
283
|
+
timeout: "60s",
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
})
|
|
287
|
+
.on({
|
|
288
|
+
dialogResponse(g, { player, dialogId, buttonId, inputs }) {
|
|
289
|
+
if (dialogId !== "upgrade") return;
|
|
290
|
+
g.log("Upgrade choice", { player, data: { buttonId, inputs } });
|
|
291
|
+
},
|
|
292
|
+
})
|
|
293
|
+
.outcome({ winners: () => [] });
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
`dialogResponse` supplies the authenticated player, the dialog ID, the button ID, and the input values.
|
|
297
|
+
`inputs` maps each input ID to a string, boolean, or number.
|
|
298
|
+
The server checks each value against the displayed field.
|
|
299
|
+
Challenge code must still check game rules before it grants an upgrade or changes a score.
|
|
300
|
+
|
|
301
|
+
| Input type | Fields | Response value |
|
|
302
|
+
| --- | --- | --- |
|
|
303
|
+
| `text` | `id`, `label`, optional `initial`, optional `maxLength` (default 32, maximum 1024) | String |
|
|
304
|
+
| `boolean` | `id`, `label`, optional `initial` (default false) | Boolean |
|
|
305
|
+
| `singleOption` | `id`, `label`, `options: [{ id, label }]`, optional `initial` option ID | Selected option ID |
|
|
306
|
+
| `numberRange` | `id`, `label`, `min`, `max`, optional `initial`, optional positive `step` | Number within the range |
|
|
307
|
+
|
|
308
|
+
Dialogs accept 1–32 buttons and up to 16 inputs. An option list accepts 1–32 options.
|
|
309
|
+
IDs contain 1–64 letters, digits, underscores, or hyphens. IDs must be unique within each list. The input ID `__proto__` is reserved.
|
|
310
|
+
Titles and labels accept up to 256 characters. Optional `body` text accepts up to 8192 characters.
|
|
311
|
+
Each definition accepts up to 32768 characters as JSON. Text fields accept up to 8192 characters in total.
|
|
312
|
+
Number sliders use Minecraft float precision. `step` controls the slider; challenge code can check additional number rules.
|
|
313
|
+
|
|
314
|
+
Each display accepts one response. A new `g.dialog` call replaces the previous dialog for that player.
|
|
315
|
+
`g.clearDialog(player)` closes the dialog and rejects later responses.
|
|
316
|
+
Death, disconnect, expiry, and the end of the game also remove the response route.
|
|
317
|
+
The timeout uses game ticks. It defaults to 60 seconds and accepts one tick to one hour.
|
|
318
|
+
The Escape key closes the screen without a response. The response route expires at its timeout.
|
|
319
|
+
Use a button with a cancel ID when challenge code needs an explicit cancel response.
|
|
320
|
+
|
|
321
|
+
Raw `/dialog` commands do not create `dialogResponse` events.
|
|
322
|
+
Use the typed methods for a dialog that needs responses. Do not mix raw dialog commands with the typed dialog for the same player.
|
|
323
|
+
|
|
324
|
+
For a harness test, declare a human with `{ role: "player", human: true }` in `game.begin`.
|
|
325
|
+
Use `game.dialogResponse(playerName, buttonId, inputs)` to submit a response to the current dialog.
|
|
326
|
+
Use `game.dispatch` with a `dialog_response` event to check old or malformed responses.
|
package/dist/engine.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export { type Duration, type Ticks, toTicks } from "./runtime/time.js";
|
|
|
5
5
|
export type { Action, BlockId, Box, Capability, ChatColor, ChatText, ContainerItem, Effect, EffectId, EndReason, EngineChallenge, EntityTypeId, Event, GameMode, GateEffect, ItemId, ItemMeta, ItemStack, Json, ManifestVote, Participant, PlayerSample, RuntimeManifest, SdkEndState, SlotChange, Status, TextComponent, TitleTimes, Vec3, } from "./runtime/wire.js";
|
|
6
6
|
export { ALL_CAPABILITIES, MINECRAFT_TARGET } from "./runtime/wire.js";
|
|
7
7
|
export type { ChunkMessage, Entity, EntityMove, Equipment, EquipmentChange, EquipmentSlot, Equipped, WorldState, } from "./runtime/world.js";
|
|
8
|
+
export type { DialogSpec, DialogValues } from "./runtime/dialog.js";
|
|
8
9
|
//# sourceMappingURL=engine.d.ts.map
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,KAAK,KAAK,EACV,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,KAAK,KAAK,EACV,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { BlockMatch, BlockPos, BlockSpec, BlockState, ChallengeApi, Challen
|
|
|
7
7
|
export { PLAYER_VOTE, WORLD_DEFAULTS } from "./runtime/types.js";
|
|
8
8
|
export type { BlockId, Box, ChatColor, ChatText, EffectId, EndReason, EntityTypeId, GameMode, ItemId, ItemMeta, ItemStack, Json, SdkEndState, Status, TextComponent, Vec3, } from "./runtime/wire.js";
|
|
9
9
|
export { MINECRAFT_TARGET } from "./runtime/wire.js";
|
|
10
|
-
export { blockIdOf, bounds, type Entity, type EntityFilter, type Equipment, inBox } from "./runtime/world.js";
|
|
10
|
+
export { blockIdOf, bounds, changedUnder, type Entity, type EntityFilter, type Equipment, inBox, valueAt, } from "./runtime/world.js";
|
|
11
11
|
import type { BlockPos } from "./runtime/types.js";
|
|
12
12
|
import type { Vec3 } from "./runtime/wire.js";
|
|
13
13
|
/** The integer block position of a continuous position: each axis floored. */
|
|
@@ -18,4 +18,5 @@ export declare const below: (at: Vec3) => BlockPos;
|
|
|
18
18
|
export declare const above: (at: Vec3) => BlockPos;
|
|
19
19
|
/** `at` moved by `d` on each axis. */
|
|
20
20
|
export declare const offset: (at: Vec3, d: Partial<Vec3>) => Vec3;
|
|
21
|
+
export type { Dialog, DialogInput, DialogValues } from "./runtime/dialog.js";
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,EACL,OAAO,GACP,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,KAAK,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,EACN,aAAa,EACb,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,EACL,OAAO,GACP,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,GAAG,EACH,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,KAAK,GACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,EACN,aAAa,EACb,IAAI,GACJ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,EACL,OAAO,GACP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,KAAG,QAA4E,CAAC;AAClH,iGAAiG;AACjG,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,wCAAwC;AACxC,eAAO,MAAM,KAAK,GAAI,IAAI,IAAI,KAAG,QAAmF,CAAC;AACrH,sCAAsC;AACtC,eAAO,MAAM,MAAM,GAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAG,IAIlD,CAAC;AAEH,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.offset = exports.above = exports.below = exports.toBlockPos = exports.inBox = exports.bounds = exports.blockIdOf = exports.MINECRAFT_TARGET = exports.WORLD_DEFAULTS = exports.PLAYER_VOTE = exports.toTicks = exports.ticks = exports.TICKS_PER_SECOND = exports.subtractDuration = exports.seconds = exports.minutes = exports.asSeconds = exports.asMinutes = exports.addDuration = exports.winBy = exports.MAX_TRANSITIONS_PER_EVENT = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.ChallengeError = exports.defineChallenge = void 0;
|
|
3
|
+
exports.offset = exports.above = exports.below = exports.toBlockPos = exports.valueAt = exports.inBox = exports.changedUnder = exports.bounds = exports.blockIdOf = exports.MINECRAFT_TARGET = exports.WORLD_DEFAULTS = exports.PLAYER_VOTE = exports.toTicks = exports.ticks = exports.TICKS_PER_SECOND = exports.subtractDuration = exports.seconds = exports.minutes = exports.asSeconds = exports.asMinutes = exports.addDuration = exports.winBy = exports.MAX_TRANSITIONS_PER_EVENT = exports.MAX_FILL_VOLUME = exports.MAX_BATCH_EFFECTS = exports.ChallengeError = exports.defineChallenge = void 0;
|
|
4
4
|
// The author API: `@kradle/challenges-sdk`. The engine protocol is `@kradle/challenges-sdk/engine`,
|
|
5
5
|
// the test kit `@kradle/challenges-sdk/test`.
|
|
6
6
|
var builder_js_1 = require("./runtime/builder.js");
|
|
@@ -31,7 +31,9 @@ Object.defineProperty(exports, "MINECRAFT_TARGET", { enumerable: true, get: func
|
|
|
31
31
|
var world_js_1 = require("./runtime/world.js");
|
|
32
32
|
Object.defineProperty(exports, "blockIdOf", { enumerable: true, get: function () { return world_js_1.blockIdOf; } });
|
|
33
33
|
Object.defineProperty(exports, "bounds", { enumerable: true, get: function () { return world_js_1.bounds; } });
|
|
34
|
+
Object.defineProperty(exports, "changedUnder", { enumerable: true, get: function () { return world_js_1.changedUnder; } });
|
|
34
35
|
Object.defineProperty(exports, "inBox", { enumerable: true, get: function () { return world_js_1.inBox; } });
|
|
36
|
+
Object.defineProperty(exports, "valueAt", { enumerable: true, get: function () { return world_js_1.valueAt; } });
|
|
35
37
|
/** The integer block position of a continuous position: each axis floored. */
|
|
36
38
|
const toBlockPos = (v) => ({ x: Math.floor(v.x), y: Math.floor(v.y), z: Math.floor(v.z) });
|
|
37
39
|
exports.toBlockPos = toBlockPos;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oGAAoG;AACpG,8CAA8C;AAC9C,mDAA0F;AAA9C,6GAAA,eAAe,OAAA;AAC3D,iDAAyE;AAAhE,2GAAA,cAAc,OAAA;AACvB,mDAAqG;AAA5F,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AACtE,+CAA2C;AAAlC,iGAAA,KAAK,OAAA;AACd,6CAY2B;AAX1B,sGAAA,WAAW,OAAA;AACX,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AAET,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,2GAAA,gBAAgB,OAAA;AAEhB,gGAAA,KAAK,OAAA;AACL,kGAAA,OAAO,OAAA;AAkDR,+CAAiE;AAAxD,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAmBpC,6CAAqD;AAA5C,2GAAA,gBAAgB,OAAA;AACzB,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oGAAoG;AACpG,8CAA8C;AAC9C,mDAA0F;AAA9C,6GAAA,eAAe,OAAA;AAC3D,iDAAyE;AAAhE,2GAAA,cAAc,OAAA;AACvB,mDAAqG;AAA5F,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AACtE,+CAA2C;AAAlC,iGAAA,KAAK,OAAA;AACd,6CAY2B;AAX1B,sGAAA,WAAW,OAAA;AACX,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AAET,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,2GAAA,gBAAgB,OAAA;AAChB,2GAAA,gBAAgB,OAAA;AAEhB,gGAAA,KAAK,OAAA;AACL,kGAAA,OAAO,OAAA;AAkDR,+CAAiE;AAAxD,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAmBpC,6CAAqD;AAA5C,2GAAA,gBAAgB,OAAA;AACzB,+CAS4B;AAR3B,qGAAA,SAAS,OAAA;AACT,kGAAA,MAAM,OAAA;AACN,wGAAA,YAAY,OAAA;AAIZ,iGAAA,KAAK,OAAA;AACL,mGAAA,OAAO,OAAA;AAKR,8EAA8E;AACvE,MAAM,UAAU,GAAG,CAAC,CAAO,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAArG,QAAA,UAAU,cAA2F;AAClH,iGAAiG;AAC1F,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,wCAAwC;AACjC,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAAxG,QAAA,KAAK,SAAmG;AACrH,sCAAsC;AAC/B,MAAM,MAAM,GAAG,CAAC,EAAQ,EAAE,CAAgB,EAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC,CAAC;AAJU,QAAA,MAAM,UAIhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"AAYA,OAAO,EAAwF,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEhI,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKrE,mGAAmG;AACnG,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,eAAe,EACzB,CAAC,EACD,EAAE,SAAS,SAAS,CAAC,CAAC,CAAC,EACvB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,SAAS,CAClB,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,IAAI,IAAI,KAAK,CAAC;IACd,2FAA2F;IAC3F,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACV;QACF,0DAA0D;QAC1D,KAAK,EAAE,KAAK,CAAC;QACb,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AAyH9I;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,KAAK,CAAC,CAAC,SAAS,eAAe,EAC/B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACrE,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,KAAK,EAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"AAYA,OAAO,EAAwF,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEhI,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKrE,mGAAmG;AACnG,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,eAAe,EACzB,CAAC,EACD,EAAE,SAAS,SAAS,CAAC,CAAC,CAAC,EACvB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,SAAS,CAClB,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,IAAI,IAAI,KAAK,CAAC;IACd,2FAA2F;IAC3F,MAAM,CACL,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACV;QACF,0DAA0D;QAC1D,KAAK,EAAE,KAAK,CAAC;QACb,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AAyH9I;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,KAAK,CAAC,CAAC,SAAS,eAAe,EAC/B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACrE,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,KAAK,EAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAC9B,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAqMzG;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,eAAe,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAGpE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/runtime/builder.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/runtime/builder.ts"],"names":[],"mappings":"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"}
|