item.rb 850 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. require './app/commands/base_command.rb'
  2. class ItemCommand < BaseCommand
  3. def self.opts
  4. {
  5. usage: {
  6. name: "Search for an item by its name. If none is specified, " +
  7. "R0ry will display a list of all items"
  8. }
  9. }
  10. end
  11. def self.cmd
  12. desc = "Learn about Items"
  13. @cmd ||= Command.new(:item, desc, opts) do |event, name|
  14. if name
  15. # Single item embed
  16. item_embed(Item.find_by!('name ilike ?', name), event)
  17. else
  18. # Item list embed
  19. item_list
  20. end
  21. #rescue ActiveRecord::RecordNotFound
  22. #error_embed("Item Not Found!")
  23. #rescue StandardError => e
  24. #error_embed(e.message)
  25. end
  26. end
  27. def self.example_command(event=nil)
  28. case ['', 'item'].sample
  29. when ''
  30. []
  31. when 'item'
  32. [Item.order('RANDOM()').first.name]
  33. end
  34. end
  35. end