【发布时间】:2014-01-22 04:55:11
【问题描述】:
我在向 Minecraft 的 Bukkit 服务器发送命令时遇到问题。 我的代码非常适合 Vanilla,但是当我使用 Bukkit 尝试它时,它似乎不想再工作了。我仍然可以接收来自服务器的所有输出,我只是无法发送诸如“帮助”或“停止”之类的命令。 这是我处理服务器线程的类。
public class Sender{
ConsoleWriter cWriter = new ConsoleWriter();
private BufferedWriter writer;
private OutputStreamWriter out;
public void execute(){
this.ui = ui;
try{
ProcessBuilder pb = new ProcessBuilder(path_to_server+"launch.bat");
Process process = pb.start();
StreamGobbler sgError = new StreamGobbler(process.getErrorStream());
new Thread( sgError ).start();
out = new OutputStreamWriter(process.getOutputStream());
writer = new PrintWriter(out);
} catch ( IOException e ){
e.printStackTrace();
}
}
private class StreamGobbler implements Runnable
{
private InputStream is;
public StreamGobbler( InputStream is ){
this.is = is;
}
@Override
public void run() {
try {
InputStreamReader isr = new InputStreamReader( is );
BufferedReader br = new BufferedReader( isr );
String line = null;
while ( ( line = br.readLine() ) != null ){
cWriter.writer(line, ui);
}
} catch ( IOException e ){
e.printStackTrace();
}
}
}
}
那么这里发生了什么?为什么它适用于 Vanilla 而不是 Bukkit?
谢谢!
【问题讨论】:
-
gaming.stackexchange.com 的朋友可能对 bukkit 特定问题有更多经验。
-
@ChrisZhang 在查看该站点时,它似乎与代码无关,而是与游戏本身有关。这不是我想要的。不过感谢您的建议。
标签: java outputstream bukkit writer