lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

@YellowZaki@BONNe@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} 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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

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

lore-length readded + Ability to set some GUI default colors - #340

Closed
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop
Closed

lore-length readded + Ability to set some GUI default colors#340
YellowZaki wants to merge 1 commit into
BentoBoxWorld:developfrom
YellowZaki:develop

Conversation

@YellowZaki

Copy link
Copy Markdown

I think lore-length was a great addition. I know it was removed because of problems with some languages. That's why I've made it to be disabled if the user changes it to -1.

I've also added the ability to use default colors for challenge description text and rewards text. When you have a lot of challenges it is very tedious to start every text with the same color.

Tested and working.

 challenge:
# The main part that generates description text.
# [description] comes from challenge.description
lore: |-
[description]
[status]
[cooldown]
[requirements]
[rewards]
description:
# Formatting applied to description text ([description])
color: '&b'
rewards:
# [text] comes from challenge.rewardText and challenge.repeatRewardText
lore: |-
&7&l Rewards:
[text]
[items]
[experience]
[money]
[commands]
# Formatting applied to reward text ([text])
text-color: '&b'

@BONNe

BONNe commented May 23, 2024

Copy link
Copy Markdown
Member

hmm, but you can do it with description itself.
the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time.
The only I issue what I see is that it is not obvious that text will be split in that case.

@YellowZaki

Copy link
Copy Markdown
Author

hmm, but you can do it with description itself. the reason it was removed was because it is not necessary....

The description of challenge:

&7line 1
&7Line 2
&7 line 3 with any length you want

This only makes sense, if users create description like:

&7 I will put everything in single line and hope it will be ok. Not sure why tho...

What I would suggest is to split the description text on saving/loading instead of parsing time. The only I issue what I see is that it is not obvious that text will be split in that case.

I know that you can create multiline descriptions by manually splitting the text. But it is not convenient. You have to manually split it which takes time. By automatically adjusting it, it saves lot of time.

@tastybento

Copy link
Copy Markdown
Member

Thanks for this, @YellowZaki, and apologies it sat so long.

Since this was opened, Challenges migrated its locales and panels to MiniMessage, and that unfortunately breaks the approach here:

  • The lore wrapping (WordUtils.wrap + ChatColor.getLastColors) treats MiniMessage tags like <gray> as visible characters, so it wraps in the wrong place and can split a tag across two lines. getLastColors also only understands legacy § codes, so it can't carry a MiniMessage colour to the next line.
  • The &b colour prefix is a legacy code; it won't render through the MiniMessage pipeline (it needs a <...> tag or a hex code that Util.translateColorCodes understands). BentoBox now also preserves per-line colour for legacy codes itself, so that part is largely handled upstream already.
  • lore-length: 25 as a default reintroduces the wrapping problems in space-less languages (CJK) that got it removed originally — the -1 opt-out doesn't help anyone who leaves the default.

On top of that it now conflicts across CommonPanel/Settings/config.yml/en-US.yml, so it'd need a rewrite rather than a rebase.

The default text colour idea is genuinely useful though — it's tedious to prefix every challenge's text with the same colour — so I'm going to re-add just that part, implemented to work with the current pipeline, and I'll link the new PR here. Closing this one; thanks again for the idea and the original work.

@tastybento

Copy link
Copy Markdown
Member

Follow-up: the default text-colour feature is re-added, MiniMessage-native, in #418 (description-color / reward-text-color under gui-settings). Thanks again @YellowZaki.

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.

3 participants

@YellowZaki@BONNe@tastybento