class SalutPlugin < Plugin
Config.register Config::BooleanValue.new('salut.all_languages',
- :default => true,
+ :default => true,
:desc => "Check for a salutation in all languages and not just in the one defined by core.language",
:on_change => Proc.new {|bot, v| bot.plugins['salut'].reload}
)
Config.register Config::BooleanValue.new('salut.address_only',
- :default => true,
+ :default => true,
:desc => "When set to true, the bot will only reply to salutations directed at him",
:on_change => Proc.new {|bot, v| bot.plugins['salut'].reload}
)
return unless salut
# If the bot wasn't addressed, we continue only if the match was exact
# (apart from space and punctuation) or if @match[:dest] matches too
- return unless to_me or m.message =~ /^#{@punct}#{salut.first}#{@punct}$/ or m.message =~ @match[salut[1]][:dest]
+ return unless to_me or m.message =~ /^#{@punct}#{salut.first}#{@punct}$/ or m.message =~ @match[salut[1]][:dest]
h = Time.new.hour
case h
when 4...12
end
end
debug "Replying #{choice}"
- m.plainreply choice
+ m.reply choice, :nick => false, :to => :public
end
def reload
@all_langs = @bot.config['salut.all_languages']
if @all_langs
# Get all available languages
- langs = Dir.new("#{@bot.botclass}/salut").collect {|f|
+ langs = Dir.new(datafile).collect {|f|
f =~ /salut-([^.]+)/ ? $1 : nil
}.compact
langs.each { |lang|
end
def load_lang(lang)
- dir = "#{@bot.botclass}/salut"
+ dir = datafile
if not File.exist?(dir)
Dir.mkdir(dir)
end
- file = "#{@bot.botclass}/salut/salut-#{lang}"
+ file = File.join dir, "salut-#{lang}"
if File.exist?(file)
begin
salutations = Hash.new
end
def save_lang(lang, val)
- fn = "#{@bot.botclass}/salut/salut-#{lang}"
+ fn = datafile "salut-#{lang}"
Utils.safe_save(fn) { |file|
file.puts val.to_yaml
}