PaperMC / PaperMC/Paper

TrialSpawnerConfiguration does not play nicely with live blockstates

Open
#11,026 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: accepted type: bug
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Live blockstates do not need to be applied to have their changes reflected in game.
The current TrialSpawnerConfiguration however is a fully copy and does only apply when updating.

To fix this, a new implemented of the interface is needed that re-creates the internal record on every setter call and is used if the block state is not a snapshot.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate TrialSpawnerConfiguration and the block-state interface or implementations it uses; first trace how snapshot and live blockstates are distinguished and how setter calls update the internal record. Done means setters on live blockstates immediately affect the in-game state, while snapshot behavior remains unchanged; check the existing tests around these classes if present.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.