Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,33 @@
# Simple-UUID
Simple UUID library for minecraft

This project is a modified version of the original project created by [Gibbsly](https://github.com/gibbsly).


## Usage
### Convert UUID into hex UUID

```mcfunction
function su:convert {UUID:[I;-586860320,-833010336,-1878233485,2119000659]}
data get storage su:main out
```
```
Result: dd0538e0-ce59-4560-900c-6e737e4d6253
```

### Convert Player UUID into hex UUID

```mcfunction
execute as @p run function su:convert with entity @s
data get storage su:main out
```

### Convert hex UUID into UUID

```mcfunction
function su:convert {hex:"dd0538e0-ce59-4560-900c-6e737e4d6253"}
data get storage su:main out
```
```
Result: [I;-586860320,-833010336,-1878233485,2119000659]
```
5 changes: 5 additions & 0 deletions Simple-UUID/data/minecraft/tags/functions/load.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"values": [
"su:zzz/load"
]
}
37 changes: 37 additions & 0 deletions Simple-UUID/data/su/functions/convert.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
data merge storage su:temp {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,a:0,b:0,c:0,d:0,e:0,f:0}
$data modify storage su:main in set value $(UUID)

execute store result score 0= su.main store result score 1= su.main run data get storage su:main in[0]
execute store result storage su:temp 0 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 1 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp 2 int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp 3 int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main store result score 1= su.main run data get storage su:main in[1]
execute store result storage su:temp 4 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 5 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp 6 int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp 7 int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main store result score 1= su.main run data get storage su:main in[2]
execute store result storage su:temp 8 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 9 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp a int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp b int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main store result score 1= su.main run data get storage su:main in[3]
execute store result storage su:temp c int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp d int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp e int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp f int 1 run scoreboard players operation 3= su.main /= 256 su.num

function su:zzz/get_hexes with storage su:temp
function su:zzz/concat_uuid with storage su:temp
37 changes: 37 additions & 0 deletions Simple-UUID/data/su/functions/generate.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
data merge storage su:temp {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,a:0,b:0,c:0,d:0,e:0,f:0}
execute unless score @s su.uuid.0 matches -2147483648.. run function su:zzz/store_uuid

execute store result score 0= su.main run scoreboard players operation 1= su.main = @s su.uuid.0
execute store result storage su:temp 0 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 1 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp 2 int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp 3 int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main run scoreboard players operation 1= su.main = @s su.uuid.1
execute store result storage su:temp 4 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 5 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp 6 int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp 7 int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main run scoreboard players operation 1= su.main = @s su.uuid.2
execute store result storage su:temp 8 int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp 9 int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp a int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp b int 1 run scoreboard players operation 3= su.main /= 256 su.num

execute store result score 0= su.main run scoreboard players operation 1= su.main = @s su.uuid.3
execute store result storage su:temp c int 1 run scoreboard players operation 0= su.main %= 256 su.num
execute store result score 2= su.main run scoreboard players operation 1= su.main /= 256 su.num
execute store result storage su:temp d int 1 run scoreboard players operation 1= su.main %= 256 su.num
execute store result score 3= su.main run scoreboard players operation 2= su.main /= 256 su.num
execute store result storage su:temp e int 1 run scoreboard players operation 2= su.main %= 256 su.num
execute store result storage su:temp f int 1 run scoreboard players operation 3= su.main /= 256 su.num

function su:zzz/get_hexes with storage su:temp
function su:zzz/concat_uuid with storage su:temp
141 changes: 141 additions & 0 deletions Simple-UUID/data/su/functions/hex_to_uuid.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
$data modify storage su:main in set value $(hex)
data merge storage su:main {out:[I;0,0,0,0]}

# f1edc5b3-756e-4700-7a79-3a3285872bc8

# convert hex uuid into signed int
# f1edc5b3-756e-4700-7a79-3a3285872bc8 -> -236075597 1970161408 2054765106 -2054739000


