######################## EVENT REPLY ########################
# EVENT <time-stamp> <object> <event type> <parameters>     #
#############################################################

This list is of what the events _should_ be, to be compatible
with other servers.

## ANOTHER NOTE
## The IRCX draft left out a key thing in the EVENT command.
## You can't specify specific events! To cope, you can use
## Type.Event.. If you wanted the event for SOCKET OPEN, it'd
## be SOCKET.OPEN. You can also use the original "wildcard" method
## if you want.

## STATUS CODES (X column)
## X => done
## . => part of above
## ? => may not be implemented
## - => probably won't be implemented

# X # Description
###################################################################################################
# X # SOCKET:
# X #  ACCEPT - any socket that is accepted
# . #           Server EVENT Time SOCKET ACCEPT RemoteIPAddress:Port LocalIPAddress:Port
# . # 
# X #  CLOSE  - any socket that closes
# . #           Server EVENT Time SOCKET CLOSE RemoteIPAddress:Port LocalIPAddress:Port
# . # 
# - #  BADDNS - when socket's remote ip had bad/fake DNS address
# . #           Server EVENT Time SOCKET BADDNS RemoteIPAddress:Port LocalIPAddress:Port BadHostname
##### 
# X # USER:
# X #  LOGON   - generated after any user registers (not their nick)
# . #            Server EVENT Time USER LOGON Mask RemoteIpAddress:Port LocalIpAddress:Port Modes
# . # 
# X #  LOGOFF  - generated after a QUIT message is recieved, or the user disconnects
# . #            Server EVENT Time USER LOGOFF Mask
# . # 
# X #  TIMEOUT - generated when a user timeouts
# . #            Server EVENT Time USER TIMEOUT Mask
# . #
# X #  DISCONNECT - error?
# . #            Server EVENT Time USER DISCONNECT Mask :Reason
# . #
# X #  MODE    - generated when a user changes their modes, or gets modes set on them
# . #            Server EVENT Time USER MODE Mask Modes
# . # 
# X #  NICK    - generated when a user changes their nick
# . #            (modified from Exchange 5.5)
# . #            Server EVENT Time USER NICK Mask NewNick
# . # 
# X #  QUIT    - generated when a user quits; includes quit message
# . #            Server EVENT Time USER QUIT Mask :Reason
# . # 
# X #  KILL	 - generated when a user is killed
# . #            Server EVENT Time USER KILL Mask :Reason
# . # 
# - #  INPUT	 - generated when a user is killed from server because of input flooding
# . #            Server EVENT Time USER INPUT Mask RemoteIPAddress:Port
# . # 
# - #  OUTPUT	 - generated when a user is killed from server because of output buffer saturation
# . #            Server EVENT Time USER OUTPUT Mask RemoteIPAddress:Port
##### 
# X # MEMBER: 
# X #  JOIN       - generated when a user joins a channel
# . #               Server EVENT Time MEMBER JOIN #Channel MemberMask Modes
# . # 
# X #  PART       - generated when a user parts a channel
# . #               Server EVENT Time MEMBER PART #Channel MemberMask
# . # 
# X #  MODE       - generated when a user changes their chanmodes, or gets chanmodes set on them
# . # 
# . # 
# X #  KICK       - generated when a user is kicked off a channel
# . #               (extended the reply some)
# . #               Server EVENT Time MEMBER KICK #Channel MemberMask HostNick :Reason
##### 
# X # CHANNEL:
# X #  CREATE      - any channel comes into existance (via /create, or /join to an empty chan)
# . #                Server EVENT Time CHANNEL CREATE #Channel Modes CreatorMask
# . # 
# X #  DESTROY     - generated when last user parts unregistered channel
# . # 	       Server EVENT Time CHANNEL DESTROY #Channel
# . # 
# X #  TOPIC       - results when a channel's topic is changed
# . #                Server EVENT Time CHANNEL TOPIC #Channel HostMask :Topic
# . # 
# X #  KEYWORD     - results when a channel's keyword (+k/memberkey) is changed
# . #                Server EVENT Time CHANNEL KEYWORD #Channel HostMask :Key
# . # 
# X #  LIMIT       - results when a channel's limit is changed; nolimit - 0
# . #                Server EVENT Time CHANNEL LIMIT #Channel HostMask :Limit
# . # 
# X #  MODE        - generated when a channel's modes are changed
# . #                Server EVENT Time CHANNEL MODE #Channel CurrentModes HostMask
# . # 
# ? #  COLLISION   - when channels collided and one was killed
# . #                Server EVENT Time CHANNEL COLLISION #Channel
# . # 
# ? #  MERGE       - when channels collided and were merged
# . #                Server EVENT Time CHANNEL MERGE #Channel
################
##### TODO #####
################
#   # SERVER:
#   #  LINK        - when a server connects
#   #                Server EVENT Time SERVER UNLINK IPAddress:Port OtherServerName PortalName
#   # 
#   #  UNLINK	     - when a server disconnects
#   #                Server EVENT Time SERVER LINK IPAddress:Port OtherServerName PortalName
#   # 
#####  (the following 2 events may not be implemented)
#####  USERCONNECT    - when a user NOT on the current server connects
#####  USERDISCONNECT - when a user NOT on the current server disconnects
##### 
#   # CONNECT:
#   #  BANNED		- when a banned user tries to connect
#   #                   Server EVENT Time CONNECT BANNED UserMask RemoteIpAddress:Port Reason
#   # 
#   #  BADAUTH	- when a user tries to connect, but specified wrong password
#   # 		  (used for NT Authentication, maybe not necessary)
#   #                   Server EVENT Time CONNECT BADAUTH UserMask RemoteIpAddress:Port SecurityPackage UserID
#   # 
#   #  NOACCESS       - when connection not allowed (no I-line)
#   #                   Server EVENT Time CONNECT NOACCESS UserMask RemoteIpAddress:Port