class Nick require 'mode.rb' attr_reader :nick, :userhost attr_reader :chanlist def initialize(server, nickname, userhost) @server, @nick, @userhost = server, nickname.downcase, userhost @chanlist = Array.new @chanmodes = Hash.new # Chan => Mode @mode = Mode.new end def nick=(newnick) @nick = newnick.downcase end def userhost=(newuhost) @userhost = newuhost.downcase end def join(chan) @chanlist << chan unless @chanlist.find { |c| c.name == chan.name } @chanmodes[chan] = Mode.new end def part(chan) @chanlist.delete_if { |c| c.name == chan.name } @chanmodes.delete chan end def setchanmode(chan, mode) @chanmodes[chan] = mode end def modchanmode(chan, modemod) @chanmodes[chan] += modemod end def setmode(mode) @mode.set mode end def modmode(modemod) @mode += modemod end def ison(chan) @chanlist.include? chan end def nomorechans? @chanlist.empty? end def to_str "#{@nick}!#{@userhost}, on #{@chanlist.map{|c| c.name}.join(',')}" end def to_s to_str end end