{"id":32444743,"url":"https://github.com/miniplaceholders/expressions-provider","last_synced_at":"2025-10-26T03:55:32.148Z","repository":{"id":136223533,"uuid":"526999871","full_name":"MiniPlaceholders/Expressions-Provider","owner":"MiniPlaceholders","description":"Add MiniPlaceholders placeholders for complex mathematical and text expressions","archived":false,"fork":false,"pushed_at":"2025-10-18T13:38:16.000Z","size":516,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-20T18:45:57.847Z","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"4drian3d","custom":"https://paypal.me/4drian3d"}},"created_at":"2022-08-20T17:50:27.000Z","updated_at":"2025-10-12T07:15:11.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-Provider","commit_stats":null,"previous_names":["sliman4/expressions-expansion","miniplaceholders/expressions-provider"],"tags_count":6,"template":false,"template_full_name":"MiniPlaceholders/Template-Expansion","purl":"pkg:github/MiniPlaceholders/Expressions-Provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiniPlaceholders","download_url":"https://codeload.github.com/MiniPlaceholders/Expressions-Provider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniPlaceholders%2FExpressions-Provider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281055231,"owners_count":26436349,"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-10-26T02:00:06.575Z","response_time":61,"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":"2025-10-26T03:55:31.233Z","updated_at":"2025-10-26T03:55:32.141Z","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-Provider\nAdd MiniPlaceholders placeholders for complex mathematical and text expressions.\n\n## Installation\n- Install MiniPlaceholders\n- Install this project in the mods or plugins folder, depending on the platform you use\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 expressions.properties using our Expression Provider Language (EPL):\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)`.\nSo, `\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`), EPL: `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`), EPL: `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`), EPL: `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`), EPL: `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-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminiplaceholders%2Fexpressions-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminiplaceholders%2Fexpressions-provider/lists"}