jaylawl's Snippets

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

jaylawl

Active Member
Jan 29, 2017
173
31
0
33
[Add-on] = Required add-on(s)

__________________________________________________________

randomUUID() function
code_language.skript:
function randomUUID() :: text:
    add "a", "b", "c", "d", "e", "f", "0", "1", "2", "3", "4", "5", "6", "7", "8" and "9" to {_chars::*}
    set {_uuid} to a random element out of {_chars::*}
    loop 35 times:
        if loop-number = 8, 13, 18 or 23:
            set {_uuid} to "%{_uuid}%-"
        else:
            set {_uuid} to "%{_uuid}%%a random element out of {_chars::*}%"
    return {_uuid}

code_language.skript:
set {_uuid} to randomUUID()

reverseNumber() function
code_language.skript:
function reverseNumber(number: number) :: number:
    if {_number} > 0:
        return ({_number} * -1)
    else if {_number} < 0:
        return abs({_number})
    else:
        return 0
code_language.skript:
function reverseNumber(number: number) :: number:
    return ({_number} * -1)

code_language.skript:
set {_x} to reverseNumber(x of victim's velocity)

treeLoop() function
Known bugs:
  • "Detached" branches of the list variable cannot be found, meaning that all branches require a connection. For example: if
    Code:
    {score::player::highscore}
    is set, but the branch
    Code:
    {score::player}
    is missing, the former will not be detected.
The function:
code_language.skript:
function treeLoop(root: text) :: texts:
    loop {%{_root}%::*}:
        add "%{_root}%::%loop-index%" to {_tree::*} and {_new::*}
    while {_new::*} is set:
        loop {_new::*}:
            delete {_new::%loop-index%}
            loop {%loop-value-1%::*}:
                add "%loop-value-1%::%loop-index-2%" to {_tree::*} and {_new::*}
    return {_tree::*}

Example usage:
code_language.skript:
command /treelooptest <text>:
    trigger:
 
        set {%arg 1%::0} to 0
        set {%arg 1%::0::course} to "petrichor"
        set {%arg 1%::0::%command sender%} to "jaylawl"
        set {%arg 1%::0::%command sender%::score} to 999
        set {%arg 1%::0::%command sender%::time} to 1337

        loop treeLoop(arg 1):
            send "&e%loop-value%&f: &a%{%loop-value%}%"
            delete {%loop-value%}
 
        treeLoop(arg 1) is not set
        send "&aCleaned it all up!"

TjOK9G.jpg

Simple Resource-pack watcher [skript-mirror]

code_language.skript:
on "org.bukkit.event.player.PlayerResourcePackStatusEvent":
    set {_player} to event.getPlayer()
    set {_status} to event.getStatus()
    "%{_status}%" = "DECLINED" or "FAILED_DOWNLOAD"
    kick {_player} due to "&c&lResource pack download declined or failed&r"

Will automatically kick all players that either decline the server's resource pack or accept it, but have a failed download of it.

getUUIDMost() / getUUIDLeast() / constructUUID() [skript-mirror]
Code:
code_language.skript:
import:
    java.util.UUID
  
function getUUIDMost(entity: entity) :: integer:
    set {_uuid} to {_entity}.getUniqueId()
    return UUID.getMostSignificantBits({_uuid})
  
function getUUIDLeast(entity: entity) :: integer:
    set {_uuid} to {_entity}.getUniqueId()
    return UUID.getLeastSignificantBits({_uuid})
  
function constructUUID(most: integer, least: integer) :: text:
    return "%new UUID({_most}, {_least})%"

Example usage:
code_language.skript:
command /test:
    trigger:
        set {_most} to getUUIDMost(command sender)
        set {_least} to getUUIDLeast(command sender)
        set {_uuid} to constructUUID({_most}, {_least})
        send "most: %{_most}%"
        send "least: %{_least}%"
        send "uuid: %{_uuid}%"
[doublepost=1534016974,1533480280][/doublepost]Added some UUID related stuff, most importantly allowing to get the Most / Least important bits of an entity's UUID, which are also stored within an entity's NBT data.
 
Last edited:
  • Like
Reactions: Farid