| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- require './app/commands/base_command.rb'
- class HelpCommand < BaseCommand
- def self.opts
- {
- usage: {
- command: "Searches for a command based on its name, the part that " +
- "comes after `pkmn-`. If no command is given, R0ry will list available commands"
- }
- }
- end
- def self.cmd
- desc = "Displays helpful information for R0ry's commands"
- @cmd ||= Command.new(:help, desc, opts) do |event, command|
- # Short name for the command requested, if exists
- cmd_name = command.match(/(pkmn-)?(\w+)/)[2] if command
- all_cmds = BaseCommand.descendants
- # --Execution--
- # When a command is specified
- case command
- when /admin/i && event.channel.id == ENV['ADMIN_CH']
- when nil
- # List of commands, by restrictions: server, and pm
- server_commands = all_cmds.filter{ |bc| bc.restricted_to == nil }
- pm_commands = all_cmds.filter{ |bc| bc.restricted_to == :pm }
- reply = []
- reply.push(BotResponse.new(embed: command_list_embed(pm_commands, :pm)))
- reply.push(BotResponse.new(embed: command_list_embed(server_commands)))
- reply
- else
- # Find the command, and display
- cmd = all_cmds.find { |bc| bc.name == cmd_name.to_sym }
- command_help(cmd, event)
- end
- rescue
- command_error("Command not found!", HelpCommand)
- end
- end
- def self.example_command(event=nil)
- case ['', 'command'].sample
- when ''
- []
- when 'command'
- [BaseCommand.descendants.sample.name]
- end
- end
- end
|