From 6509f513a8671b8a30c29f789a0f3d3d57f8ef22 Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Thu, 27 Aug 2015 22:39:45 +0200 Subject: [PATCH] load player plugin in login.js server plugin, fix #11 --- doc/api.md | 10 ++++++---- index.js | 11 ----------- lib/serverPlugins/login.js | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 lib/serverPlugins/login.js diff --git a/doc/api.md b/doc/api.md index fe7eff2..dab09df 100644 --- a/doc/api.md +++ b/doc/api.md @@ -34,14 +34,15 @@ - [serv.players](#servplayers) - [serv.uuidToPlayer](#servuuidtoplayer) - [serv.world](#servworld) + - [serv.entities](#serventities) - [Events](#events) - ["error" (error)](#error-error) - ["listening" (port)](#listening-port) + - ["newPlayer" (player)](#newplayer-player) - [Methods](#methods) - [serv.createLog()](#servcreatelog) - [serv.log(message)](#servlogmessage) - [serv.broadcast(message[,color])](#servbroadcastmessagecolor) - - [serv.entities](#serventities) - [Player](#player) - [Properties](#properties-1) - [player.entity](#playerentity) @@ -197,6 +198,10 @@ Fires when there is an error. Fires when the server is listening. +#### "newPlayer" (player) + +Fires when `player` login, allow external player plugins. + ### Methods #### serv.createLog() @@ -211,9 +216,6 @@ logs a `message` broadcasts `message` to all the players with the optional `color`. -#### serv.entities -All of the entities - ## Player ### Properties diff --git a/index.js b/index.js index 782adea..81732e0 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,6 @@ var util = require('util'); var path = require('path'); var requireIndex = require('requireindex'); var serverPlugins = requireIndex(path.join(__dirname, 'lib', 'serverPlugins')); -var playerPlugins = requireIndex(path.join(__dirname, 'lib', 'playerPlugins')); -var Player=require("./lib/player"); require("longjohn"); module.exports = { @@ -44,13 +42,4 @@ MCServer.prototype.connect = function(options) { self._server.on('listening', function() { self.emit('listening',self._server.socketServer.address().port); }); - - self._server.on('login', function (client) { - var player=new Player(); - player._client=client; - for(var pluginName in playerPlugins) { - playerPlugins[pluginName](self, player, options); - } - player.login(); - }); }; diff --git a/lib/serverPlugins/login.js b/lib/serverPlugins/login.js new file mode 100644 index 0000000..bb7ee0d --- /dev/null +++ b/lib/serverPlugins/login.js @@ -0,0 +1,19 @@ +var path = require('path'); +var requireIndex = require('requireindex'); +var playerPlugins = requireIndex(path.join(__dirname,'..', 'playerPlugins')); +var Player=require("../player"); + +module.exports = inject; + +function inject(serv,options) +{ + serv._server.on('login', function (client) { + var player=new Player(); + player._client=client; + for(var pluginName in playerPlugins) { + playerPlugins[pluginName](serv, player, options); + } + serv.emit("newPlayer",player); + player.login(); + }); +} \ No newline at end of file