minecraft命令查询程序。受游戏内帮助命令启发,增加了多版本支持和可扩展regex搜索等功能。

mccq的Python项目详细描述


minecraft命令查询

minecraft命令查询程序。受游戏内帮助命令启发,增加了多版本支持和可扩展regex搜索等功能。

package-badgeversion-badge

安装

需要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

这是一种快速进入指挥部的方便方法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常