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