mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-13 06:42:35 +00:00
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class IMICFPS
|
|
class Commands
|
|
class HelpCommand < Command
|
|
def group
|
|
:global
|
|
end
|
|
|
|
def command
|
|
:help
|
|
end
|
|
|
|
def handle(arguments, console)
|
|
console.stdin(usage(arguments.first))
|
|
end
|
|
|
|
def autocomplete(console)
|
|
split = console.text_input.text.split(" ")
|
|
if !console.text_input.text.start_with?(" ") && split.size == 2
|
|
list = console.abbrev_search(Commands::Command.list_commands.map { |cmd| cmd.command.to_s }, split.last)
|
|
if list.size == 1
|
|
console.text_input.text = "#{split.first} #{list.first} "
|
|
elsif list.size > 1
|
|
console.stdin(list.map { |cmd| Style.highlight(cmd) }.join(", "))
|
|
end
|
|
end
|
|
end
|
|
|
|
def usage(command = nil)
|
|
if command
|
|
if cmd = Command.find(command)
|
|
cmd.usage
|
|
else
|
|
"#{Style.error(command)} is not a command"
|
|
end
|
|
else
|
|
"Available commands:\n#{Command.list_commands.map { |cmd| Style.highlight(cmd.command).to_s }.join(', ')}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|