条件变量符

关于

条件/条件变量符允许您通过其他变量符或者权限作为条件来自定义输出。在本插件中主要有 2 个主要用处:

  • 显示条件用于显示计分板、Boss条、排布等的必须满足的条件。

  • 条件变量符则为判别是否满足条件并控制满足和不满足的输出值。

条件类型

比较数字

>=: 大于等于 例如: %ping%>=100 将会在玩家的延迟大于或者等于 100 时满足条件。

>: 大于 例如: %ping%>100 将会在玩家的延迟大于 100 时满足条件。

<=: 小于等于 例如: %ping%<=100 将会在玩家的延迟小于或者等于 100 时满足条件。

<: 小于 例如: %ping%<100 将会在玩家延迟小于 100 时满足条件。

文本

=: 等于 (必须完全精确,包括颜色符号) 例如: %world%=world 将会在玩家在 world 世界时满足。

!=: 不等于 (不符合) 例如: %world%!=world 将会在玩家在除了 world 外的世界时满足。

<-: 包含 (左侧为变量符,右侧为包含的文本) 例如: %world%<-lobby- 将会在名称开头为 lobby- (例如 lobby-1 等) 的世界时满足。

权限

permission:<值>: 权限要求 例如: permission:my.permission 将会在玩家拥有my.permission 权限时满足。

多条件要求

每个条件都可以有一个条件 范围 ,即一个条件列表。当你拥有超过 1 个条件时,你必须设置它们的条件类型。 这个值可以在 type 配置设置。可选的类型有:

  • AND - 所有的条件都必须满足。

  • OR - 只要有一个条件满足即可。

条件输出

如果你使用条件作为变量符使用,你可以指定它们的输出值。 yes 用于条件满足时的输出,no 则为不满足。如果这个条件只是一个显示条件,你可以将这两个选项的值留空或者不设置这两个选项。

配置

打开 config.yml 并找到这一部分:

conditions:
  health:
    conditions:
    - '%health%<21'
    - '%health%>15'
    type: AND
    yes: Healthy!
    no: Damaged!

health 为这个条件的名称。 conditions 为该条件要满足的子条件。 type 为条件类型,决定是所有子条件都要满足还是只需一个满足。 yes & no 为变量符输出值。

用法

你有 2 种方法来使用条件。

一种方法是使用 %condition:<名称>%,它将输出根据是否满足该条件而输出该条件的 yes 或者 no 的值。(如果你是在外部使用该变量符,请参考变量符一节中的外部用法)

另一种方法是将该条件的名称放置在可以放置条件的地方。这包括 Boss条,计分板和布局的显示条件配置,例如:

scoreboards:
  MyScoreboard:
    display-condition: MyCondition

在这种情况下,yes/no 的配置也未被使用,因此你也不需要配置它们。

简写形式

如果你正在尝试可以放置条件的地方使用条件(Boss条,计分板等的显示条件等),你可以使用一个简写形式。

简写形式可以通过在各个条件的中间处使用 ; 分开以代表 AND 条件类型(即所有条件必须满足)。 OR 条件类型目前不支持。

示例:

使用前:

scoreboards:
  myScoreboard:
    display-condition: myCondition
.
.
.
conditions:
  myCondition:
    conditions:
      - "%my_placeholder%=something"
      - "%money%>1000"
    type: AND

使用后:

scoreboards:
  myScoreboard:
    display-condition: "%my_placeholder%=something;%player_ping%>1000"

刷新间隔

条件实际上只是一个变量符,同样它们也必须定期刷新。刷新间隔目前还不可以直接配置。它们基于子条件、yes/no 值等处包含的变量符决定它自身的刷新间隔。权限检查间隔为 1000 毫秒。 如果该条件只包含基于事件的变量符(即该变量符只在一个事件后才会刷新而不是定时刷新,例如 %world% 和 %server%),刷新间隔为 500 毫秒。 要配置变量符的刷新间隔,请查看 优化插件 页面。

提示

如果你正在被 = 条件判别困扰,请务必注意变量符的输出值和你设置的值必须完全一致(包括颜色代码)。如果你在使用 变量符输出替换,那么你应该设置被替换后的输出值。 要查看一个变量符的精确输出(包括颜色代码),请使用指令: /tab parse <玩家> <变量符>

最后更新于