Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
db94ad7
Harden JavaScript placeholder evaluation
BenCodez Aug 24, 2026
813107c
Add safe JavaScript placeholder parser
BenCodez Aug 24, 2026
8bb99ba
Bind placeholders before JavaScript requirements
BenCodez Aug 24, 2026
1fcc831
Bind placeholders before reward JavaScript execution
BenCodez Aug 24, 2026
e65f1e8
Add JavaScript placeholder injection regression tests
BenCodez Aug 24, 2026
b473c30
Prevent placeholder values from creating JavaScript blocks
BenCodez Aug 24, 2026
682163e
Test JavaScript marker neutralization in placeholder values
BenCodez Aug 24, 2026
84c8461
Preserve JavaScript behavior with mocked engines
BenCodez Aug 24, 2026
d7e86bd
Preserve reward JavaScript behavior with mocked engines
BenCodez Aug 24, 2026
2be840b
Fix literal JavaScript marker neutralization
BenCodez Aug 24, 2026
7b67276
Handle template expressions and primitive placeholder values
BenCodez Aug 24, 2026
3759d0f
Preserve brace placeholder compatibility
BenCodez Aug 24, 2026
519f894
Add parser regression coverage from review feedback
BenCodez Aug 24, 2026
6c1d32c
Fix JavaScript placeholder resolver block
BenCodez Aug 24, 2026
abe43c0
Fix template expression placeholder matching
BenCodez Aug 24, 2026
81d6809
Handle comments and nested templates safely
BenCodez Aug 24, 2026
4373528
Test comment and nested template placeholder contexts
BenCodez Aug 24, 2026
ae72815
Handle regex literals in JavaScript placeholder parsing
BenCodez Aug 24, 2026
123177f
Test regex literal placeholder hardening
BenCodez Aug 24, 2026
7fdc9fe
Preserve placeholder values inside regex literals
BenCodez Aug 24, 2026
d3487a9
Test placeholders inside regex literals
BenCodez Aug 24, 2026
167da68
Recognize regex literals after control heads and keywords
BenCodez Aug 24, 2026
26505fd
Test regex detection after control heads and keywords
BenCodez Aug 24, 2026
58fa7b0
Recognize regex literals after statement blocks
BenCodez Aug 24, 2026
3c0533d
Test regex statements after blocks
BenCodez Aug 24, 2026
215802e
Distinguish postfix operators before regex detection
BenCodez Aug 25, 2026
84730f1
Test postfix division placeholder context
BenCodez Aug 25, 2026
3046dc0
Test full-pass JavaScript marker neutralization
BenCodez Aug 25, 2026
0f44375
Neutralize JavaScript markers after placeholder substitution
BenCodez Aug 25, 2026
dedc29b
Apply full-pass placeholder marker hardening
BenCodez Aug 25, 2026
5fee0e8
Neutralize JavaScript markers after placeholder substitution
github-actions[bot] Aug 25, 2026
de082a5
Test full-pass JavaScript marker neutralization
BenCodez Aug 25, 2026
7061974
Apply Codex lexical fixes for PR 293
BenCodez Aug 25, 2026
8285217
Harden JavaScript lexical control tracking
github-actions[bot] Aug 25, 2026
2d45d17
Test authored marker preservation with empty placeholders
BenCodez Aug 25, 2026
ba40d32
Apply Codex block-state fixes for PR 293
BenCodez Aug 25, 2026
d5f96cb
Track statement blocks during JavaScript lexing
BenCodez Aug 25, 2026
de7ddf8
Test lexical statement block detection
BenCodez Aug 25, 2026
b457a19
Remove temporary Codex patch workflow
BenCodez Aug 25, 2026
7128d79
Isolate statement block regression resolver
BenCodez Aug 25, 2026
fb81b86
Encode map values passed through JavaScript markers
BenCodez Aug 25, 2026
b60eb42
Treat labeled JavaScript blocks as statement context
BenCodez Aug 25, 2026
457ebb5
Add focused Codex 293 patch workflow
BenCodez Aug 25, 2026
a4bbbc9
Keep map placeholder values out of JavaScript source
BenCodez Aug 25, 2026
d733b0c
Test map values inside JavaScript markers stay data
BenCodez Aug 25, 2026
88f4090
Test labeled blocks and encoded JavaScript values
BenCodez Aug 25, 2026
ddd05e2
Remove obsolete Codex 293 patch workflow
BenCodez Aug 25, 2026
84fe248
Apply Codex function-expression lexer fix
BenCodez Aug 25, 2026
42d7392
Distinguish function expression bodies from statement blocks
github-actions[bot] Aug 25, 2026
17fc31b
Test additional function expression block contexts
BenCodez Aug 25, 2026
30bee81
Apply latest Codex lexer fixes
BenCodez Aug 25, 2026
a732494
Harden JavaScript lexer keyword and class contexts
BenCodez Aug 25, 2026
b3c1d41
Test latest JavaScript lexer edge cases
BenCodez Aug 25, 2026
1abf4d5
Fix qualified-member regression resolver
BenCodez Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import com.bencodez.advancedcore.api.user.AdvancedCoreUser;
import com.bencodez.simpleapi.messages.MessageAPI;

import me.clip.placeholderapi.PlaceholderAPI;

public class JavascriptEngine {
private HashMap<String, Object> engineAPI;

Expand Down Expand Up @@ -102,6 +104,33 @@ public JavascriptEngine addToEngine(String text, Object ob) {
return this;
}

public String preparePlaceholders(OfflinePlayer player, String expression) {
return preparePlaceholders(player, expression, null);
}

public String preparePlaceholders(OfflinePlayer player, String expression, HashMap<String, String> placeholders) {
if (expression == null || expression.isEmpty()) {
return expression;
}

return JavascriptPlaceholderParser.replace(expression, placeholder -> {
String key = placeholder.substring(1, placeholder.length() - 1);
if (placeholders != null) {
for (Entry<String, String> entry : placeholders.entrySet()) {
if (entry.getKey().equalsIgnoreCase(key)) {
return entry.getValue();
}
}
}

if (placeholder.startsWith("%") && player != null
&& AdvancedCorePlugin.getInstance().isPlaceHolderAPIEnabled()) {
return PlaceholderAPI.setPlaceholders(player, placeholder);
}
return placeholder;
}, this::addToEngine);
}

public void execute(String expression) {
getResult(expression);
}
Expand Down
Loading
Loading