#!/usr/bin/env /usr/bin/ruby
###############################################################################
################# Urban Terror Message Spammer for EighthBit ##################
###############################################################################
#####################
### Configuration ###
#####################
# Rcon password
$password = ''
# Server hostname or IP
$server = 'games.eighthbit.net'
# Server port
$port = 27960
# Cron, daemon, or console mode.
# 0 = Cron (sends a message and quits)
# 1 = Daemon (prints messages as they are sent)
# 2 = Console (shows how many seconds until next message)
$mode = 0
# Messages to be spammed
$messages = [
"Don't forget to check our our IRC network! irc.eighthbit.net",
"If you don't have an IRC client, don't worry.\nA webchat is at chat.eighthbit.net",
"Daily match schedule on irc.eighthbit.net, join channel Gaming and check the topic",
"Enjoy your stay at Eighthbit!"
]
# How often to spam it (in minutes).
# Not used in cron mode
$freq = 10
#############################################
### Don't touch anything below this line! ###
#############################################
require 'socket'
def rcon(cmd)
$socket ||= UDPSocket.open
$socket.send("\xFF\xFF\xFF\xFFrcon #{$password} #{cmd}\x00", 0, $server, $port)
$socket.flush
end
def send_message()
message = $messages[rand($messages.size)]
message.split("\n").each do |line|
rcon line
sleep 4 unless message.end_with?(line)
end
message
end
def delay
($freq * 60).to_i
end
if $mode == 0
send_message
elsif $mode == 2
$stdout.sync = true
while true
print "\rSending a message......"
puts "\r" + send_message
delay.times do |elapsed|
print "\rSeconds until next: " + (delay - elapsed).to_s
sleep 1
end
end
else
while true
puts send_message
sleep delay
end
end