gpt4 book ai didi

java - JLine 3 - 使提示始终位于底部

转载 作者:行者123 更新时间:2023-12-01 09:41:43 26 4
gpt4 key购买 nike

我希望每次都在页面底部显示提示。

我有一个 GIF:The prompt not displaying properly

代码是读取行的代码:

@Override
public void run()
{
while (((ElytraServer) ElytraAPI.getServer()).isRunning())
{
String cmd;
((ElytraServer) ElytraAPI.getServer()).getReader().getTerminal().writer().flush();
cmd = ((ElytraServer) ElytraAPI.getServer()).getReader().readLine("> ");
if (!cmd.isEmpty())
{
String[] aCMD = cmd.split(" ");
String[] arguments = Arrays.copyOfRange(aCMD, 1, aCMD.length);
ElytraAPI.getCommandRegistry().dispatch(ElytraAPI.getConsole(), aCMD[0], arguments);
}
}
}

它在一个线程中。

还有另一个主题:使用 JLine 2,代码将提示保留在底部(但它已被窃听!)

public void run()
{
while (((ElytraServer) ElytraAPI.getServer()).isRunning())
{
try
{
if (useJline)
{
/*
JLine 2 / Old:
reader.print(Ansi.ansi().eraseLine(Erase.ALL).toString() + '\n');
reader.flush();
*/
reader.getBuffer().down();
reader.getTerminal().flush();
output.write("".getBytes());
output.flush();

/* // For JLine2
try
{
reader.drawLine();
}
catch (Throwable throwable)
{
reader.getCursorBuffer().clear();
}*/

reader.getTerminal().flush();
}
else
{
output.write("".getBytes());
output.flush();
}
}
catch (IOException ioexception)
{
Logger.getLogger(TerminalConsoleWriterThread.class.getName()).log(Level.SEVERE, null, ioexception);
}
}
}

完整来源: Full source of the program

最佳答案

I posted a workaround使用当前代码(只要用户不使用多行输入就可以工作)。

reader.getTerminal().puts(Capability.carriage_return);
reader.getTerminal().writer().println("World!");
reader.callWidget(LineReader.REDRAW_LINE);
reader.callWidget(LineReader.REDISPLAY);
reader.getTerminal().writer().flush();

下一个 jline 版本 (3.2) 将包含更好的修复。请参阅:https://github.com/jline/jline3/issues/75

关于java - JLine 3 - 使提示始终位于底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38399230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com