Created
February 10, 2016 07:48
-
-
Save mackmm145/83108734ffbc0c81dabb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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