NextLevelWarps_1.0.0.sk

Created by NiniMine

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.

#  _   _           _   _                    _  __          __                  
# | \ | |         | | | |                  | | \ \        / /                  
# |  \| | _____  _| |_| |     _____   _____| |  \ \  /\  / /_ _ _ __ _ __  ___ 
# | . ` |/ _ \ \/ / __| |    / _ \ \ / / _ \ |   \ \/  \/ / _` | '__| '_ \/ __|
# | |\  |  __/>  <| |_| |___|  __/\ V /  __/ |    \  /\  / (_| | |  | |_) \__ \
# |_| \_|\___/_/\_\\__|______\___| \_/ \___|_|     \/  \/ \__,_|_|  | .__/|___/
#                                                                   | |        
#                                                                   |_|                                                                     
# by NiniMine
# youtube.com/NiniMine
#
#1.10 - 1.16

#------------------------------------------------------

#Here you can edit the messages, perms and the prefix

#------------------------------------------------------


options:
	permission: warp
	prefix: &aNextLevel Warps&9>

	warp_help: &e----------&6Warp-Help&e----------%nl%&6Commands:%nl%&e/warp <warp> -&6Teleportiert dich zu einem Warp.%nl%&e/warp list -&6Listet alle Warps auf.%nl%&e/warp (add|create) <warp> -&6Erstellt ein neues Warp.%nl%&e/warp (delete|remove) <warp> -&6Entfernt ein Warp.%nl%&e/warp set <warp> -&6Setzt eine neue Position von einem Warp.%nl%&e----------&6Warp-Help&e---------- #Mehere Zeilen durch %nl%

	warp_set_success: &6Die Position von dem Warp &e%{_warp}% &6wurde erfolgreich zu der neuen Position &e%{_location}% &6gesetzt.
	warp_set_not_exist: &6Das Warp mit dem Namen &e%{_warp}% &6existiert nicht! Bitte benutze &e/warp create <name>
	warp_set_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp set %{_warp}% &6auszuführen. 

	warp_add_success: &6Du hast das Warp &e%{_warp}% &6erstellt und zu der Position &e%{_location}% &6gesetzt.
	warp_add_already_exist: &6Das Warp mit dem Namen &e%{_warp}% &6existiert bereits! Bitte benutze &e/warp set <name>
	warp_add_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp add %{_warp}% &6auszuführen.

	warp_delete_success: &6Du hast das Warp &e%{_warp}% &6entfernt.
	warp_delete_not_exist: &6Das Warp mit dem Namen &e%{_warp}% &6existiert nicht!
	warp_delete_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp delete %{_warp}% &6auszuführen.

	warp_list_warps: &6Es gibt folgende Warps: &e%{_warps}%
	warp_list_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp list &6auszuführen.
	warp_list_no_warps: &6Es wurden noch keine Warps erstellt.

	warp_tp_success: &6Du wurdest zu dem Warp &e%{_warp}% &6teleportiert.
	warp_tp_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp %arg 1% &6auszuführen.
	warp_tp_warp_not_exist: &6Das Warp mit dem Namen &e%arg 1% &6wurde nicht gefunden.

	warp_gui_no_perm: &6Du hast &ckeine &6Rechte, um den Befehl &e/warp %{_name}% &6auszuführen.
	warp_gui_tp_success: &6Du wurdest zu dem Warp &e%{_name}% &6teleportiert.
	warp_gui_no_warps: &6Es wurden noch keine warps festgelegt.

	warp_log_create: true
	warp_log_set: true
	warp_log_delete: true
	warp_log_tp: false

	warp_cooldown_time: 3 seconds 																		#Cooldown des /warp commands
	warp_cooldown_message: &cBitte warte noch %remaining time%, bevor du den Command erneut verwendest!	#Wenn der Cooldow noch nicht abgelaufen ist
	warp_cooldown_bypass_perm: warp.bypass 																#Permission um den Command ohne cooldown zu verwenden




#------------------------------------------------------

#Do not edit the code below!     

#------------------------------------------------------





