• 游客, 欢迎您来到九域资源社区,如果您是新人,请前往 论坛公告 板块查看新人引导教程 或者 点我打开
    如果您发现没有下载许可, 请先验证邮箱再进行下载;金锭可通过每日登陆或资源出售获取,目前没有其他渠道可获取。
FIScript ---- FI脚本(groovy)

Bukkit FIScript ---- FI脚本(groovy) 1.3.5

没有下载权限
修整重载(无视报错继续执行|注销所有注册到FIScript上的命令,修复disable顺序)
添加2个事件
EvaluateScriptEvent,ReloadEvent
全局编码UTF-8(所有GBK的脚本请自行转为UTF-8)
大改版本,脚本main方法只有在enable的时候执行
删除config.yml配置内的配置
CycleScripts可以扩展用,插件会自动识别
1710153428327.png


更新内容有点多
老脚本大部分多半可能就用不了了,除了那些只是配置在enable的
将脚本继承CycleScripts
脚本之间最好不要有任何访问,因为我不知道如何将所有的脚本让groovy编译成类,或者高出编译成类后的byte,UrlClassLoader的那种实例的时候传url也不行,毕竟脚本只是个groovy文件.
脚本之间如果一定要引用到到对方的话,直接用静态访问不过需要给脚本指定好包的位置,只要不用import的方式引用多少都可以实现
修整重载(无视报错继续执行|注销所有注册到FIScript上的命令,修复disable顺序)
添加2个事件
EvaluateScriptEvent,ReloadEvent
  • 调整重载逻辑
只加载.groovy的文件
请自己去github上构建并下载
添加了配置内文件变量config,也就是能在指定配置中写上yml格式的内容利用config变量进行获取内容

送一配置:
YAML:
RegisteredEvents:
  - 'org.bukkit.event.player.AsyncPlayerChatEvent'
org.bukkit.event.player.AsyncPlayerChatEvent:
  EventPriority: NORMAL
  Asynchronous: false
  execute: 'var gjc = config.getStringList("关键词").toArray();
  var msg = event.getMessage().toLowerCase();
  var isContained = false;

  for (var i = 0; i < gjc.length; i++) {
      var listItem = gjc[i];
      if (msg.contains(listItem)) {
          isContained = true;
          break;
      }
  }

  if (isContained) {
    event.setCancelled(true);
    event.getPlayer().sendMessage("§c你的信息中包含脏话!");
  }
  '
关键词:
  - 'cnmd'
  - 'cnm'
  - 'nmd'
  - 'fuck'
  - 'sb'
  - '傻逼'
  - '你妈'
  - '你大爷'
以上代码有使用到config的内容,且按照ES5标准写出的,for循环在es5中没有for...of...的方法,这里面的string是java类型的所以用的是contains
添加了多监听器功能,一个文件一个监听器,在listener文件夹内