EssentialsX Selectors: @a, @p, @r (Addon) - EssentialsX 选择器扩展:@a、@p、@r
EssentialsX-Target-Selectors
本插件为 EssentialsX 命令添加了 @a、@p 和 @r 等目标选择器支持!同时适用于命令方块和控制台。
它有什么用?
广受欢迎的插件 EssentialsX 从未原生支持像 @a 或 @p 这样的目标选择器。尤其是在使用命令方块时,这些选择器会非常有用。现在,通过本插件,这一切都成为了现实。
支持范围
- 玩家:在游戏内聊天框或命令中使用。
- 控制台:在服务器控制台中使用。
- 命令方块:在命令方块中直接使用。
使用方法
安装极其简单。只需将本插件放入服务器的 plugins 文件夹,然后重启服务器即可。无需任何命令、配置或额外设置。
可用选择器
@a- 所有在线玩家@p- 距离最近的玩家@r- 随机玩家@s- 你自己(执行者)
**注意**
@p和@s不能在服务器控制台中执行。@s不能在命令方块中使用。
命令示例
未安装插件时(普通 EssentialsX)
/egive @a dirt-> 提示:未知玩家 @a/essentials:kill @p-> 提示:未知玩家 @p/give @r diamond 5-> 提示:未知玩家 @r
安装本插件后
/egive @a dirt-> 给予服务器上所有玩家一个泥土/essentials:kill @p-> 击杀距离最近的玩家/give @r diamond 5-> 给予一名随机玩家 5 个钻石
高级选择器参数
你还可以为目标选择器添加参数,实现更精确的筛选。
**示例**
/kill @a[distance=..8,tag=KillMe]- 击杀 8 格范围内所有带有KillMe标签的玩家。/feed @r[distance=..250]- 喂饱 250 格范围内的一名随机玩家。
如需了解所有可用参数及其用法,请查阅 [Minecraft Wiki](HERE)。
权限节点
所有权限默认授予所有玩家。
essxselectors.use- 允许使用任何选择器(基础权限)。essxselectors.all- 允许使用@a选择器。essxselectors.self- 允许使用@s选择器。essxselectors.random- 允许使用@r选择器。essxselectors.closest- 允许使用@p选择器。
重要须知与支持
依赖与声明
- 本插件不能替代 EssentialsX! 你必须先安装原版的 [EssentialsX](EssentialsX) 插件,本插件才能正常工作。
- 本插件是一个非官方的 EssentialsX 扩展,未使用任何 EssentialsX 的源代码。
获取帮助
如果你需要支持、发现了漏洞,或者有功能建议,请在此处创建 Issue:[HERE](HERE)。我们会在 24 小时内尽力回复并提供帮助。
本指南介绍了如何在 Minecraft 命令中使用目标选择器参数(specifications)来精确筛选玩家。这些参数可以单独使用,也可以组合使用,以实现复杂的条件选择。
重要须知
- 所有参数均可在玩家、命令方块中使用。
- 控制台无法使用
distance参数。 - 在方括号
[]内编写参数时,切勿在参数名、等号或值之间添加空格,否则命令将无法正确解析。 - 错误示例:
@a[gamemode = creative, tag= "Rat"] - 正确示例:
@a[gamemode=creative,tag=Rat] - 如果同一个参数被多次指定,系统将采用最后一个写入的值。
参数详解
gamemode
用于筛选处于特定游戏模式的玩家。
**可用值**
creative(创造模式)survival(生存模式)adventure(冒险模式)spectator(旁观模式)
**语法**
gamemode=<值>:选择处于该模式的玩家。gamemode=!<值>:选择不处于该模式的玩家。
**示例**
/kill @a[gamemode=creative]:击杀所有处于创造模式的玩家。/feed @r[gamemode=!creative]:随机喂饱一个非创造模式的玩家。/tp @r[gamemode=sruvivol]:值无效,命令将报错。
level
用于筛选具有特定经验等级的玩家。
可用值:任意大于或等于 0 的整数。
**语法**
level=<值>:选择经验等级等于该值的玩家。level=!<值>:选择经验等级不等于该值的玩家。
**示例**
/kill @a[level=5]:击杀所有经验等级为 5 的玩家。/feed @r[level=!2]:随机喂饱一个经验等级不是 2 的玩家。/kill @a[level=cat]:值无效,命令将报错。
tag
用于筛选拥有特定记分板标签的玩家。
可用值:任意不包含空格的字符串。引号可用可不用。
**语法**
tag=<值>:选择拥有该标签的玩家。tag=!<值>:选择没有该标签的玩家。
**示例**
/kill @a[tag="KillMe"]或/kill @a[tag=KillMe]:击杀所有拥有KillMe标签的玩家。/feed @r[tag=!DontFeedMe]:随机喂饱一个没有DontFeedMe标签的玩家。/kill @a[tag=cool tag]:值包含空格,命令将报错。
team
用于筛选加入特定队伍的玩家。
可用值:任意不包含空格的字符串(通常为 Bukkit 队伍名)。
**语法**
team=<值>:选择在该队伍中的玩家。team=!<值>:选择不在该队伍中的玩家。
**示例**
/kill @a[team=KillMe]:击杀所有在KillMe队伍中的玩家。/feed @r[team=!IDontDeserveFood]:随机喂饱一个不在IDontDeserveFood队伍中的玩家。/kill @a[team=team name yes]:值包含空格,命令将报错。
distance
用于筛选与命令执行点处于特定距离内的玩家。
可用值:任意正整数。
**语法**
distance=<值>:选择距离小于或等于该值的玩家。distance=!<值>:选择距离大于该值的玩家。
**示例**
/kill @a[distance=10]:击杀所有在 10 格半径范围内的玩家(包括执行者自身)。/feed @r[distance=!20]:随机喂饱一个在 20 格半径范围之外的玩家。/kill @a[distance=dog]:值无效,命令将报错。
limit
用于限制最终被选中的目标数量。
可用值:任意正整数。此参数不支持 ! 取反语法。
**语法**
limit=<值>:最多选择指定数量的目标。
**示例**
/kill @a[limit=2]:最多击杀 2 个玩家。/kill @a[limit=rat]:值无效,命令将报错。
参数组合使用
多个参数可以组合在一个选择器中使用,以实现更精确的筛选。参数之间用英文逗号 , 分隔。
**示例**
/kill @a[distance=10,gamemode=creative]
击杀所有同时满足“在10格范围内”且“处于创造模式”的玩家。
/feed @p[tag=Feedable,distance=!100]
喂饱最近的一个同时满足“拥有 Feedable 标签”且“不在100格范围内”的玩家。
/kill @a[tag=!safe,level=!100,gamemode=!creative,distance=250,limit=5]
最多击杀 5 个玩家,条件是:没有 safe 标签、经验等级不是 100、不在创造模式、且在 250 格范围内。