party+.sk

Created by Efnilite

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.


#------------- Messages -------------#


options:

	
	# General chat prefix
	prefix: &6Party&l+ &8>


	# Party chat prefix
	chatprefix: &6Party&l+ &6Chat &8>


on load:
	if "%{prefix}%" is set:
		set {PartyCreate} to "%{prefix}% &aYou created a party"
		set {PartyDisband} to "%{prefix}% &cYou disbanded your party"
		set {PartyJoin} to "%{prefix}% &aYou joined a party"
		set {PartyJoinNotInvited} to "%{prefix}% &cYou have not been invited to this party."
		set {PartyLeave} to "%{prefix}% &cYou left your party."
		set {PartyInvite} to "%{prefix}% &aYou were invited to a party by&6&l"
		set {PartyInvite1} to "&r&a! &a&lClick me to join!"
		set {PartyInviteTooltip} to "%{prefix}% &a&lClick me to join!"
		set {PartyInviteExceedsPartyLimit} to "%{prefix}% &cYou already have"
		set {PartyInviteExceedsPartyLimit1} to " players in your party."
		set {PartyInvitedPlayer} to "%{prefix}% &aYou have invited&6&l"
		set {PartyKick} to "%{prefix}% &cYou were kicked from your party."
		set {PartyAlreadyInParty} to "%{prefix}% &cYou are already in a party."
		set {PartyNotOwner} to "%{prefix}% &cYou are not the owner of this party."
		set {PartyNotInParty} to "%{prefix}% &cYou are not in a party."
		set {PartyDisbandKick} to "%nl%%{prefix}% &c&lYour party was disbanded!%nl%"
		set {PartyPlayerLeftYourParty} to "%{prefix}% &6&l" 
		set {PartyPlayerLeftYourParty1} to "&7left your party."
		set {PartyPlayerJoinedYourParty} to "%{prefix}% &6&l"
		set {PartyPlayerJoinedYourParty1} to "&7joined your party!"
		set {PartyKicked} to "%{prefix}% &7You kicked &6&l"
		set {PartyKicked1} to "&7."
		set {PartyPlayerNotInYourParty} to "%{prefix}% &7This player is not in your party!"
		set {notPartyYet} to "%{prefix}% &aI see you haven't joined a party yet.. I'm creating one for you!"	
		set {PlNotOnline} to "%{prefix}% &cThat player is not online!"	
		set {DisbandSure} to "%{prefix}% &aAre you sure you want to delete your party?"
		set {DisbandDeclined} to "%{prefix}% &aRequest declined."
		set {PartyPromote} to "%{prefix}%&6&l"
		set {PartyPromote1} to "&7has promoted&6&l"
		set {PartyPromote2} to "&7to leader!"
		set {PartyMuteEnabled} to "%{prefix}% &7You have muted party chat!&7&o (Type again to disable)"
		set {PartyMuteDisabled} to "%{prefix}% &7You have unmuted party chat! &7&o(Type again to enable)"
		set {PartyChatMuted} to "%{prefix}% &cYou can't speak because you muted party chat!"
		set {PartySetHome} to "%{prefix}% &cYou set the party home to"
		set {PartyLeaderSetHome} to "%{prefix}% &c"
		set {PartyLeaderSetHome1} to "&7has set the party home to&c"
		set {PartyLeaderSetHome2} to "&7! &7&o(You can now do /p home!)"
		set {PartyHomeNotSet} to "%{prefix}% &cThe party home has not been set yet!"
		set {PartyTPHome} to "%{prefix}% &cYou have been teleported to the party home!"
		set {PartyInvCooldown} to "%{prefix}% &cYou need to wait at least &l&c3 &r&cseconds before inviting someone again!"
		set {PartyChatFalse} to "%{chatprefix}% You've &cdisabled &7party chat! &7&o(Type again to enable)"
		set {PartyChatTrue} to "%{chatprefix}% You've &aenabled &7party chat&7! &7&o(Type again to disable)"
		set {partyTpHere} to "%{prefix}% Your party was teleported to the leader!"
		set {enteredRegion} to "%{prefix}% You entered a region! You can now type /p tphere to teleport your party to you!"
		set {NoPartyLeader} to "%{prefix}%&c You are not the party owner! Type /p leave to leave the party."
		set {CantAttackParty} to "%{prefix}% &cYou can't attack your own party!"
		set {NoPermission} to "%{prefix}% &cYou don't have the permission to do that!"
		set {DisabledSorry} to "%{prefix}% &cSorry, but this feature is currently disabled :("
		set {DuelInProgress} to "%{prefix}% &aThe duel lobbies are currently full! Wait a few minutes before joining again.." 
		set {DuelYourself} to "%{prefix}% &cYou can't duel yourself!"
		set {InviteDuelJson} to "%{prefix}% &c"
		set {InviteDuelJson1} to "&7has invited you to a duel!"
		set {InvitedDuel} to "%{prefix}% &aYou have invited" 
		set {InvitedDuel1} to "&ato a duel!"
		set {DieniedRequest} to "%{prefix}% &c"
		set {DeniedRequest} to "&chas declined your request!"
options:
	
	PartyChatFormat: %{prefix}% &7%{_pl}% &8> &f%{_msg}%


#------------- Add regions down below! -------------#


function loadRegion():
	if {regions} = true:
		clear {p.regionlist::*}
		wait 1 tick

	#	! Add regions here
		# add regions: add "region name in world %world%" to {p.regionlist::*}
		add "region1 in world Deathmatch" to {p.regionlist::*}
		add "region2 in world Example" to {p.regionlist::*}
		add "dd in world world" to {p.regionlist::*}



#----------------------------! DONT EDIT !------------------------------#



function write(t: text):		
	if "%{_t}%" = "duels":
		create file "plugins/Party+/duels/duels.yml"
		write "## Party+ Duel Options" at line 1 to file "plugins/Party+/duels/duels.yml"
		write "## Enable party duels?" at line 3 to file "plugins/Party+/duels/duels.yml"
		write "duels: true" at line 4 to file "plugins/Party+/duels/duels.yml"
		write "## Permission to set up the 1v1 duels" at line 6 to file "plugins/Party+/duels/duels.yml"
		write "duelpermission: party.setduels" at line 7 to file "plugins/Party+/duels/duels.yml"
		write "## How many duels do you want to enable at the same time?" at line 9 to file "plugins/Party+/duels/duels.yml"
		write "maxduels: 1" at line 10 to file "plugins/Party+/duels/duels.yml"
		write "## Time in seconds it takes before the duel ends" at line 12 to file "plugins/Party+/duels/duels.yml"
		write "time: 500" at line 13 to file "plugins/Party+/duels/duels.yml"
	else if "%{_t}%" = "config":
		create file "plugins/Party+/config.yml"
		write "## Party+ Configuration File | Messages are in the actual Skript file" at line 2 to file "plugins/Party+/config.yml"
		write "## Should you leave the party on quit?" at line 4 to file "plugins/Party+/config.yml"
		write "leaveonquit: true" at line 5 to file "plugins/Party+/config.yml"
		write "## Do you want to disable party PVP?" at line 7 to file "plugins/Party+/config.yml"
		write "partypvp: true" at line 8 to file "plugins/Party+/config.yml"
		write "## Do you want to enable player logging (Party+/userdata/..)" at line 10 to file "plugins/Party+/config.yml"
		write "logging: true" at line 11 to file "plugins/Party+/config.yml"
		write "## Do you want to enable BungeeCord? (Not completed, bungee options down below)" at line 13 to file "plugins/Party+/config.yml"
		write "bungee: false" at line 14 to file "plugins/Party+/config.yml"
		write "## Do you want to enable Party Homes?" at line 16 to file "plugins/Party+/config.yml"
		write "homes: false" at line 17 to file "plugins/Party+/config.yml"
		write "## Do you want region support enabled? (Want to add regions? Go to party.sk and edit it there.)" at line 19 to file "plugins/Party+/config.yml"
		write "regions: false" at line 20 to file "plugins/Party+/config.yml"
		write "## True = only when the party leader is in a region and does /party tphere all the players tp" at line 22 to file "plugins/Party+/config.yml"
		write "## False = everytime the party leader enters a region, everyone will be teleported" at line 23 to file "plugins/Party+/config.yml"
		write "regioncommand: false" at line 24 to file "plugins/Party+/config.yml"
		write "## Time for invites to expire." at line 26 to file "plugins/Party+/config.yml"
		write "partytime: 15" at line 27 to file "plugins/Party+/config.yml"
		write "## Max amount of players in a party" at line 29 to file "plugins/Party+/config.yml"
		write "maxplayers: 6" at line 30 to file "plugins/Party+/config.yml"
		write "## Cooldown on invites (seconds)" at line 32 to file "plugins/Party+/config.yml"
		write "invitecooldown: 3" at line 33 to file "plugins/Party+/config.yml"
		write "## Bungee Options" at line 35 to file "plugins/Party+/config.yml"
		write "## Server this is running on" at line 37 to file "plugins/Party+/config.yml"
		write "server: Lobby-1" at line 38 to file "plugins/Party+/config.yml"

function statusPlayerDuel(p: player, t: text):
	set {_file} to "%uuid of {_p}%"
	set {induel::%{_file}%} to "%{_t}%"
	set line 6 in file "plugins/Party+/userdata/%{_file}%.yml" to "duel: %{_t}%"

function statusPlayer(p: player, t: text):
	set {_file} to "%uuid of {_p}%"
	set {status::%{_file}%} to "%{_t}%"
	set line 5 in file "plugins/Party+/userdata/%{_file}%.yml" to "status: %{_t}%"

