标签

2022年4月16日
  • Flag
大约 5 分钟

概念认知

基础标签(Flags)

GD 对一些事件进行了包装,这些事件往往常用于领地设定,成为 『预设标签』 的组成部分,我们称之为 『基础标签(Flags)』 例子:interact-block-primary - (对方块左键) | interact-inventory-click - (背包内点击) | entity-spawn - (实体生成) 等等 在上述例子中,部分 『基础标签』 出于性能考量是关闭的[例如 entity-spawn],您可以在 flags.conf 中开启。

预制标签(Flag-definitions)

由 『基础标签』 组成,『情境』 限定,可根据权限分发到游戏中介面供玩家使用,以 『预设集』 作为显示单位, GD 在初始化时自动生成 『预设集』 ./presets/minecraft.conf

情境(Contexts)

LuckPerms 中的情境系统,详见 官方Wikiopen in new window ,GD 对 Luckperms 的 『情境』 进行了延展,添加了部分又能使其和 『基础标签』 限定作用情境。 例如:source - 标签触发的来源 | target - 标签作用的对象 | boots - 标签触发时装备的胸甲 | gametime - 游戏内所处时间等等 注意:部分 『情境』 只能限定相应的标签,您不可能将 boots 限定 entity-spawn 这个标签。

判断阶段(抽象概念)

你可能注意到了,标签的判断是分阶段的 目前这个阶段可以分为 默认(default)-->领地(claim)-->子领地(sub)-->覆写(override) 注:默认 对应情境 default=types覆写 对应情境 override=types。 检查优先级依次增高,默认指的是该标签在原封不动情况下的默认值,领地指的是后边更改的值,子领地指的是领地中子领地又整上的新值,覆写处于最高优先级,往往只有管理员能使用。 这意味着当有两个标签冲突时,比如在领地设定中设置在 领地PVP禁止,但覆写标签中添加了PVP开启,那么领地行为遵照PVP开启这个行径

标签调试模式 (/cfdebug)

常用于测试标签状态,当该模式开启时,GD 将会视你为一般的过路人,所有关于领地标签的设定都将不再以你原来的权限进行判断,这有助于你在调整完 flag 后进行测试。

配置选章 Flags.conf

关乎标签的配置有 flags.confpresets. 本页面着重关注基础标签,即 flags.conf 内容,presets 请阅览预设标签

GriefDefender {
    default-flags { ### 管默认的 『基础标签』行为
        default-claim-flags { ### 管在任意类型领地『基础标签』行为
            user { ### 管在受用户影响的领地『基础标签』行为
                block-break=false
                ...
            }
            wilderness { ### 管在荒野中『基础标签』行为
                block-break=false
                ...
            }
        }
    }
    ### 当输入 /cf 时显示的『预设标签组』
    default-user-preset="minecraft:user"
    ### 全局开关『基础标签』的检查
    flag-control {
        block-break=true
        ...
    }

命令

参数

<必填项> [选填项]

参数类型描述
<标签>要进行操作的 『基础标签』 类型
<作用对象>该标签即将影响的对象,一个例子 minecraft:dirt。使用 anymodid:any 作通配符管理。
<值>设置标签返回的值,false(否)|undefined(未定义)|true(是) 三种状态,其中 undefined 可以用 0 代替
[键=值]可选项,尝用于 情境限定:
override=type 意味着会在指定的 领地类型(type) 中将该操作标签添加到 覆写

示例:/cf block-break minecraft:dirt false source=player override=admin 意味着在类型为 管理员领地(admin)覆写优先级(override)禁用(false)玩家(source=player) 发出,对 泥土(minecraft:dirt) 进行方块破坏(block-break)的行为。

命令列表


/gd claim debug

别称: cfd|claimflagdebug

切换 领地标签调试


/gd flag claim [<标签> <作用对象> <值> [情境]

别称: cf|claimflag

编辑 『基础标签』


/gd flag group <权限组> [<标签> <作用对象> <值> [情境]

别称: cfg|claimflaggroup

编辑 『基础标签』,但影响的对象是权限组。 常用于限制某个权限组的行为,示例 /cfg default block-break minecraft:dirt false 就是让整个 default 权限组都不能破坏泥土。


/gd flag player <player> [<标签> <作用对象> <值> [情境]

别称: cfp|claimflagplayer

编辑 『基础标签』,但影响的对象是玩家。 和上述类似


/gd flag reset

别称: cfr|claimflagreset

重置一个领地的标签设定为默认,默认值可以在配置文件中更改。

一些用例

『基础标签』 可以应用到 玩家|权限组,各类型领地(基础,子领地,城镇,管理员) 上边。

用例 1

防止 灰色羊毛 被破坏 /cf block-break minecraft:wool.5 false

如果不指定 modid,默认 minecraft 开头, modid:blockid.meta,不指定 meta 默认返回 0。

用例 2

允许 宝可梦精灵球覆写优先级(override)基础类型(basic) 领地发生交互。

/cf projectile-impact-block any true source=pixelmon:occupiedpokeball override=basic

用例 3

防止在权限组 "Jailed" 中的 玩家(source=minecraft:player)覆写优先级(override)管理员领地(admin) 中无法使用 任何(any) 类型的传送门。

/cfg Jailed portal-use any false source=minecraft:player override=admin

用例 4

防止叫 "notch" 的玩家在当前领地中无法右键床。

/cfp notch interact-block-secondary minecraft:bed false

用例 5

防止运行宝可梦中 '/shop select' 命令运行。

/cf command-execute pixelmon:shop[select] false

用例 6

防止使用某物品右键某实体

/cf interact-entity-secondary item_id entity_id false

通过 LuckPerms 添加

用例 1

关闭 starters 权限组中对动物的伤害

GD:

/cfg starters entity-damage #animal false default=basic

LP:

/lp group starters permission set griefdefender.flag.entity-damage false gd_claim_default=basic target=#animal