m.users = data[:users]
@plugins.delegate "names", m
}
+ @client[:nosuchtarget] = proc { |data|
+ m = NoSuchTargetMessage.new(self, server, server, data[:target], data[:message])
+ @plugins.delegate "nosuchtarget", m
+ }
@client[:error] = proc { |data|
raise ServerError, data[:message]
}
class PartMessage < JoinMessage
end
+ # class to handle ERR_NOSUCHNICK and ERR_NOSUCHCHANNEL
+ class NoSuchTargetMessage < BasicUserMessage
+ # the channel or nick that was not found
+ attr_reader :target
+
+ def initialize(bot, server, source, target, message='')
+ super(bot, server, source, target, message)
+
+ @target = target
+ end
+ end
+
class UnknownMessage < BasicUserMessage
end
end
data[:channel].url=data[:url].dup
handle(:channel_url, data)
when ERR_NOSUCHNICK
- data[:nick] = argv[1]
- if user = @server.get_user(data[:nick])
+ data[:target] = argv[1]
+ data[:message] = argv[2]
+ handle(:nosuchtarget, data)
+ if user = @server.get_user(data[:target])
@server.delete_user(user)
end
- handle(:nosuchnick, data)
when ERR_NOSUCHCHANNEL
- data[:channel] = argv[1]
- if channel = @server.get_channel(data[:channel])
+ data[:target] = argv[1]
+ data[:message] = argv[2]
+ handle(:nosuchtarget, data)
+ if channel = @server.get_channel(data[:target])
@server.delete_channel(channel)
end
- handle(:nosuchchannel, data)
else
warning "Unknown message #{serverstring.inspect}"
handle(:unknown, data)