Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'yaml'
- require 'discordrb'
- require 'pry'
- @bot = Discordrb::Commands::CommandBot.new token: 'token', prefix: '!'
- @bot.message(with_text: 'test') do |event|
- event.respond 'test received, but from ruby'
- end
- @bot.ready do |event|
- @bot.update_status 'online', 'with fire(ruby fire)', nil
- puts 'boot is ready'
- end
- # challenged.on(server) => Member#display_name
- @challenges = {}
- def challenge_lifetime
- @challenge_lifetime ||= "2 hours"
- end
- def set_challenge_lifetime lifetime
- @challenge_lifetime = lifetime
- end
- def challenge(challenger, champ)
- # Reject if champ is already challenged
- # time series data store
- @challenges[champ] = [challenger, challenge_lifetime]
- "#{challenger.display_name} is challenging #{champ.username}"
- end
- @bot.command :challenge do |event, user|
- challenger = event.author
- challenged = @bot.parse_mention(user)
- event.respond challenge(challenger, challenged)
- cb = ->(result) {
- puts result.content
- if result.content.split(' ')[1] == 'loss'
- dethrone(challenged)
- event.respond "#{challenger.display_name} won"
- else
- event.respond "#{challenged.username} won"
- end
- }
- challenged.await(:result, &cb)
- event.user.await(:result, &cb)
- end
- @bot.command :challenges do |event, _user|
- challenges = @challenges.map do |challenged, challenger|
- "- #{challenger.display_name} vs #{challenged.username}"
- end
- event.respond ["Current challenges are:", challenges].join("\n")
- end
- def dethrone(user)
- remove = @bot.servers.first.last.roles.find { |role| role.name == 'CHAMPION' }
- # user needs to be a Member
- user.remove_role(remove)
- end
- @bot.command :lifetime do |event, _user|
- if lifetime = event.message.content.split(' ')[1]
- set_challenge_lifetime lifetime.to_i
- end
- event.respond challenge_lifetime
- end
- @bot.command :dethrone do |event, user|
- dethrone(event.author)
- end
- @bot.command :crown do |event, user|
- remove = event.server.roles.find { |role| role.name == 'CHAMPION' }
- event.author.add_role(remove)
- end
- @bot.run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement