Closed Renegade334 closed 8 years ago
Would the last two items negate the need for https://github.com/Renegade334/phergie-irc-plugin-react-chanmodes ?
Yes. Also, Pong's functionality should definitely be included here.
Also, I'm a little concerned at the description of this change. The client was designed specifically to be relatively simple, low-level, and lightweight, and the bot to build on top of that using plugins. I'm afraid of losing the simplicity of the client if too much logic is added at that level. Can you outline how you plan to implement these changes?
The objective would be to provide core functionality - that functionality that should be present in all cases, like responding to server pings or updating the connection's nickname - as part of the client. I've added an example to the branch.
How would any parsed data be made accessible to non-core code?
Through the connection data scheme. Example: 7de37f79b718716cd210fa494bcca8ca2f3ba052
The same scheme could be used by plugins to provide non-essential functionality that isn't handled by the client. For example, if it's decided that channel lists shouldn't be handled by the client, a plugin could maintain the channel lists within the connection instances, which could then be accessed at liberty by any other plugins that want to access that data.
Fair enough. Feel free to proceed.
resolved via #42
I am working on a branch under
Renegade334@devel-internal-processing
that would give the client some input processing functionality in order to store or modify connection-specific data.Examples of internal processing that the client absolutely should handle:
Connection::setNickname()
on receiving aNICK
command from the server that corresponds to the connectionPING
messagesExamples that the client could handle:
RPL_ISUPPORT
into a data array of server-supported parameters, plus mode and prefix mapsJOIN
,MODE
,PART
,KICK
,QUIT
andRPL_NAMREPLY
messages to compile and maintain internal channel listsMODE
messages to maintain a record of the client user's current user modes