Commit Graph

32 Commits

Author SHA1 Message Date
Alexander Medvedev
d439d5e22e chore: next round of fixes 2026-08-28 22:32:50 +02:00
PigTurtle
9e9f1b5784 refactor: use BlockId in more places (#3090)
* compare BlockId instead of (str) name

* compare named BlockIds in Block::properties() and Block::from_properties()

* compare named BlockIds instead of u16 literals for `impl BlockProperties`
2026-08-28 13:59:50 +02:00
Noël Hagestein
f8932f4f3e feat(inventory): implement lore methods for item stack (#3025) 2026-08-23 16:56:26 +02:00
Alexander Medvedev
89f554ed36 chore: add release ci 2026-08-23 16:22:01 +02:00
Missing_Love
18e9a0c8b8 fix: 1.21.11 joins (#3027) 2026-08-23 13:43:54 +02:00
Alexander Medvedev
df28c321ac feat: basic initial datapack support 2026-08-22 18:56:48 +02:00
Alexander Medvedev
beb6947dfc fix: https://github.com/Pumpkin-MC/Pumpkin/issues/1303 2026-08-22 15:31:58 +02:00
Alexander Medvedev
05f3f8b4f7 feat: 1.7-26.2 client support
this was fucking hard
2026-08-22 10:49:06 +02:00
Alexander Medvedev
80e6fceb08 feat: 1.8 Client support 2026-08-21 16:24:22 +02:00
Alexander Medvedev
c7c8d10d47 feat: more multi version work 2026-08-20 22:39:16 +02:00
Mcxiaocaibug
d654e01e25 feat(command): add /locate structure (#2420)
* feat(command): add /locate structure

Implements /locate structure <name> on top of the existing
find_nearest_structure infrastructure (already used by eyes of ender),
with tab-completion for the known structure sets and vanilla-style
clickable [x, ~, z] teleport coordinates plus horizontal distance in
the success message.

Notes:
- Structure names refer to the generator's structure sets (villages,
  desert_pyramids, ...), optionally prefixed with minecraft:.
- Like the ender-eye path, stronghold (concentric-rings) lookups depend
  on the global structure cache being populated.

Closes #2230

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(command): derive locate suggestions from generated StructureSet::NAMES

Addresses review feedback: the structure set names are now emitted by
pumpkin-codegen alongside StructureSet::ALL instead of being hard coded
in the locate command.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(command): add /locate biome and /locate poi, use ResourceOrTag arguments

Addresses review feedback on the /locate PR:

- New ResourceOrTagKeyArgument / ResourceOrTagArgument types mirroring
  vanilla's argument pair: both parse `id` or `#tag`, the latter also
  validates against the generated registry/tag data at parse time and
  raises vanilla's argument.resource(_tag).not_found errors.
  /locate structure now uses them instead of StringArgument.
- /locate biome: vanilla-parity spiral search (6400 block radius, 32
  block horizontal / 64 block vertical steps) over the dimension's noise
  biome source via the new find_closest_biome_3d in pumpkin-world,
  including the possibleBiomes short-circuit (walked from the BiomeTree)
  and superflat support. Runs on a blocking thread, reports the 3D
  distance and absolute-y clickable coordinates, and appends the
  concretely found biome for tag searches ("#minecraft:is_forest
  (minecraft:forest)"), all like vanilla.
- /locate poi: searches the world's POI storage within 256 blocks via
  the new PoiStorage::find_closest_matching (chebyshev gather, closest
  by 3D distance, like PoiManager.findClosestWithType), with tag
  support from the generated point_of_interest_type tag data.
- Suggestion matching now also treats ':' as a word separator so that
  e.g. "vil" completes to "minecraft:villages".

Notes / limitations:
- There is no generated structure tag or POI type registry data yet, so
  structure "#tags" resolve to the invalid-structure error and POI ids
  are accepted leniently (unknown ones simply report not-found); only
  nether portal POIs are currently recorded by the server.

Closes #2230

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(command): run structure search off the async executor, drop panic on join errors

Review follow-ups on the /locate PR:

- /locate structure now runs its search on spawn_blocking like the
  biome search does; scanning up to 100 regions of placement data is
  just as CPU-bound as the biome spiral.
- Blocking-task join errors (panic/cancellation) are mapped to a
  "search failed" command error instead of panicking the command task
  via .expect.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore(command): adapt /locate to upstream API changes

Rebasing onto master picked up three signature changes: WorldGenerator
gained a Custom variant for plugin generators, BIOME_REGISTRY became a
reference, and Level::world_gen is now an ArcSwap.

Plugin generators only expose biomes by generating a whole chunk, so
/locate biome reports no match for them rather than pretending to
search.

* fix(command): report structures /locate can actually find

/locate structure returned the placement grid's candidate chunk without
checking whether a structure grows there. Candidates are only possible
sites: the biome at one can reject every structure in the set, so the
command happily pointed at empty terrain.

Resolve the structure start for random-spread sets instead, over every
structure the set contains, which is what explorer maps already do.
Strongholds keep using the ring cache, whose positions are real and
which the start lookup does not handle.



Co-authored-by: Mcxiaocaibug <Mcxiaocaibug@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 13:14:55 +02:00
Bluezly
d37ea7d988 fix(plugin): support LpVector3d and boxed byte slices in packet codegen (#2990) 2026-08-20 08:36:51 +02:00
ZlordHUN
f73052c85b feat: Add villager trading and professions (#2408) 2026-08-19 07:27:33 +02:00
Alexander Medvedev
5ef9648362 fix: ci 2026-08-18 22:19:13 +02:00
Alexander Medvedev
ab60adb239 chore: much better tracked_data impl 2026-08-18 18:49:48 +02:00
kedor
47ea95736a feat(command): add summon parameter for execute command and ressourceArgument (#2977)
* adding the summon argument to the execute commands

* fixing issue with the execute command and resources argument
2026-08-18 15:03:31 +02:00
Alexander Medvedev
8ce513ff89 feat: more plugin features 2026-08-16 22:28:01 +02:00
Alexander Medvedev
a72531a7c2 fix: chunk leak 2026-08-16 14:32:10 +02:00
Alexander Medvedev
c13c515081 feat(plugin-api): add entity attributes 2026-08-15 18:45:02 +02:00
Alexander Medvedev
0fe84c75d8 fix: ci 2026-08-15 16:30:25 +02:00
Alexander Medvedev
a2b92e6dc5 chore: some fuzz fixes 2026-08-15 13:35:14 +02:00
Alexander Medvedev
e09e8c529a feat(plugin): add more block entity api stuff 2026-08-14 11:32:50 +02:00
Alexander Medvedev
00cb2f9240 feat(plugin): native bedrock features 2026-08-13 21:23:23 +02:00
Megalith
cb856eb074 fix(block): apply vanilla position offsets to block shapes (#2869)
* fix: apply vanilla position offsets to block shapes

* refactor: use extracted block shape offsets
2026-08-13 18:06:22 +02:00
Alexander Medvedev
f49e29aa3f feat(bedrock): implement Bedrock status effect packet and translation 2026-08-12 21:31:31 +02:00
ZlordHUN
7f6e5d21eb feat(bedrock): add support for vibrant visuals (#2888)
* feat(bedrock): support vibrant visuals biome data

* Use NBT biome definitions for Bedrock

* Pre-generate Bedrock biome definitions

---------

Co-authored-by: Zoltán Virágh <zoltan.viragh@cloudtalk.io>
2026-08-12 12:06:13 +02:00
Alexander Medvedev
1ee7be3f8c chore: add pumpkin_macros::translate_cross! macro
validates translations at compile time, also update bedrock translations to latest 26.40.5
2026-08-10 18:11:00 +02:00
Alexander Medvedev
e5047bd4c9 fix: data component try_from_name 2026-08-08 16:12:56 +02:00
Alexander Medvedev
63d97e2c82 refactor(inventory): replace per-slot Arc<Mutex<ItemStack>> with container-level synchronization 2026-08-07 21:45:05 +02:00
ZlordHUN
f2444bcefd feat(bedrock): update to 1.26.40 and add NetherNet transport (#2797)
* feat(bedrock): update to 1.26.40 and add NetherNet transport

* fix(bedrock): update remaining 1.26.40 packet schemas

* fix(bedrock): complete NetherNet and inventory migration
2026-08-07 08:34:10 +02:00
Alexander Medvedev
f4571a9d63 fix: ci 2026-08-06 13:10:57 +02:00
Alexander Medvedev
cb3660bcd2 chore: move to crates folder 2026-08-06 12:56:40 +02:00