on load:
	send "&e┏---------------------------------------┓" to console
	send "&e|      &bEnabeling Warps by &aNiniMine      &e|" to console
	send "&e┗---------------------------------------┚" to console

on unload:
	send "&e┏---------------------------------------┓" to console
	send "&e|      &bDisabeling Warps by &aNiniMine     &e|" to console
	send "&e┗---------------------------------------┚" to console




function OpenAdminGUideleteConfirm(p: player, w: text):
	set metadata tag "NM_WARP_GUI_ADMIN_DELETE_CONFRIM" of {_p} to chest inventory with 3 rows named "&c&lWARPS · CONFIRM DELETE"
	set slot 4 of metadata tag "NM_WARP_GUI_ADMIN_DELETE_CONFRIM" of {_p} to nametag named "&cCONFRIM TO DELETE WARP ""%{_w}%"""
	set slot 11 of metadata tag "NM_WARP_GUI_ADMIN_DELETE_CONFRIM" of {_p} to red stained glass pane named "&cCANCEL"
	set slot 15 of metadata tag "NM_WARP_GUI_ADMIN_DELETE_CONFRIM" of {_p} to lime stained glass pane named "&aCONFRIM"
	open metadata tag "NM_WARP_GUI_ADMIN_DELETE_CONFRIM" of {_p} to {_p}


function OpenAdminGUI(p:player, page: number):
	play sound "ENTITY_EGG_THROW" to {_p}
	set {_pageStart} to 45*{_page}
	set {_i} to 1
	set {_a} to 0
	set metadata tag "NM_WARP_GUI_ADMIN" of {_p} to chest inventory with 6 rows named "&c&lWARPS · Admin-GUI"
	set {_loop-number} to 0
	loop {NM_WARPS::*}:
		add 1 to {_loop-number}
		{_loop-number} > {_pageStart}
		set {_loc} to "%loop-value%"
		replace all "x:" and "y:" and "z:" with "" in {_loc}
		set {_coords::*} to {_loc} split at ", "
		set slot {_a} of metadata tag "NM_WARP_GUI_ADMIN" of {_p} to nametag named "&f%loop-index%" with lore "&3&nLocation:" and "&cX:%{_coords::1}%" and "&aY:%{_coords::2}%" and "&9Z:%{_coords::3}%" and " " and "&cZum Löschen &nrechtsklick" and "&bZum Setzen &nlinksklick"
		add 1 to {_a}
		if {_a} = ((45*{_i})):
			exit loop
	set slot 49 of metadata tag "NM_WARP_GUI_ADMIN" of {_p} to book named "&eErste Seite"
	if (amount of {NM_WARPS::*}) > {_pageStart} + 45:
		set slot 53 of metadata tag "NM_WARP_GUI_ADMIN" of {_p} to arrow named "&9Nächste Seite (Aktuell Seite %{_page}%)"
	if {_page} > 0:
		set slot 45 of metadata tag "NM_WARP_GUI_ADMIN" of {_p} to arrow named "&9Vorherige Seite (Aktuell Seite %{_page}%)"

	open metadata tag "NM_WARP_GUI_ADMIN" of {_p} to {_p}



function OpenWarpGUI(p: player, page: number):
	play sound "ENTITY_EGG_THROW" to {_p}
	set {_pageStart} to 45*{_page}
	set {_i} to 1
	set {_a} to 0
	set metadata tag "NM_WARP_GUI" of {_p} to chest inventory with 6 rows named "&c&lWARPS · GUI"
	set {_loop-number} to 0
	loop {NM_WARPS::*}:
		add 1 to {_loop-number}
		{_loop-number} > {_pageStart}
		set slot {_a} of metadata tag "NM_WARP_GUI" of {_p} to nametag named "&f%loop-index%" with lore "&3Klicke zum teleportieren"
		add 1 to {_a}
		if {_a} = ((45*{_i})):
			exit loop
	set slot 49 of metadata tag "NM_WARP_GUI" of {_p} to book named "&eErste Seite"
	if (amount of {NM_WARPS::*}) > {_pageStart} + 45:
		set slot 53 of metadata tag "NM_WARP_GUI" of {_p} to arrow named "&9Nächste Seite (Aktuell Seite %{_page}%)"
	if {_page} > 0:
		set slot 45 of metadata tag "NM_WARP_GUI" of {_p} to arrow named "&9Vorherige Seite (Aktuell Seite %{_page}%)"

	open metadata tag "NM_WARP_GUI" of {_p} to {_p}



