Support_1.0.010.sk

Created by HiqqhFive

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.

# #!							       ________________________
# #!						      ___________________________________
#                                                Support System
#		                                    © Made by HiqqhFive™
#                                                  v1.0.010
# #!						      ___________________________________
# #!							       ________________________

# //start updateLog

# v1.0.010 - Help / explanations for the Commands have been added.

# //end updateLog


# //start config

options:
	prefix: &7[&cSupport&7] # //Main Prefix of the Skript
	prefix_chat: &7[&cSupportchat&7] # //Prefix shown while Support conversation is active

	staff_permission: support.see # //Permission to see Tickets

	version: 1.0.010 # //DO NOT CHANGE THAT

# //end config

# //start functions

function chatAPI(p: player, m: text) :: boolean:
	{supp::%{_p}%::sendTo} is set:
		{_p} has permission "{@staff_permission}":
			send "{@prefix_chat} %colored {_p}'s prefix% &7%{_p}% &8» &e%{_m}%" to {_p}
			send "{@prefix_chat} %colored {_p}'s prefix% &7%{_p}% &8» &e%{_m}%" to {supp::%{_p}%::sendTo}
			return true
		else:
			send "{@prefix_chat} &7%{_p}% &8» &e%{_m}%" to {_p}
			send "{@prefix_chat} %colored {_p}'s prefix% &7%{_p}% &8» &e%{_m}%" to {supp::%{_p}%::sendTo}
			return true

# //end functions

# //start chat [Event for Support-Conversations]

on chat:
	cancel event
	chatAPI(player, "%message%")

# //end chat

# //start commands

command /support [<text>]: # //Main command, where players can request help
	trigger:
		{supp::%player%::sendTo} is set:
			send "{@prefix} &cYou are already in a support conversation."
			stop
		{supp::%player%::indicate} is set:
			send "{@prefix} &cYou already have a ticket."
			stop
		arg 1 is not set:
			send "{@prefix} &fUsage: &c/Support &e[<Reason>]"
			stop
		set {_reason} to arg 1
		set {supp::%player%::indicate} to true
		set {supp::%player%::reason} to {_reason}
		loop all players:
			loop-player has permission "{@staff_permission}":
				send "{@prefix} &6Player &b%player% &6needs help. Type &e/ssl&6." to loop-player
		send "{@prefix} &aYour ticket has been saved."
		send "{@prefix} &6A staff member will get back to you shortly."
		stop

command /ssl [<text>] [<offlineplayer>] [<text>]: # //Team command
	aliases: sl, showsupportlist, showslist
	trigger:
		player has permission "{@staff_permission}"
		arg 1 is not set:
			loop all players:
				set {_player} to loop-player
				{supp::%loop-player%::indicate} is set:
					set {_neededsupport} to true
					send "{@prefix} &e&l%loop-player% &8| &a%{supp::%player%::reason}%" to loop-player
				{_neededsupport} is not set:
					send "{@prefix} &cNo player help is needed."
		player has permission "{@staff_permission}"
		arg 1 is "help" or "h":
			send "&7~~~~~~~~~~~~~~     &9SUPPORT-SYSTEM     &7~~~~~~~~~~~~~~"
			send "                               &7Version: &b{@version} "
			send "&6&m-----------------------------------------------------"
			send ""
			send "&8» &f/ssl &7de(ny) &e[<Player>] &6[<Reason>] &8- &7Reject a ticket."
			send "&8» &f/ssl &7ac(cept) &e[<Player>] &8- &7Accept a ticket."
			send "&8» &f/ssl &7c(lose) &8- &7Close a conversation."
			send ""
		arg 1 is "de" or "deny":
			arg 2 is not set:
				send "&8» &f/ssl &7de(ny) &e[<Player>] &6[<Reason>] &8- &7Reject a ticket."
				stop
			set {_player} to arg 2
			arg 3 is not set:
				set {_reason} to "For no reason"
			set {_reason} to arg 3
			{supp::%{_player}%::indicate} is set:
				send "{@prefix} Your ticket was declined. Reason: &c%{_reason}%&7." to {_player}
				send "{@prefix} You rejected &c%{_player}%&7's ticket." to player
				send "{@prefix} Reason: &c%{_reason}%" to player
				delete {supp::%{_player}%::*}
				stop
			else:
				send "{@prefix} This player has not created a ticket."
				stop
		arg 1 is "accept" or "ac":
			arg 2 is not set:
				send "&8» &f/ssl &7ac(cept) &e[<Player>] &8- &7Accept a ticket."
				stop
			set {_player} to arg 2
			{_player} is online:
				{supp::%player%::sendTo} is not set:
					{supp::%{_player}%::indicate} is set:
						delete {supp::%{_player}%::indicate}
						set {supp::%player%::sendTo} to {_player}
						set {supp::%{_player}%::sendTo} to player
						loop 5 times:
							send "" to player
						send "{@prefix} &7You got the ticket from &3%{_player}%&7." to player
						send "{@prefix} &7His concern: &3%{supp::%{_player}%::reason}%" to player
						loop 5 times:
							send "" to {supp::%player%::sendTo}
						send "{@prefix} &b%player% &7has accepted your ticket. You are now in a private chat." to {supp::%player%::sendTo}
						stop
					else:
						send "{@prefix} This player has not created a ticket."
						stop
				else:
					send "{@prefix} &cYou are already in a support conversation."
					stop
			else:
				send "{@prefix} &cThis Player is not online."
				stop
		arg 1 is "close" or "c":
			{supp::%player%::sendTo} is set:
				send "{@prefix} &b%player% &7closed your Ticket." to {supp::%player%::sendTo}
				send "{@prefix} &7You closed the Ticket from &b%{supp::%player%::sendTo}%&7."
				delete {supp::%{supp::%player%::sendTo}%::sendTo}
				delete {supp::%player%::sendTo}
			else:
				send "{@prefix} &cYou are not in a support conversation."
				stop

# //end commands

# //start ONLINE/OFFLINE

on quit:
	{supp::%player%::indicate} is set:
		loop all players:
			loop-player has permission "{@staff_permission}":
				send "{@prefix} &6Player %{_player}% &6has gone offline. His ticket was automatically deleted." to loop-player
		delete {supp::%player%::*}

# //end ONLINE/OFFLINE