# reset scoreboard
# scoreboard players set %int su.main 0

# copy hex char
# data modify storage su:temp hex.char set string storage su:main in 0 1

# set power multiplier
# data modify storage su:temp hex.power set value "7"

# convert hex to int and multiply by power of 16 and add to sum
# function su:skubiak/sum_hex with storage su:temp hex


# f1edc5b3 -> -236075597
scoreboard players set %int su.main 0
data modify storage su:temp hex.char set string storage su:main in 0 1
data modify storage su:temp hex.power set value "7"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 1 2
data modify storage su:temp hex.power set value "6"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 2 3
data modify storage su:temp hex.power set value "5"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 3 4
data modify storage su:temp hex.power set value "4"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 4 5
data modify storage su:temp hex.power set value "3"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 5 6
data modify storage su:temp hex.power set value "2"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 6 7
data modify storage su:temp hex.power set value "1"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 7 8
data modify storage su:temp hex.power set value "0"
function su:skubiak/sum_hex with storage su:temp hex

execute store result storage su:main out[0] int 1 run scoreboard players get %int su.main


# 756e4700 -> 1970161408
scoreboard players set %int su.main 0
data modify storage su:temp hex.char set string storage su:main in 9 10
data modify storage su:temp hex.power set value "7"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 10 11
data modify storage su:temp hex.power set value "6"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 11 12
data modify storage su:temp hex.power set value "5"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 12 13
data modify storage su:temp hex.power set value "4"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 14 15
data modify storage su:temp hex.power set value "3"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 15 16
data modify storage su:temp hex.power set value "2"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 16 17
data modify storage su:temp hex.power set value "1"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 17 18
data modify storage su:temp hex.power set value "0"
function su:skubiak/sum_hex with storage su:temp hex

execute store result storage su:main out[1] int 1 run scoreboard players get %int su.main


# 7a793a32 -> 2054765106
scoreboard players set %int su.main 0
data modify storage su:temp hex.char set string storage su:main in 19 20
data modify storage su:temp hex.power set value "7"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 20 21
data modify storage su:temp hex.power set value "6"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 21 22
data modify storage su:temp hex.power set value "5"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 22 23
data modify storage su:temp hex.power set value "4"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 24 25
data modify storage su:temp hex.power set value "3"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 25 26
data modify storage su:temp hex.power set value "2"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 26 27
data modify storage su:temp hex.power set value "1"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 27 28
data modify storage su:temp hex.power set value "0"
function su:skubiak/sum_hex with storage su:temp hex

execute store result storage su:main out[2] int 1 run scoreboard players get %int su.main


# 85872bc8 -> -2054739000
scoreboard players set %int su.main 0
data modify storage su:temp hex.char set string storage su:main in 28 29
data modify storage su:temp hex.power set value "7"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 29 30
data modify storage su:temp hex.power set value "6"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 30 31
data modify storage su:temp hex.power set value "5"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 31 32
data modify storage su:temp hex.power set value "4"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 32 33
data modify storage su:temp hex.power set value "3"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 33 34
data modify storage su:temp hex.power set value "2"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 34 35
data modify storage su:temp hex.power set value "1"
function su:skubiak/sum_hex with storage su:temp hex
data modify storage su:temp hex.char set string storage su:main in 35 36
data modify storage su:temp hex.power set value "0"
function su:skubiak/sum_hex with storage su:temp hex

execute store result storage su:main out[3] int 1 run scoreboard players get %int su.main

9 changes: 9 additions & 0 deletions Simple-UUID/data/su/functions/skubiak/add_int.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# set %tmp to int and multiply by power
$scoreboard players set %tmp su.main $(int)
$scoreboard players operation %tmp su.main *= $(power) su.num

#add %tmp to %int
scoreboard players operation %int su.main += %tmp su.main

