Sha256: 9137227a9c543624d31b7646b7ea287514927867db9edb365fc7636c828883ec

Contents?: true

Size: 1.03 KB

Versions: 28

Compression:

Stored size: 1.03 KB

Contents

require "discorb"

client = Discorb::Client.new

def convert_role(guild, string)
  guild.roles.find do |role|
    role.id == string || role.name == string || role.mention == string
  end
end

client.once :standby do
  puts "Logged in as #{client.user}"
end

client.on :message do |message|
  next if message.author.bot?
  next unless message.content.start_with?("!auth ")

  role_name = message.content.delete_prefix("!auth ")
  role = convert_role(message.guild, role_name)
  if role.nil?
    message.reply("Unknown role: #{role_name}").wait
    next
  end
  message.channel.post(
    "Click this button if you are human:",
    components: [
      Discorb::Button.new(
        "Get role", custom_id: "auth:#{role.id}",
      ),
    ],
  )
end

client.on :button_click do |response|
  if response.custom_id.start_with?("auth:")
    id = response.custom_id.delete_prefix("auth:")
    response.fired_by.add_role(id).wait
    response.post("You got your role!\nHere's your role: <@&#{id}>", ephemeral: true)
  end
end

client.run(ENV["DISCORD_BOT_TOKEN"])

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
discorb-0.13.4 examples/components/authorization_button.rb
discorb-0.13.3 examples/components/authorization_button.rb
discorb-0.13.2 examples/components/authorization_button.rb
discorb-0.13.1 examples/components/authorization_button.rb
discorb-0.13.0 examples/components/authorization_button.rb
discorb-0.12.4 examples/components/authorization_button.rb
discorb-0.12.3 examples/components/authorization_button.rb
discorb-0.12.2 examples/components/authorization_button.rb
discorb-0.12.1 examples/components/authorization_button.rb
discorb-0.12.0 examples/components/authorization_button.rb
discorb-0.11.4 examples/components/authorization_button.rb
discorb-0.11.3 examples/components/authorization_button.rb
discorb-0.11.2 examples/components/authorization_button.rb
discorb-0.11.1 examples/components/authorization_button.rb
discorb-0.11.0 examples/components/authorization_button.rb
discorb-0.10.3 examples/components/authorization_button.rb
discorb-0.10.2 examples/components/authorization_button.rb
discorb-0.10.1 examples/components/authorization_button.rb
discorb-0.10.0 examples/components/authorization_button.rb
discorb-0.9.6 examples/components/authorization_button.rb