tabcompleter.sk

Created by Unknown

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.

#tab completer
import:
	java.util.Arrays

effect set completions to %strings% at %string%:
	trigger:
		if expression-2 is "":
			event.setCompletions(Arrays.asList(expressions-1))
		else:
			set {_completions::*} to expressions-1
			loop expression-2.length() times:
				loop {_completions::*}:
					if {_completions::%loop-index%}.substring(loop-number - 1, loop-number) isn't expression-2.substring(loop-number - 1, loop-number):
						clear {_completions::%loop-index%} 
			event.setCompletions(Arrays.asList({_completions::*}))

expression tabbed command:
	get:
		set {_text} to first element out of split event.getBuffer() at " "
		return "/%{_text}%" if event.getSender() is CONSOLE else {_text}

expression tab arg[ument]( |-)%*number%:
	get:
		set {_l::*} to split event.getBuffer() at " "
		clear {_l::1}
		set {_l::*} to {_l::*}
		return {_l::%expr 1%}
	
expression buffer:
	get:
		return event.getBuffer()

		
#example
on "org.bukkit.event.server.TabCompleteEvent":
	if tabbed command is "/skript" or "/sk":
		if tab arg 2 isn't set:
			set completions to "reload", "enable", "disable", "update" and "help" at tab arg 1
		else:
			if tab arg 3 isn't set:	
				if tab arg 1 is "update":
					set completions to "check", "changes" and "download" at tab arg 2
				else if tab arg 1 is "reload":
					set completions to "all", "config", "aliases" and "scripts" at tab arg 2
				else if tab arg 1 is "enable" or "disable":
					set completions to "all" at tab arg 2
				else:
					cancel event