{"id":19714541,"url":"https://github.com/miniplaceholders/expressions-expansion","last_synced_at":"2025-08-23T02:17:28.302Z","repository":{"id":136223533,"uuid":"526999871","full_name":"MiniPlaceholders/Expressions-Expansion","owner":"MiniPlaceholders","description":"A MiniPlaceholders placeholder that allows you to modify placeholders","archived":false,"fork":false,"pushed_at":"2025-08-22T18:22:51.000Z","size":474,"stargazers_count":2,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-22T21:01:01.521Z","etag":null,"topics":["miniplaceholders-expansion"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MiniPlaceholders.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"4drian3d","custom":"https://paypal.me/4drian3d"}},"created_at":"2022-08-20T17:50:27.000Z","updated_at":"2023-11-18T20:18:01.000Z","dependencies_parsed_at":"2023-06-01T06:30:35.130Z","dependency_job_id":"b2d5433c-b6b4-47fc-9aa4-35229d26723c","html_url":"https://github.com/MiniPlaceholders/Expressions-Expansion","commit_stats":null,"previous_names":["sliman4/expressions-expansion"],"tags_count":5,"template":false,"template_full_name":"MiniPlaceholders/Template-Expansion","purl":"pkg:github/MiniPlaceholders/Expressions-Expansion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Expansion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Expansion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Expansion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Expansion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiniPlaceholders","download_url":"https://codeload.github.com/MiniPlaceholders/Expressions-Expansion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Expansion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271732362,"owners_count":24811309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["miniplaceholders-expansion"],"created_at":"2024-11-11T22:33:34.745Z","updated_at":"2025-08-23T02:17:28.285Z","avatar_url":"https://github.com/MiniPlaceholders.png","language":"Java","funding_links":["https://github.com/sponsors/4drian3d","https://paypal.me/4drian3d"],"categories":[],"sub_categories":[],"readme":"# Expressions-Expansion\nExpressions Expansion for MiniPlaceholders.\n\n## Placeholders\n### Basic Operations\n- **Addition** | `\u003cexpr_add:n1:n2:...:nX\u003e`\n  - `\u003cexpr_add:5:2:3\u003e` == 10\n- **Subtraction** | `\u003cexpr_sub:n1:n2\u003e`\n  - `\u003cexpr_sub:10:3\u003e` == 7\n- **Multiplication** | `\u003cexpr_mul:n1:n2:...:nX\u003e`\n  - `\u003cexpr_mul:5:2:3:6\u003e` == 180\n- **Division** | `\u003cexpr_div:n1:n2\u003e` \n  - `\u003cexpr_div:10:5\u003e` == 2\n- **Division remainder** `\u003cexpr_mod:n1:n2\u003e`\n  - `\u003cexpr_mod:5:2\u003e` == 1\n- **Negation** | `\u003cexpr_neg:n\u003e`\n  - `\u003cexpr_neg:5\u003e` == -5\n  - `\u003cexpr_neg:-5\u003e` == 5\n### Round\n- **Round down to integer** | `\u003cexpr_floor:n\u003e`\n  - `\u003cexpr_floor:5.05\u003e` == 5\n  - `\u003cexpr_floor:2.9\u003e` == 2\n- **Round to nearest integer** | `\u003cexpr_round:n\u003e` \n  - `\u003cexpr_floor:5.05\u003e` == 5\n  - `\u003cexpr_floor:2.9\u003e` == 3\n- **Round up to integer** | `\u003cexpr_ceil:n\u003e`\n  - `\u003cexpr_floor:5.05\u003e` == 6\n  - `\u003cexpr_floor:2.9\u003e` == 3\n- **Get the lowest-valued number** | `\u003cexpr_min:n1:n2:...:nX\u003e` \n  - `\u003cexpr_min:5:10:15:2:500:9:69\u003e` == 2\n- **Get the highest-valued number** | `\u003cexpr_max:n1:n2:...:nX\u003e`\n  - `\u003cexpr_max:5:10:15:2:500:9:69\u003e` ==  500\n- **A random number from 0 to 1** | `\u003cexpr_random\u003e` | Acts like `\u003cexpr_random:0:1:0.01\u003e`\n  - `\u003cexpr_random\u003e` == 0.15\n- **A random integer from `min` to `max`** | `\u003cexpr_random:min:max\u003e` | Acts like `\u003cexpr_random:min:max:1\u003e`\n  - `\u003cexpr_random:1:100\u003e` == 69\n- **A random number from `min` to `max` with a step of `step`** | `\u003cexpr_random:min:max:step\u003e`\n  - `\u003cexpr_random:50:10:0.25\u003e` == 68.75\n\n### String Operations\n- **Concat strings** | `\u003cexpr_concat:s1:s2:...:sN\u003e`\n  - `\u003cexpr_concat:hello:_:world\u003e` == \"hello_world\"\n- **Create a substring of `s` from `n1` to `n2` character** | `\u003cexpr_substring:s:n1:n2\u003e`\n  - `\u003cexpr_substring:hello:2:4\u003e` == \"ll\"\n- **Get length of the string** | `\u003cexpr_length:s\u003e`\n  - `\u003cexpr_length:hello\u003e` == 5\n- **Format a string using [Java String.format()](https://www.javatpoint.com/java-string-format)** | `\u003cexpr_format:format:arg1:arg2:...:argX\u003e`\n | *It may be useful for [user expressions](#User-expressions)*\n  - `\u003cexpr_format:'%s is not a %s':4drian3d:fruit\u003e` == \"4drian3d is not a fruit\"\n- **Displays `r1` if `o1` and `o2` are same. Otherwise, displays `rs`** | `\u003cexpr_if:o1:o2:r1:r2\u003e`\n  - `\u003cexpr_if:1:2:Equals:NotEquals\u003e` == \"NotEquals\"\n- **Sets `text` placeholders for a player with `uuid`.** | `\u003cexpr_player:uuid:text\u003e`\n  - `\u003cexpr_player:4drian3dUUID:\u003cplayer_name\u003e\u003e` == 4drian3d\n- **Sets `text` placeholders for a player with `name`.** | `\u003cexpr_player:name:text\u003e`\n  - `\u003cexpr_player:4drian3d:\u003cplayer_ping\u003e\u003e` == 42\n- **Expand to a [User expression](#User-expressions)** | `\u003cexpr_user:name:arg1:arg2:...:argX\u003e`\n\n## User expressions\nYou can create your own expression shortcut in config.yml using our Expression Expansion Language (EEL):\n\n`add_and_multiply: \"\u003cexpr_add:'\u003carg1\u003e':'\u003cexpr_mul:\\\\'\u003carg2\u003e\\\\':\\\\'\u003carg3\u003e\\\\'\u003e'\u003e\"` means `\u003cexpr_user:add_and_multiply:arg1:arg2:arg3\u003e` will be evaluated to `arg1 + (arg2 * arg3)`. So, `\u003cexpr_user:add_and_multiply:2:3:4\u003e` evaluates to `\u003cexpr_add:2:'\u003cexpr_mul:3:4\u003e'\u003e`, which is `2 + (3 * 4) = 14`\n\n### Example user expressions\n- `\u003cexpr_user:remove_first:s:n\u003e` - Remove `n` first characters from `s` (`hello`, `2` -\u003e `llo`), EEL: `  remove_first: \"\u003cexpr_substring:'\u003carg1\u003e':'\u003carg2\u003e':'\u003cexpr_length:\\\\'\u003carg1\u003e\\\\'\u003e'\u003e\"`\n- `\u003cexpr_user:remove_last:s:n\u003e` - Remove `n` last characters from `s` (`hello`, `2` -\u003e `hel`), EEL: `remove_last: \"\u003cexpr_substring:'\u003carg1\u003e':0:'\u003cexpr_sub:\\\\'\u003cexpr_length:\\\\\\\\\\\\'\u003carg1\u003e\\\\\\\\\\\\'\u003e\\\\':\\\\'\u003carg2\u003e\\\\'\u003e'\u003e\"`\n- `\u003cexpr_user:decimals:n:decimals\u003e` - format a number (`1.234567`, `2` -\u003e `1.23`), EEL: `decimals: \"\u003cexpr_format:'\u003cexpr_concat:\\\\'%.0\\\\':\\\\'\u003carg2\u003e\\\\':\\\\'f\\\\'\u003e':'\u003carg1\u003e'\u003e\"`\n- `\u003cexpr_user:pad_integer:n:length\u003e` - pad an integer with zeros (`12`, `3` -\u003e `012`), EEL: `pad_integer: \"\u003cexpr_format:'\u003cexpr_concat:\\\\'%0\\\\':\\\\'\u003carg1\u003e\\\\':\\\\'d\\\\'\u003e':'\u003carg2\u003e'\u003e\"`\n\n## Nesting\nExpressions can be nested. Try `/miniplaceholders parse me \"\u003cexpr_add:1:'\u003cexpr_add:1:\\\\'\u003cexpr_add:1:\\\\\\\\\\\\'\u003cexpr_add:1:\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\u003cexpr_add:1:0\u003e\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\u003e\\\\\\\\\\\\'\u003e\\\\'\u003e'\u003e\"`\n\n## Downloads\n[![](https://raw.githubusercontent.com/Prospector/badges/master/modrinth-badge-72h-padded.png)](https://modrinth.com/plugin/expressions-expansion)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminiplaceholders%2Fexpressions-expansion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminiplaceholders%2Fexpressions-expansion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminiplaceholders%2Fexpressions-expansion/lists"}