如何实现 MC 服务器 Console 的光标置底 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Useful Links
Minecraft Wiki
合成配方
SaigyoujiYuyuko
V2EX    Minecraft

如何实现 MC 服务器 Console 的光标置底

  •  
  •   SaigyoujiYuyuko 2020-04-04 16:33:28 +08:00 8929 次点击
    这是一个创建于 2101 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位问一下 MC 的服务器控制台 是怎么实现 光标 ">" 置于底部 并且 在有输出(玩家聊天什么的)的情况下保持光标置底并且不会破坏已输入但未发送的内容的。

    已知 MC 的服务器控制台使用 JLine3 库

    我尝试使用 JLine3 + Log4j2 库来实现 但是会遇到如下问题: error-1 当有日志输出时会覆盖光标 并导致其未提交内容失效

    尝试使用 https://github.com/Minecrell/TerminalConsoleAppender 这个库来磨合 JLine3 + Log4j2 但是无效

    补充: 这个是我想要的效果 wants

    各位有什么主意嘛? 感谢帮助

    7 条回复    2020-04-04 22:44:48 +08:00
    SaigyoujiYuyuko
        1
    SaigyoujiYuyuko  
    OP
       2020-04-04 16:35:25 +08:00
    补充: 这个是我想要的效果
    ![wants]( https://ae01.alicdn.com/kf/U16a717aa714b406e86873ee07e842aebr.png)
    ShallowAi
        2
    ShallowAi  
       2020-04-04 17:18:42 +08:00 via Android
    Wibdows 下的光标是一直置底的
    可能你使用的服务端不同? 我这边 linux 服务器下也是置底的
    codehz
        3
    codehz  
       2020-04-04 17:40:58 +08:00
    最简单的试试 rlwrap "原程序命令行"
    * 然后程序内直接读标准输入。。。
    * 存在一些边界情况,但是基本上还是能用(至少你能编辑一部分语句了。。。被覆盖后按任意键即可恢复)
    我曾经也折腾过 mc (不过是基岩版),然后放弃了,写了一堆代码发现 rlwrap 已经解决了问题。。。
    你要自己实现类似程序的话也是可以的,大约就是用 readline 库,然后包装目标程序的输入输出,接着在检测到原程序输出的时候 rl_clear_visible_line (以及记录光标位置)然后再手动输出,最后再恢复光标和位置。。。

    * 上面的解决方案是基于 readline 的,所以效果可能不是特别完美,
    另一个方案是用 ncurses 一类的库直接做成 TUI 的模式 * 这样你甚至可以直接固定到屏幕底下,以及支持鼠标滚轮(和键盘滚动)
    codehz
        4
    codehz  
       2020-04-04 17:47:06 +08:00
    ×最后再给个建议:放弃折腾终端,随便弄个 webui 都比这个简单一万倍。。。。
    SaigyoujiYuyuko
        5
    SaigyoujiYuyuko  
    OP
       2020-04-04 18:06:34 +08:00
    @codehz 同感 我现在已经在尝试写 Java Swing UI 了
    SaigyoujiYuyuko
        6
    SaigyoujiYuyuko  
    OP
       2020-04-04 18:07:04 +08:00
    @ShallowAi 我在尝试自己写一个 REPL 工具
    SaigyoujiYuyuko
        7
    SaigyoujiYuyuko  
    OP
       2020-04-04 22:44:48 +08:00
    各位我解决了 https://github.com/Minecrell/TerminalConsoleAppender/issues/15 这个可以允许 JLine3 + Log4j2
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3701 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:06 PVG 13:06 LAX 21:06 JFK 00:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86