on inventory click:
	name of player's current inventory is "&c&lWARPS · GUI"
	cancel event
	if name of event-item contains "&9Nächste Seite":
		set {_page::*} to name of event-item split at " "
		replace all ")" with "" in {_page::5}
		set {_page} to {_page::5} parsed as integer
		OpenWarpGUI(player, ({_page}+1))
	else if name of event-item contains "&9Vorherige Seite":
		set {_page::*} to name of event-item split at " "
		replace all ")" with "" in {_page::5}
		set {_page} to {_page::5} parsed as integer
		OpenWarpGUI(player, ({_page}-1))
	else if name of event-item contains "&eErste Seite":
		OpenWarpGUI(player, 0)
	else if index of event-slot is between 0 and 44:
		event-item is set
		set {_name} to uncolored name of event-item
		if player has permission "{@permission}.*" or "{@permission}.tp" or "{@permission}.tp.%{_name}%":
			teleport player to {NM_WARPS::%{_name}%}
			send "{@prefix} {@warp_gui_tp_success}"
			play sound "ENTITY_ENDERMAN_TELEPORT" to player
		else:
			send "{@prefix} {@warp_gui_no_perm}"

on inventory click:
	name of player's current inventory is "&c&lWARPS · Admin-GUI"
	cancel event
	if name of event-item contains "&9Nächste Seite":
		set {_page::*} to name of event-item split at " "
		replace all ")" with "" in {_page::5}
		set {_page} to {_page::5} parsed as integer
		OpenAdminGUI(player, ({_page}+1))
	else if name of event-item contains "&9Vorherige Seite":
		set {_page::*} to name of event-item split at " "
		replace all ")" with "" in {_page::5}
		set {_page} to {_page::5} parsed as integer
		OpenAdminGUI(player, ({_page}-1))
	else if name of event-item contains "&eErste Seite":
		OpenAdminGUI(player, 0)
	else if index of event-slot is between 0 and 44:
		event-item is set
		set {_name} to uncolored name of event-item
		if click type is left mouse button:
			set {NM_WARPS::%{_name}%} to location of player
			set {_page::*} to name of event-item split at " "
			replace all ")" with "" in {_page::5}
			set {_page} to {_page::5} parsed as integer
			OpenAdminGUI(player, {_page})
		else if click type is right mouse button:
			OpenAdminGUideleteConfirm(player, "%{_name}%")


