我正在使用GoLang为 minecraft 服务器控制台创建一个包装器。它使用os / exec来运行服务器,并使用process.StdoutPipe()来实现子进程的实时输出。
但是,由于某种原因,我不能让它显示颜色。当我直接从终端运行服务器时,颜色有效,但是当我从GoLang运行它时它根本不起作用。
当我从GoLang运行时,日志文件上没有颜色代码。但是直接从终端运行它,日志文件绝对搞乱了颜色代码。我真的不明白这是怎么回事。
有什么方法可以解决这个问题吗? 谢谢!
答案 0 :(得分:4)
解决这个问题的方法是强制使用Minecraft服务器的颜色。这根本不是你的Go程序的问题。命令行程序检测它们是否在交互式终端上运行是非常常见的,并且当它们不通过时,禁用某些功能(例如颜色输出,分页等),假设它们正在通过脚本(就像你的情况一样)。
如果Minecraft服务器没有此选项,您可以fool it into thinking it's running on an interactive terminal。