这种方法只适用于Java版,且版本至少为1.11

效果:
首先需要一个钓鱼竿,当使用钓鱼竿后,就会输出你正在使用的语言:





指令非常简单
  1. #英文
  2. testfor @e[name=unknown]
  3. #中文
  4. testfor @e[name=未知]
  5. #法语
  6. testfor @e[name=inconnu]
  7. #西班牙语
  8. testfor @e[name=desconocido]
复制代码


原理:
在语言文件中,实体的默认名称翻译不同,而名称可以用name选择器标签检测。
在Java版中,鱼钩这个实体不存在(详见:http://minecraft.gamepedia.com/F ... _and_other_entities
但鱼钩虽然没有类型,却拥有一个叫做“未知”的默认名称,通过检测name=未知,即可检测到鱼钩。
因为实体默认名称翻译不同,通过“未知”的不同翻译(例如上面例子中,unknown、未知、inconnu、desconocido是各个不同语言中表达的“未知”),就可以检测用户正在使用的语言。

至于为何不使用“爬行者”、“僵尸”这些默认名称检测,是因为某些语言中这些默认名称和其他一些语言翻译相同,例如英文中为“Creeper”,法语也相同。而“未知”属于一个不像苦力怕这样的专有名词,各语言都存在差异,因此容易区分。[groupid=546]Command Block Logic[/groupid]