Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy
, '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

Parse /pay modifiers more strictly - #5638

Merged
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc
Nov 25, 2024
Merged

Parse /pay modifiers more strictly#5638
JRoy merged 17 commits into
EssentialsX:2.xfrom
AjMaacc:ajmaacc

Conversation

@AjMaacc

Copy link
Copy Markdown
Contributor

Information

This PR fixes#5495.

Details

Proposed fix:

This PR fixes half of the issue presented.
It is also more simplistic and a much better approach compared to my previous PR

Instead of checking for the last character in the string -> Character.toLowerCase(ogStr.charAt(ogStr.length() - 1)),
check for the exact modified being use via removing the amount from the string -> ogStr.replace(sanitizedString, "")
If the result of ogStr.replace(sanitizedString, "") is not exactly one of the modifiers, throw an exception (unless an empty string is returned due to a modifier not being present).

Environments tested:

OS: Linux 5.15.0-79-generic

Java version: java 19.0.1

  • Most recent Paper version (1.20.4, git-Paper-408)
  • CraftBukkit/Spigot/Paper 1.12.2
  • CraftBukkit 1.8.8

Demonstration:

@AjMaaccAjMaacc closed this Apr 4, 2024
@mbax

mbax commented Apr 4, 2024

Copy link
Copy Markdown
Member

A two month wait on a large project with busy maintainers? That's nothing to complain about.

@AjMaacc

This comment was marked as abuse.

@pop4959

Copy link
Copy Markdown
Member

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

@AjMaacc

Copy link
Copy Markdown
ContributorAuthor

Is there any specific reason you decided to close this? It looks like this fixes a valid issue.

Well, the longevity of the pr being open. If my pr was still being considered, was overlooked, or any other reason, then I can re-open it.

@AjMaaccAjMaacc reopened this Apr 5, 2024
@pop4959

Copy link
Copy Markdown
Member

Sorry for the delays, most of us have been very busy recently and the bulk of our focus has been on the adventure update (and all of the fallout / bugs following from that, trying to get us into a better place to lean towards a release).

We appreciate your dedication to keeping this up to date, although for the most part unless there are conflicts it should merge cleanly. If there are we'll generally let you know and/or do it ourselves before merging, so please don't worry too much about it especially until we find time to properly review this. Thanks for remaining patient.

@JRoyJRoy added the module: main Issues or PRs for the main Essentials module label Nov 25, 2024
@JRoyJRoy changed the title Check for the specific modifier instead of last char in stringParse /pay modifiers more strictlyNov 25, 2024
@JRoy
JRoy enabled auto-merge (squash) November 25, 2024 02:15
@JRoy

JRoy commented Nov 25, 2024

Copy link
Copy Markdown
Member

Thanks for the contribution :)

@JRoy
JRoy merged commit 3203e97 into EssentialsX:2.xNov 25, 2024
Euphillya added a commit to Euphillya/Essentials-Folia that referenced this pull request Dec 10, 2024
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
Starmism pushed a commit to valence-smp/Essentials that referenced this pull request Jan 8, 2025
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
EssentialsX@1778bf5 Respect per player locale for command descriptions (EssentialsX#5972)
EssentialsX@2418a6f Improvements to Random Teleport (EssentialsX#4271)
EssentialsX@38e42f9 Add argument to /skull to give skull to other player (EssentialsX#5822)
EssentialsX@1af1565 Discord: Add start time placeholder for start message (EssentialsX#5686)
EssentialsX@bea43e8 Fix mini message parsing in NumberUtil#displayCurrency (EssentialsX#5921)
EssentialsX@3203e97 Parse /pay modifiers more strictly (EssentialsX#5638)
EssentialsX@f02eeec Add method to get all linked players in DiscordLinkService (EssentialsX#5896)
EssentialsX@9590d4c Add translation key for /alts output (EssentialsX#5595)
EssentialsX@3f0a412 Add locale based comma support for /pay (EssentialsX#5962)
EssentialsX@57c9edc Add optional requirements for balance top listing (EssentialsX#5394)
EssentialsX@c7cc1b4 Fix respawn-at-anchor setting. (EssentialsX#5825)
EssentialsX@2a41ea0 Add config options for specific chat type formats
EssentialsX@b560bbd Fix actions permissions on PRs for junit reports
EssentialsX@d31ff55 Remove extraneous code in command preprocess event handling
EssentialsX@bc8aa76 Revert removal of InvalidWorldException (EssentialsX#5984)
EssentialsX@d58db0d Update to 1.21.4
EssentialsX@c37064f Add 1.21.4 Mobs
EssentialsX@baa8258 Add 1.21.4 Tree Types
EssentialsX@424816e Add 1.21.4 Items
rewsdjad1 pushed a commit to rewsdjad1/EssentialsXPlus that referenced this pull request Aug 13, 2026
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
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 module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toggle /pay modifiers in config

4 participants

@AjMaacc@mbax@pop4959@JRoy