#debug
#$say char: $(char), power: $(power), +int: $(int)
5 changes: 5 additions & 0 deletions Simple-UUID/data/su/functions/skubiak/sum_hex.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#convert hex char to int
$data modify storage su:temp hex.int set from storage su:main int_chars.$(char)

#multiply int by power of 16 and add to sum
function su:skubiak/add_int with storage su:temp hex
1 change: 1 addition & 0 deletions Simple-UUID/data/su/functions/zzz/concat_uuid.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$data modify storage su:main out set value "$(3)$(2)$(1)$(0)-$(7)$(6)-$(5)$(4)-$(b)$(a)-$(9)$(8)$(f)$(e)$(d)$(c)"
16 changes: 16 additions & 0 deletions Simple-UUID/data/su/functions/zzz/get_hexes.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$data modify storage su:temp 0 set from storage su:main hex_chars[$(0)]
$data modify storage su:temp 1 set from storage su:main hex_chars[$(1)]
$data modify storage su:temp 2 set from storage su:main hex_chars[$(2)]
$data modify storage su:temp 3 set from storage su:main hex_chars[$(3)]
$data modify storage su:temp 4 set from storage su:main hex_chars[$(4)]
$data modify storage su:temp 5 set from storage su:main hex_chars[$(5)]
$data modify storage su:temp 6 set from storage su:main hex_chars[$(6)]
$data modify storage su:temp 7 set from storage su:main hex_chars[$(7)]
$data modify storage su:temp 8 set from storage su:main hex_chars[$(8)]
$data modify storage su:temp 9 set from storage su:main hex_chars[$(9)]
$data modify storage su:temp a set from storage su:main hex_chars[$(a)]
$data modify storage su:temp b set from storage su:main hex_chars[$(b)]
$data modify storage su:temp c set from storage su:main hex_chars[$(c)]
$data modify storage su:temp d set from storage su:main hex_chars[$(d)]
$data modify storage su:temp e set from storage su:main hex_chars[$(e)]
$data modify storage su:temp f set from storage su:main hex_chars[$(f)]
24 changes: 24 additions & 0 deletions Simple-UUID/data/su/functions/zzz/load.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# add scoreboards
scoreboard objectives add su.main dummy
scoreboard objectives add su.uuid.0 dummy
scoreboard objectives add su.uuid.1 dummy
scoreboard objectives add su.uuid.2 dummy
scoreboard objectives add su.uuid.3 dummy
scoreboard objectives add su.num dummy

#Setup hex_chars and int_chars in storage su:main
data modify storage su:main hex_chars set value ["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"]
data modify storage su:main int_chars set value {0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",a:"10",b:"11",c:"12",d:"13",e:"14",f:"15"}

#su.number for dividing uuid
scoreboard players set 256 su.num 256

#su.numbers matching power of 16
scoreboard players set 7 su.num 268435456
scoreboard players set 6 su.num 16777216
scoreboard players set 5 su.num 1048576
scoreboard players set 4 su.num 65536
scoreboard players set 3 su.num 4096
scoreboard players set 2 su.num 256
scoreboard players set 1 su.num 16
scoreboard players set 0 su.num 1
5 changes: 5 additions & 0 deletions Simple-UUID/data/su/functions/zzz/store_uuid.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data modify storage su:main in set from entity @s UUID
execute store result score @s su.uuid.0 run data get storage su:main in[0]
execute store result score @s su.uuid.1 run data get storage su:main in[1]
execute store result score @s su.uuid.2 run data get storage su:main in[2]
execute store result score @s su.uuid.3 run data get storage su:main in[3]
4 changes: 2 additions & 2 deletions Simple-UUID/pack.mcmeta
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"pack": {
"pack_format": 48,
"supported_formats": {
"min_inclusive": 48,
"max_inclusive": 57
"min_inclusive": 26,
"max_inclusive": 41
},
"description": "Simple UUID library made by Skubiak"
}
Expand Down