JavaScript

本节需要有一定的 Java / JavaScript 或类似编程基础方便理解

对象

TrMenu 的 JavaScript 引擎目前提供以下对象

  • bukkitServer 即 Bukkit.getServer()

  • utils 即 me.arasple.mc.trmenu.module.internal.script.js.Assist.INSTANCE

  • player 即 玩家本身

  • session 即 me.arasple.mc.trmenu.module.display.MenuSession

插件挂钩

可以在 JavaScript 中调用挂钩的插件,比如我想调用 EcoItems 的 API 来获得物品,可以通过ecoitems.getItem("my_item")来获得

聪明的你应该已经发现了,绑定到 JavaScript 命名空间的名称是插件名字的全小写

目前支持挂钩的

  • EcoItems

  • Floodgate

  • HeadDatabase

  • HMCCosmetics

  • ItemsAdder

  • MagicCosmetics (注意:这个插件的 JS 命名空间是 magicAPI)

  • MagicGem

  • MMOItems

  • NBTAPI

  • NeigeItems

  • Oraxen

  • PlayerPoints

  • SkinsRestorer

  • Skulls

  • SXItem

  • Triton

  • Vault

  • Zaphkiel

  • MythicMobs

  • AzureFlow

  • CraftEngine

  • Nexo

  • PxRpg

如果你并不想要,可以关闭Export-Hook-Plugin

Java 命名空间

别名

settings.yml中的Bindings.Binding-Map可以将类以别名导出到 JS 命名空间

比如

奇技淫巧

Java.type

创建别名

函数

TrMenu 的 JavaScript 引擎目前提供以下函数

  • vars(String input) 返回替换函数变量

  • varInt(String input) 替换变量并转换为整型

注意

  • TrMenu 的 JavaScript 均会预编译缓存,一切变量使用都需要通过函数处理

  • 表示 “或” 的符号为 || , 表示 “与” 的符号为 &&

实例

  • 判断有无权限

    • 可直接调用 player 对象的方法,player.hasPermission("perm")

utils

TrMenu GraalJS

该功能仍处于实验性

让 TrMenu 使用 GraalJS,根据性能测试,GraalJS 的执行性能在 Nashorn 的两倍以上,并且支持最新的JS语法

安装

GraalJS 需要在 GraalVM 上才可以完全发挥性能,其他 JDK 也能用

下载 TrMenu GraalJSarrow-up-right,作为插件进行安装

语法扩展

包加载

将指定位置.jar(文件或目录路径字符串)添加到 Java 的类路径中

JS执行

加载(解析并执行)指定的 JavaScript 源代码

包访问

GraalVM JavaScript 提供了一个全局属性:Packages

TODO

不想写了(:,还有()

最后更新于