diff --git a/lib/client.js b/lib/client.js index 2131496..5bf0b29 100644 --- a/lib/client.js +++ b/lib/client.js @@ -2,6 +2,7 @@ var net = require('net') , EventEmitter = require('events').EventEmitter , util = require('util') , protocol = require('./protocol') + , dns = require('dns') , createPacketBuffer = protocol.createPacketBuffer , parsePacket = protocol.parsePacket , debug = protocol.debug @@ -69,7 +70,17 @@ Client.prototype.setSocket = function(socket) { Client.prototype.connect = function(port, host) { var self = this; - self.setSocket(net.connect(port, host)); + if (port == 25565) { + dns.resolveSrv("_minecraft._tcp." + host, function(err, addresses) { + if (addresses) { + self.setSocket(net.connect(addresses[0].port, addresses[0].name)); + } else { + self.setSocket(net.connect(port, host)); + } + }); + } else { + self.setSocket(net.connect(port, host)); + } }; Client.prototype.end = function(reason) {