• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
eval_在命令里运行JavaScript

LSE eval_在命令里运行JavaScript 3.1

版权类型
原创
版权链接
#
前置组件
你是懂你为什么来看的
适配版本(基岩)
  1. 最新版本
[HEADING=]eval[/HEADING]​



why?
于某些极客而言,或受限于天时,或是地利,更有甚者出于人和原因,处于不充分控制状态。然而由于‘服务器管理’以及‘网络神权主义’,这种控制力不足以打到对应的‘真实’,于是出现了超越最高权限的产物:‘plugins’。而即使是最为快捷的.脚本插件.也具有相对局限性,这是不可避免的。如同社会形态的取舍,在原有基础无限扩大所属权力自然正常。
为了扩大op的权利以达到’网络神权‘实现和安慰‘网络黑社会’这样这种plugins出现是必然导向

how?
正如标题所谓,在命令里执行JavaScript字符串且属于llse——懂的人自然懂
广义用法:
  1. 扔进plugins文件夹
狭义用法:
  1. 命令方面
    • 一般的,对于一个非周期性[1]语句段‘string’执行
      • /eval run 'string'
      • 返回=>success
      • /eval run 'string' toplayer|toentity [目标选择器]
      • 注:当拥有目标选择器后可以选择相对目标,目标可直接代替为player或entity,详见举例
    • 一般的,对于一个周期性[2]语句段‘string’执行
      1. 挂起[3]语句:/eval run 'string' pullup 'id[4]' 返回=>success
      2. 查找已挂起的语句:/eval find 'id' 返回=>'string'
      3. 删除挂起的语句:/eval remove 'id' 返回=>success
      4. 列出所有已经挂起的‘id’:/eval list 返回=>array<'id','id'……>
  2. 例子
    • 比如让其执行log("this_is_test")如下
    • 屏幕截图 2022-12-08 093613.png
    • 执行结果
    • 屏幕截图 2022-12-08 093645.png
    • 执行eval run "player.tell('nb')" toplayer @a
    • 则所有玩家接到文本消息nb
    • 执行eval run "entity.kill()" toentity @e
    • 则杀死所有实体
    • 执行挂起时
    • 屏幕截图 2022-12-08 093734.png
    • 命令执行完毕后抛出
    • 屏幕截图 2022-12-08 093818.png
    • 命令方块可以继续执行且有效
    • 屏幕截图 2022-12-08 093942.png
[1][2]周期性如‘setTimeout()’,'setInterval()','mc.listen()'这一类将函数抛出到客户端上的定期或自行调用的函数
[3][4]挂起的概念:在这里,挂起指一整套function,为了弥补在1.0出现的反复执行周期语句
  • 确认挂起后,eval.js会首先通过ll.eval()函数执行一次命令
  • 然,将’id‘作为唯一标识和‘string’一并记录到evaldate.json中
    • JSON:
      {
          "all_ids": [
              "the_test"
          ],
          "the_test": "log(234)"
      }
  • 当且仅当eval.js重载时会执行‘string’
注意事项:
此玩意不能在脚本代码留换行符,不然你的控制台就没了
在’remove‘了一个挂起后要重启(可直接用‘eval'命令重启)



希望近天叕是美好的一天
mmexport1669989744548.png

最新更新

  1. 适配ll3

    rt
  2. 3.0版本发布

    在”eval run "string" 后新增: 可选参数toplayer "目标选择器" 可选参数toentity "目标选择器"
  3. 2.0

    新增 挂起模式

最新评价

不错加油哦
后退
顶部 底部