そのため、これが可能かどうかはわかりませんが、親しい友人の 1 人が、次のことを行うこの node.js スクリプトをくれました。
誰かが a.FreeMinecraftHost.com:25565 で Minecraft サーバーに接続すると (これは minecraft のデフォルト ポートです。デフォルト ポートでサーバーを実行している場合、クライアントはポートを入力する必要はありません) リダイレクトすることになっています。 a.FreeMinecraftHost.com:30000 と言う
彼が私にくれたコードは次のとおりです。
var Socket = require('net').Socket;
var Server = require('net').Server;
var net = require('net');
var SERVERMAP = {
'a.FreeMinecraftHost.com:25565': ['localhost', 30000],
'b.FreeMinecraftHost.com:25565': ['localhost', 30001],
'c.FreeMinecraftHost.com:25565': ['localhost', 30002],
'd.FreeMinecraftHost.com:25565': ['localhost', 30003]
};
var server = new Server();
server.on('connection', function(client) {
var buffer = '';
var authed = false;
client.on('data', function(data) {
if(!authed) buffer += data;
if(!authed) {
var parser = new RegExp('([a-z0-9_]+);([^:]+):([0-9]+)', 'ig');
var parts = parser.exec(buffer.toString().replace(/\0/ig, ''));
if(parts) {
var serverString = parts[2] + ':' + parts[3];
authed=true;
if(SERVERMAP[serverString]) {
var socket = new Socket();
socket.connect(SERVERMAP[serverString][1], SERVERMAP[serverString][0], function() {
socket.write(buffer);
socket.pipe(client);
client.pipe(socket);
});
} else {
client.end();
}
} else {
client.end();
}
}
});
});
問題は、私がそれを実行しても何も起こらないことです.ノードはそれを存続させたり何もしません.すぐにプロンプトに戻ります.
編集 私はそれを働かせました!なんか、忘れてた、
server.listen(25565);
最後に、これで Minecraft サーバーに接続できるようになり、動作しますが、Minecraft クライアントがサーバー リストで ping を実行すると、オフラインとして表示されます。