Asahi-函数列表
>>>From Pouvoir
逻辑 [Logic]
check
参数
- a 值
- 判断符号
- b 值
作用
判断
例子
check 1 == 1
返回 true
附:
判断符 | 作用 |
---|---|
< | 比较数字 |
<= | 比较数字 |
> | 比较数字 |
>= | 比较数字 |
== | 比较值 |
!= | 比较值 |
=== | 比较内存地址 |
!== | 比较内存地址 |
equals | 比较值 |
!equals | 比较值 |
in | a 是否属于 b 集合/字符串 |
!in | a 是否属于 b 集合/字符串 |
is | a 是否是 b 类的实例 |
!is | a 是否是 b 类的实例 |
contains | a 是否属于 b 字符串 |
!contains | a 是否属于 b 字符串 |
equalsIgnore | a 是否等于 b 字符串 (不论大小写) |
!equalsIgnore | a 是否等于 b 字符串(不论大小写) |
if
参数
不使用短路与/短路或
- bool 值 (true / false)
- then + 真值
- else + 假值
使用
- bool 值 (true / false)
- || 或 &&
- bool 值 (true / false)
- then + 真值
- else + 假值
作用
逻辑判断
例子
if check %player_name% == 'Neige' && check %player_level% == 0 then '太菜了,菜!' else '菜'
若为 玩家 Neige 且等级为 0
返回 太菜了,菜!
否则
返回 菜
all
参数
- 布尔值列表
作用
满足所有
例子
all [ check 1 == 2 , check 2 == 2 ]
返回 false
any
参数
- 布尔值列表
作用
满足其一
例子
all [ check 1 == 2 , check 2 == 2 ]
返回 true
not
参数
- 布尔值
作用
取反
例子
not true
返回 false
return
参数
- 对象
作用
不执行当前代码块剩下的函数,直接返回值
例子
print 1
return 1
print 2
输出: 1
返回: 1
print 2
不会被执行
任务 (Task)
task
参数
- in {delay} - 延迟 tick (可选)
- every {period} - 周期 tick (可选)
- {Block} - 代码块
作用
同步执行代码
例子
task in 10 every 5 \{
print 1
\}
在半秒后,每 0.25 秒打印一次1
async
参数
- in {delay} - 延迟 tick (可选)
- every {period} - 周期 tick (可选)
- {Block} - 代码块
作用
异步执行代码 (请注意线程安全)
例子
async in 10 every 5 \{
print 1
\}
在半秒后,每 0.25 秒打印一次1
sync
参数
- {Block} - 代码块
作用
快速跳回同步执行代码 只能在异步使用,否则会堵塞主线程
例子
async in 10 every 5 \{
print 1
sync \{ print 2 \}
\}
游戏 (Bukkit)
permission
参数
- 实体
- 权限列表
作用
检测实体权限
例子
permission &entity [ 'a.b.c' , 'c.b.a' ]
若实体有权限abc
和c.b.a
则返回: true
反之 false
effect
参数
- {Particle} - 粒子类型
- at {Location} - 位置
- limit {Int} - 可视范围 (可选)
- offset {Vector} - 偏移 (可选)
- amount {Int} - 粒子数量 (可选)
- speed {Double} - 播放速度(?) (可选)
- data {ParticleData} - 粒子数据 (可选)
作用
播放粒子效果
例子
effect 'REDSTONE' at [ 'world' 0 64 0 ]
在世界world
的坐标0,64,0
处播放粒子REDSTONE
uuid
参数
- 实体
作用
获取实体 uuid
例子
uuid &entity
返回实体的 UUID
world
参数
- 世界名
作用
获取世界
例子
world 'world'
location
参数
- [ {世界} {x} {y} {z} ]
- with {pitch} {yaw} - 可选
作用
构建 Location
例子
location [ world 'world' 0 0 0 ] with 1 1
vector
参数
- [ {x} {y} {z} ]
作用
构建向量
例子
vector [ 1 1 1 ]
color
参数
- [ {red} {green} {blue} ]
作用
构建颜色,范围0~255
例子
color [ 255 255 255 ]
particle
参数
- 粒子类型 ID
作用
获取粒子类型
例子
particle 'CRIT'
sound
参数
- 声音类型 id
作用
获取声音类型
material
参数
- 材质类型 id
作用
获取材质类型
particleData
参数
- 类型
- 参数列表
作用
构建粒子数据
类型 | 介绍 | 参数 |
---|---|---|
dust | REDSTONE 数据 | {Color} in {size} |
dustTransition | REDSTONE 颜色转换数据 | {初 Color} to {末 Color} in {size} |
block | 方块粒子数据 | {Material} with {data} |
item | 物品粒子数据 | {Material} (with {data}) (name {name}) (lore {lore}) (data {model data}) |
vibration | 震动(?)数据 | {初 Location} to {Destination} in {time} |
{size} 代表粒子尺寸(?) 填小数即可
( )
内的代表可选,但是要按顺序填{time} 代表运动时间, 填整数 单位为 tick
例子
particleData dust [ color [ 255 255 255 ] in 1 ]
destination
参数
- 类型
- 参数
作用
构建 Vibration 的 Destination
类型 | 介绍 | 参数 |
---|---|---|
location | 坐标位置 | {location} |
entity | 实体位置 | {实体 UUID} |
例子
destination &endLocation
或 destination uuid &entity
item
参数
- 材质类型
作用
构建物品
例子
item material 'DIAMOND'
循环结构 [Loop]
while
参数
- 条件,返回布尔值的代码块
- 标签(可选)
- 代码块
作用
循环执行
例子
set array to arrayOf [ 'a' 'b' 'c' ]
set index = -1
set condition to block \{
set index = calculate '\{&index\} + 1'
check &index < list &array size
\}
while &condition then \{
print list &array get at &index
\}
print 'a'
打印:
a
b
c
a
repeat
参数
- 次数
- 传入的
当前次数
参数名 - 标签(可选)
- 代码块
作用
循环执行固定次数,传入的次数参数
从 0 开始,每次加 1
例子
set array to arrayOf [ 'a' 'b' 'c' ]
repeat 3 with 'index' then \{
print list &array get at &index
\}
print 'a'
打印:
a
b
c
a
foreach
参数
- 传入参数名(列表/数组中的元素)
- 列表/数组
- 标签(可选)
- 代码块
作用
遍历列表/数组中的元素,并操作
例子
set list to listOf [ 'a' 'b' 'c' ]
foreach item in &list then \{
print &item
\}
print 'a'
打印:
a
b
c
a
break
参数
- label 标签(可选)
作用
停止一个循环的执行
例子
while \{ true \} lable a then \{
while \{ true \} lable b then \{
print 1
break the a
\}
print 2
\}
print 'a'
打印:
2
a
continue
参数
- label 标签(可选)
作用
跳过当前循环,开始下一次循环
例子
repeat 5 then \{
print 1
print 2
continue
print 3
\}
print 'a'
打印:
1
2
1
2
1
2
1
2
1
2
a
声明 [Define]
set
参数
- 变量名
- to/= 值
作用
定义变量
例子
set a to check 1 == 2
a 赋值为 false 并返回 false
set by lazy
参数
- 变量名
- by lazy
- to/= { 代码块 }
作用
懒汉式定义
例子
set a by lazy to \{ check 1 == 2 \}
只定义不赋值,当调用时再赋值 使用&a
时才开始执行代码块中的内容并赋值a
set ifndef
参数
- 变量名
- to/= 值
作用
如未定义再定义变量
例子
set a ifndef to check 1 == 2
如果变量a
没有被定义则定义 反之则返回变量a
的值
block
参数
- 代码块 (由{}包裹)
作用
生成代码块
例子
block \{ print 1 \}
&
参数
- 变量名
作用
取变量
例子
&a
若 a 有值,则返回 a 变量的值 否则返回 '&a'
has
参数
- 变量名
作用
判断是否有此变量
例子
has a
若 a
已定义,返回true
否则返回 false
数字 [Math]
abs
参数
- 数字
作用
取绝对值
例子
abs -100
返回 100
calculate
参数
- 公式
- 参数.... (可选)
作用
计算公式
例子
calculate '10+20'
返回 30
ceil
参数
- 数字
作用
向上取整
例子
ceil 0.1
返回 1
floor
参数
- 数字
作用
向下取整
例子
floor 1.1
返回 1
format
参数
- 数字
- 格式
作用
格式化数字
例子
format 1.12312 #.###
返回 1.12
附:
max
参数
- 数字 1
- 数字 2
作用
取两者最大值
例子
max -100 100
返回 100
min
参数
- 数字 1
- 数字 2
作用
取两者最小值
例子
min -100 100
返回 -100
random
参数
- 最小值
- 最大值
- 数字格式(可选)
作用
返回区间内随机小数
例子
random 0 1
返回 0.66
(format 参数默认为 #.### )
randomInt
参数
- 最小整数
- 最大整数
作用
返回两整数区间内的随机整数
例子
randomInt 1 4
返回 2
round
参数
- 数字
作用
四舍五入
例子
round 1.233
返回 1
weight
参数
- 权重(整数) to 任意对象 ...
作用
返回权重随机结果
例子
weight [ 1 to a , 2 to b]
大概率返回 b
小概率返回 a
randomObj
参数
- 对象列表(支持键值对)
作用
返回列表中随机对象
例子
randomObj [ '粗糙的' '破损的' '破碎的' '破残的' '破坏的' ]
随机返回一个前缀
字符串 [String]
analysis
参数
- 字符串
作用
解析字符串
例子
set name to 'Neige'
analysis 'hi! i'm a \{ if check &name == Neige then Neige else Human \} !'
返回hi! i'm a Neige
replace
参数
- 字符串
- 替换列表
作用
替换字符串
例子
replace ' 咖啡 是sb' [ '咖啡' to 'Glom_' , 'sb' to '帅逼' ]
返回 Glom_ 是帅逼
IO
print
参数
- 对象
作用
向控制台打印字符串
例子
print 1
返回 1
对象 [Object]
import
参数
- 类路径
作用
导入类
例子
import 'com.skillw.attsystem.AttributeSystem'
返回 类对象 AttributeSystem
getField
参数
- 对象
- 字段名
作用
获取实例字段的值
例子
getField &obj 'a'
返回对象obj
的实例字段a
的值
getFieldStatic
参数
- 对象
- 字段名
作用
获取静态字段的值
例子
getField &obj 'a'
返回对象obj
的静态字段a
的值
setField
参数
- 对象
- 字段名
- 值
作用
设置实例字段的值
例子
setField &obj 'a' '嗨嗨嗨'
setFieldStatic
- 对象
- 字段名
- 值
作用
设置静态字段的值
例子
setFieldStatic &obj 'a' '嗨嗨嗨'
``
返回
invoke
参数
- 对象
- 方法名
- 参数列表
作用
调用实例方法
例子
invoke &obj 'get' [ 'key' , 'param2' ]
返回调用对象obj
的实例方法get
后的值
invokeStatic
参数
- 对象
- 方法名
- 参数列表
作用
调用静态方法
例子
invoke &obj 'get' [ 'key' , 'param2' ]
返回调用对象obj
的静态方法get
后的值
type
参数
- 类型名
- 对象
作用
强制将对象转换为另一个类型
例子
type double '111'
返回类型为double
的111
附: 类型名 double/int/long/float/short/byte/bool/char/string
集合 [Collection]
arrayOf
参数
- 对象列表
作用
生成数组
例子
arrayOf [ 1 , 2 , 3 ]
listOf
参数
- 对象列表
作用
生成 List
例子
listOf [ 1 , 2 , 3 ]
mapOf
参数
- with {Map 模板} - Map 模板 (可选)
- 键值对列表
作用
生成 Map
映射对象
例子
mapOf [ 'a' to 1 , 'b' to 2 , 'c' to 3 ]
mapTemplate
参数
- 键列表
作用
生成 Map模板
例子
set maps to mapListOF with mapTemplate ['品质' '颜色' '材质']
[
['粗糙' '&7' 'WOODEN_SWORD']
['良好' '&3' 'STONE_SWORD']
]
print maps get at 0 get '品质'
打印:
粗糙
mapListOf
参数
- with {Map 模板}
- 值列表的列表
作用
需配合Map模板
使用 生成 Map
映射对象的列表(下标从 0 开始)
例子
mapListOF with mapTemplate ['品质' '颜色' '材质']
[
['粗糙' '&7' 'WOODEN_SWORD']
['良好' '&3' 'STONE_SWORD']
]
print maps get at 0 get '品质'
打印:
粗糙
pairOf
参数
- 键值对
作用
构建键值对
例子
pairOf 'a' to 1
>>>From AttributeSystem
namespace = common
attr
read \{string list\}
- 读取字符串列表属性readItem \{item\}
- 读取物品属性readLore \{item\}
- 读取物品 lore 属性readNBT \{item\}
- 读取物品 NBT 属性add \{key\} \{attr_data\}
- 给实体添加属性数据 (实体为变量 entity 的值)remove \{key\}
- - 删除实体属性数据 (实体为变量 entity 的值)addItemAttr \{item\} \{key\} \{attr_data\}
- 添加物品的属性数据addItemAttr \{item\} \{attr_data_compound\}
- 添加物品的属性数据removeItemAttr \{key\}
- 删除物品的属性数据
namespace = attsysem
data
参数
damage
get \{key\}
获取伤害源,返回的是OperationElementput \{key\} with \{Number Operation\} to \{number\}
计入伤害源remove \{key\}
删除伤害源has \{key\}
是否存在伤害源size
伤害源总数clear
清除伤害源isEmpty
是否没有伤害源keys
伤害源 key 列表
hasResult
是否命中hasResult to/= true/false
设置是否命中calMessage
是否计算战斗信息calMessage to/= true/false
设置是否计算战斗信息put \{key\} to \{value\}
存数据get \{key\}
取数据remove \{key\}
删除数据has \{key\}
是否有数据size
数据总数clear
清除所有数据isEmpty
是否没有数据keys
数据 key 列表
作用
操作战斗数据
例子
data damage put 'crit' with scalar to 100.0
in-fight
参数
- 实体
作用
获取实体是否在战斗中
例子
in-fight &entity
>>>From ItemSystem
namespace = item_system
def
参数
- 变量名
- to/= 值
作用
定义变量,与set
的区别是
- 只能在
物品生产流程
中使用 - 若已经有此变量名的变量,则跳过定义
- 变量值会自动保存到物品 NBT,供自动更新/重新构建物品时使用
例子
def a to check 1 == 2
a 赋值为 false 并返回 false
override
参数
- 变量名
- to/= 值
作用
定义变量,与def
的区别是
- 会覆盖已有的变量
例子
set a to 1
override a to check 1 == 2
a 赋值为 false 并返回 false (无视已有的变量a
,直接覆盖)
save
参数
- 变量名列表
作用
将变量值保存到物品 NBT,供自动更新/重新构建物品时使用
例子
save [ 'a' 'b' 'c' ]
syncNBT
参数
- NBT 路径
作用
同步物品 NBT 的值
例子
syncNBT '耐久.当前耐久'
dynamic
参数
\{ 内联函数段 \}
作用
动态内联函数段
例子
dynamic \{ calculate '\{item nbt ' 耐久.当前耐久'\} * 100' \}
papi
参数
- 文本
作用
(实体对象为名为 entity
变量的值) 解析文本的占位符
例子
papi '%player_level%'
mmskill
参数
- 技能名
- with power
作用
(实体对象为名为 entity
变量的值) 实体释放 MM 技能
例子
mmskill 'ExampleSkill' with 1.5