IRCClient now supports PRIVMSG and NOTICE messages that are not
addressed to the client's nick, nor to any channel the client is on.
An example is the AUTH messages that some servers emit at the start
of the connection process.
In some callbacks, NSData objects to be passed to IRCClientSession's
event handlers would be nil (if e.g. a user parted a channel without
giving a reason). Those object references would then be sent messages.
This is bad. Instead, an NSData object is always allocated now, even
for blank reasons/messages/notices/etc. This object simply contains a
single null byte (i.e. it holds an empty, null-terminated C string).
IRC_Numerics.plist contains a mapping of known IRC numeric message
codes (taken from https://www.alien.net.au/irc/irc2numerics.html) to
their ASCII names. This is mostly for internal dev/debugging use.
Rather than have properties, setting which does nothing, we now
have readonly properties for nickname/username/realname, and a single
setter method, which may be called prior to the session connecting.
That way we won't have people setting the properties, and having the
properties then not reflecting the state of the connection!
The IRCClientChannel 'name' property was readwrite. This is obviously
incorrect - you cannot change the name of a channel the user has joined,
so you shouldn't be able to change the object's name property!
IRCClientChannel and IRCClientSession had properties which were defined
and adorned with memory management keywords in contravention of best
practices and Apple recommendations. These have been rectified.
No API changes accompany this fix.
The comments for some methods in IRCClientSession.h and
IRCClientChannel.h were incorrect (they still talked about the old
event names, from version 1.0). This commit fixes those errors.