Skip to content

顶级成员

标签
Pouvoir
字数
698 字
阅读时间
4 分钟

在编写 js 脚本时,会有许多不便之处,例如非常冗长的类名,如果需要使用的话要写下完整包名,

为了缓解这种不便,Pouvoir 1.4 提供了顶级成员供脚本编写者使用

什么是顶级成员

Pouvoir中,顶级成员包括

  • 静态类
  • 静态属性
  • 静态方法

在脚本中,他们可以直接被调用

能干什么?

顶级成员可以提高你的脚本编写速率

就像下面这个例子

javascript
//static就是一个顶级函数 可以快速获取类对象
var Coere = static("Coere");
function isNum(numStr) {
  return Coere.asDouble(numStr).isPresent;
}

都有哪些?

通过顶级函数 checkUsableVars 在后台打印Pouvior及其它插件提供的顶级成员列表:

javascript
function printTopLevel() {
  checkUsableVars();
}

Pouvoir默认了一些常用的函数:

javascript
// ? 代表可空 也就是可以填null
// 若顶级函数有多个参数,使用时需要把参数们用 [] 括起来
// 函数 : 的后面是返回值类型
// JsArray就是将值用 [] 括起来 如 [1,2,3]
function arrayOf(JsArray) : Array<Any?> //js数组 转 java数组
function listOf(JsArray) : MutableList<Any?> //js数组 转 List

function analysis(String): String //解析字符串内嵌函数
function placeholder(String,entity): String  //解析字符串内占位符(papi&pou)
function color(String): String //解析字符串内颜色
function calculate(formula,Player?,Map?): BigDecimal //计算公式,支持带入papi&pou占位符,支持Map<String,String>替换

function find(path) : StaticClass?  //查找静态类
function static(path) : StaticClass? //获取静态类

function info(Object?) //控制台打印文字
function warning(Object?) //控制台打印警告
function debug(String) //当Pouvoir在debug模式时才打印

//时间单位均为 tick
//Consumor 表示 接受一个参数 无返回值
//Supplier 表示 无参数 有返回值
function task(Consumor<PlatformTask>) //同步任务
function taskLater(delay,Consumor<PlatformTask>) //延时同步任务
function taskTimer(delay,period,Consumor<PlatformTask>) //延时定时同步任务

function taskAsync(Consumor<PlatformTask>) //异步任务
function taskAsyncLater(delay,Consumor<PlatformTask>) //延时异步任务
function taskAsyncTimer(delay,period,Consumor<PlatformTask>) //延时定时异步任务

function sync(Consumor<PlatformTask>) //异步时快速跳回同步 (同步不要用,会堵塞线程)

    // public interface PlatformTask {
    //     public abstract fun cancel(): kotlin.Unit
    // }
//                  String
function monitorNow(key,Supplier<Any?>):Any? //监控函数执行耗时
//                   String
function mirrorFuture(key,Consumor<MirrorFuture<Any?>>): Any? //监控函数执行耗时
    // class MirrorFuture<T> {

    //     internal val time = System.nanoTime()
    //     internal val future = CompletableFuture<T>()

    //     fun finish(any: T) {
    //         future.complete(any)
    //     }
    // }
const Bukkit = find('org.bukkit.Bukkit')
const Arrays = find('java.util.Arrays')
const Tool = find('com.skillw.pouvoir.api.script.ScriptTool   ')     //工具类
const Data = find('com.skillw.pouvoir.api.script.ScriptTool.INSTANCE') //数据类
const Pouvoir = find('com.skillw.pouvoir.Pouvoir')
const CalculationUtils = find('com.skillw.pouvoir.util.CalculationUtils')
const MapUtils = find('com.skillw.pouvoir.util.MapUtils')
const ColorUtils = find('com.skillw.pouvoir.util.ColorUtils')
const EntityUtils = find('com.skillw.pouvoir.util.EntityUtils')
const FileUtils = find('com.skillw.pouvoir.util.FileUtils')
const ItemUtils = find('com.skillw.pouvoir.util.ItemUtils')
const GsonUtils = find('com.skillw.pouvoir.util.GsonUtils')
const MessageUtils = find('com.skillw.pouvoir.util.MessageUtils')
const NumberUtils = find('com.skillw.pouvoir.util.NumberUtils')
const PlayerUtils = find('com.skillw.pouvoir.util.PlayerUtils')
const ClassUtils = find('com.skillw.pouvoir.util.ClassUtils')
const StringUtils = find('com.skillw.pouvoir.util.StringUtils')

贡献者

The avatar of contributor named as Glomzzz Glomzzz
The avatar of contributor named as Glom-c Glom-c

页面历史