def new_user(str, fails=true)
if str.nil_or_empty?
raise "Tried to look for empty or nil user name #{str.inspect}" if fails
return nil
end
tmp = str.to_irc_user(:server => self)
old = get_user(tmp.nick)
if old
if tmp.known?
if old.known?
warning "User #{tmp.nick} has inconsistent Netmasks! #{self} knows #{old.inspect} but access was tried with #{tmp.inspect}" if old != tmp
raise "User #{tmp} already exists on server #{self}" if fails
end
if old.fullform.downcase != tmp.fullform.downcase
old.replace(tmp)
end
end
return old
else
warn "#{self} doesn't support nicknames this long (#{tmp.nick.length} > #{@supports[:nicklen]})" unless tmp.nick.length <= @supports[:nicklen]
@users << tmp
return @users.last
end
end