----
discorb is a Discord API wrapper for Ruby.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'discorb'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install discorb
## Usage
### Ping & Pong
```ruby
require "discorb"
client = Discorb::Client.new
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 == "ping"
message.channel.post("Pong!")
end
client.run(ENV["DISCORD_BOT_TOKEN"])
```
### Quiz Game
```ruby
require "discorb"
client = Discorb::Client.new
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 == "!quiz"
operator = [:+, :-, :*].sample
num1 = rand(1..10)
num2 = rand(1..10)
val = num1.send(operator, num2)
message.channel.post("Quiz: `#{num1} #{operator} #{num2}`")
begin
msg = client.event_lock(:message, 30) { |m|
m.content == val.to_s && m.channel == message.channel
}.wait
rescue Discorb::TimeoutError
message.channel.post("No one answered...")
else
msg.reply("Correct!")
end
end
client.run(ENV["DISCORD_BOT_TOKEN"])
```
### Slash Commands
```ruby
require "discorb"
client = Discorb::Client.new
client.slash("hello", "Greet for you") do |interaction|
interaction.post("Hello!", ephemeral: true)
end
client.run(ENV["DISCORD_BOT_TOKEN"])
```
Note: You must run `discorb setup` before using slash commands.
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/discorb-lib/discorb.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).