ItemFilter.sk

Created by MattyHD0

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.

options:
#======================================== MESSAGES ========================================
	prefix: &8[ItemFilter] &7
	prefixRed: &4[ItemFilter] &c

	title: &4&lItemFilter
	subtitle: &cThis item is on your blacklist!

	itemAdded: &7Item &c%{_item}% &7added to the blacklist.
	itemRemoved: &7Item &c%{_item}%&7 was removed from the blacklist.
	itemNotExist: &7That item does not exist.

	nothing: Nothing here...

	blacklistCleaned: &7The blacklist was cleaned.
	blacklistedItems: &7Blacklisted items: &c

	subcommandNotExist: &cThat subcommand does not exist

	scriptReloaded: &7Script reloaded!
	noPermission: &cYou do not have permissions to do that!

	command: &7
	divider: &c - &f
	explanation: &f
	loadName: &7&lItemFilter &fv
	version: 1.0.1
on load:
	send "  ___ ___ " to console
	send " |_ _| __|  {@loadName}{@version}" to console
	send "  | || _|              &fLoaded!" to console
	send " |___|_|  " to console
	send "          "to console
#======================================== FUNCTIONS ======================================== !New in my scripts :D!
function itemChecker(arg: text) :: item:
	set {_item} to {_arg}
	replace every "_" with " " in {_item}
	set {_item} to {_item} parsed as item
	return {_item}

function sendHelp(p: player):
	send "&8&lItemFilter &7v{@version}" to {_p}
	send "{@command}/ifilter add <item>{@divider}{@explanation}Add an item to the blacklist" to {_p}
	send "{@command}/ifilter remove <item>{@divider}{@explanation}remove an item from the blacklist" to {_p}
	send "{@command}/ifilter clear{@divider}{@explanation}Completely clean the blacklist" to {_p}
	send "{@command}/ifilter reload{@divider}{@explanation}Reload the script" to {_p}
#======================================== COMMANDS ========================================
command /itemfilter [<text>] [<text>]:
	aliases: /ifilter
	permission: itemfilter.command
	permission message: {@noPermission}
	trigger:
		if arg 1 is not set:
			sendHelp(player)
		else if arg 1 is "help":
			sendHelp(player)
		else if arg 1 is "add":
			if player has permission "itemfilter.add":
				set {_item} to itemChecker(arg-2)
				if {_item} is set:
					add {_item} to {itemfilterBL::%player%::*}
					send "{@prefix}{@itemAdded}"
				else:
					send "{@prefix}{@itemNotExist}"
			else:
				send "{@noPermission}"
		else if arg 1 is "list":
			if player has permission "itemfilter.list":
				loop {itemfilterBL::%player%::*}:
					add loop-value to {_list::*}
				if {_list::*} is not set:
					set {_list::*} to "{@nothing}"
				send "{@prefix}{@blacklistedItems}%{_list::*}%"
			else:
				send "{@noPermission}"
		else if arg 1 is "clear":
			if player has permission "itemfilter.clear":
				delete {itemfilterBL::%player%::*}
				send "{@prefix}{@blacklistCleaned}"
			else:
				send "{@noPermission}"
		else if arg 1 is "remove":
			if player has permission "itemfilter.remove":
				set {_item} to itemChecker(arg-2)
				if {_item} is set:
					remove {_item} from {itemfilterBL::%player%::*}
					send "{@prefix}{@itemRemoved}"
			else:
				send "{@noPermission}"
		else if arg 1 is "reload":
			if player has permission "itemfilter.reload":
				execute console command "/sk reload %script%"
				send "{@prefix}{@scriptReloaded}"
			else:
				send "{@noPermission}"
		else:
			send "{@prefix}{@subcommandNotExist}"
#======================================== MECHANICS ========================================
on player pick up:
	if {itemfilterBL::%player%::*} contains event-item:
		cancel the event
		send title "{@title}" with subtitle "{@subtitle}" to player for 2 ticks with fadein 0 second and fade out 0 second