Forráskód Böngészése

finish item displays

Kylie Jo Swistak 6 éve
szülő
commit
38542315ec
3 módosított fájl, 30 hozzáadás és 5 törlés
  1. 2 1
      app/models/item.rb
  2. 12 3
      app/responses/item.rb
  3. 16 1
      bot.rb

+ 2 - 1
app/models/item.rb

@@ -5,7 +5,8 @@ class Item < ActiveRecord::Base
     key_mapping = {
       "Item Name" => "name",
       "Description" => "description",
-      "Status" => "status",
+      "Effect" => "effect",
+      "Side Effect" => "side_effect",
       "RP Reply" => "rp_reply",
       "Category" => "category",
       "Reusable" => "reusable"

+ 12 - 3
app/responses/item.rb

@@ -3,10 +3,9 @@
 def item_embed(item)
   fields = []
   footer = item.category.join(" | ")
-  footer += " | Reusable" if item.reusable
+  footer += item.reusable ? " | Reusable" : " | Not Reusable"
 
-  fields.push({ name: 'Status', value: item.status }) if item.status
-  fields.push({ name: 'RP Reply', value: item.rp_reply }) if item.rp_reply
+  fields.push({ name: 'Effect', value: item.effect }) if item.effect
 
   embed = Embed.new(
     title: item.name,
@@ -20,3 +19,13 @@ def item_embed(item)
   embed.thumbnail = { url: item.url } if item.url
   embed
 end
+
+def item_list_embed(items)
+  i = items.map(&:name) unless items.empty?
+  desc = items.empty? ? "No Items Found" : i.join(", ")
+
+  Embed.new(
+    title: 'Items',
+    description: desc
+  )
+end

+ 16 - 1
bot.rb

@@ -400,6 +400,21 @@ rescue ActiveRecord::RecordNotFound => e
   error_embed("Record Not Found!", e.message)
 end
 
+item = Command.new(:item, desc, opts) do |event, name|
+  i = name ? Item.find_by!(name: name.capitalize) : Item.all
+
+  case
+  when name && i
+    item_embed(i)
+  when !name && i
+    item_list_embed(i)
+  else
+    command_error_embed("Error proccessing your request!", item)
+  end
+rescue ActiveRecord::RecordNotFound
+  error_embed("Item Not Found!")
+end
+
 # ---
 
 commands = [
@@ -410,7 +425,7 @@ commands = [
   poll,
   raffle,
   member,
-  merge
+  item
 ]
 
 # This will trigger on every message sent in discord