Class: DiscordRDA::ComponentBuilder
- Inherits:
-
Object
- Object
- DiscordRDA::ComponentBuilder
- Defined in:
- lib/discord_rda/entity/message_builder.rb
Overview
Builder for message components (buttons, select menus)
Instance Method Summary collapse
-
#button(style:, label:, custom_id: nil, url: nil, emoji: nil, disabled: false) ⇒ self
Add a button component.
-
#channel_select(custom_id:, placeholder: nil, channel_types: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a channel select menu (type 8).
-
#danger_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a danger button (style 4).
-
#initialize(components_array) ⇒ ComponentBuilder
constructor
A new instance of ComponentBuilder.
-
#link_button(label:, url:, emoji: nil, disabled: false) ⇒ self
Add a link button (style 5).
-
#mentionable_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a mentionable select menu (type 7).
-
#primary_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a primary button (style 1).
-
#role_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a role select menu (type 6).
-
#secondary_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a secondary button (style 2).
-
#select_menu(custom_id:, options:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a string select menu (type 3).
-
#success_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a success button (style 3).
-
#user_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a user select menu (type 5).
Constructor Details
#initialize(components_array) ⇒ ComponentBuilder
Returns a new instance of ComponentBuilder.
190 191 192 |
# File 'lib/discord_rda/entity/message_builder.rb', line 190 def initialize(components_array) @components = components_array end |
Instance Method Details
#button(style:, label:, custom_id: nil, url: nil, emoji: nil, disabled: false) ⇒ self
Add a button component
202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/discord_rda/entity/message_builder.rb', line 202 def (style:, label:, custom_id: nil, url: nil, emoji: nil, disabled: false) btn = { type: 2, # Button type style: style, label: label, disabled: disabled } btn[:custom_id] = custom_id if custom_id btn[:url] = url if url btn[:emoji] = emoji.is_a?(Hash) ? emoji : { name: emoji } if emoji @components << btn self end |
#channel_select(custom_id:, placeholder: nil, channel_types: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a channel select menu (type 8)
357 358 359 360 361 362 363 364 365 366 367 368 369 |
# File 'lib/discord_rda/entity/message_builder.rb', line 357 def channel_select(custom_id:, placeholder: nil, channel_types: nil, min_values: 1, max_values: 1, disabled: false) = { type: 8, custom_id: custom_id, min_values: min_values, max_values: max_values, disabled: disabled } [:placeholder] = placeholder if placeholder [:channel_types] = channel_types if channel_types @components << self end |
#danger_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a danger button (style 4)
253 254 255 |
# File 'lib/discord_rda/entity/message_builder.rb', line 253 def (label:, custom_id:, emoji: nil, disabled: false) (style: 4, label: label, custom_id: custom_id, emoji: emoji, disabled: disabled) end |
#link_button(label:, url:, emoji: nil, disabled: false) ⇒ self
Add a link button (style 5)
263 264 265 |
# File 'lib/discord_rda/entity/message_builder.rb', line 263 def (label:, url:, emoji: nil, disabled: false) (style: 5, label: label, url: url, emoji: emoji, disabled: disabled) end |
#mentionable_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a mentionable select menu (type 7)
336 337 338 339 340 341 342 343 344 345 346 347 |
# File 'lib/discord_rda/entity/message_builder.rb', line 336 def mentionable_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) = { type: 7, custom_id: custom_id, min_values: min_values, max_values: max_values, disabled: disabled } [:placeholder] = placeholder if placeholder @components << self end |
#primary_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a primary button (style 1)
223 224 225 |
# File 'lib/discord_rda/entity/message_builder.rb', line 223 def (label:, custom_id:, emoji: nil, disabled: false) (style: 1, label: label, custom_id: custom_id, emoji: emoji, disabled: disabled) end |
#role_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a role select menu (type 6)
316 317 318 319 320 321 322 323 324 325 326 327 |
# File 'lib/discord_rda/entity/message_builder.rb', line 316 def role_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) = { type: 6, custom_id: custom_id, min_values: min_values, max_values: max_values, disabled: disabled } [:placeholder] = placeholder if placeholder @components << self end |
#secondary_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a secondary button (style 2)
233 234 235 |
# File 'lib/discord_rda/entity/message_builder.rb', line 233 def (label:, custom_id:, emoji: nil, disabled: false) (style: 2, label: label, custom_id: custom_id, emoji: emoji, disabled: disabled) end |
#select_menu(custom_id:, options:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a string select menu (type 3)
275 276 277 278 279 280 281 282 283 284 285 286 287 |
# File 'lib/discord_rda/entity/message_builder.rb', line 275 def (custom_id:, options:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) = { type: 3, custom_id: custom_id, options: , min_values: min_values, max_values: max_values, disabled: disabled } [:placeholder] = placeholder if placeholder @components << self end |
#success_button(label:, custom_id:, emoji: nil, disabled: false) ⇒ self
Add a success button (style 3)
243 244 245 |
# File 'lib/discord_rda/entity/message_builder.rb', line 243 def (label:, custom_id:, emoji: nil, disabled: false) (style: 3, label: label, custom_id: custom_id, emoji: emoji, disabled: disabled) end |
#user_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) ⇒ self
Add a user select menu (type 5)
296 297 298 299 300 301 302 303 304 305 306 307 |
# File 'lib/discord_rda/entity/message_builder.rb', line 296 def user_select(custom_id:, placeholder: nil, min_values: 1, max_values: 1, disabled: false) = { type: 5, custom_id: custom_id, min_values: min_values, max_values: max_values, disabled: disabled } [:placeholder] = placeholder if placeholder @components << self end |