kRankUPv2.sk

Created by Kstien

Other available versions. Ordered by newest to oldest versions:

Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.

#
#  Author: Kastien
#
#  FREE TO EDIT - PLEASE DON´T SAY THIS SKRIPT IT´S YOURS
#
#
#  Legendchat TAG: {krank}
#
#
#
#  Events:
#
#  Details: event-player (player), event-text (player's rank), event-integer (price of the rank)
#
#evt "on rankup":
#	broadcast "%event-player% used the command /rankup!"
#
#evt "on rankup":
#	if event-text is "Default":
#		give 1 diamond to player
#		broadcast "&aYay! %event-player% used my skript!"
#
#
#
#  YOU CAN REQUEST ME ALMOST ANY SKRIPT IN DISCORD! Kastien#3643!
#  Depending of the difficulty i can even make it all for free!
#
#
options:
	OrbGREY: {display:{Name:""Gray (##808080)""},SkullOwner:{Id:""87937323-f57b-4850-be40-afad6e8f1de1"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmExN2U5NzAzN2NlMzUzZjg1ZjVjNjVkZjQzNWQyOTQ0OWE4OGRhNDQ0MmU0MzYxY2Y5OWFiYmUxZjg5MmZiIn19fQ==""}]}}}
	OrbGREEN: {display:{Name:""Forest green (##228B22)""},SkullOwner:{Id:""a4b65da5-76a0-4e4e-bd6c-4bbc12a10860"",Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzhkNThhNzY1MWZlZGFlNGMwM2VmZWJjMjI2YzAzZmQ3OTFlYjc0YTEzMmJhYmI5NzRlOGQ4MzhhYzY4ODIifX19""}]}}}


variables:
	{kRankUP::player::%player%} = "Undefined"

on enable:
	if file "plugins/kRankUP/ranks.yml" exists:
		set {kRanks::*} to yaml nodes "Ranks" of file "plugins/kRankUP/ranks.yml"
		loop {kRanks::*}:
			set {kRanks::%loop-value%::price} to yml value "Ranks.%loop-value%" of file "plugins/kRankUP/ranks.yml"
	else:
		create file "plugins/kRankUP/ranks.yml"
		wf " " to "plugins/kRankUP/ranks.yml"
		set yaml value "Ranks.Padrao" of file "plugins/kRankUP/ranks.yml" to "0"
		set {kRanks::*} to yaml nodes "Ranks" of file "plugins/kRankUP/ranks.yml"
		loop {kRanks::*}:
			set {kRanks::%loop-value%::price} to yml value "Ranks.%loop-value%" of file "plugins/kRankUP/ranks.yml"
on join:
	if {kRankUP::player::%player%} is "Undefined":
		set {kRankUP::player::%player%} to {kRanks::1}
	if {kRankUP::player::%player%} is not set:
		set {kRankUP::player::%player%} to {kRanks::1}
	if {kRanks::*} contains {kRankUP::player::%player%}:
	else:
		set {kRankUP::player::%player%} to {kRanks::1}
	set tag "krank" of player to "&7[%{kRankUP::player::%player%}%&7]"
		
command /krankup [<text>] [<text>]:
	trigger:
		if player has the permission "krankup.admin":
			if arg-1 is set:
				if arg-1 is "reload":
					if file "plugins/kRankUP/ranks.yml" exists:
						send "&aRanks.yml checked" to console
					else:
						create file "plugins/kRankUP/ranks.yml"
						wf " " to "plugins/kRankUP/ranks.yml"
						set yaml value "Ranks.Default" of file "plugins/kRankUP/ranks.yml" to "0"
					set {kRanks::*} to yaml nodes "Ranks" of file "plugins/kRankUP/ranks.yml"
					loop {kRanks::*}:
						set {kRanks::%loop-value%::price} to yml value "Ranks.%loop-value%" of file "plugins/kRankUP/ranks.yml"
						send "&aReloaded %loop-value%&a price!" to console
					set {_num} to 0
					loop {kRanks::*}:
						add 1 to {_num}
						send "&aRank '%loop-value%' reloaded" to console
					loop all players:
						if {kRankUP::player::%loop-player%} is "Undefined":
							set {kRankUP::player::%loop-player%} to {kRanks::1}
						if {kRanks::*} contains {kRankUP::player::%loop-player%}:
						else:
							set {kRankUP::player::%loop-player%} to {kRanks::1}
						set tag "krank" of loop-player to "&7[%{kRankUP::player::%loop-player%}%&7]"
					send "&aSuccessfuly reloaded! We´ve reloaded %{_num}%&a ranks"
				if arg-1 is "resetall":
					set {_num} to 0
					loop {kRankUP::player::*}:
						add 1 to {_num}
					send "&aSuccessfuly reseted %{_num}%&a player ranks!" to command executor
					delete {kRankUP::player::*}
					loop all players:
						if {kRankUP::player::%loop-player%} is "Undefined":
							set {kRankUP::player::%loop-player%} to {kRanks::1}
						if {kRankUP::player::%loop-player%} is not set:
							set {kRankUP::player::%loop-player%} to {kRanks::1}
						if {kRanks::*} contains {kRankUP::player::%loop-player%}:
						else:
							set {kRankUP::player::%loop-player%} to {kRanks::1}
						set tag "krank" of loop-player to "&7[%{kRankUP::player::%loop-player%}%&7]"
				if arg-1 is "resetplayer":
					if arg-2 is set:
						delete {kRankUP::player::%arg-2%}
						if {kRankUP::player::%arg-2%} is "Indefinido":
							set {kRankUP::player::%arg-2%} to {kRanks::1}
						if {kRankUP::player::%arg-2%} is not set:
							set {kRankUP::player::%arg-2%} to {kRanks::1}
						if {kRanks::*} contains {kRankUP::player::%arg-2%}:
						else:
							set {kRankUP::player::%arg-2%} to {kRanks::1}
						set tag "krank" of arg-2 parsed as offline player to "&7[%{kRankUP::player::%arg-2%}%&7]"
						send "&aSuccessfuly reseted %arg-2%&a rank!"
					else:
						send "&cInsert a player."
			else:
				send "&cRELOAD / RESET"
		else:
			send "&cNo permission."
			
command /ranks [<integer>]:
	trigger:
		if arg-1 is not set:
			wait 2 ticks
			open chest with 6 row named "&8Ranks" to player
			wait 2 ticks
			loop {kRanks::*}:
				if (loop-index parsed as integer - 1) < 53:
					if loop-value is not {kRankUP::player::%player%}:
						format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREY}" named "&7%loop-value% &b→ %{kRanks::%loop-value%::price}%&b $" to be unstealable
					else:
						format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREEN}" named "&7%loop-value% &b→ %{kRanks::%loop-value%::price}%&b $ &7(YOUR RANK)" to be unstealable
				else:
					clear {kRanksGUI2::*}
					add loop-value to {kRanksGUI2::*}
					set {kRanksGUI2::%loop-value%::price} to {kRanks::%loop-value%::price}
					format slot 53 of player with arrow named "&aNext" to close then run [make player execute command "ranks 2"]
		else:
			if arg-1 is 1:
				wait 2 ticks
				open chest with 6 row named "&8Ranks" to player
				wait 2 ticks
				loop {kRanks::*}:
					if (loop-index parsed as integer - 1) < 53:
						if loop-value is not {kRankUP::player::%player%}:
							format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREY}" named "&7%loop-value% &b→ %{kRanks::%loop-value%::price}%&b $" to be unstealable
						else:
							format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREEN}" named "&7%loop-value% &b→ %{kRanks::%loop-value%::price}%&b $ &7(YOUR RANK)" to be unstealable
					else:
						clear {kRanksGUI%arg-1 + 1%::*}
						add loop-value to {kRanksGUI%arg-1 + 1%::*}
						set {kRanksGUI%arg-1 + 1%::%loop-value%::price} to {kRanks::%loop-value%::price}
						format slot 53 of player with arrow named "&aNext" to close then run [make player execute command "ranks %arg-1 + 1%"]
			else:
				wait 2 ticks
				open chest with 6 row named "&8Ranks - %arg-1%" to player
				wait 2 ticks
				loop {kRanksGUI%arg-1%::*}:
					if (loop-index parsed as integer - 1) < 53:
						if loop-value is not {kRankUP::player::%player%}:
							format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREY}" named "&7%loop-value% &b→ %{kRanksGUI%arg-1%::%loop-value%::price}%&b $" to be unstealable
						else:
							format slot (loop-index parsed as integer - 1) of player with skull of player with custom nbt "{@OrbGREEN}" named "&7%loop-value% &b→ %{kRanksGUI%arg-1%::%loop-value%::price}%&b $ &7(YOUR RANK)" to be unstealable
					else:
						clear {kRanksGUI%arg-1 + 1%::*}
						add loop-value to {kRanksGUI%arg-1 + 1%::*}
						set {kRanksGUI%arg-1 + 1%::%loop-value%::price} to {kRanks::%loop-value%::price}
						format slot 53 of player with arrow named "&aNext" to close then run [make player execute command "ranks %arg-1 + 1%"]
				

				
command /rankup:
	trigger:
		set {_ranktrue} to false
		loop {kRanks::*}:
			if {_ranktrue} is true:
				if player's balance >= {kRanks::%loop-value%::price} parsed as integer:
					set {kRankUP::player::%player%} to loop-value
					set tag "krank" of player to "&7[%{kRankUP::player::%player%}%&7]"
					remove {kRanks::%loop-value%::price} parsed as integer from player's balance
					send "§aYou have progressed to rank %loop-value% for %{kRanks::%loop-value%::price}% $!"
					set {_RankUPDetails::*} to {kRanks::%loop-value%::price} parsed as integer, player, loop-value
					call custom event "on rankup" to details {_RankUPDetails::*}
					set {_ranktrue} to false
					stop
				else:
					send "§cInsufficient money."
				stop
			if "%loop-value%" is {kRankUP::player::%player%}:
				set {_ranktrue} to true
		send "&cYou have reached the maximum rank."