Class: DiscordRDA::AutoModerationRule

Inherits:
Entity
  • Object
show all
Defined in:
lib/discord_rda/event/auto_moderation.rb

Overview

Represents an Auto Moderation rule

Constant Summary collapse

EVENT_TYPES =

Event types

{
  message_send: 1
}.freeze
TRIGGER_TYPES =

Trigger types

{
  keyword: 1,
  spam: 3,
  keyword_preset: 4,
  mention_spam: 5,
  member_profile: 6
}.freeze
KEYWORD_PRESETS =

Keyword preset types

{
  profanity: 1,
  sexual_content: 2,
  slurs: 3
}.freeze
ACTION_TYPES =

Action types

{
  block_message: 1,
  send_alert_message: 2,
  timeout: 3,
  block_member_interaction: 4
}.freeze

Instance Attribute Summary

Attributes inherited from Entity

#id

Instance Method Summary collapse

Methods inherited from Entity

#==, attribute, #created_at, from_hash, #hash, #initialize, #inspect, #to_h, #to_json

Constructor Details

This class inherits a constructor from DiscordRDA::Entity

Instance Method Details

#actionsObject



222
223
224
# File 'lib/discord_rda/event/auto_moderation.rb', line 222

def actions
  @raw_data['actions'] || []
end

#allow_listObject



238
239
240
# File 'lib/discord_rda/event/auto_moderation.rb', line 238

def allow_list
  ['allow_list'] || []
end

#block_member_interaction_action?Boolean

Returns:

  • (Boolean)


290
291
292
# File 'lib/discord_rda/event/auto_moderation.rb', line 290

def block_member_interaction_action?
  actions.any? { |a| a['type'] == 4 }
end

#block_message_action?Boolean

Returns:

  • (Boolean)


278
279
280
# File 'lib/discord_rda/event/auto_moderation.rb', line 278

def block_message_action?
  actions.any? { |a| a['type'] == 1 }
end

#event_type_nameObject



250
251
252
# File 'lib/discord_rda/event/auto_moderation.rb', line 250

def event_type_name
  EVENT_TYPES.key(event_type) || :unknown
end

#keyword_filterObject



226
227
228
# File 'lib/discord_rda/event/auto_moderation.rb', line 226

def keyword_filter
  ['keyword_filter'] || []
end

#keyword_preset_trigger?Boolean

Returns:

  • (Boolean)


266
267
268
# File 'lib/discord_rda/event/auto_moderation.rb', line 266

def keyword_preset_trigger?
  trigger_type == 4
end

#keyword_trigger?Boolean

Returns:

  • (Boolean)


258
259
260
# File 'lib/discord_rda/event/auto_moderation.rb', line 258

def keyword_trigger?
  trigger_type == 1
end

#member_profile_trigger?Boolean

Returns:

  • (Boolean)


274
275
276
# File 'lib/discord_rda/event/auto_moderation.rb', line 274

def member_profile_trigger?
  trigger_type == 6
end

#mention_raid_protection_enabledObject



246
247
248
# File 'lib/discord_rda/event/auto_moderation.rb', line 246

def mention_raid_protection_enabled
  ['mention_raid_protection_enabled']
end

#mention_spam_trigger?Boolean

Returns:

  • (Boolean)


270
271
272
# File 'lib/discord_rda/event/auto_moderation.rb', line 270

def mention_spam_trigger?
  trigger_type == 5
end

#mention_total_limitObject



242
243
244
# File 'lib/discord_rda/event/auto_moderation.rb', line 242

def mention_total_limit
  ['mention_total_limit']
end

#presetsObject



234
235
236
# File 'lib/discord_rda/event/auto_moderation.rb', line 234

def presets
  ['presets'] || []
end

#regex_patternsObject



230
231
232
# File 'lib/discord_rda/event/auto_moderation.rb', line 230

def regex_patterns
  ['regex_patterns'] || []
end

#send_alert_action?Boolean

Returns:

  • (Boolean)


282
283
284
# File 'lib/discord_rda/event/auto_moderation.rb', line 282

def send_alert_action?
  actions.any? { |a| a['type'] == 2 }
end

#spam_trigger?Boolean

Returns:

  • (Boolean)


262
263
264
# File 'lib/discord_rda/event/auto_moderation.rb', line 262

def spam_trigger?
  trigger_type == 3
end

#timeout_action?Boolean

Returns:

  • (Boolean)


286
287
288
# File 'lib/discord_rda/event/auto_moderation.rb', line 286

def timeout_action?
  actions.any? { |a| a['type'] == 3 }
end

#trigger_metadataObject



218
219
220
# File 'lib/discord_rda/event/auto_moderation.rb', line 218

def 
  @raw_data['trigger_metadata'] || {}
end

#trigger_type_nameObject



254
255
256
# File 'lib/discord_rda/event/auto_moderation.rb', line 254

def trigger_type_name
  TRIGGER_TYPES.key(trigger_type) || :unknown
end