| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- require './app/commands/base_command.rb'
- class JournalCommand < BaseCommand
- def self.opts
- {
- usage: {
- character: "Searches for the character by name, can only add entries for your own characters",
- title: "A title for the journal, may be blank (defaults to date)",
- entry: "The journal entry, should be a paragraph as the character might enter into a diary"
- }
- }
- end
- def self.cmd
- desc = "Create a short journal entry for a character"
- @cmd ||= Command.new(:journal, desc, opts) do |event, name, title, note|
- # Find the character
- character = Character.restricted_find(name, event.author, ['Archived'])
- # Format and create Journal
- date = Time.now.strftime("%a, %b %d, %Y")
- if !note
- note = title
- title = date
- elsif title == ''
- title = date
- end
- # Create a new Journal Entry with formatted date
- journal = JournalEntry.create(
- char_id: character.id,
- title: title,
- date: date,
- entry: note
- )
- # Create response embed and reply
- BotResponse.new(
- embed: character_embed(
- character: character,
- event: event,
- section: :journal,
- journal: journal
- )
- )
- rescue ActiveRecord::RecordNotFound => e
- error_embed("Record not Found!", e.message)
- end
- end
- def self.example_command(event)
- journal_entry_examples = [
- "Today I did a thing, and it was fun. Yay!",
- "As I walk through the valley where I harvest my grain, I take a look at my wife and realize she's very plain",
- "I want to kill a mother fucker just to see how it feels"
- ]
- [Character.where(active: 'Active').order('RANDOM()').first.name,
- journal_entry_examples.sample]
- end
- end
|