浏览代码

allow special character flags, and warningless landmarks

Kylie Jo Swistak 5 年之前
父节点
当前提交
5361ffca20
共有 2 个文件被更改,包括 28 次插入7 次删除
  1. 9 0
      app/models/landmarks.rb
  2. 19 7
      bot.rb

+ 9 - 0
app/models/landmarks.rb

@@ -2,6 +2,15 @@ class Landmark < ActiveRecord::Base
   validates :name, presence: true
   validates :description, presence: true
   validates :category, presence: true
+  before_save :set_default_warning
+
+  def set_default_warning
+    if warning.nil?
+      warning = "This is a verified safe location!"
+      w_url = "https://cdn.dribbble.com/users/250235/screenshots/2850450/pokemon_center_1x.png"
+      w_rating = "SFW"
+    end
+  end
 
   def self.from_form(app)
     key_mapping = {

+ 19 - 7
bot.rb

@@ -277,7 +277,13 @@ app = Command.new(:app, desc, opts) do |event, name, status|
   color = user.color.combined if event.server && user.color
   chars = []
 
-  landmark = true if status&.match(/landmark/i) && user.roles.map(&:name).include?('Guild Masters')
+  if user.roles.map(&:name).include?('Guild Masters')
+    flag = case status
+           when /landmark/i then :lm
+           when /legend/i then :legend
+           when /guild/i then :guild
+           end
+  end
 
   character =
     if user.roles.map(&:name).include?('Guild Masters')
@@ -289,12 +295,18 @@ app = Command.new(:app, desc, opts) do |event, name, status|
   active = status.match(/(in)?active/i) if status
 
   case
-  when landmark
-    lm = Landmark.find_by(name: name)
-    edit_url = 'https://docs.google.com/forms/d/e/1FAIpQLSc1aFBTJxGbvauUOGF1WGEvik5SJ_3SFkyIfbR2h8eK8Fxe7Q/viewform'
-    edit_url+= lm.edit_url
-
-    embed = edit_app_dm(name, edit_url)
+  when flag
+    case flag
+    when :lm
+      lm = Landmark.find_by(name: name)
+      edit_url = 'https://docs.google.com/forms/d/e/1FAIpQLSc1aFBTJxGbvauUOGF1WGEvik5SJ_3SFkyIfbR2h8eK8Fxe7Q/viewform'
+      edit_url+= lm.edit_url
+
+      embed = edit_app_dm(name, edit_url)
+    when :legend, :guild
+      character.update(special: status.downcase)
+      success_embed("Updated #{name} to have #{status} flag")
+    end
   when !chars.empty? && !character
     chars.each do |char|
       edit_url = Url::CHARACTER + char.edit_url