function writePlayer(p: player, t: text):
	if "%{_t}%" = "player":
		set {_file} to "%uuid of {_p}%"
		set {status::%{_file}%} to "Not in party"
		set {induel::%{_file}%} to "Not dueling"
		create file "plugins/Party+/userdata/%{_file}%.yml"
		send "%{prefix}% &7Empty user file! Creating one for %{_p}%.." to console
		write "## Party Data for %{_p}%" at line 1 to file "plugins/Party+/userdata/%{_file}%.yml"
		write "name: %name of {_p}%" at line 3 to file "plugins/Party+/userdata/%{_file}%.yml"
		write "uuid: %uuid of {_p}%" at line 4 to file "plugins/Party+/userdata/%{_file}%.yml"
		write "status: %{status::%{_file}%}%" at line 5 to file "plugins/Party+/userdata/%{_file}%.yml"
		write "duel: %{induel::%{_file}%}%" at line 6 to file "plugins/Party+/userdata/%{_file}%.yml"

function read():
	set {duels} to yaml value "duels" of file "plugins/Party+/duels/duels.yml"
	set {duels::time} to yaml value "time" of file "plugins/Party+/duels/duels.yml"
	set {maxduels} to yaml value "maxduels" of file "plugins/Party+/duels/duels.yml"
	set {leaveonquit} to yaml value "leaveonquit" of file "plugins/Party+/config.yml"
	set {partypvp} to yaml value "partypvp" of file "plugins/Party+/config.yml"
	set {bungee} to yaml value "bungee" of file "plugins/Party+/config.yml"
	set {logging} to yaml value "logging" of file "plugins/Party+/config.yml"
	set {homes} to yaml value "homes" of file "plugins/Party+/config.yml"
	set {regions} to yaml value "regions" of file "plugins/Party+/config.yml"
	set {regioncommand} to yaml value "regioncommand" of file "plugins/Party+/config.yml"
	set {duelpermission} to yaml value "duelpermission" of file "plugins/Party+/duels/duels.yml"
	set {partytime} to yaml value "partytime" of file "plugins/Party+/config.yml"
	set {maxplayers} to yaml value "maxplayers" of file "plugins/Party+/config.yml"
	set {invitecooldown} to yaml value "invitecooldown" of file "plugins/Party+/config.yml"
	set {server} to yaml value "server" of file "plugins/Party+/config.yml"
	set {prefix} to "{@prefix}"
	set {chatprefix} to "{@chatprefix}"

