# TODO:: when Ruby 2.0 gets out, fix the FIXME 2.0 UTF-8 workarounds
# Class for storing question/answer pairs
-QuizBundle = Struct.new( "QuizBundle", :question, :answer )
+define_structure :QuizBundle, :question, :answer
# Class for storing player stats
-PlayerStats = Struct.new( "PlayerStats", :score, :jokers, :jokers_time )
+define_structure :PlayerStats, :score, :jokers, :jokers_time
# Why do we still need jokers_time? //Firetech
# Maximum number of jokers a player can gain
# CLASS QuizPlugin
#######################################################################
class QuizPlugin < Plugin
- BotConfig.register BotConfigBooleanValue.new('quiz.dotted_nicks',
+ Config.register Config::BooleanValue.new('quiz.dotted_nicks',
:default => true,
:desc => "When true, nicks in the top X scores will be camouflaged to prevent IRC hilighting")
- BotConfig.register BotConfigArrayValue.new('quiz.sources',
+ Config.register Config::ArrayValue.new('quiz.sources',
:default => ['quiz.rbot'],
:desc => "List of files and URLs that will be used to retrieve quiz questions")
# Reimplemented from Plugin
#
- def listen( m )
- return unless m.kind_of?(PrivMessage)
-
+ def message(m)
chan = m.channel
return unless @quizzes.has_key?( chan )
q = @quizzes[chan]
score = player[1].score
ar << "#{i + 1}. #{unhilight_nick( nick )} (#{score})"
end
- m.reply ar.join(" | ")
+ m.reply ar.join(" | "), :split_at => /\s+\|\s+/
end