Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Drop the workarounds for 26.2 symbols missing at compile time - #2994

Merged
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit
Aug 15, 2026
Merged

Drop the workarounds for 26.2 symbols missing at compile time#2994
tastybento merged 1 commit into
developfrom
feature/paper-26-2-mockbukkit

Conversation

@tastybento

@tastybentotastybento commented Jun 20, 2026

Copy link
Copy Markdown
Member

What changed

This PR originally moved the build to the literal 26.2 API. That part landed in #3067, so this is now rebased on develop and reduced to the cleanup #3067 did not do:

  • SULFUR_CUBE back to static final in Util, BucketListener and EntityInteractListener, dropping a @SuppressWarnings("java:S3008") from each. They were only non-final so tests could reflectively inject a stand-in — the JVM constant-folds static final fields, which defeated that.
  • The tests lose the trick with it.UtilTest, BucketListenerTest and EntityInteractListenerTest now use EntityType.SULFUR_CUBE directly; the getStaticField / setStaticField helpers and the MAGMA_CUBE stand-ins are gone. Net -87 lines across the three, and the tests assert against the real entity type rather than a proxy for it.
  • .claude/rules/build-toolchain.md corrected. It still described the 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2 coordinate, and said this work was "parked in a draft PR until MockBukkit ships a 26.2 build" — all untrue since Compile against Paper 26.2 now that MockBukkit supports it #3067. That file contradicted the build it documents.

Verification

3462 tests, 0 failures, on the current develop base.

Note on the rebase

The branch was rebuilt on develop rather than merged: the build.gradle.kts version bumps and the three Adventure 5 test fixes this PR carried are already on develop via #3067, so those hunks are dropped and only the above remains. paperVersion stays at 26.2.build.111-stable (what develop has, matching the bundle MockBukkit 4.116.1 was built against) rather than this PR's earlier 112 — the MockBukkit/paper MC line is what has to match, not the build number.

🤖 Generated with Claude Code

https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp

Base automatically changed from feature/paper-26-2-support to developJune 21, 2026 00:37
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 49bc8e3 to 45bcb31CompareAugust 15, 2026 01:00
@tastybento
tastybento marked this pull request as ready for review August 15, 2026 01:00
Now that the build compiles against 26.2 (#3067), EntityType.SULFUR_CUBE
is a real compile-time symbol, so the code that worked around its
absence can go.
The three SULFUR_CUBE fields go back to static final. They were left
non-final, with a Sonar suppression each, only so tests could
reflectively inject a stand-in — the JVM constant-folds static final
fields, which defeated that. The tests no longer need the trick: they
use EntityType.SULFUR_CUBE directly and the getStaticField /
setStaticField helpers and MAGMA_CUBE stand-ins are gone with it.
Also corrects .claude/rules/build-toolchain.md, which still described
the old 26.1.2 compile target, told readers to use the mockbukkit-v26.1.2
coordinate, and said this work was parked in a draft PR.
3462 tests, no failures.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017EZEwab2kL4i1FNnBYvSmp
@tastybento
tastybentoforce-pushed the feature/paper-26-2-mockbukkit branch from 45bcb31 to 5f1e6c6CompareAugust 15, 2026 01:35
@tastybentotastybento changed the title [BLOCKED on MockBukkit 26.2] Compile against literal Minecraft 26.2Drop the workarounds for 26.2 symbols missing at compile timeAug 15, 2026
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 9bfe507 into developAug 15, 2026
3 checks passed
@tastybento
tastybento deleted the feature/paper-26-2-mockbukkit branch August 15, 2026 02:00
@tastybentotastybento mentioned this pull request Aug 16, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento