minecraft命令查询程序。受游戏内帮助命令启发,增加了多版本支持和可扩展regex搜索等功能。
mccq的Python项目详细描述
minecraft命令查询
minecraft命令查询程序。受游戏内帮助命令启发,增加了多版本支持和可扩展regex搜索等功能。
安装
需要python 3.6+,建议使用virtualenv等。只需使用pip
:
pip install mccq
数据库设置
mccq需要访问生成的服务器文件(即commands.json
),因此与Minecraft snapshot 18w01a及更高版本兼容。
每个版本目录必须保持由服务器生成的状态,并且所有版本目录都应位于同一根数据库目录中:
database_root/
18w01a/
generated/
reports/
commands.json
18w02a/
generated/
reports/
commands.json
这些文件可以从本地文件系统或the internet加载。
基本用法
输入cli(命令行界面),方法是为其提供一个要查询的默认版本-s
和一个版本目录所在的数据库位置-d
:
python -m mccq -s 18w01a -d "https://raw.githubusercontent.com/Arcensoth/mcdata"
从基本命令开始:
> say
这会产生一些输出:
# 18w01a
say <message>
它通常会概述指定版本的命令的所有可能的变体。
尝试一些更复杂的内容:
> effect # 18w01a effect clear|give ...
在做出选择之前,该命令将被滚动,这样可以节省垂直空间,并且通常比为每个可能性指定单独的行更具可读性。
程序选项
可以在命令查询之前写入各种标志和选项,以增强行为。
通常,几个子命令/参数压缩为一行,但-e
可用于强制展开命令:
> -e effect
# 18w01a
effect clear <targets>
effect clear <targets> <effect>
effect give <targets> <effect>
effect give <targets> <effect> <seconds>
effect give <targets> <effect> <seconds> <amplifier>
effect give <targets> <effect> <seconds> <amplifier> <hideParticles>
请注意,这可能会导致具有许多子命令/参数的命令的大量输出。
搜索特定子命令/参数:
> tag targets add
# 18w01a
tag <targets> add <name>
注意参数在<>
之间的显示方式,但是可以像子命令一样按名称搜索。
说到参数,使用-t
来呈现它们的类型:
> -t tag targets add
# 18w01a
tag <targets: entity> add <name: string>
使用-v VERSION
查询特定版本:
> -v 18w02a execute # 18w02a execute align|anchored|as|at|facing|if|in|positioned|rotated|run|store|unless ...
重复-v VERSION
一次查询多个版本:
> -v 18w01a -v 18w02a execute # 18w01a execute align|as|at|if|offset|run|store|unless ... # 18w02a execute align|anchored|as|at|facing|if|in|positioned|rotated|run|store|unless ...
要获得比-e
更精确的控制,请提供-c CAPACITY
来定义扩展阈值:
> -c 5timeset# 18w01atimeset day timeset midnight timeset night timeset noon timeset <time> > -c 4timeset# 18w01atimeset day|midnight|night|noon|<time>
这允许命令展开,只要它包含的子命令/参数总数不超过给定的阈值。
动态搜索
所提供查询的每个空格分隔的搜索项都被视为regex模式:
> execute a.*
# 18w01a
execute align <axes> -> execute
execute as <targets> -> execute
execute at <targets> -> execute
因此,可以灵活地查询子命令/参数的任何组合:
> t.* targets # 18w01a tag <targets> add <name> tag <targets> list tag <targets> remove <name> teleport <targets> <destination>|<location> ... tellraw <targets> <message> title <targets> actionbar|clear|reset|subtitle|times|title ...
搜索词不区分大小写:
> gamerule .*mob.*
# 18w01a
gamerule doMobLoot
gamerule doMobLoot <value>
gamerule doMobSpawning
gamerule doMobSpawning <value>
gamerule mobGriefing
gamerule mobGriefing <value>
特殊情况:单个.
被视为通配符,并将匹配任何项:
> clone . . . masked # 18w01a clone <begin> <end> <destination> masked clone <begin> <end> <destination> masked force|move|normal
这是一种快速进入指挥部的方便方法。