Bukkit命名空间
前缀解释器
前缀解释器与旧版内联函数大致相同
基础
颜色
colored 文本(String) #给文本加上颜色 & -> §
decolored 文本(String) #给加上颜色的文本变回去 § -> &
uncolored 文本(String) #去除文本的颜色 '§' -> ''
指令
command 文本(String) as op 玩家(Player) #让玩家以op权限执行指令
command 文本(String) as console #控制台执行指令
command 文本(List<String>) as op 玩家(Player) #让玩家以op权限执行一系列指令
command 文本(List<String>) as console #控制台执行一系列指令
papi(placeholder)
papi of 实体(LivingEntity) 文本(String) #解析占位符(PouPAPI & PAPI),解析Asahi语句
物品
material
material 物品Id(String) #获取指定材质枚举
中缀解释器
Player操作
actionbar
给玩家发送actionbar信息(解析颜色)
&player actionbar 信息(String)
title
给玩家发送title信息(解析颜色)
&player title 大标题(String) 小标题(String) 淡入(Int) 持续(Int) 淡出(Int)
message
给玩家发送message信息(解析颜色)
&player actionbar 信息(String)
messages
给玩家发送一系列message信息(解析颜色)
&player actionbar 信息(List<String>)
command
以玩家身份执行命令
&player command 指令(String)
allowFlight
获取/设置玩家是否可飞行
&player allowFlight #返回玩家是否可飞行
&player allowFlight to 值(Boolean) #设置玩家是否可飞行
bedSpawn
获取/设置玩家床重生点的位置
&player bedSpawn #返回玩家床重生点
&player bedSpawn to 值(Location) #设置玩家床重生点
blocking
获取玩家是否在用盾牌格挡
&player blocking
cooldown
获取/设置玩家特定物品的冷却
由于原版限制,同一玩家同一材质的物品冷却共享
&player cooldown 材质(Material) #返回玩家特定物品的冷却
&player cooldown 材质(Material) to 冷却(Int) #设置玩家特定物品的冷却
name
获取玩家名字
&player name
healthScale
获取/设置玩家血量压缩
&player healthScale #返回玩家血量压缩
&player healthScale to 值(Int) #设置玩家血量压缩
isSneaking
获取玩家是否在潜行
&player isSneaking
isSleeping
获取玩家是否在睡觉
&player isSleeping
exp
获取/设置玩家经验
&player exp #返回玩家经验
&player exp to 值(Int) #设置玩家经验
level
获取/设置玩家原版等级
&player level #返回玩家原版等级
&player level to 值(Int) #设置玩家原版等级
playSound
给玩家播放特定音效
volume 是音量大小 pitch 是音调高低
&player playSound 音效(Sound) with volume(Float) pitch(Float)
stopSound
终止玩家特定音效的播放
&player stopSound 音效(Sound)
metadata
获取/修改玩家MetaData
MetaData是一种存储临时数据(关服、退服后会消失)的可选方案
&player metadata key(String) #返回玩家特定key下的MataDataValue
&player metadata key(String) to value(MetaDataValue) #返回玩家特定key下的MataDataValue
Entity操作
location
获取实体位置
&entity location #获取实体位置
teleport
传送实体
&entity teleport to 目标(Location / Entity)
name
获取实体名字
&entity name
displayName
获取实体显示名字
&entity displayName
velocity
获取/修改实体速度
&entity velocity #获取实体速度
&entity velocity to 向量(Vector) #设置实体速度
metadata
获取/修改实体MetaData
MetaData是一种存储临时数据(关服、退服后会消失)的可选方案
&entity metadata key(String) #返回实体特定key下的MataDataValue
&entity metadata key(String) to value(MetaDataValue) #返回实体特定key下的MataDataValue
fireTicks
获取/修改实体燃烧时间,以tick为单位
&entity fireTicks #获取实体燃烧时间
&entity fireTicks to 时间(Int) #设置实体燃烧时间
fallDistance
获取/修改实体摔落距离
&entity fallDistance #获取实体摔落距离
&entity fallDistance to 时间(Int) #设置实体摔落距离
LivingEntity操作
health
获取/修改实体生命值
&entity health #获取实体生命值
&entity health to 血量(Int) #设置实体生命值
maxHealth
获取/修改实体最大生命值
&entity maxHealth #获取实体最大生命值
&entity maxHealth to 血量(Int) #设置实体最大生命值
potion
给实体药水效果XPotion
&livingEntity potion add 药水(XPotion)
nearbyEntities
获取周围以实体为中心的一个碰撞箱内的实体
x y z 为碰撞箱各坐标轴上长度的1/2
&livingEntity nearbyEntities x(Double) y(Double) z(Double)
rayHitEntity
获取实体视线方向的实体
&livingEntity rayHitEntity 距离(Double)
Location操作
toVector
Location转Vector
&location toVector #返回Vector
distance
获取两坐标间距
&location distance 另一个坐标(Location)
direction
获取/修改坐标的方向
&location direction #获取坐标的方向
&location direction to 向量(Vector) #修改坐标的方向
multiply
让Location所有参数乘以一个数
&location multiply 数值(Double)
length
即到原点距离(x^2+y^2+z^2)^(1/2)
&location length
clone
复制一个新的Location对象
直接修改获取来的Location对象会导致Location所属实体位置改变
&location clone
world
获取该坐标所在世界
&location world
pitch
获取该坐标朝向的pitch
&location pitch
yaw
获取该坐标朝向的yaw
&location yaw
x,y,z
获取/修改x,y,z
&location x
&location y
&location z
&location x to 值(Double)
&location y to 值(Double)
&location z to 值(Double)
add
做向量加运算
&location add [ x(Double) , y(Double) , z(Double) ]
&location add 值(Location/Vector)
subtract
做向量减运算
&location subtract [ x(Double) , y(Double) , z(Double) ]
&location subtract 值(Location/Vector)
zero
把坐标变成零向量
&location zero
Vector操作
rotateAround
让向量以指定坐标轴为轴旋转
&vector rotateAroundX 弧度制角度(Double)
&vector rotateAroundY 弧度制角度(Double)
&vector rotateAroundZ 弧度制角度(Double)
toLocation
向量转坐标
&vector toLocation
normalize
转为单位向量
&vector normalize
isNormalized
是否为单位向量
&vector isNormalized
isInSphere
是否在特定球体内
&vector isInSphere 原点(Vector) 半径(Double)
isInAABB
判断本向量是否在一个与坐标轴平行的长方体碰撞箱中.
参数 min 和 max 必须是正确的最小坐标和最大坐标,也就是说必须是能构成长方体的对角点.
&vector isInAABB min(Vector) max(Vector)
midpoint
顾名思义,获取一个新的向量,它的值为本向量和另一个向量间的连线的中点.
&vector midpoint 另一个向量(Vector)
dot
计算本向量与另一个向量的点积,定义为x1x2+y1y2+z1*z2. 此函数的返回值是个标量.
&vector dot 另一个向量(Vector)
divide
将本向量的坐标除以另一个向量的坐标.
&vector divide 另一个向量(Vector)
distance
获取本向量与与另一个向量之间的距离. 这个方法的返回值没有被缓存,且使用了开销较大的平方以及开根函数, 所以不要反复调用这个方法来获取向量的模值. 当向量的模过大时,开根函数有可能发生溢出,并会返回Double.NaN.
&vector distance 另一个向量(Vector)
crossProduct
将本向量的坐标设为两个向量的叉积.
其计算过程如下:
x = y1 z2 - y2 z1
y = z1 x2 - z2 x1
z = x1 y2 - x2 y1
注:叉积是a向量和b向量的垂直向量的积的模,方向使用右手定则判断.
&vector crossProduct 另一个向量(Vector)
copy
将本向量的坐标全部设为另一个向量的坐标.
&vector 另一个向量(Vector)
angle
获取本向量与另一个向量的夹角,用弧度表示.
&vector angle 另一个向量(Vector)
multiply
让Vector所有参数乘以一个数
&vector multiply 数值(Double)
length
即到原点距离(x^2+y^2+z^2)^(1/2)
&vector length
clone
复制一个新的Vector对象
直接修改获取来的Vector对象会导致Vector所属实体位置改变
&vector clone
x,y,z
获取/修改x,y,z
&vector x
&vector y
&vector z
&vector x to 值(Double)
&vector y to 值(Double)
&vector z to 值(Double)
add
做向量加运算
&vector add [ x(Double) , y(Double) , z(Double) ]
&vector add 值(Location/Vector)
subtract
做向量减运算
&vector subtract [ x(Double) , y(Double) , z(Double) ]
&vector subtract 值(Location/Vector)
zero
把向量变成零向量
&vector zero
Cancellable操作
isCancelled
获取/修改事件是否被取消
&event isCancelled
&event isCancelled to 布尔(Boolean)
BossBar操作
title
获取/修改bossbar的title
&bossbar title #获取bossbar的title
&bossbar title to title(String) #修改bossbar的title
color
获取/修改bossbar的颜色
&bossbar color #获取bossbar的color
&bossbar color to color(org.bukkit.boss.BarColor) #修改bossbar的color
style
获取/修改bossbar的风格
&bossbar style #获取bossbar的style
&bossbar style to style(org.bukkit.boss.BarStyle) #修改bossbar的style
progress
获取/修改bossbar的进度
&bossbar progress #获取bossbar的progress
&bossbar progress to progress(Double) #修改bossbar的progress
visible
获取/修改bossbar是否可见
&bossbar visible #获取bossbar是否可见
&bossbar visible to 布尔(Boolean) #修改bossbar是否可见
flag
获取/修改bossbar的flag
&bossbar flag has flag(org.bukkit.boss.BarFlag) #获取bossbar是否有特定flag
&bossbar flag add flag(org.bukkit.boss.BarFlag) #添加bossbar的flag
&bossbar flag remove flag(org.bukkit.boss.BarFlag) #移除bossbar的flag
player
修改bossbar对指定玩家可见性
&bossbar player add 玩家(Player)
&bossbar player remove 玩家(Player)
&bossbar player removeAll 玩家(Player)