MirrorUtils - useful utilities for Skript
2.0.1Random (and useful) utilities for Skript. Suggestions are welcome.
MirrorUtils
Useful utilities for Skript, based on the addon skript-mirror.
Requirements
- Skript dev36 or more recent
https://github.com/SkriptLang/Skript/releases
- skript-mirror 2.0.0
https://cdn.discordapp.com/attachments/574422264666259466/577680953363791885/skript-mirror_2.0.0.jar
IMPORTANT: make sure that MirrorUtils loads BEFORE your other scripts. To do that, add ! or other characters to the file's name that make it appear on top.
Features
▪ Full text customization. Many features related to random string generation, coloring, reversing and much more.
Spoiler
send rainbow ((trimmed " completely random " in camel case) with case swapped) every 2 characters
▪ RegEx support. Adds many conditions and expressions related to regular expressions to make your life easier.
Spoiler
set {_matcher} to match expr-1 to "([0-9]+)([a-zA-Z]+)"
while {_matcher} has another match:
set {_value} to (current group 1 of {_matcher}) parsed as number
set {_type} to current group 2 of {_matcher}
if {_type} = "year" or "y":
add (31104000 * {_value}) to {_r}▪ Number formatting. Want to convert your number to roman numeral, words, ordinal, properly spaced (1,000,000) or to powers of 10 (k, M, B)? Do it the easy way.
Spoiler
send rainbow (998 to roman numeral) every 1 characters
set {_n} to roman numeral "XXVI" to number
send rainbow "%{_n}%" every 1 characters
send rainbow (number 1945 to words) every 1 characters
send ordinal of 13
send rainbow (compacted 9932144 rounded to 2) every 1 characters▪ Rounding. Round your number with the amount of decimal places you want.
Spoiler
set {_rounded} to round pi to 1▪ {_var}++. Yes, you can add any value to a variable as simple as that.
Spoiler
loop "a", "b" and "c":
{_i}++
set {_list::%{_i}%} to loop-value▪ Top values. Do you need to display the top values of your list variable? It's pretty easy with MirrorUtils.
Spoiler
loop 850 times:
set {_money::%random alphanumeric size 8%} to random integer between 1 and 99999
loop top 10 elements of {_money::*} formatted as "&2<pos>. &f<index> &7has &a$<value>&f.":
send loop-value
▪ Format seconds. Converts seconds to any format you want using DurationFormatUtils.
▪ Time to seconds. Allows you to convert Skript's timespan or strings to seconds, so you can use in your bans script, for example. Formats are [1mo10d4h3m1s].
▪ PI, phi and e. Such can be retrieved easily with these expressions.
Expressions:
Spoiler
String
# NEW LINE
# Used to add a new line to tab headers/footers and messages.
(newline|nl|cr)
# REGEX REPLACE
# Replaces a regular expression in a string with another string.
regex replace %text% with %text% in %texts%
# REGEX SPLIT
# Splits a string using a regular expression.
regex split %texts% at %text%
# MATCHER OF STRING
# Gets the regular expression matcher in a string.
match[er] %text% (to|in|of|with) %text%
# REGEX GROUPS OF MATCHER
# Gets the regular expression groups from a matcher.
# A matcher is obtained from the expression above.
[regex] group[s] %integer% of [matcher] %object%
# SUBTEXT
# Gets the subtext of a string. Exactly like Skript's, but for a single argument
sub(text|string) of %text% (from|char[racter][s]) %integer%
# EXACTLY EQUALS
# Checks if a string is equal to another.
# Case sentitive (only reason for it to be here).
%text% exactly equals [to] %text%
# ARGUMENT AT
# Gets the nth element of texts separated by spaces.
# Useful for on command events.
argument [at] %integer% of %text%
# REPLACER
# Allows you to replace multiple values at once in a string.
# Most useful expression around.
(multi[ple] replace|replacer) [(elements|values)] %texts% with %texts% in %text%
# RANDOM STRING
# Generates a random string with the length specified.
random (1¦alphanumeric|2¦alphabetic|3¦numeric|4¦ascii|5¦graph) [(text|string)] [with] (size|length) %integer%Numbers
# SPACED NUMBER
# Returns a string with formatted number.
spaced %numbers%
# ORDINAL NUMBER
# Gives you the number with proper formatting (1st, 2nd, 3rd... 22nd, 24th)
ordinal [of] %integer%
# SUM PREVIOUS
# Sums all the integers smaller than a number N.
# Useful for shops that increase the price and allow multiple items bought at once.
sum prev[ious] [numbers] of %integer%
# ROUND TO
# Rounds a number to N decimal places.
round %number% to %number% [decimal] [places]
# TOP/LAST ELEMENTS
# Sorts a variable directly and returns a list of texts with the format used.
# Considerably more efficient than any other methods of sorting available in Skript.
(1¦(top|first)|2¦(last)) %integer% (values|elements) of %objects% [formatted] as %text%
# NUMBER TO ROMAN NUMERAL
# Converts a number to a roman numeral.
%number% (to|in) roman [numeral]
# NUMBER TO WORDS
# Converts a number into words.
number %number% (to|in) words
# FORMATTED NUMBER
# Formats a number using symbols to indicate base 10 exponents (k, M, B).
formatted %number% [round[ed] to %-integer%]
# PI
# pi
piTime
# TEXT TO SECONDS
# Parses timespans like 1d10h10s.
# Incredibly useful for temporary bans/mutes...
%text% (to|in) seconds
# FORMAT SECONDS
# Uses an util to change seconds into any format you want.
# Check https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html.
format %number% (into|as) %text%
# CURRENT MILLISECONDS
# Returns the current time, in milliseconds.
[current] m[illi]s[econds]Player
# DURATION OF POTION
# Returns the duration (in seconds) of that potion in an entity.
duration of [potion] [effect] %potiontype% (on|of) %livingentity%
# TIER OF POTION
# Returns the level of the potion applied to an entity.
tier of [potion] [effect] %potiontype% (on|of) %livingentity%Conditions
Spoiler
Text
# REGEX MATCHES
# Checks if a string matches a regular expression.
%texts% [regex] matches %text%Player
# ENTITY HAS POTIONS
# Continues if the entity has those enchants in their respective levels.
%livingentity% has [potion] [effect[s]] %potiontypes% [level[s]] [%-integers%]Effects:
Spoiler
Variables
# i++
# Basically a shortcut for lazy people who don't like to use "set {_n} to {_n} + 1"
# Can also add/remove values that are not 1.
%object%(1¦++|2¦--)[%-number%]EWS (TrademarkTM)
Similar projects
Script →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta