#------- Opcje ------- options: guiName: &6Rangi #------ Funkcje ------- function repairVariable(t: text) :: text: if "%{_t}%" is "grupy": loop {%{_t}%::*}: add "%loop-value%" to {_%{_t}%::*} set {grupy::*} to {_grupy::*} return "" replace all " and" with "," in {_t} replace all ", " with "," in {_t} return {_t} function getRandomColor() :: text: return random text out of {colors::*} function adminGuiDefault(p: player): open chest with 1 rows named "&9Zarzadzanie rangami" to {_p} wait 2 tick set {_p}'s current inventory's slot 0 to chest named "&6Dodane rangi." with lore "&6Pokazuje dodane rangi dla graczy.||||&8Mozesz tez tutaj je usunac." set {_p}'s current inventory's slot 4 to ender_rod named "&6Dodaj range." with lore "&6Bedziesz mogl wybrac range dostepna dla gracza." function adminGuiAdd(p: player): set {_groups::*} to yaml nodes "groups" from "../../PermissionsEx/permissions.yml" loop {grupy::*}: loop {_groups::*}: if "%loop-value-1%" is "%loop-value-2%": clear {_groups::%loop-index-2%} set {_groups::*} to split repairVariable("%{_groups::*}%") by "," set {_amount} to ceil(("%size of {_groups::*}%" parsed as integer + 1) / 9) open chest with {_amount} rows named "&lDodaj range" to {_p} wait 2 tick loop {_groups::*}: set {_i} to "%loop-index%" parsed as integer - 1 set {_p}'s current inventory's slot {_i} to paper named coloured "&%getRandomColor()%%loop-value%" set {_last} to {_amount} * 9 - 1 set {_p}'s current inventory's slot {_last} to iron door named "&6Powrot" function adminGuiListAndRemove(p: player): set {_amount} to ceil(("%size of {grupy::*}%" parsed as integer + 1) / 9) open chest with {_amount} rows named "&lLista grup dodanych" to {_p} wait 2 tick loop {grupy::*}: set {_i} to "%loop-index%" parsed as integer - 1 set {_p}'s current inventory's slot {_i} to paper named coloured "&%getRandomColor()%%loop-value%" set {_last} to {_amount} * 9 - 1 set {_p}'s current inventory's slot {_last} to iron door named "&6Powrot" #------- Komendy ------- command /rangi: trigger: if size of {grupy::*} is larger than 0: set {_rows} to ceil("%size of {grupy::*}%" parsed as integer/9) open chest with {_rows} rows named "{@guiName}" to player wait 2 tick loop {grupy::*}: set {_i} to "%loop-index%" parsed as integer - 1 set player's current inventory's slot {_i} to paper named coloured "&%getRandomColor()%%loop-value%" stop send "Nie ma zadnych dodanych rang." stop command /test: trigger: if player is op: adminGuiDefault(player) stop #------- Eventy on script load: set {colors::*} to "a", "b", "c", "d", "e", "f", "1", "2", "3", "4", "5", "6", "7", "8", "9" and "0" on inventory click: if "%inventory name of player's current inventory%" is "{@guiName}": if slot is smaller than 0: stop cancel event if player's current inventory's slot slot is paper: execute console command "pex user %player% group set %uncoloured name of player's current inventory's slot slot%" send "Pomyslnie ustawiles sobie range: &6%uncoloured name of player's current inventory's slot slot%" close player's inventory stop if "%inventory name of player's current inventory%" is "&9Zarzadzanie rangami": if slot is smaller than 0: stop cancel event if slot is 0: adminGuiListAndRemove(player) stop if slot is 4: adminGuiAdd(player) stop stop if "%inventory name of player's current inventory%" is "&lLista grup dodanych": if slot is smaller than 0: stop cancel event if player's current inventory's slot slot is paper: loop {grupy::*}: if "%loop-value%" is "%uncoloured name of player's current inventory's slot slot%": remove loop-value from {grupy::*} send "Pomyslnie usunales range &6%loop-value% &rz rang gracza." repairVariable("grupy") close player's inventory wait 1 tick adminGuiListAndRemove(player) exit loop stop if player's current inventory's slot slot is iron door: close player's inventory wait 1 tick adminGuiDefault(player) stop if "%inventory name of player's current inventory%" is "&lDodaj range": if slot is smaller than 0: stop cancel event if player's current inventory's slot slot is paper: add "%uncoloured name of player's current inventory's slot slot%" to {grupy::*} send "Pomyslnie dodales range &6%name of player's current inventory's slot slot% &rdo rang gracza." repairVariable("grupy") close player's inventory wait 1 tick adminGuiAdd(player) stop if player's current inventory's slot slot is iron door: close player's inventory wait 1 tick adminGuiDefault(player) stop