(I recommend you to fs.readdir a folder to get all .js files, then require them (they should export a class)|provide a function for adding plugin classes), in this class there will be a constructor defining this.info (or super()) like plugin name, version, author, api version etc. and in the class they'll define specified function like onPacketRecieve(player, packet) { code.. }, your system will check if this function exists in the plugins class (so that people will not have to define every single function) then call it like class.onPacketRecieve(player, packet);
(I recommend you to fs.readdir a folder to get all .js files, then require them (they should export a class)|provide a function for adding plugin classes), in this class there will be a constructor defining this.info (or super()) like plugin name, version, author, api version etc. and in the class they'll define specified function like onPacketRecieve(player, packet) { code.. }, your system will check if this function exists in the plugins class (so that people will not have to define every single function) then call it like class.onPacketRecieve(player, packet);
A plugin system would be nice, here are some..
Suggested events/functions:
access for writer.js and reader.js should be given