Skip to content

Fix incorrect container setChanged() called in optimized hopper patch - #14269

Merged
Doc94 merged 5 commits into
PaperMC:mainfrom
Suisuroru:fix/hopper-logic
Oct 3, 2026
Merged

Doc94 merged 5 commits into
PaperMC:mainfrom
Suisuroru:fix/hopper-logic

Conversation

@Suisuroru

@Suisuroru Suisuroru commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Vanllia logic not always call the whole contain's setChanged(), instead, when it happened to CompoundContainer, they only called the block which the hopper try to pull(which the item's owner container) when the hopper is full(not the whole container,only the direct container).

A simple test is as follows, The hopper minecart is full with items.
image

put a item to the chest, then place a block above one of the chest. One of redstone comparator should be not activated and another still activated.

@Suisuroru
Suisuroru requested a review from a team as a code owner September 16, 2026 18:13
@github-project-automation github-project-automation Bot moved this to Awaiting review in Paper PR Queue Sep 16, 2026
# Conflicts:
#	paper-server/patches/features/0034-Optimize-Hoppers.patch
@Suisuroru Suisuroru changed the title Fix some block update logic in hopper optimize fix incorrort container setChanged() called in opmized hopper patch Sep 24, 2026
@kennytv

kennytv commented Sep 26, 2026

Copy link
Copy Markdown
Member

In Vanilla singleplayer, I also get both comparators lighting up

@Suisuroru

Copy link
Copy Markdown
Contributor Author

In Vanilla singleplayer, I also get both comparators lighting up

Maybe my description was a bit misleading. I uploaded a video of my actual test, and the original performance should be as shown in the video.

2026-09-27.00-26-20.1.mp4

But the paper didn't actually perform like that, comparators always off after the block placed.

2026-09-27.00-42-15.mp4

Comment thread paper-server/patches/features/0034-Optimize-Hoppers.patch Outdated
@Doc94 Doc94 changed the title fix incorrort container setChanged() called in opmized hopper patch Fix incorrect container setChanged() called in optimized hopper patch Sep 28, 2026
@Doc94
Doc94 merged commit ddb45eb into PaperMC:main Oct 3, 2026
2 checks passed
WinPlay02 added a commit to WoMa-Entertainment/Icicle that referenced this pull request Oct 5, 2026
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@288d43e1 Add getInstrument method to BlockType PaperMC/Paper#14251
PaperMC/Paper@6bc56abc Add `throws CommandSyntaxException` to BasicCommand PaperMC/Paper#14339
PaperMC/Paper@a9d03827 Fix startup crash using autoEnableOnServerStart in plugin-provided datapacks PaperMC/Paper#14238
PaperMC/Paper@ddb45eb4 Fix incorrect container setChanged() called in optimized hopper patch PaperMC/Paper#14269
PaperMC/Paper@60c8e563 Force absolute positions for item frames
PaperMC/Paper@1d254ec4 Fix adding entities with api with already valid passengers PaperMC/Paper#14336
PaperMC/Paper@371c96aa Fix username duplication in chat when defaultRenderer is explicitly set PaperMC/Paper#13868
PaperMC/Paper@6e88e469 Fix possible CME race conditions for post effects PaperMC/Paper#14335
PaperMC/Paper@1a7b6265 Bump JLine to 4.4.6, drop JNI backend as Paper compiles to Java 25 PaperMC/Paper#14323
PaperMC/Paper@1dbde610 Make test block codec conditional
PaperMC/Paper@780818ff  Clear bucket empty event result when fluid placement fails PaperMC/Paper#14345
PaperMC/Paper@2de3a930 Fix silent ignore of Block#getState(boolean) parameter PaperMC/Paper#14341
PaperMC/Paper@65c408ad Don't remove player twice when disconnected during config switch PaperMC/Paper#14346
PaperMC/Paper@4728a906 Fix bundle contents corruption with item obfuscation and shelves PaperMC/Paper#14352
granny added a commit to PurpurMC/Purpur that referenced this pull request Oct 6, 2026
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@288d43e1 Add getInstrument method to BlockType PaperMC/Paper#14251
PaperMC/Paper@6bc56abc Add `throws CommandSyntaxException` to BasicCommand PaperMC/Paper#14339
PaperMC/Paper@a9d03827 Fix startup crash using autoEnableOnServerStart in plugin-provided datapacks PaperMC/Paper#14238
PaperMC/Paper@ddb45eb4 Fix incorrect container setChanged() called in optimized hopper patch PaperMC/Paper#14269
PaperMC/Paper@60c8e563 Force absolute positions for item frames
PaperMC/Paper@1d254ec4 Fix adding entities with api with already valid passengers PaperMC/Paper#14336
PaperMC/Paper@371c96aa Fix username duplication in chat when defaultRenderer is explicitly set PaperMC/Paper#13868
PaperMC/Paper@6e88e469 Fix possible CME race conditions for post effects PaperMC/Paper#14335
PaperMC/Paper@1a7b6265 Bump JLine to 4.4.6, drop JNI backend as Paper compiles to Java 25 PaperMC/Paper#14323
PaperMC/Paper@1dbde610 Make test block codec conditional
PaperMC/Paper@780818ff  Clear bucket empty event result when fluid placement fails PaperMC/Paper#14345
PaperMC/Paper@2de3a930 Fix silent ignore of Block#getState(boolean) parameter PaperMC/Paper#14341
PaperMC/Paper@65c408ad Don't remove player twice when disconnected during config switch PaperMC/Paper#14346
PaperMC/Paper@4728a906 Fix bundle contents corruption with item obfuscation and shelves PaperMC/Paper#14352
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Merged

Development

Successfully merging this pull request may close these issues.

4 participants