') + ')', '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('^' + ".*" + ', '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" + ', '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('^' + ".*" + ', '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); } })(); })(); Fix /book command on 1.20+ by JRoy · Pull Request #6064 · EssentialsX/Essentials · GitHub
Skip to content

Fix /book command on 1.20+ - #6064

Merged
JRoy merged 3 commits into
EssentialsX:2.xfrom
JRoy:fix/6030
Feb 23, 2025
Merged

Fix /book command on 1.20+#6064
JRoy merged 3 commits into
EssentialsX:2.xfrom
JRoy:fix/6030

Conversation

@JRoy

@JRoyJRoy commented Feb 23, 2025

Copy link
Copy Markdown
Member

Starting with 1.20, there are two different type of book metas, one for writeable and another for written. Since they are different types, the server silently rejects the setItemMeta call. Just copy over the relevant parts to the new meta.

Fixes#6030

Starting with 1.20, there are two different type of book metas, one for writeable and another for written. Since they are different types, the server silently rejects the setItemMeta call. Just copy over the relevant parts to the new meta.
@JRoyJRoy added type: bugfix PRs that fix bugs in EssentialsX. module: main Issues or PRs for the main Essentials module labels Feb 23, 2025
@JRoyJRoy added this to the 2.21.0 milestone Feb 23, 2025
@JRoy
JRoy enabled auto-merge (squash) February 23, 2025 22:04
@JRoy
JRoy merged commit bad79b7 into EssentialsX:2.xFeb 23, 2025
@JRoy
JRoy deleted the fix/6030 branch February 23, 2025 22:08
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Mar 1, 2025
EssentialsX@196a2a1 Fix startup issue with potion providers (EssentialsX#6055)
EssentialsX@8313d52 Add config for use of Paper chat events (EssentialsX#6050)
EssentialsX@3025ba5 Fix NPE when chat messages are canceled
EssentialsX@5a839c4 Fix modifying messages with Paper chat events
EssentialsX@e3e247d Add discord module support for Paper's chat events (EssentialsX#5908)
EssentialsX@263dab5 Fix spawn command sending message before teleportation (EssentialsX#6025)
EssentialsX@f5efa26 Fix per-world flight permissions
EssentialsX@1ff24cb Use an identity map for Paper chat listener (EssentialsX#6067)
EssentialsX@bad79b7 Fix /book command on 1.20+ (EssentialsX#6064)
EssentialsX@5458241 Fix expired mails showing as unread on join (EssentialsX#6063)
EssentialsX@fe27182 New Crowdin updates (EssentialsX#6037)
EssentialsX@ba5257c Fix translation error in EssentialsSign#getItemStack
EssentialsX@e49021f Fix item overflow issue with kits & trade signs
EssentialsX@b5748eb Update various dependencies (EssentialsX#6078)
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module: mainIssues or PRs for the main Essentials moduletype: bugfixPRs that fix bugs in EssentialsX.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/book is not working properly

2 participants

@JRoy@mdcfe