聊天栏

这个在屏幕左下角的就是聊天栏。

上方部分为聊天记录,实际上除了玩家之间的聊天以外也会记录很多不同资讯,如命令执行信息、错误,tellraw命令信息等等。
当信息出现了一段时间之后就会慢慢消失,如果消息过多、过长也会导致之前的消息消失,需要玩家打开聊天栏(默认按t/也能打开聊天栏)查看之前的信息。聊天记录的上翻条数是有限制的,超过限制的信息无法直接查阅,只会保存在log里,之后将会简介log。

下面该部分为输入框,默认可以按t/唤出,你可以在其中输入文字。
输入文字之后按enter发送。如果文字以/开始则为命令(不理会开头那/执行),否则则为聊天信息,会被直接写进聊天栏并发布给其他玩家。

聊天栏是支持全选、复制等功能的。
比如Windows的话,全选为Ctrl + A,复制为Ctrl + C,黏贴为Ctrl + V

MC内不允许直接输入§字符,请使用别的方式输入(如JSON内的\u00a7,或使用命令函数等外部输入方式)

自动补全

输入命令时,按下Tab按钮可补全当前参数(选择器、NBT、JSON文本不支持补全)。

比如说在输入框里输入了/,然后按Tab,会出现这样的输出:

只要玩家没有按下其他按钮(切换视窗也是按下了其他按钮),再次按Tab时就会切换为下一个选项,比如上方的例子则从/?变为/advancement
当玩家已经选择到最后一个选项了,再次按Tab按钮则会回到第一个选项。

如果玩家在按Tab前已经在当前参数输入了部分字符,按Tab则会寻找那些以当前字符开始的选项。
如输入了/test然后按Tab的话则只会出现/testfor/testforblock/testforblocks这几个选项。
这样的自动补全功能在需要输入较长的参数时是十分有效的。

适当使用自动补全可以加快命令编辑速度,并减少错误。
比如输入gamerule是超级容易出现大小写错误的。

命令执行失败信息

在聊天栏执行的命令如果出错就会显示执行失败信息。
有时它会直接指出命令中的错误,比如:

当命令无法找到目标实体时也会显示失败信息。


执行失败信息也有一种特别用途:查看NBT。
entitydatablockdata命令在没有修改目标NBT时会当作执行失败并显示目标的NBT标签,因此我们能够如此查看NBT:

/entitydata @e {}

输出:

红色一大片,幸好NBT不算太复杂还能看。
之后的章节将会介绍怎么把这输出抽取:使用Log及命令方块。

Log

Log文件位于/.minecraft/logs/里,一般我们要看最新的记录的话都会看latest.log

Log文件本质上是一个纯文本文件。Log文件记录了游戏内各类输出和重要事情的详细资料、时间,比如说是加载文件错误、聊天信息、命令输出等等。


比如加载文件错误,可能会出现类似这样的信息(太长了只放上面一部分):

[19:20:09] [Server thread/ERROR]: Couldn't read custom function abcd:test2 from C:\Users\Administrator\AppData\Roaming\.minecraft\saves\TEST\data\functions\abcd\test2.mcfunction
java.lang.IllegalArgumentException: Unknown or invalid command '?scoreboard'
    at bm.a(SourceFile:39) ...

看上去挺吓人的,其实资料非常容易看:

  • 时间:时间就是[19:20:09],也就是当天的晚上七点二十分
  • 这是一个错误:[Server thread/ERROR] 这里都写着是Error了
  • 啥错误:Couldn't read custom function abcd:test2 from (路径)。也就是说不能加载在(路径)的自定义命令函数abcd:test2
  • 错误原因: Unknown or invalid command '?scoreboard'。未知或错误命令?scoreboard

其实这是一个挺常见的问题。这是因为命令函数文件选择了UTF-8 with BOM,然后文件开头多了3个Byte,游戏就不认了。解决方法为...用UTF-8 without BOM储存。


命令输出、错误及所有聊天栏输出都是这样的:

[13:18:21] [Client thread/INFO]: [CHAT] The data tag did not change: {HurtByTimestamp:0,Attributes:[{Base:30.0d,Name:"generic.maxHealth"},{Base:0.0d,Name:"generic.knockbackResistance"},{Base:0.699999988079071d,Name:"generic.movementSpeed"},{Base:0.0d,Name:"generic.armor"},{Base:0.0d,Name:"generic.armorToughness"},{Base:16.0d,Name:"generic.followRange"}],APX:5,Invulnerable:0b,FallFlying:0b,APY:81,APZ:6,PortalCooldown:0,AbsorptionAmount:0.0f,FallDistance:0.0f,DeathTime:0s,AttachFace:2b,HandDropChances:[0.085f,0.085f],PersistenceRequired:0b,Peek:0b,Motion:[0.0d,0.0d,0.0d],Leashed:0b,UUIDLeast:-7415565809278513862L,Health:30.0f,Color:0b,LeftHanded:0b,Air:300s,OnGround:0b,Dimension:0,NoAI:1b,Rotation:[180.0f,0.0f],HandItems:[{},{}],ArmorDropChances:[0.085f,0.085f,0.085f,0.085f],UUIDMost:-2813612295629749725L,Pos:[5.5d,81.0d,6.5d],Fire:0s,ArmorItems:[{},{},{},{}],CanPickUpLoot:0b,HurtTime:0s}

[Client thread/INFO]: [CHAT]代表了后面这段信息是在聊天栏里的。

由于是在文件里,我们可以直接复制这段文字然后去做别的处理。

results matching ""

    No results matching ""