- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我想向正在运行的 Minecraft 服务器发送命令并观察它的响应。一切正常,但服务器启动后我无法发送任何命令:
这是我的代码:
import java.io.*;
import java.util.Scanner;
public class Server{
private String name;
private StartCommand command;
private boolean on = false;
private Process p = null;
public Server(StartCommand c, String name){
this.command = c;
this.name = name;
}
public String getName(){
return name;
}
public void start(){
try {
p = Runtime.getRuntime().exec(command.getCommand());
System.out.println("Server: " + name + " is on now!");
on = true;
} catch (IOException e) {
e.printStackTrace();
on = false;
}
}
public void watch(){
System.out.println("threads:");
Thread t1 = new Thread(new proc1(p));
Thread t2 = new Thread(new proc2(p));
System.out.println("start1");
t1.start();
System.out.println("start2");
t2.start();
}
}
//-----Processes-----//
class proc1 implements Runnable{
private Process p;
private static String line = null;
public proc1(Process p){
this.p = p;
}
@Override
public void run(){
try{
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
//on = false;
}
}
}
class proc2 implements Runnable{
private Process p;
public proc2(Process p){
this.p = p;
}
@Override
public void run(){
Scanner in = new Scanner(System.in);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
//OutputStream out = p.getOutputStream();
System.out.println("start while (type commands now!!!!)");
while(in.hasNextLine()){
String command = in.nextLine();
if(command.equals("ext")){
//coming soon
return;
}else{
try{
out.write(command);
out.flush();
} catch (IOException e) {
e.printStackTrace();
return;
}
}
}
}
}
我知道一定有某事。我的 proc2 类中错误。这实际上是我第一次使用“Process”类
谢谢!
最佳答案
您正在使用 Scanner.next() 检索下一个命令。您确定这就是您想要做的吗?这会将由空格分隔的所有内容读取为单独的输入,并在不使用空格的情况下写入(删除分隔符)。
EG:“/giveplayeritem”将显示为“/giveplayeritem”,要么在一行上混合在一起,最后不返回,要么“/give\nplayer\nitem”,具体取决于您如何拥有缓冲输出设置为向服务器发送命令。
编辑:在他的 self 回答中可以看到有效的修复。
基本上,刷新工作不正常,使用自动刷新 println 然后刷新的 printwriter 以某种方式修复了这个问题。
关于java - 通过 java 向 Minecraft 服务器发送命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490527/
我不知道为什么当我从南边或东边看时我的纹理按预期渲染,但从北边或西边看时却隐藏了它们后面的对象。 我有一个不可见的 block ,它在其中渲染多个项目,并且在处理具有半透明纹理的 block 时遇到问
我想写一个 Minecraft 模组来增加一种新型的生物。那可能吗?我看到,在 Bukkit, EntityType is a predefined enum ,这让我相信可能没有办法添加新类型的实体
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我一直在尝试使用 MCP 将 Minecraft 源代码反编译到 eclipse 工作区。我正在使用 mcp940 反编译 Minecraft 1.12。当我运行 BATCH 文件 decompile
我正在尝试制作模组,但遇到了这个问题。当我尝试创建工艺配方时,它使我的游戏崩溃。我真的不知道为什么。我尝试使用Items.COOKED_BEEF 还尝试了 Item.cooked_beef。我导入了我
我最近正在开发 Minecraft mod,在处理函数的返回语句时,我发现它需要一个 INBT 实例作为返回类型。我有一个自定义对象,需要将其转换为 INBT 类型的 NBT?这是函数: public
我已经开始制作模组,它没有注册为元素。当我键入 /give Fidojj222 fcm:fuel_canister 时,它应该给我该项目,除非它说它不存在!我正在使用 eclipse 作为我的 IDE
我用 Python 为 Minecraft 1.12.2 编写了一个启动器,它只是准备一个命令并使用子进程运行它。 这是在 Linux Ubuntu 上形成的命令: #!/usr/bin/env ba
我想创建一个应用程序服务器可以联系的 Web 服务,以将自身添加到实现该应用程序的服务器列表中。然后,客户端可以联系该服务以获取服务器列表。类似于 minecraft's heartbeats wor
我在带有 OpenJDK 的 headless Linux 服务器上运行 Minecraft。我已经添加了太多的 mods 和它的滞后(即使在我的本地网络上)而没有使用太多的 CPU 或内存(例如它滞
我正在尝试制作一个插件来消除 Minecraft 中的饥饿感。但是,我找不到它的事件! 是否有玩家失去饥饿感时调用的事件? 类似 PlayerHungerChangeEvent 的东西? 最佳答案 我
我熟悉的唯一模型是漫射照明,但这看起来比那复杂得多。 最佳答案 每个方块的亮度级别从 15 到 0。每个级别都比它上面的级别低 20%。如果一个正方形包含一个光源,它会得到那个光源的光度,否则它会比最
我在学习东西的过程中对我的世界插件开发非常陌生。我正在开发一个 jail 插件,并创建了一种方法,可以让玩家知道他们的库存是否已满。它不起作用,我不明白为什么。代码: public void
我在启动我的世界服务器时遇到错误。我用于插件的外部库是推荐的构建 craftbukkit-1.6.4-R2.0。我使用 craftbukkit-1.6.4-R2.0 来启动服务器并作为 eclipse
我想用 launchProjectile 编写我自己的武器系统,我使用的是 Arrow。但是我怎样才能在不增加传播的情况下增加箭头速度呢?代码如下: @Override public void sho
我正在为 Android 编写 Minecraft 红石模拟器。我正在使用 Dijkstra 的一些变体进行模拟,但我听说,真正的模拟器会做一些不同的事情,并在每个红石滴答声中更新每个红石 block
我在尝试获取 Minecraft 插件中的标志线值时遇到问题。这是我的代码: package pl.maccraft.regssal; import org.bukkit.plugin.java.Ja
我需要找到一种方法来检查我的世界用户名和密码是否有效。 我发现这个文档讲述了很多有关 Minecraft 身份验证的事情:http://wiki.vg/Authentication 看起来它需要一个
对于一个 Minecraft 项目,我想让玩家逐渐面对 (0, 60, 0)。到目前为止,当玩家围绕 (0, 60, 0) 移动超过 720° 时,我尝试的一切似乎都失败了。 有人知道如何让相机无缝移
尝试编写 Minecraft 插件代码时,当我在游戏中运行/fakeop 时出现外部错误。/fakeop (playername) 虽然有效 public class CortexTroll exte
我是一名优秀的程序员,十分优秀!