Skip to content

Instantly share code, notes, and snippets.

@mackmm145
Created February 10, 2016 07:48
Show Gist options
  • Save mackmm145/83108734ffbc0c81dabb to your computer and use it in GitHub Desktop.
Save mackmm145/83108734ffbc0c81dabb to your computer and use it in GitHub Desktop.
print 'loading require...'
require 'discordrb'
require 'rubygems'
require 'Yourub'
require 'sys/uptime'
include Sys
puts 'DONE!'
print 'loading login...'
# Creating command bot + logging in
bot = Discordrb::Commands::CommandBot.new('XXX', 'XXX',
'-', advanced_functionality: false)
puts 'DONE!'
print 'loading cmds...'
bot.debug = false
# variables
options = { developer_key: 'XXX',
application_name: 'yourub',
application_version: 2.0,
log_level: 3 }
client = Yourub::Client.new(options)
cmdcount = 0
time = 0
bot.set_user_permission(64_438_454_750_031_872, 999)
#-------------COMMAND PING-------------
bot.command(:ping) do |event| # command recieved -> named "ping" -> activate "event"
cmdcount += 1 # add 1 to "comdcount" for the "stats" command
event.respond 'Pong!' # respond in the same channel with "pong"
puts 'CMD: ping' # prints "CMD: ping" into console for troubleshooting
end # ends function
#-------------COMMAND JOIN-------------
bot.command(:join) do |event, invite|
cmdcount += 1
invite.gsub!('https://discord.gg/', '')
event.bot.join invite
event.respond 'Joining server...'
puts 'CMD: join server'
end
#-------------COMMAND LEAVE-------------
bot.command(:leave) do |event|
cmdcount += 1
event.respond 'leaving server...'
puts 'CMD: server left'
srvid = event.server.id
event.bot.server(srvid).leave
end
#-------------COMMAND ROLL-------------
bot.command(:roll) do |event, max|
cmdcount += 1
if max
event.respond "You rolled a: **#{rand(1..max.to_i)}**"
puts 'CMD: roll custom'
else
event.respond "You rolled a: **#{rand(1..6)}**"
puts 'CMD: roll 1-6'
end
end
#-------------COMMAND COUNTDOWN-------------
bot.command(:countdown) do |event|
cmdcount += 1
puts 'CMD: countdown start'
event.respond '5 Second countdown started!'
sleep 0.6
event.respond '4..'
sleep 0.6
event.respond '3..'
sleep 0.6
event.respond '2..'
sleep 0.6
event.respond '1..'
sleep 0.6
event.respond 'END'
puts 'CMD: countdown end'
end
#-------------COMMAND YOUTUBE-------------
bot.command(:youtube) do |event, *keywordsY|
cmdcount += 1
keywordsY = keywordsY.join(' ')
client = Yourub::Client.new
client.search(query: keywordsY.to_s, max_results: '1') do |resultY|
event.respond "https://www.youtube.com/watch?v=#{resultY['id']}"
puts 'CMD: youtube search'
end; nil
end
#-------------COMMAND RULE34-------------
bot.command(:rule34) do |event, *keywordsR|
cmdcount += 1
keywordsR = keywordsR.join('+')
url = "http://rule34.xxx/index.php?page=dapi&s=post&q=index&limit=1&tags=#{keywordsR}"
xml_string = Net::HTTP.get_response(URI.parse(url)).body
xml_array = xml_string.split(' ')
score = xml_array.at(6)
score.gsub!('score="', '')
score.delete!('"')
url = 'http:'
url += xml_array.at(7)
url.gsub!('file_url="', '')
url.delete!('"')
event.respond "score = #{score}"
event.respond url
puts 'CMD: rule34 search'
end
#-------------COMMAND SET MHO REMINDER-------------
bot.command(:mhoset, permission_level: 1) do |event, hours, minutes|
cmdcount += 1
h = hours.to_i
m = minutes.to_i
time = h * 3600 + m * 60
puts time
event.respond "timer set for **#{hours}** hours and **#{minutes}** minutes"
puts 'CMD: countdown set'
while time > 0
sleep 1
time -= 1
end
end
#-------------COMMAND GET MHO REMINDER TIME-------------
bot.command(:maintenance) do |event|
cmdcount += 1
output = time
a = output / 3600
b = (output - a * 3600) / 60
c = output - a * 3600 - b * 60
event.respond "**#{a}:#{b}:#{c}** seconds left"
puts 'CMD: countdown get'
end
#-------------COMMAND HELP-------------
bot.command(:help) do |event|
cmdcount += 1
event << '**-ping** pings the bot'
event << '**-join <link or code>** join a server'
event << '**-leave** leave current server'
event << '**-roll <number>** rolls a random number'
event << '**-countdown** starts a 5 seconds countdown'
event << '**-youtube <keywords>** search for a youtube video'
event << '**-rule34 <keywords>** search for a rule34 hentai'
event << '**-info** shows current information'
event << '**-stats** shows current stats'
puts 'CMD: help'
end
#-------------COMMAND STATS-------------
bot.command(:stats) do |event|
cmdcount += 1
event << "```#{cmdcount} commands executed"
event << "#{p Uptime.uptime} Online```"
puts 'CMD: stats'
end
#-------------COMMAND INFO-------------
bot.command(:info) do |event|
cmdcount += 1
event << "```Ruby Version: #{RUBY_VERSION}"
event << "Ruby patchlevel: #{RUBY_PATCHLEVEL}"
event << "Ruby release date: #{RUBY_RELEASE_DATE}"
event << 'Ruby DevelopmentKit: DevKit-mingw64-32-4.7.2-20130224-1151-sfx'
event << 'Creator: @ZerO```'
puts 'CMD: info'
end
puts 'DONE!'
print 'starting bot...'
bot.run :async
bot.game = ' type -help for more'
puts 'DONE!'
puts 'bot is online!'
bot.sync
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment