本帖最后由 逗比的幻影 于 2019-3-1 19:29 编辑

GroovyScripts



GroovyScripts是一款可以供给玩家写插件的一个前置插件,它的作用类似于Scripts写脚本插件,它所用的编程语言为Groovy.当然了,这仅仅只是个脚本环境!

准备工作



1. 安装 Groovy
2. 查看部分内容
3. 开始尝试开发
Scripts Meta



Properties

  • autostart  -  服务器启动时执行脚本 ( 默认 Flase )
  • version  -  脚本版本 ( 默认 未定义 )
  • description  -  脚本信息 ( 默认 '' )
  • usageInfo  -  说明如何使用脚本 ( 默认 '' )
如 何 在 Scripts 中 自 定 义 Meta

  1. [url=home.php?mod=space&uid=1161943]@field[/url] // required
  2. meta = [
  3.         autostart: true,
  4.         version: '1.0',
  5.         description: 'echo script',
  6.         usageInfo: '/exec echo [text to echo]'
  7. ]

  8. server.broadcastMessage(args.toString())
复制代码
默 认 变 量

  • server - 服务器实例
  • plugin - GroovyScript插件的对象
  • log - 脚本记录器
  • events - 事件注册器 ( tech.teslex.gr8scripts.registrator.GroovyNukkitEventHandlerRegister )
  • commands - 命令注册器 ( tech.teslex.gr8scripts.registrator.GroovyNukkitCommandRegister )
  • args - 论据
处 理 事 件

α. 类似于开发插件
  1. import cn.nukkit.event.player.PlayerJoinEvent

  2. @Event
  3. def join(PlayerJoinEvent event) {
  4.         //
  5. }

  6. // 再然后
  7. events.register(this)
复制代码
注 册 命 令

α. 类似于开发插件
  1. import cn.nukkit.command.CommandSender

  2. @Command(command = 'somecommand')
  3. def somecmd(CommandSender sender, String cmd, String[] args) {
  4.         //
  5. }

  6. // 再然后
  7. commands.register(this)
复制代码
基 础 配 置
  • enabled - 启用脚本系统
  • path - 脚本文件夹路径
  • autoexecute - 服务器启动时执行脚本
Imports导入

  • packages - 要导入的包列表
  • classes - 要导入的类列表
  • class-aliases - 要导入的别名和类的映射
  • static - 要静态导入的类列表
Development Mode

  • enable - 启用DEV模式
  • hot-reload - 脚本更新后重新加载服务器
脚 本 示 例


  1. @Field // required
  2. meta = [
  3.         autostart: true,
  4.         version: '1.0',
  5.         description: 'example script with command',
  6.         usageInfo: '/exec command-script'
  7. ]

  8. @Command(command = 'coma')
  9. def coma(sender, cmd, args) {
  10.         sender.sendMessage "** off"
  11. }

  12. commands.register(this)
复制代码

结尾内容

[groupid=1572]NukkitPluginStudio[/groupid]