Expressions Provider
Add MiniPlaceholders placeholders for complex mathematical and text expressions
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Expressions Provider
Expressions-Provider
Add MiniPlaceholders placeholders for complex mathematical and text expressions.
Installation
- Install MiniPlaceholders - Install this project in the mods or plugins folder, depending on the platform you use
Placeholders
Basic Operations
- Negation | `<expr_add:n1:n2:...:nX>` - `<expr_add:5:2:3>` == 10 - Negation | `<expr_sub:n1:n2>` - `<expr_sub:10:3>` == 7 - Negation | `<expr_mul:n1:n2:...:nX>` - `<expr_mul:5:2:3:6>` == 180 - Negation | `<expr_div:n1:n2>` - `<expr_div:10:5>` == 2 - Negation `<expr_mod:n1:n2>` - `<expr_mod:5:2>` == 1 - Negation | `<expr_neg:n>` - `<expr_neg:5>` == -5 - `<expr_neg:-5>` == 5
Round
- A random number from `min` to `max` with a step of `step` | `<expr_floor:n>` - `<expr_floor:5.05>` == 5 - `<expr_floor:2.9>` == 2 - A random number from `min` to `max` with a step of `step` | `<expr_round:n>` - `<expr_floor:5.05>` == 5 - `<expr_floor:2.9>` == 3 - A random number from `min` to `max` with a step of `step` | `<expr_ceil:n>` - `<expr_floor:5.05>` == 6 - `<expr_floor:2.9>` == 3 - A random number from `min` to `max` with a step of `step` | `<expr_min:n1:n2:...:nX>` - `<expr_min:5:10:15:2:500:9:69>` == 2 - A random number from `min` to `max` with a step of `step` | `<expr_max:n1:n2:...:nX>` - `<expr_max:5:10:15:2:500:9:69>` == 500 - A random number from `min` to `max` with a step of `step` | `<expr_random>` | Acts like `<expr_random:0:1:0.01>` - `<expr_random>` == 0.15 - A random number from `min` to `max` with a step of `step` | `<expr_random:min:max>` | Acts like `<expr_random:min:max:1>` - `<expr_random:1:100>` == 69 - A random number from `min` to `max` with a step of `step` | `<expr_random:min:max:step>` - `<expr_random:50:10:0.25>` == 68.75
String Operations
- Expand to a %%MD2%% | `<expr_concat:s1:s2:...:sN>` - `<expr_concat:hello:_:world>` == "hello_world" - Expand to a %%MD2%% | `<expr_substring:s:n1:n2>` - `<expr_substring:hello:2:4>` == "ll" - Expand to a %%MD2%% | `<expr_length:s>` - `<expr_length:hello>` == 5 - Expand to a %%MD2%% | `<expr_format:format:arg1:arg2:...:argX>` | *It may be useful for %%MD1%%* - `<expr_format:'%s is not a %s':4drian3d:fruit>` == "4drian3d is not a fruit" - Expand to a %%MD2%% | `<expr_if:o1:o2:r1:r2>` - `<expr_if:1:2:Equals:NotEquals>` == "NotEquals" - Expand to a %%MD2%% | `<expr_player:uuid:text>` - `<expr_player:4drian3dUUID:<player_name>>` == 4drian3d - Expand to a %%MD2%% | `<expr_player:name:text>` - `<expr_player:4drian3d:<player_ping>>` == 42 - Expand to a %%MD2%% | `<expr_user:name:arg1:arg2:...:argX>`
User expressions
You can create your own expression shortcut in expressions.properties using our Expression Provider Language (EPL):
`add_and_multiply=<expr_add:"<arg1>":"<expr_mul:'<arg2>':'<arg3>'>">` means `<expr_user:add_and_multiply:arg1:arg2:arg3>` will be evaluated to `arg1 + (arg2 * arg3)`. So, `<expr_user:add_and_multiply:2:3:4>` evaluates to `<expr_add:2:'<expr_mul:3:4>'>`, which is `2 + (3 * 4) = 14`
Example user expressions
- `<expr_user:remove_first:s:n>` - Remove `n` first characters from `s` (`hello`, `2` -> `llo`), EPL: `remove_first=<expr_substring:"<arg1>":"<arg2>":"<expr_length:'<arg1>'>">` - `<expr_user:remove_last:s:n>` - Remove `n` last characters from `s` (`hello`, `2` -> `hel`), EPL: `remove_last=<expr_substring:"<arg1>":0:"<expr_sub:'<expr_length:"<arg1>">':'<arg2>'>">` - `<expr_user:decimals:n:decimals>` - format a number (`1.234567`, `2` -> `1.23`), EPL: `decimals=<expr_format:"<expr_concat:'%.0':'<arg2>':'f'>":"<arg1>">` - `<expr_user:pad_integer:n:length>` - pad an integer with zeros (`12`, `3` -> `012`), EPL: `pad_integer=<expr_format:"<expr_concat:'%0':'<arg1>':'d'>":"<arg2>">`
Nesting
Expressions can be nested. Try `/miniplaceholders parse me <expr_add:1:"<expr_add:1:'<expr_add:1:"<expr_add:1:'<expr_add:1:0>'>">'>">`

