mirror of
https://github.com/danbulant/flying-squid
synced 2026-06-16 13:01:12 +00:00
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
var mc = require('minecraft-protocol');
|
|
var EventEmitter = require('events').EventEmitter;
|
|
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'));
|
|
|
|
module.exports = {
|
|
createMCServer:createMCServer
|
|
};
|
|
|
|
function createMCServer(options) {
|
|
options = options || {};
|
|
var mcServer = new MCServer();
|
|
mcServer.connect(options);
|
|
return mcServer;
|
|
}
|
|
|
|
function MCServer() {
|
|
EventEmitter.call(this);
|
|
this._server = null;
|
|
}
|
|
util.inherits(MCServer, EventEmitter);
|
|
|
|
MCServer.prototype.connect = function(options) {
|
|
var self = this;
|
|
self._server = mc.createServer(options);
|
|
|
|
for(var pluginName in serverPlugins) {
|
|
serverPlugins[pluginName](self, options);
|
|
}
|
|
|
|
if(options.logging == true) {
|
|
self.createLog();
|
|
}
|
|
|
|
self._server.on('error', function(error) {
|
|
console.log('[ERR] ', error.stack);
|
|
self.log('[ERR]: Server:', error.stack);
|
|
});
|
|
|
|
self._server.on('listening', function() {
|
|
console.log('[INFO]: Server listening on port', self._server.socketServer.address().port);
|
|
self.log('[INFO]: Server listening on port', self._server.socketServer.address().port);
|
|
});
|
|
|
|
self._server.on('login', function (client) {
|
|
var player={};
|
|
player._client=client;
|
|
for(var pluginName in playerPlugins) {
|
|
playerPlugins[pluginName](self, player, options);
|
|
}
|
|
player.login();
|
|
});
|
|
};
|