on inventory click:
	name of player's current inventory is "&c&lWARPS · CONFIRM DELETE"
	cancel event
	if index of event-slot is 11:
		close player's inventory
	else if index of event-slot is 15:
		set {_name} to name of slot 4 of event-inventory
		replace all "&cCONFRIM TO DELETE WARP " and """" in {_name} with ""
		delete {NM_WARPS::%{_name}%}
		OpenAdminGUI(player, 0)



command /warp [<text>] [<text>]:
	aliases: /warps, /Warps, /Warp
	usage: /warp <warp>
	executable by: player
	cooldown:	{@warp_cooldown_time}
	cooldown message: {@warp_cooldown_message}
	cooldown bypass: {@warp_cooldown_bypass_perm}
	trigger:
		set {_warp} to arg 2
		set {_location} to location of player
		if arg 1 is set:
			if arg 2 is set:
				if arg 1 is "set":
					if player has permission "{@permission}.set" or "*" or "{@permission}.*":
						if {NM_WARPS::%{_warp}%} is set:
							send "{@prefix} {@warp_set_success}"
							cancel the cooldown
							if {@warp_log_set} = true:
								log "%player% set location of warp named ""%{_warp}%"" from %{NM_WARPS::%{_warp}%}% to %location of the player%" to "..\..\Warps\warp_set.log"
							set {NM_WARPS::%{_warp}%} to location of player
						else:
							send "{@prefix} {@warp_set_not_exist}"
					else:
						send "{@prefix} {@warp_set_no_perm}"
				else if arg 1 is "add" or "create":
					if player has permission "{@permission}.add" or "*" or "{@permission}.*":
						if {NM_WARPS::%{_warp}%} is not set:
							set {NM_WARPS::%{_warp}%} to location of player
							send "{@prefix} {@warp_add_success}"
							cancel the cooldown
							if {@warp_log_create} = true:
								log "%player% created a new warp named ""%{_warp}%"" at location %location of the player%" to "..\..\Warps\warp_create.log"
						else:
							send "{@prefix} {@warp_add_already_exist}"
					else:
						send "{@prefix} {@warp_add_no_perm}"
				else if arg 1 is "delete" or "remove":
					if player has permission "{@permission}.delete" or "*" or "{@permission}.*":
						if {NM_WARPS::%{_warp}%} is set:
							delete {NM_WARPS::%arg 2%}
							send "{@prefix} {@warp_delete_success}"
							cancel the cooldown
							if {@warp_log_delete} = true:
								log "%player% deleted the warp named ""%{_warp}%"" at location %{NM_WARPS::%arg 2%}%" to "..\..\Warps\warp_delete.log"
						else:
							send "{@prefix} {@warp_delete_not_exist}"
					else:
						send "{@prefix} {@warp_delete_no_perm}"
			else:
				if arg 1 is "list":
					if player has permission "{@permission}.list" or "*" or "{@permission}.*":
						if size of {NM_WARPS::*} <= 0:
							send "{@prefix} {@warp_list_no_warps}"
						else:
							set {_warps} to ""
							loop {NM_WARPS::*}:
								set {_warps} to "%{_warps}%, %loop-index%"
							set {_warps} to last (length of {_warps} - 2) characters of {_warps}
							send "{@prefix} {@warp_list_warps}"
							cancel the cooldown
					else:
						send "{@prefix} {@warp_list_no_perm}"
				else if arg 1 is "gui" or "menu":
					if player has permission "{@permission}.gui" or "*" or "{@permission}.*":
						if size of {NM_WARPS::*} <= 0:
							send "{@prefix} {@warp_gui_no_warps}"
						else:
							OpenWarpGUI(player, 0)
					else:
						send "{@prefix} {@warp_gui_no_perm}"
				else if arg 1 is "admingui" or "adminmenu":
					if player has permission "{@permission}.admingui" or "*" or "{@permission}.*":
						if size of {NM_WARPS::*} <= 0:
							send "{@prefix} {@warp_gui_no_warps}"
						else:
							OpenAdminGUI(player, 0)
				else:
					loop {NM_WARPS::*}:
						loop-index is arg 1
						set {_loc} to loop-value
						set {_warp_found} to true
						exit loop
					if player has permission "{@permission}.*" or "{@permission}.tp" or "{@permission}.tp.%arg 1%":
						if {_warp_found} is true:
							set {_warp} to arg 1
							teleport player to {_loc}
							send "{@prefix} {@warp_tp_success}"
							play sound "ENTITY_ENDERMAN_TELEPORT" to player
							if {@warp_log_tp} = true:
								log "%player% teleported to the warp named ""%{_warp}%"" at location %{NM_WARPS::%arg 2%}%" to "..\..\Warps\warp_create.log"
						else:
							send "{@prefix} {@warp_tp_warp_not_exist}"
					else:
						send "{@prefix} {@warp_tp_no_perm}"
		else:
			send "{@warp_help}"

on chat:
	message is "+dev" or "+warps" or "+NextLevelWarps" or "+NextLevel Warps"
	cancel event
	send "{@prefix} &aDer &bDEV &avon dem Plugin &bNextLevel Warps&a ist <tooltip:&bLink><link:https://www.youtube.com/NiniMine>&bNiniMine<reset> "