function duelPlayer(x: player, z: player):
	if {duels::1::duelstart} = false:
		if {maxduels} >= 1:
			set {duels::1::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			teleport {_x} to {duels::1::wait}
			teleport {_z} to {duels::1::wait}
			set {party::induel::1::%{_x}%} to true
			set {party::induel::1::%{_z}%} to true
			set {duels::1::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			add {_z} to {duels::1::players::*}
			add {_x} to {duels::1::players::*}
			add {_z} to {duels::1::fd::*}
			add {_x} to {duels::1::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::1::nodamage} to false
			teleport {_x} to {duels::1::spawn::1}
			teleport {_z} to {duels::1::spawn::2}
			set {_slot} to 0
			loop {duels::1::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::1::counter} to true
			set {duels::1::countdown} to {duels::time}
			stop
	else if {duels::2::duelstart} = false:
		if {maxduels} >= 2:
			set {duels::2::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::2::%{_x}%} to true
			set {party::induel::2::%{_z}%} to true
			set {duels::2::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::2::wait}
			teleport {_x} to {duels::2::wait}
			add {_z} to {duels::2::players::*}
			add {_x} to {duels::2::players::*}
			add {_z} to {duels::2::fd::*}
			add {_x} to {duels::2::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::2::nodamage} to false
			teleport {_x} to {duels::2::spawn::1}
			teleport {_z} to {duels::2::spawn::2}
			set {_slot} to 0
			loop {duels::2::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::2::counter} to true
			set {duels::2::countdown} to {duels::time}
			stop
	else if {duels::3::duelstart} = false:
		if {maxduels} >= 3:
			set {duels::3::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::3::%{_x}%} to true
			set {party::induel::3::%{_z}%} to true
			set {duels::3::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::3::wait}
			teleport {_x} to {duels::3::wait}
			add {_z} to {duels::3::players::*}
			add {_x} to {duels::3::players::*}
			add {_z} to {duels::3::fd::*}
			add {_x} to {duels::3::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::3::nodamage} to false
			teleport {_x} to {duels::3::spawn::1}
			teleport {_z} to {duels::3::spawn::2}
			set {_slot} to 0
			loop {duels::3::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::3::counter} to true
			set {duels::3::countdown} to {duels::time}
			stop
	else if {duels::4::duelstart} = false:
		if {maxduels} >= 4:
			set {duels::4::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::4::%{_x}%} to true
			set {party::induel::4::%{_z}%} to true
			set {duels::4::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::4::wait}
			teleport {_x} to {duels::4::wait}
			add {_z} to {duels::4::players::*}
			add {_x} to {duels::4::players::*}
			add {_z} to {duels::4::fd::*}
			add {_x} to {duels::4::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::4::nodamage} to false
			teleport {_x} to {duels::4::spawn::1}
			teleport {_z} to {duels::4::spawn::2}
			set {_slot} to 0
			loop {duels::4::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::4::counter} to true
			set {duels::4::countdown} to {duels::time}
			stop
	else if {duels::5::duelstart} = false:
		if {maxduels} >= 5:
			set {duels::5::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::5::%{_x}%} to true
			set {party::induel::5::%{_z}%} to true
			set {duels::5::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::5::wait}
			teleport {_x} to {duels::5::wait}
			add {_z} to {duels::5::players::*}
			add {_x} to {duels::5::players::*}
			add {_z} to {duels::5::fd::*}
			add {_x} to {duels::5::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::5::nodamage} to false
			teleport {_x} to {duels::5::spawn::1}
			teleport {_z} to {duels::5::spawn::2}
			set {_slot} to 0
			loop {duels::5::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::5::counter} to true
			set {duels::5::countdown} to {duels::time}
			stop
	else if {duels::6::duelstart} = false:
		if {maxduels} >= 6:
			set {duels::6::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::6::%{_x}%} to true
			set {party::induel::6::%{_z}%} to true
			set {duels::6::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::6::wait}
			teleport {_x} to {duels::6::wait}
			add {_z} to {duels::6::players::*}
			add {_x} to {duels::6::players::*}
			add {_z} to {duels::6::fd::*}
			add {_x} to {duels::6::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::6::nodamage} to false
			teleport {_x} to {duels::6::spawn::1}
			teleport {_z} to {duels::6::spawn::2}
			set {_slot} to 0
			loop {duels::6::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::6::counter} to true
			set {duels::6::countdown} to {duels::time}
	else if {duels::7::duelstart} = false:
		if {maxduels} >= 7:
			set {duels::7::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::7::%{_x}%} to true
			set {party::induel::7::%{_z}%} to true
			set {duels::7::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::7::wait}
			teleport {_x} to {duels::7::wait}
			add {_z} to {duels::7::players::*}
			add {_x} to {duels::7::players::*}
			add {_z} to {duels::7::fd::*}
			add {_x} to {duels::7::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::7::nodamage} to false
			teleport {_x} to {duels::7::spawn::1}
			teleport {_z} to {duels::7::spawn::2}
			set {_slot} to 0
			loop {duels::7::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::7::counter} to true
			set {duels::7::countdown} to {duels::time}
			stop
	else if {duels::8::duelstart} = false:
		if {maxduels} >= 8:
			set {duels::8::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::8::%{_x}%} to true
			set {party::induel::8::%{_z}%} to true
			set {duels::8::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::8::wait}
			teleport {_x} to {duels::8::wait}
			add {_z} to {duels::8::players::*}
			add {_x} to {duels::8::players::*}
			add {_z} to {duels::8::fd::*}
			add {_x} to {duels::8::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::8::nodamage} to false
			teleport {_x} to {duels::8::spawn::1}
			teleport {_z} to {duels::8::spawn::2}
			set {_slot} to 0
			loop {duels::8::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::8::counter} to true
			set {duels::8::countdown} to {duels::time}
			stop
	else if {duels::9::duelstart} = false:
		if {maxduels} >= 9:
			set {duels::9::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::9::%{_x}%} to true
			set {party::induel::9::%{_z}%} to true
			set {duels::9::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::9::wait}
			teleport {_x} to {duels::9::wait}
			add {_z} to {duels::9::players::*}
			add {_x} to {duels::9::players::*}
			add {_z} to {duels::9::fd::*}
			add {_x} to {duels::9::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::9::nodamage} to false
			teleport {_x} to {duels::9::spawn::1}
			teleport {_z} to {duels::9::spawn::2}
			set {_slot} to 0
			loop {duels::9::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::9::counter} to true
			set {duels::9::countdown} to {duels::time}
			stop
	else if {duels::10::duelstart} = false:
		if {maxduels} = 10:
			set {duels::10::duelstart} to true
			send "&cYou joined the duel against %{_z}%" to {_x}
			send "&cYou joined the duel against %{_x}%" to {_z}
			set {party::induel::10::%{_x}%} to true
			set {party::induel::10::%{_z}%} to true
			set {duels::10::nodamage} to true
			statusPlayerDuel({_x}, "In duel against %{_z}%")
			statusPlayerDuel({_z}, "In duel against %{_x}%")
			teleport {_z} to {duels::10::wait}
			teleport {_x} to {duels::10::wait}
			add {_z} to {duels::10::players::*}
			add {_x} to {duels::10::players::*}
			add {_z} to {duels::10::fd::*}
			add {_x} to {duels::10::fd::*}
			wait 1 second
			send "&cDuel starting in 10 seconds.." to {_x}
			send "&cDuel starting in 10 seconds.." to {_z}
			send {_x} title "&a&l10"
			send {_z} title "&a&l10"
			wait 5 seconds
			send {_x} title "&a&l5"
			send {_z} title "&a&l5"
			wait 1 second
			send {_x} title "&e&l4"
			send {_z} title "&e&l4"
			wait 1 second
			send {_x} title "&c&l3"
			send {_z} title "&c&l3"
			wait 1 second
			send {_x} title "&c&l2"
			send {_z} title "&c&l2"
			wait 1 second
			send {_x} title "&c&l1"
			send {_z} title "&c&l1"
			wait 1 second
			send {_x} title "&c&lGO"
			send {_z} title "&c&lGO"
			set {duels::10::nodamage} to false
			teleport {_x} to {duels::10::spawn::1}
			teleport {_z} to {duels::10::spawn::2}
			set {_slot} to 0
			loop {duels::10::kit::*}:
				set slot {_slot} of {_z}'s current inventory to loop-value
				set slot {_slot} of {_x}'s current inventory to loop-value
				add 1 to {_slot}
			set {duels::10::counter} to true
			set {duels::10::countdown} to {duels::time}
			stop 
	else:
		send "%{DuelInProgress}%" to {_x}

on player world change:
	if "%{duels::1::players::*}%" contains "%player%":
		if {duels::1::duelstart} = true:
			if size of {duels::1::fd::*} = 2:
				remove player from {duels::1::players::*}
				remove player from {duels::1::fd::*}
				wait 10 ticks
				endDuel(1, "pq")
	else if "%{duels::2::players::*}%" contains "%player%":
		if {duels::2::duelstart} = true:
			if size of {duels::2::fd::*} = 2:
				remove player from {duels::2::players::*}
				remove player from {duels::2::fd::*}
				wait 10 ticks
				endDuel(2, "pq")
	else if "%{duels::3::players::*}%" contains "%player%":
		if {duels::3::duelstart} = true:
			if size of {duels::3::fd::*} = 2:
				remove player from {duels::3::players::*}
				remove player from {duels::3::fd::*}
				wait 10 ticks
				endDuel(3, "pq")
	else if "%{duels::4::players::*}%" contains "%player%":
		if {duels::4::duelstart} = true:
			if size of {duels::4::fd::*} = 2:
				remove player from {duels::4::players::*}
				remove player from {duels::4::fd::*}
				wait 10 ticks
				endDuel(4, "pq")
	else if "%{duels::5::players::*}%" contains "%player%":
		if {duels::5::duelstart} = true:
			if size of {duels::5::fd::*} = 2:
				remove player from {duels::5::players::*}
				remove player from {duels::5::fd::*}
				wait 10 ticks
				endDuel(5, "pq")
	else if "%{duels::6::players::*}%" contains "%player%":
		if {duels::6::duelstart} = true:
			if size of {duels::6::fd::*} = 2:
				remove player from {duels::6::players::*}
				remove player from {duels::6::fd::*}
				wait 10 ticks
				endDuel(6, "pq")
	else if "%{duels::7::players::*}%" contains "%player%":
		if {duels::7::duelstart} = true:
			if size of {duels::7::fd::*} = 2:
				remove player from {duels::7::players::*}
				remove player from {duels::7::fd::*}
				wait 10 ticks
				endDuel(7, "pq")
	else if "%{duels::8::players::*}%" contains "%player%":
		if {duels::8::duelstart} = true:
			if size of {duels::8::fd::*} = 2:
				remove player from {duels::8::players::*}
				remove player from {duels::8::fd::*}
				wait 10 ticks
				endDuel(8, "pq")
	else if "%{duels::9::players::*}%" contains "%player%":
		if {duels::9::duelstart} = true:
			if size of {duels::9::fd::*} = 2:
				remove player from {duels::9::players::*}
				remove player from {duels::9::fd::*}
				wait 10 ticks
				endDuel(9, "pq")
	else if "%{duels::10::players::*}%" contains "%player%":
		if {duels::10::duelstart} = true:
			if size of {duels::10::fd::*} = 2:
				remove player from {duels::10::players::*}
				remove player from {duels::10::fd::*}
				wait 10 ticks
				endDuel(10, "pq")

on quit:
	if "%{duels::1::players::*}%" contains "%player%":
		if {duels::1::duelstart} = true:
			if size of {duels::1::fd::*} = 2:
				remove player from {duels::1::players::*}
				remove player from {duels::1::fd::*}
				wait 10 ticks
				endDuel(1, "pq")
	else if "%{duels::2::players::*}%" contains "%player%":
		if {duels::2::duelstart} = true:
			if size of {duels::2::fd::*} = 2:
				remove player from {duels::2::players::*}
				remove player from {duels::2::fd::*}
				wait 10 ticks
				endDuel(2, "pq")
	else if "%{duels::3::players::*}%" contains "%player%":
		if {duels::3::duelstart} = true:
			if size of {duels::3::fd::*} = 2:
				remove player from {duels::3::players::*}
				remove player from {duels::3::fd::*}
				wait 10 ticks
				endDuel(3, "pq")
	else if "%{duels::4::players::*}%" contains "%player%":
		if {duels::4::duelstart} = true:
			if size of {duels::4::fd::*} = 2:
				remove player from {duels::4::players::*}
				remove player from {duels::4::fd::*}
				wait 10 ticks
				endDuel(4, "pq")
	else if "%{duels::5::players::*}%" contains "%player%":
		if {duels::5::duelstart} = true:
			if size of {duels::5::fd::*} = 2:
				remove player from {duels::5::players::*}
				remove player from {duels::5::fd::*}
				wait 10 ticks
				endDuel(5, "pq")
	else if "%{duels::6::players::*}%" contains "%player%":
		if {duels::6::duelstart} = true:
			if size of {duels::6::fd::*} = 2:
				remove player from {duels::6::players::*}
				remove player from {duels::6::fd::*}
				wait 10 ticks
				endDuel(6, "pq")
	else if "%{duels::7::players::*}%" contains "%player%":
		if {duels::7::duelstart} = true:
			if size of {duels::7::fd::*} = 2:
				remove player from {duels::7::players::*}
				remove player from {duels::7::fd::*}
				wait 10 ticks
				endDuel(7, "pq")
	else if "%{duels::8::players::*}%" contains "%player%":
		if {duels::8::duelstart} = true:
			if size of {duels::8::fd::*} = 2:
				remove player from {duels::8::players::*}
				remove player from {duels::8::fd::*}
				wait 10 ticks
				endDuel(8, "pq")
	else if "%{duels::9::players::*}%" contains "%player%":
		if {duels::9::duelstart} = true:
			if size of {duels::9::fd::*} = 2:
				remove player from {duels::9::players::*}
				remove player from {duels::9::fd::*}
				wait 10 ticks
				endDuel(9, "pq")
	else if "%{duels::10::players::*}%" contains "%player%":
		if {duels::10::duelstart} = true:
			if size of {duels::10::fd::*} = 2:
				remove player from {duels::10::players::*}
				remove player from {duels::10::fd::*}
				wait 10 ticks
				endDuel(10, "pq")

on death of player:
	if "%{duels::1::players::*}%" contains "%victim%":
		if {duels::1::duelstart} = true:
			if size of {duels::1::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::1::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::1::wait}
	else if "%{duels::2::players::*}%" contains "%victim%":
		if {duels::2::duelstart} = true:
			if size of {duels::2::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::2::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::2::wait}
	else if "%{duels::3::players::*}%" contains "%victim%":
		if {duels::3::duelstart} = true:
			if size of {duels::3::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::3::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::3::wait}
	else if "%{duels::4::players::*}%" contains "%victim%":
		if {duels::4::duelstart} = true:
			if size of {duels::4::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::4::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::4::wait}
	else if "%{duels::5::players::*}%" contains "%victim%":
		if {duels::5::duelstart} = true:
			if size of {duels::5::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::5::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::5::wait}
	else if "%{duels::6::players::*}%" contains "%victim%":
		if {duels::6::duelstart} = true:
			if size of {duels::6::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::6::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::6::wait}
	else if "%{duels::7::players::*}%" contains "%victim%":
		if {duels::7::duelstart} = true:
			if size of {duels::7::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::7::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::7::wait}
	else if "%{duels::8::players::*}%" contains "%victim%":
		if {duels::8::duelstart} = true:
			if size of {duels::8::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::8::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::8::wait}
	else if "%{duels::9::players::*}%" contains "%victim%":
		if {duels::9::duelstart} = true:
			if size of {duels::9::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::9::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::9::wait}
	else if "%{duels::10::players::*}%" contains "%victim%":
		if {duels::10::duelstart} = true:
			if size of {duels::10::fd::*} = 2:
				force victim to respawn
				remove victim from {duels::10::fd::*}
				set gamemode of victim to spectator
				teleport victim to {duels::10::wait}

on death of player:
	set death message to ""
	if "%{duels::1::players::*}%" contains "%victim%":
		if {duels::1::duelstart} = true:
			if attacker is a player:
				set {duels::1::counter} to false
				loop {duels::1::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::1::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::1::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::1::duelstart} to false 
				clear {duels::1::players::*}
				clear {duels::1::fd::*}
			else:
				set {duels::1::counter} to false
				loop {duels::1::players::*}:
					send loop-value title "&6&l%{duels::1::fd::*}% won!"
					send "&7%{duels::1::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::1::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::1::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::1::duelstart} to false 
				clear {duels::1::players::*}	
				clear {duels::1::fd::*}
	else if "%{duels::2::players::*}%" contains "%victim%":
		if {duels::2::duelstart} = true:
			if attacker is a player:
				set {duels::2::counter} to false
				loop {duels::2::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::2::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::2::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::2::duelstart} to false
				clear {duels::2::players::*}
				clear {duels::2::fd::*}
			else:
				set {duels::2::counter} to false
				loop {duels::2::players::*}:
					send loop-value title "&6&l%{duels::2::fd::*}% won!"
					send "&7%{duels::2::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::2::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::2::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::2::duelstart} to false 
				clear {duels::2::players::*}	
				clear {duels::2::fd::*}
	else if "%{duels::3::players::*}%" contains "%victim%":
		if {duels::3::duelstart} = true:
			if attacker is a player:
				set {duels::3::counter} to false
				loop {duels::3::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::3::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::3::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::3::duelstart} to false
				clear {duels::3::players::*}
				clear {duels::3::fd::*}
			else:
				set {duels::3::counter} to false
				loop {duels::3::players::*}:
					send loop-value title "&6&l%{duels::3::fd::*}% won!"
					send "&7%{duels::3::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::3::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::3::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::3::duelstart} to false 
				clear {duels::3::players::*}
				clear {duels::3::fd::*}
	else if "%{duels::4::players::*}%" contains "%victim%":
		if {duels::4::duelstart} = true:
			if attacker is a player:
				set {duels::4::counter} to false
				loop {duels::4::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::4::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::4::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::4::duelstart} to false
				clear {duels::4::players::*}
				clear {duels::4::fd::*}
			else:
				set {duels::4::counter} to false
				loop {duels::4::players::*}:
					send loop-value title "&6&l%{duels::4::fd::*}% won!"
					send "&7%{duels::4::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::4::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::4::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::4::duelstart} to false 
				clear {duels::4::players::*}
				clear {duels::4::fd::*}
	else if "%{duels::5::players::*}%" contains "%victim%":
		if {duels::5::duelstart} = true:
			if attacker is a player:
				set {duels::5::counter} to false
				loop {duels::5::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::5::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::5::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::5::duelstart} to false
				clear {duels::5::players::*}
				clear {duels::5::fd::*}
			else:
				set {duels::5::counter} to false
				loop {duels::5::players::*}:
					send loop-value title "&6&l%{duels::5::fd::*}% won!"
					send "&7%{duels::5::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::5::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::5::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::5::duelstart} to false 
				clear {duels::5::players::*}
				clear {duels::5::fd::*}
	else if "%{duels::6::players::*}%" contains "%victim%":
		if {duels::6::duelstart} = true:
			if attacker is a player:
				set {duels::6::counter} to false
				loop {duels::6::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::6::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::6::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::6::duelstart} to false
				clear {duels::6::players::*}
				clear {duels::6::fd::*}
			else:
				set {duels::6::counter} to false
				loop {duels::6::players::*}:
					send loop-value title "&6&l%{duels::6::fd::*}% won!"
					send "&7%{duels::6::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::6::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::6::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::6::duelstart} to false 
				clear {duels::6::players::*}
				clear {duels::6::fd::*}
	else if "%{duels::7::players::*}%" contains "%victim%":
		if {duels::7::duelstart} = true:
			if attacker is a player:
				set {duels::7::counter} to false
				loop {duels::7::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::7::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::7::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::7::duelstart} to false
				clear {duels::7::players::*}
				clear {duels::7::fd::*}
			else:
				set {duels::7::counter} to false
				loop {duels::7::players::*}:
					send loop-value title "&6&l%{duels::7::fd::*}% won!"
					send "&7%{duels::7::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::7::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::7::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::7::duelstart} to false 
				clear {duels::7::players::*}
				clear {duels::7::fd::*}
	else if "%{duels::8::players::*}%" contains "%victim%":
		if {duels::8::duelstart} = true:
			if attacker is a player:
				set {duels::8::counter} to false
				loop {duels::8::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::8::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::8::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::8::duelstart} to false
				clear {duels::8::players::*}
				clear {duels::8::fd::*}
			else:
				set {duels::8::counter} to false
				loop {duels::8::players::*}:
					send loop-value title "&6&l%{duels::8::fd::*}% won!"
					send "&7%{duels::8::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::8::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::8::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::8::duelstart} to false 
				clear {duels::8::players::*}
				clear {duels::8::fd::*}
	else if "%{duels::9::players::*}%" contains "%victim%":
		if {duels::9::duelstart} = true:
			if attacker is a player:
				set {duels::9::counter} to false
				loop {duels::9::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::9::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::9::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::9::duelstart} to false
				clear {duels::9::players::*}
				clear {duels::9::fd::*}
			else:
				set {duels::9::counter} to false
				loop {duels::9::players::*}:
					send loop-value title "&6&l%{duels::9::fd::*}% won!"
					send "&7%{duels::9::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::9::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::9::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::9::duelstart} to false 
				clear {duels::9::players::*}
				clear {duels::9::fd::*}
	else if "%{duels::10::players::*}%" contains "%victim%":
		if {duels::10::duelstart} = true:
			if attacker is a player:
				set {duels::10::counter} to false
				loop {duels::10::players::*}:
					send loop-value title "&6&l%attacker% won!"
					send "&7%attacker% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::10::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::10::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::10::duelstart} to false
				clear {duels::10::players::*}
				clear {duels::10::fd::*}
			else:
				set {duels::10::counter} to false
				loop {duels::10::players::*}:
					send loop-value title "&6&l%{duels::10::fd::*}% won!"
					send "&7%{duels::10::fd::*}% has won the game!" to loop-value
					set action bar of loop-value to "&r"
					clear inventory of loop-value
					statusPlayerDuel(loop-value, "Not dueling")
				wait 3.5 second
				loop {duels::10::players::*}:
					teleport loop-value to {duels::location::%loop-value%} 
					set {party::induel::10::%loop-value%} to false
				set gamemode of victim to survival
				set {duels::10::duelstart} to false 
				clear {duels::10::players::*}
				clear {duels::10::fd::*}

function endDuel(i: integer, t: text):
	if "%{_t}%" = "nw":
		if {_i} = 1:
			set {duels::1::counter} to false
			loop {duels::1::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
			wait 5 second
			loop {duels::1::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::1::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::1::duelstart} to false 
			clear {duels::1::players::*}
			clear {duels::1::fd::*}
		else if {_i} = 2:
			set {duels::2::counter} to false
			loop {duels::2::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::2::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::2::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::2::duelstart} to false 
			clear {duels::2::players::*}
			clear {duels::2::fd::*}
		else if {_i} = 3:
			set {duels::3::counter} to false
			loop {duels::3::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::3::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::3::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::3::duelstart} to false 
			clear {duels::3::players::*}
			clear {duels::3::fd::*}
		else if {_i} = 4:
			set {duels::4::counter} to false
			loop {duels::4::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::4::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::4::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::4::duelstart} to false 
			clear {duels::4::players::*}
			clear {duels::4::fd::*}
		else if {_i} = 5:
			set {duels::5::counter} to false
			loop {duels::5::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::5::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::5::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::5::duelstart} to false 
			clear {duels::5::players::*}
			clear {duels::5::fd::*}
		else if {_i} = 6:
			set {duels::6::counter} to false
			loop {duels::6::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::6::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::6::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::6::duelstart} to false 
			clear {duels::6::players::*}
			clear {duels::6::fd::*}
		else if {_i} = 7:
			set {duels::7::counter} to false
			loop {duels::7::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::7::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::7::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::7::duelstart} to false 
			clear {duels::7::players::*}
			clear {duels::7::fd::*}
		else if {_i} = 8:
			set {duels::8::counter} to false
			loop {duels::8::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::8::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::8::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::8::duelstart} to false 
			clear {duels::8::players::*}
			clear {duels::8::fd::*}
		else if {_i} = 9:
			set {duels::9::counter} to false
			loop {duels::9::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::9::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::9::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::9::duelstart} to false 
			clear {duels::9::players::*}
			clear {duels::9::fd::*}
		else if {_i} = 10:
			set {duels::10::counter} to false
			loop {duels::10::players::*}:
				send loop-value title "&6No one won :("
				send "&7Next time better! &7You will be teleported back soon.." to loop-value
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::10::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::10::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::10::duelstart} to false 
			clear {duels::10::players::*}
			clear {duels::10::fd::*}
	else if "%{_t}%" = "pq":
		if {_i} = 1:
			set {duels::1::counter} to false
			loop {duels::1::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::1::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::1::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::1::duelstart} to false 
			clear {duels::1::players::*}
			clear {duels::1::fd::*}
		else if {_i} = 2:
			set {duels::2::counter} to false
			loop {duels::2::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::2::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::2::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::2::duelstart} to false 
			clear {duels::2::players::*}
			clear {duels::2::fd::*}
		else if {_i} = 3:
			set {duels::3::counter} to false
			loop {duels::3::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::3::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::3::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::3::duelstart} to false 
			clear {duels::3::players::*}
			clear {duels::3::fd::*}
		else if {_i} = 4:
			set {duels::4::counter} to false
			loop {duels::4::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::4::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::4::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::4::duelstart} to false 
			clear {duels::4::players::*}
			clear {duels::4::fd::*}
		else if {_i} = 5:
			set {duels::5::counter} to false
			loop {duels::5::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::5::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::5::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::5::duelstart} to false 
			clear {duels::5::players::*}
			clear {duels::5::fd::*}
		else if {_i} = 6:
			set {duels::6::counter} to false
			loop {duels::6::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::6::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::6::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::6::duelstart} to false 
			clear {duels::6::players::*}
			clear {duels::6::fd::*}
		else if {_i} = 7:
			set {duels::7::counter} to false
			loop {duels::7::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::7::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::7::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::7::duelstart} to false 
			clear {duels::7::players::*}
			clear {duels::7::fd::*}
		else if {_i} = 8:
			set {duels::8::counter} to false
			loop {duels::8::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::8::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::8::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::8::duelstart} to false 
			clear {duels::8::players::*}
			clear {duels::8::fd::*}
		else if {_i} = 9:
			set {duels::9::counter} to false
			loop {duels::9::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::9::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::9::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::9::duelstart} to false 
			clear {duels::9::players::*}
			clear {duels::9::fd::*}
		else if {_i} = 10:
			set {duels::10::counter} to false
			loop {duels::10::players::*}:
				send loop-value title "&6You won!"
				set action bar of loop-value to "&r"
				send "&7Well played!" to loop-value
			wait 3.5 second
			loop {duels::10::players::*}:
				teleport loop-value to {duels::location::%loop-value%} 
				set {party::induel::10::%loop-value%} to false
				set gamemode of loop-value to survival
				clear inventory of loop-value
				statusPlayerDuel(loop-value, "Not dueling")
			set {duels::10::duelstart} to false 
			clear {duels::10::players::*}
			clear {duels::10::fd::*}

every second:
	if {duels::1::counter} = true:
		if {duels::1::countdown} > 0:
			remove 1 from {duels::1::countdown}
			loop {duels::1::players::*}:
				set action bar of loop-value to "&a&l%{duels::1::countdown}%" 
		else if {duels::1::countdown} = 0:
			endDuel(1, "nw")
	if {duels::2::counter} = true:
		if {duels::2::countdown} > 0:
			remove 1 from {duels::2::countdown}
			loop {duels::2::players::*}:
				set action bar of loop-value to "&a&l%{duels::2::countdown}%" 
		else if {duels::2::countdown} = 0:
			endDuel(2, "nw")
	if {duels::3::counter} = true:
		if {duels::3::countdown} > 0:
			remove 1 from {duels::3::countdown}
			loop {duels::3::players::*}:
				set action bar of loop-value to "&a&l%{duels::3::countdown}%" 
		else if {duels::3::countdown} = 0:
			endDuel(3, "nw")
	if {duels::4::counter} = true:
		if {duels::4::countdown} > 0:
			remove 1 from {duels::4::countdown}
			loop {duels::4::players::*}:
				set action bar of loop-value to "&a&l%{duels::4::countdown}%" 
		else if {duels::4::countdown} = 0:
			endDuel(4, "nw")
	if {duels::5::counter} = true:
		if {duels::5::countdown} > 0:
			remove 1 from {duels::5::countdown}
			loop {duels::5::players::*}:
				set action bar of loop-value to "&a&l%{duels::5::countdown}%" 
		else if {duels::5::countdown} = 0:
			endDuel(5, "nw")
	if {duels::6::counter} = true:
		if {duels::6::countdown} > 0:
			remove 1 from {duels::6::countdown}
			loop {duels::6::players::*}:
				set action bar of loop-value to "&a&l%{duels::6::countdown}%" 
		else if {duels::6::countdown} = 0:
			endDuel(6, "nw")
	if {duels::7::counter} = true:
		if {duels::7::countdown} > 0:
			remove 1 from {duels::7::countdown}
			loop {duels::7::players::*}:
				set action bar of loop-value to "&a&l%{duels::7::countdown}%" 
		else if {duels::7::countdown} = 0:
			endDuel(7, "nw")
	if {duels::8::counter} = true:
		if {duels::8::countdown} > 0:
			remove 1 from {duels::8::countdown}
			loop {duels::8::players::*}:
				set action bar of loop-value to "&a&l%{duels::8::countdown}%" 
		else if {duels::8::countdown} = 0:
			endDuel(8, "nw")
	if {duels::9::counter} = true:
		if {duels::9::countdown} > 0:
			remove 1 from {duels::9::countdown}
			loop {duels::9::players::*}:
				set action bar of loop-value to "&a&l%{duels::9::countdown}%" 
		else if {duels::9::countdown} = 0:
			endDuel(9, "nw")
	if {duels::10::counter} = true:
		if {duels::10::countdown} > 0:
			remove 1 from {duels::10::countdown}
			loop {duels::10::players::*}:
				set action bar of loop-value to "&a&l%{duels::10::countdown}%" 
		else if {duels::10::countdown} = 0:
			endDuel(10, "nw")

on damage of player:
	if {party::induel::1::%victim%} = true:
		if {duels::1::nodamage} = true:
			cancel event
	else if {party::induel::2::%victim%} = true:
		if {duels::2::nodamage} = true:
			cancel event
	else if {party::induel::3::%victim%} = true:
		if {duels::3::nodamage} = true:
			cancel event
	else if {party::induel::4::%victim%} = true:
		if {duels::4::nodamage} = true:
			cancel event
	else if {party::induel::5::%victim%} = true:
		if {duels::5::nodamage} = true:
			cancel event
	else if {party::induel::6::%victim%} = true:
		if {duels::6::nodamage} = true:
			cancel event
	else if {party::induel::7::%victim%} = true:
		if {duels::7::nodamage} = true:
			cancel event
	else if {party::induel::8::%victim%} = true:
		if {duels::8::nodamage} = true:
			cancel event
	else if {party::induel::9::%victim%} = true:
		if {duels::9::nodamage} = true:
			cancel event
	else if {party::induel::10::%victim%} = true:
		if {duels::10::nodamage} = true:
			cancel event

on hunger bar change:
	if {party::induel::1::%player%} = true:
		if {duels::1::hunger} = false: 
			cancel event
	else if {party::induel::2::%player%} = true:
		if {duels::2::hunger} = false: 
			cancel event
	else if {party::induel::3::%player%} = true:
		if {duels::3::hunger} = false: 
			cancel event
	else if {party::induel::4::%player%} = true:
		if {duels::4::hunger} = false: 
			cancel event
	else if {party::induel::5::%player%} = true:
		if {duels::5::hunger} = false: 
			cancel event
	else if {party::induel::6::%player%} = true:
		if {duels::6::hunger} = false: 
			cancel event
	else if {party::induel::7::%player%} = true:
		if {duels::7::hunger} = false: 
			cancel event
	else if {party::induel::8::%player%} = true:
		if {duels::8::hunger} = false: 
			cancel event
	else if {party::induel::9::%player%} = true:
		if {duels::9::hunger} = false: 
			cancel event
	else if {party::induel::10::%player%} = true:
		if {duels::10::hunger} = false: 
			cancel event

function load():
	if file "plugins/Party+/config.yml" does not exist:
		write("config")
	if file "plugins/Party+/duels/duels.yml" does not exist:
		write("duels")
	if dir "plugins/Party+/userdata" does not exist:
		create dir "plugins/Party+/userdata"
	wait 1 second
	read()
	if {duels::1::duelstart} is not set:
		set {duels::1::duelstart} to false
	if {duels::2::duelstart} is not set:
		set {duels::2::duelstart} to false
	if {duels::3::duelstart} is not set:
		set {duels::3::duelstart} to false
	if {duels::4::duelstart} is not set:
		set {duels::4::duelstart} to false
	if {duels::5::duelstart} is not set:
		set {duels::5::duelstart} to false
	if {duels::6::duelstart} is not set:
		set {duels::6::duelstart} to false
	if {duels::7::duelstart} is not set:
		set {duels::7::duelstart} to false
	if {duels::8::duelstart} is not set:
		set {duels::8::duelstart} to false
	if {duels::9::duelstart} is not set:
		set {duels::9::duelstart} to false
	if {duels::10::duelstart} is not set:
		set {duels::10::duelstart} to false
	wait 1 seconds
	if {maxduels} >= 1:
		if {duels::1::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 1 up yet! Use /party+ for more help" to console
	if {maxduels} >= 2:
		if {duels::2::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 2 up yet! Use /party+ for more help" to console
	if {maxduels} >= 3:
		if {duels::3::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 3 up yet! Use /party+ for more help" to console
	if {maxduels} >= 4:
		if {duels::4::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 4 up yet! Use /party+ for more help" to console
	if {maxduels} >= 5:
		if {duels::5::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 5 up yet! Use /party+ for more help" to console
	if {maxduels} >= 6:
		if {duels::6::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 6 up yet! Use /party+ for more help" to console
	if {maxduels} >= 7:
		if {duels::7::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 7 up yet! Use /party+ for more help" to console
	if {maxduels} >= 8:
		if {duels::8::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 8 up yet! Use /party+ for more help" to console
	if {maxduels} >= 9:
		if {duels::9::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 9 up yet! Use /party+ for more help" to console
	if {maxduels} = 10:
		if {duels::10::wait} is not set:
			send "&7[&aParty+&7] &c&lNOTICE: &cYou have set the max amount of duels to %{maxduels}%, but you haven't set arena 10 up yet! Use /party+ for more help" to console

function partyWorld(p: player):
	if {bungee} = false:
		if {Ownerofparty.%{_p}%} is set:
			if {Ownerofparty.%{_p}%} is {_p}:
				loop {p.%{Ownerofparty.%{_p}%}%.list::*}:
					teleport loop-variable to {Ownerofparty.%{_p}%}

function bungeeChat():
	if {bungee} = true:
		loop all players:
			if {partymsg.%loop-player%} is set:
				send "%{prefix}% %{partymsg.%loop-player%}%" to loop-player
				delete {partymsg.%loop-player%}

function partyChat(p: player):
	if {Ownerofparty.%{_p}%} is set:
		if {Partychat.%{_p}%} is true:
			set {Partychat.%{_p}%} to false
			send "%{PartyChatFalse}%" to {_p}
		else:
			set {Partychat.%{_p}%} to true
			send "%{PartyChatTrue}%" to {_p}
	else:
		send "%{PartyNotInParty}%" to {_p}

function regionExit(p: player):
	if {regions} = true:
		if {regioncommand} = false:	
			if {Ownerofparty.%{_p}%} = {_p}:
				set {inRegion.%{_p}%} to false

function regionEnter(p: player, r: region):
	if {regions} = true:
		if {regioncommand} = false:
			if {Ownerofparty.%{_p}%} = {_p}:
				set {inRegion.%{_p}%} to true
			loop {p.regionlist::*}:
				if "%loop-value%" contains "%{_r}%":
					if {Ownerofparty.%{_p}%} = {_p}:
						make {_p} execute command "/party warp"
		else if {regioncommand} = true:
			send "%{enteredRegion}%" to {_p}

function firstJoin(p: player):
	set {party.%{_p}%.pchatmute} to false

function join(p: player):
	if {bungee} = true:
		set {online.%{_p}%} to true
		set {server.%{_p}%} to "{server}"
		set {justjoined.%{_p}%} to true
		wait 20 ticks
		set {justjoined.%{_p}%} to true
		wait 20 ticks
		set {justjoined.%{_p}%} to true
		wait 20 ticks
		set {justjoined.%{_p}%} to true
		wait 20 ticks
		set {justjoined.%{_p}%} to true
		wait 20 ticks
		set {justjoined.%{_p}%} to false
	set {party::induel::10::%{_z}%} to true
	set {Partychat.%{_p}%} to false
	set {pwt.%{_p}%} to 0

function quit(p: player):
	if {leaveonquit} = true:
		if {Ownerofparty.%{_p}%} is set:
			if {Ownerofparty.%{_p}%} is {_p}:
				make {_p} execute command "/party disbandconfirm"
			else:
				make {_p} execute command "/party leave" 
		if {bungee} = true:
			if {justjoined.%{_p}%} is true:
				set {online.%{_p}%} to true
#			loop {party.%{Ownerofparty.%{_p}%}%.list::*}:
#				if {@Skungee} = true:
#					bungeecord connect loop-value to "%{server.%{_p}%}%"
			else:
				set {Ownerofparty.%{_p}%} to ""
				set {server.%{_p}%} to ""
				set {online.%{_p}%} to false	

on join:
	if {party.%player%.pchatmute} is not set:
		set {party.%player%.pchatmute} to false
on chat:
	if {Partychat.%player%} is true:
		if {Ownerofparty.%player%} is set:
			if {party.%player%.pchatmute} = false:
				cancel event
				loop {p.%{Ownerofparty.%player%}%.list::*}:
					if {party.%loop-value%.pchatmute} = false:
						set {_pl} to player
						set {_msg} to message
						send "{@PartyChatFormat}" to loop-value
			else:
				cancel event
				send "%{PartyChatMuted}%"

on command:
	if {CommandExec./%full command%} is true:
		if {Ownerofparty.%player%} is player:
			loop {p.%{Ownerofparty.%player%}%.list::*}:
				make loop-value execute command "/%full command%"
		else:
			cancel event
			send "%{NoPartyLeader}%"
				
every second:
	loop all players:
		if {pwt.%loop-player%} > 0:
			remove 1 from {pwt.%loop-player%}

on damage of player:
	if {partypvp} = false:
		if {Ownerofparty.%victim%} is set:
			if {Ownerofparty.%attacker%} is set:
				if "%{p.%attacker%.list::*}%" contains "%victim%":
					if "%{duels::1::players::*}%" contains "%victim%":
						stop
					else if "%{duels::2::players::*}%" contains "%victim%":
						stop
					else if "%{duels::3::players::*}%" contains "%victim%":
						stop
					else if "%{duels::4::players::*}%" contains "%victim%":
						stop
					else if "%{duels::5::players::*}%" contains "%victim%":
						stop
					else if "%{duels::6::players::*}%" contains "%victim%":
						stop
					else if "%{duels::7::players::*}%" contains "%victim%":
						stop
					else if "%{duels::8::players::*}%" contains "%victim%":
						stop
					else if "%{duels::9::players::*}%" contains "%victim%":
						stop
					else if "%{duels::10::players::*}%" contains "%victim%":
						stop
					else:
						cancel event
						send "%{CantAttackParty}%" to attacker

on join:
	if {logging} = true:
		if file "plugins/Party+/userdata/%uuid of player%.yml" does not exist:
			writePlayer(player, "player")

options:
	Command: /party
	ab: true

on load:
	loadRegion()
	load()

on first join:
	firstJoin(player)

on quit:
	quit(player)

on join:
	join(player)

on region enter:
	regionEnter(player, region)

on region exit:
	regionExit(player)

every 2 seconds:
	bungeeChat()

on player world change:
	partyWorld(player)

command /partychat:
	aliases: /pchat
	trigger:
		partyChat(player)

command /party+ [<integer>] [<text>] [<text>] [<integer>]:
	trigger:
		if player has permission "%{duelpermission}%":
			if arg-1 or arg-2 or arg-3 is not set:
				send "&7&m----------&a Party+ Duels &7&m----------"
				send "&a/party+ <arena number> set wait &f- &7Set the waiting location"
				send "&a/party+ <arena number> set spawn 1 &f- &7Set spawn 1 of the duel"
				send "&a/party+ <arena number> set spawn 2 &f- &7Set spawn 2 of the duel"
				send "&a/party+ <arena number> set kit &f- &7Add your current inventory as the kit"
				send "&oExample&r: &a/party+ (1 to 10) set wait"
				send "&7&m---------------------------------"
			else if arg-2 = "set":
				if arg-3 = "wait":
					set {duels::%arg-1%::wait} to location of player
					send "%{prefix}% &7Set the waiting location to %{duels::%arg-1%::wait}%"
				else if arg-3 = "spawn":
					if arg-4 = 1:
						set {duels::%arg-1%::spawn::1} to location of player
						send "%{prefix}% &7Set spawn %arg-4% to %{duels::%arg-1%::spawn::1}%" to player
					else if arg-4 = 2:
						set {duels::%arg-1%::spawn::2} to location of player
						send "%{prefix}% &7Set spawn %arg-4% to %{duels::%arg-1%::spawn::2}%" to player
				else if arg-3 = "kit":
					send "%{prefix}% &7Saved your inventory!"
					loop all items in inventory of player:
						add loop-item to {duels::%arg-1%::kit::*}
		else:
			send "%{NoPermission}%"

command /party [<text>] [<offline player>]:
	aliases: /p, /parties
	trigger:
		if arg-1 is "help":
			partyHelp(player)
		else if arg-1 is not set:
			partyHelp(player)		
		else if arg 1 is "author":
			send "&7[&aParty+&7] by Efnilite"
		else if arg 1 = "chat":
			execute player command "/partychat"
		else if arg-1 = "duel":
			if {duels} = true:
				if {Ownerofparty.%player%} is set:
					if "%arg-2%" != "%player%":
						if "%{p.%player%.list::*}%" contains "%arg-2%":
							set {_inv} to arg-2
							set {_pl} to player
							json("%arg-2%", "%{InviteDuelJson}% %player% %{InviteDuelJson1}%%nl%||&a&lACCEPT||cmd:/party duelaccept %player%||ttp:&aAccept the duel|| &7| ||&c&lDENY||cmd:/party dueldeny %player%||ttp:&cDeny the duel")
							send "%{InvitedDuel}% %arg-2% %{InvitedDuel1}%" to player
						else:
							send "%{PartyPlayerNotInYourParty}%"
					else:
						send "%{DuelYourself}%"
				else:
					send "%{PartyNotInParty}%"
			else:
				send "%{DisabledSorry}%"
		else if arg-1 = "duelaccept":
			if {duels} = true:
				if {Ownerofparty.%player%} is set:
					if "%player%" != "%arg-2%":
						if "%{p.%player%.list::*}%" contains "%arg-2%":
							set {duels::location::%arg-2%} to location of player 
							set {duels::location::%player%} to location of player
							wait 10 ticks
							duelPlayer(arg-2, player)
						else:
							send "%{PartyPlayerNotInYourParty}%"
					else:
						send "%{DuelYourself}%"
				else:
					send "%{PartyNotInParty}%"
			else:
				send "%{DisabledSorry}%"	
		else if arg-1 = "dueldeny":
			if {duels} = true:
				if {Ownerofparty.%player%} is set:
					send "%{DisbandDeclined}%" to player
					set {_pl} to player
					send "%{DieniedRequest}% %player% %{DeniedRequest}%" to arg-2
				else:
					send "%{PartyNotInParty}%"
			else:
				send "%{DisabledSorry}%"		
		else if arg 1 = "sethome":
			if {homes} = true:
				if {Ownerofparty.%player%} is set:
					if {Ownerofparty.%player%} is player:
						set {party.%player%.home} to location of player
						send "%{PartySetHome}% %{party.%player%.home}%" to player
						loop {p.%player%.list::*}:
							set {party.%loop-value%.home} to location of player
							send "%{PartyLeaderSetHome}% %player% %{PartyLeaderSetHome1}% %{party.%loop-value%.home}% %{PartyLeaderSetHome2}%" to loop-value
					else:
						send "%{PartyNotOwner}%"
				else:
					send "%{PartyNotInParty}%"
		else if arg 1 = "home":
			if {homes} = true:
				if {Ownerofparty.%player%} is set:
					if {party.%player%.home} is set:
						teleport player to {party.%player%.home}
						send "%{PartyTPHome}%"
					else:
						send "%{PartyHomeNotSet}%"
				else:
					send "%{PartyNotInParty}%"
		else if arg 1 = "mute":
			if {Ownerofparty.%player%} is set:
				if {party.%player%.pchatmute} is true:
					set {party.%player%.pchatmute} to false
					send "%{PartyMuteDisabled}%" to player
				else:
					set {party.%player%.pchatmute} to true
					send "%{PartyMuteEnabled}%" to player
			else:
				send "%{PartyNotInParty}%"
		else if arg 1 is "create":
			if {Ownerofparty.%player%} is set:
				message "%{PartyAlreadyInParty}%" to player
			else:
				set {Ownerofparty.%player%} to player
				statusPlayer(player, "In party (Owner)")
				add player to {p.%player%.list::*}
				message "%{PartyCreate}%" to player
		else if arg 1 is "disband":
			if {Ownerofparty.%player%} is player:
				json("%player%", "%nl%%{DisbandSure}%||%nl%&2&lCONFIRM||ttp:&7Click me to disband!||cmd:/party disbandconfirm|| &7| ||&4&lDECLINE%nl%||ttp:&7Click me to decline!||cmd:/party disbanddecline")
			else:
				message "%{PartyNotOwner}%" to player
		else if arg 1 is "disbandconfirm":
			if {Ownerofparty.%player%} is player:
				loop {p.%{Ownerofparty.%player%}%.list::*}:
					delete {p.%loop-value%.list::*}
					add 1 to {_Number}
					delete {party.%loop-value%.home}
					delete {Ownerofparty.%loop-value%}
					statusPlayer(player, "Not in party")
					message "%{PartyDisbandKick}%" to loop-variable
				delete {Ownerofparty.%player%}
				clear {p.%player%.list::*}
				message "%{PartyDisband}%" to player
		else if arg 1 is "disbanddecline":
			send "%{DisbandDeclined}%"
		else if arg 1 is "invite":
			if arg 2 is set:
				if arg-2 is a player:
					if {Ownerofparty.%player%} is set:
						if {Ownerofparty.%player%} is player:
							if (size of {p.%player%.list::*}) < {maxplayers}:
								if {pwt.%player%} = 0:
									set {_Inviter} to sender
									set {pwt.%player%} to {invitecooldown}
									add arg-2 to {invites::%player%::list::*}
									if {bungee} = true:
										set {inviter.%arg-2%} to "%sender%"
									add player to {invites::%arg-2%::list::*}
									set {_Command} to "{@Command}"
									set {Invited} to arg 2
									message "%{PartyInvitedPlayer}% %{Invited}%" to sender
									json("%arg 2%", "%{PartyInvite}% %{_Inviter}%%{PartyInvite1}%||ttp:%{PartyInviteTooltip}%||cmd:%{_Command}% accept %sender%")
									wait "%{partytime}% seconds" parsed as timespan
									remove player from {invites::%arg-2%::list::*}
								else:
									send "%{PartyInvCooldown}%" to player
							else:
								set {_MaxNumbers} to "{maxplayers}"
								message "%{PartyInviteExceedsPartyLimit}% %{_MaxNumber}%%{PartyInviteExceedsPartyLimit1}%" to player
						else:
							message "%{PartyNotOwner}%" to player
					else:
						send "%{notPartyYet}%"
						wait 5 tick
						execute player command "/party create"
						execute player command "/party invite %arg-2%"
				else:
					send "%{PlNotOnline}%"
			else:
				set {_Command} to "{@Command}"
				message "%{partyhelp}%" to player
		else if arg 1 is "accept":
			if arg 2 is set:
				if {Ownerofparty.%player%} is not set:
					if "%{invites::%arg-2%::list::*}%" contains "%player%":
						add player to {p.%arg-2%.list::*}
						set {Ownerofparty.%player%} to arg 2
						if {party.%arg-2%.home} is set:
							set {party.%player%.home} to {party.%arg 2%.home}
						loop {p.%{Ownerofparty.%player%}%.list::*}:
							set {p.%loop-value%.list::*} to {p.%{Ownerofparty.%player%}%.list::*}
						statusPlayer(player, "In party of %arg-2%")
						message "%{PartyJoin}%" to player
						loop {p.%{Ownerofparty.%player%}%.list::*}:
							set {_Player} to sender
							message "%{PartyPlayerJoinedYourParty}% %{_Player}% %{PartyPlayerJoinedYourParty1}%" to loop-value
				else:
					message "%{PartyAlreadyInParty}%" to player
			else:
				message "%{partyhelp}%" to player
		else if arg 1 is "warp":
			if {Ownerofparty.%player%} = player:
				if {inRegion.%player%} = true:
					loop {p.%{Ownerofparty.%player%}%.list::*}:
						teleport loop-value to {Ownerofparty.%loop-value%}
						send "%{partyTpHere}%" to loop-value
		else if arg 1 is "leave":
			if {Ownerofparty.%player%} is set:
				if {Ownerofparty.%player%} is player:
					make player execute command "{@Command} disband"
				else:
					loop {p.%{Ownerofparty.%player%}%.list::*}:
						if loop-variable is player:
							message "%{PartyLeave}%" to player
						else:
							set {_Player} to player
							message "%{PartyPlayerLeftYourParty}% %{_Player}% %{PartyPlayerLeftYourParty1}%" to loop-variable
					set {[Partychat.%player%} to false
					statusPlayer(player, "Not in party")
					remove player from {p.%{Ownerofparty.%player%}%.list::*}
					loop {p.%{Ownerofparty.%player%}%.list::*}:
						set {p.%loop-value%.list::*} to {p.%{Ownerofparty.%player%}%.list::*}
					wait 1 tick
					delete {p.%player%.list::*}
					delete {party.%player%.home}
					delete {Ownerofparty.%player%}
			else:
				message "%{PartyNotInParty}%" to player
		else if arg 1 is "promote":
			if arg 2 is set:
				if {Ownerofparty.%player%} is set:
					if {Ownerofparty.%player%} is player:
						if "%{p.%player%.list::*}%" contains "%arg-2%":
							loop {p.%{Ownerofparty.%player%}%.list::*}:
								set {Ownerofparty.%loop-value%} to arg-2
								set {_Player} to arg-2 
								set {_Exec} to sender
								send "%{PartyPromote}% %{_Exec}% %{PartyPromote1}% %{_Player}% %{PartyPromote2}%" to loop-value
					else:
						message "%{PartyNotOwner}%" to player
						stop
				else:
					message "%{PartyNotInParty}%" to player
					stop
			else:
				set {_Command} to "{@Command}"
				message "%{partyhelp}%" to player
		else if arg 1 is "menu":
			if {Ownerofparty.%player%} is set:
				open chest with 4 rows named "&bParty Menu" to player
				wait 2 ticks
				set {_list} to 0
				if {Ownerofparty.%player%} is player:
					loop {p.%player%.list::*}:
						set {_a.%loop-value%} to "%loop-value%" parsed as offlineplayer
						if {_a.%loop-value%} = {Ownerofparty.%loop-value%}:
							format slot {_list} of player with skull of {_a.%loop-value%} named "&bParty Owner &a%loop-value%" to be unstealable
						else:
							set {player.%{_a.%loop-value%}%} to "%loop-value%"
							format slot {_list} of player with skull of {_a.%loop-value%} named "&a%loop-value%" with lore "&7Click me to kick this player!" to close then run [make player execute "/party kick %loop-value%"]
						add 1 to {_list}
					format slot 35 of player with arrow named "&7Close menu" with lore "&7Click me to close||&7the menu!" to close
					if {Ownerofparty.%player%} is player:
						format slot 27 of player with redstone block named "&cDisband the party" with lore "&7Click me to disband||&7the party!" to close then run [make player execute "/party disband"]
					else:
						format slot 27 of player with redstone block named "&cLeave the party" with lore "&7Click me to leave||&7the party!" to close then run [make player execute "/party leave"]
					if {Partychat.%player%} is true:
						format slot 29 of player with name tag named "&cDisable Party Chat" with lore "&7Click me to enable/disable||&7party chat!" to close then run [make player execute "/partychat"]
					else:
						format slot 29 of player with name tag named "&aEnable Party Chat" with lore "&7Click me to enable/disable||&7party chat!" to close then run [make player execute "/partychat"]
					format slot 28 of player with glass block named "&bSee Party Help" with lore "&7Click me to go to||&7Party help!" to close then run [make player execute "/party help"]
				else:
					loop {p.%player%.list::*}:
						set {_a.%loop-value%} to "%loop-value%" parsed as offlineplayer
						if {_a.%loop-value%} = {Ownerofparty.%loop-value%}:
							format slot {_list} of player with skull of {_a.%loop-value%} named "&bParty Owner &a%loop-value%" to be unstealable
						else:
							format slot {_list} of player with skull of {_a.%loop-value%} named "&a%loop-value%" to be unstealable
						add 1 to {_list}
					format slot 35 of player with arrow named "&7Close menu" with lore "&7Click me to close||&7the menu!" to close
					if {Ownerofparty.%player%} is player:
						format slot 27 of player with redstone block named "&cDisband the party" with lore "&7Click me to disband||&7the party!" to close then run [make player execute "/party disband"]
					else:
						format slot 27 of player with redstone block named "&cLeave the party" with lore "&7Click me to leave||&7the party!" to close then run [make player execute "/party leave"]
					if {Partychat.%player%} is true:
						format slot 29 of player with name tag named "&cDisable Party Chat" with lore "&7Click me to enable/disable||&7party chat!" to close then run [make player execute "/partychat"]
					else:
						format slot 29 of player with name tag named "&aEnable Party Chat" with lore "&7Click me to enable/disable||&7party chat!" to close then run [make player execute "/partychat"]
					format slot 28 of player with glass block named "&bSee Party Help" with lore "&7Click me to go to||&7Party help!" to close then run [make player execute "/party help"]
			else:
				message "%{PartyNotInParty}%" to player
		else if arg 1 is "kick":
			if arg 2 is set:
				if {Ownerofparty.%player%} is set:
					if {Ownerofparty.%player%} is player:
						loop {p.%player%.list::*}:
							set {_players} to loop-variable
							if arg-2 is loop-variable:
								set {_Player} to arg-2
								message "%{PartyKicked}%%{_Player}%%{PartyKicked1}%" to player
								message "%{PartyKick}%" to arg-2
								statusPlayer(player, "Not in party")
								make arg-2 execute command "/party leave"
					else:
						message "%{PartyNotOwner}%" to player
				else:
					message "%{PartyNotInParty}%" to player
			else:
				set {_Command} to "{@Command}"
				message "%{partyhelp}%" to player
		else:
			set {_Command} to "{@Command}"
			partyHelp(player)

function partyHelp(p: player):
	send "&7&m--------------&b Party Help &7&m--------------" to {_p}
	send "&b/party help &8» &7Prints this help message" to {_p}
	send "&b/party menu &8» &7Open the menu" to {_p}
	if {duels} = true:
		send "&b&l/party duel <player> &8» &7Duel a party member!" to {_p}
	if {homes} = true:
		send "&b/party sethome &8» &7Set the party home" to {_p}
		send "&b/party home &8» &7Teleport to the party home" to {_p}
	send "&b/party chat &8» &7Enable or disable party chat" to {_p}
	send "&b/party mute &8» &7Mute party chat" to {_p}
	send "&b/party disband &8» &7Disband your party" to {_p}
	send "&b/party promote &8» &7Promote a player to leader" to {_p}
	send "&b/party invite <player> &8» &7Invite a player to your party" to {_p}
	send "&b/party kick <player> &8» &7Kick player from your party" to {_p}
	send "&b/party accept <player> &8» &7Accept a party invite" to {_p}
	send "&7&m--------------------------------------" to {_p}

options:
    debug: false
    codes: 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|k|l|m|n|o|r
    
function removeColor(msg: text) :: text:
    set {_m::*} to {_msg} split at ""
    
    set {_color-codes} to "{@codes}"
    set {_colors::*} to {_color-codes} split at "|"
    
    set {_new} to ""
    
    loop {_m::*}:
        set {_char} to loop-value
        set {_prev} to the last character of {_new}
        
        if {_prev} is "&":
        
            loop {_colors::*}:
            
                if loop-value-2 is {_char}:
                    set {_skip} to true
                
        if {_skip} is set:
            delete {_skip}
            
        else:
            set {_new} to "%{_new}%%{_char}%"
                
    return {_new}
 
function jsonColorize(msg: text, default-color: text = "&r") :: text:
    set {_m::*} to {_msg} split at ""
    
    set {_color-codes} to "{@codes}"
    set {_colors::*} to {_color-codes} split at "|"
    
    set {_color} to colored {_default-color}
    set {_code} to the first character of {_color}
    
    set {_new} to ""
    set {_skip} to 0
    
    loop amount of {_m::*} times:
    
        if {_skip} is more than or equal to 1:
            subtract 1 from {_skip}
            
        else:
            set {_char} to {_m::%loop-number%}
            set {_next} to {_m::%loop-number + 1%}
            
            if {@debug} is true:
                broadcast "&a[Character Check] &r%loop-number%: &7%{_char}% &r&onext: &8%{_next}% &r[%{_color}%color&r]"
            
            if {_char} is "&" or {_code}:
            
                if {@debug} is true:
                    broadcast "&a[Color Check] &rFOUND: &o%{_char}%%{_next}% &7&m<--&7&o is it valid?"
            
                loop {_colors::*}:
                
                    if loop-value-2 is {_next}:
                        set {_color} to "%{_color}%%{_code}%%{_next}%"
                        
                        if {_next} is "r":
                            set {_color} to {_default-color}
                            
                        set {_new} to "%{_new}%%{_color}%"
                        set {_skip} to 1
                        
                if {_skip} is less than or equal to 0:
                    set {_new} to "%{_new}%%{_char}%"
                
            else if {_char} is " ":
                set {_new} to "%{_new}% %{_color}%"
            
            else:
                set {_new} to "%{_new}%%{_char}%"
                
    return {_new}

function jsonSanitize(msg: text) :: text:
    if {@debug} is true:
        broadcast "&a[Sanitize] &7&oSanitizing input..."
        
    set {_m::*} to {_msg} split at ""
    
    loop {_m::*}:
    
        if loop-value is """":
            set {_m::%loop-index%} to "/""" # """
            
        else if loop-value is "/":
            set {_m::%loop-index%} to "//"
            
    set {_new} to join {_m::*} with ""
    return {_new}

function jsonFormat(msg: text, color: boolean = true) :: text:
    set {_m::*} to {_msg} split at "||"
    
    set {_current} to 1
    
    loop {_m::*}:
        if {_clusters::%{_current}%} is not set:
            set {_clusters::%{_current}%} to ""
        
        if {_clusters::%{_current}%::text} is not set:
            set {_clusters::%{_current}%::text} to jsonSanitize(loop-value)
            
        else:
            set {_tag} to the first 4 characters of loop-value
            set {_value} to subtext of loop-value from characters 5 to the length of loop-value
            
            if {_tag} is "ttp:":
                set {_clusters::%{_current}%::tooltip} to jsonSanitize({_value})
                
            else if {_tag} is "cmd:":
                set {_clusters::%{_current}%::command} to jsonSanitize({_value})
                
            else if {_tag} is "sgt:":
                set {_clusters::%{_current}%::suggest} to jsonSanitize({_value})
                
            else if {_tag} is "url:":
            
                if {_value} doesn't contain "http://" or "https://":
                    set {_value} to "http://%{_value}%"
                    
                set {_clusters::%{_current}%::url} to jsonSanitize({_value})
                
            else if {_tag} is "ins:":
                set {_clusters::%{_current}%::insertion} to jsonSanitize({_value})
                
            else:
                add 1 to {_current}
                set {_clusters::%{_current}%::text} to jsonSanitize(loop-value)
                set {_clusters::%{_current}%} to ""
                
            if {@debug} is true:
                broadcast "&a[Tag Check] &3cluster:&b%{_current}% &8(&f&o%{_tag}%&8)"
     
    loop {_clusters::*}:
    
        if {@debug} is true:
            broadcast "&a[Cluster Check] &7&oCluster ##%loop-index% exists."
            
        set {_i} to loop-index
        
        set {_text} to {_clusters::%{_i}%::text}
        
        if {_color} is true:
            set {_text} to jsonColorize({_text})
            
        if {_json} is not set:
            set {_json} to "{""text"":""%{_text}%"""
        else:
            set {_json} to "%{_json}%,{""text"":""%{_text}%"""
        
        if {_clusters::%{_i}%::tooltip} is set:
        
            if {_color} is true:
                set {_tooltip} to jsonColorize({_clusters::%{_i}%::tooltip})
                
            else:
                set {_tooltip} to {_clusters::%{_i}%::tooltip}
                
            set {_json} to "%{_json}%,""hoverEvent"":{""action"": ""show_text"",""value"": ""%{_tooltip}%""}"
        
        if {_clusters::%{_i}%::insertion} is set:
            set {_json} to "%{_json}%,""insertion"":""%{_clusters::%{_i}%::insertion}%"",""obfuscated"":false"
        
        if {_clusters::%{_i}%::command} is set:
            set {_clickable} to "%{_json}%,""clickEvent"":{""action"":""run_command"",""value"":""%{_clusters::%{_i}%::command}%""}"
            
        if {_clusters::%{_i}%::suggest} is set:
            set {_clickable} to "%{_json}%,""clickEvent"":{""action"": ""suggest_command"",""value"": ""%{_clusters::%{_i}%::suggest}%""}"
            
        if {_clusters::%{_i}%::url} is set:
            set {_clickable} to "%{_json}%,""clickEvent"":{""action"": ""open_url"",""value"": ""%{_clusters::%{_i}%::url}%""}"
            
        if {_clickable} is set:
            set {_json} to "%{_clickable}%}"
            delete {_clickable}
            
        else:
            set {_json} to "%{_json}%}"
    
    return "{""text"":"""", ""extra"":[%{_json}%]}"

function json(to: text, msg: text, color: boolean = true):
    set {_msg} to jsonFormat({_msg}, {_color})
    execute console command "/tellraw %{_to}% %{_msg}%"
    
    if {@debug} is true:
        set {_player} to {_to} parsed as offline player
        if {_player} is online:
            send uncolored {_msg} to {_player}