我一直在尝试为 PaperMC 服务器制作包装器以更改对内部事件的处理,但有一个小问题 - 如果我不设置
stdin: 'inherit'
服务器会抛出此错误或类似错误
xxxx-xx-xx xx:xx:xx,xxx Log4j2-AsyncAppenderEventDispatcher-1-Async WARN Advanced terminal features are not available in this environment
这意味着警告和错误的控制台颜色将不起作用(这对于调试 Minecraft 服务器至关重要),以及一些杂项错误,例如命令输入“>”符号。
这是我的包装纸:
const cp = require('child_process'),
ch = require('chalk'),
rl = require('readline').createInterface(process.stdin, process.stdout),
l = (...m) => console.log(ch`[{redBright WRAPPER}] ${m.join('\n')}`);
let server = cp.spawn('java', ['-Xms12G', '-Xmx12G', '-jar', 'server.jar'], { stdio: ['pipe', 'inherit', 'inherit', 'ipc'] });
rl.on('line', input => {
if (input == '<example>') {
// ...
}
else {
server.stdin.write(`${input}\n`);
}
});
我正在运行 JRE 20。 我应该处理什么
stdin
事件来解决这个问题?