嘉晚饭,赢
本帖最后由 嘉晚饭,赢 于 2023-3-14 09:17 编辑

JavaScript&PlaceholderAPI 从入门到精通

博客地址已更新,建议前往博客查看

目录

一、前言

二、基础细节讲解

三、各种场景的实战演示

四、高阶用法——在JS里面使用Java的类吧!

五、后记&杂项

更新日志

  • 2020/5/8 发布本教程

其它

  • 统计信息


    • 354 行
    • 5074 词
    • 11550 字符



2021.12 数据,可能有更多内容JavaScript&PlaceholderAPI 从入门到精通


目录


一、前言


二、基础细节讲解


三、各种场景的实战演示


四、高阶用法——在JS里面使用Java的类吧!


五、后记&杂项


更新日志


  • 2020/5/8 发布本教程

其它




嘉晚饭,赢
本帖最后由 wjwrh 于 2020-5-17 08:06 编辑

一、前言

  • 为什么要写这篇教程?
    • 站内已经有两篇相关的教程了,但是我发现有人看了这些教程之后,还是一头雾水(而且他们好像都在咕),不知道从何动手,而且他们对于PlaceholderAPI JS扩展的精髓都没有怎么提及,因此我决定从实战角度出发,设立若干情景,旨在帮助那些连JS都不怎么会的人,能够直接依葫芦画瓢解决他们的问题;帮助那些了解JS的人去接触PlaceholderAPI JS扩展中最强最好用的功能(因为我发现官方的wiki里压根就没有详细介绍过这些功能的使用)
    • 只要我一次性写完,我就能保证我不会鸽了!!
  • 本教程的结构?
    • 本教程分为三个部分,第一部分是比较详细的基础介绍,第二部分是若干种场景的实战教程,有临时需求的小白可以直接看实战部分,找到自己需要的代码抄走修改。第三部分为高级用法,利用JS引擎的特性调用Java中的类
  • 这篇教程的受众是?
    • 完全没有JS知识,但是有学习动力的小白,我会尽可能的省略有关JS的技术细节(虽然还是强力推荐你们系统的学习一下JavaScript),帮助你们只要稍微改动几个特定的值就能够实现你们自己需要的JS脚本
    • 有一定的JS基础或插件编写基础的人群,我会简要的介绍PlaceholderAPI JS扩展的灵魂,BukkitPlayerBukkitServer
  • 什么是JavaSript,和Java有关系吗?JS是不是就是Java的脚本?
    • 首先要明确的就是,JavaScriptJava的关系就像雷锋和雷峰塔一样,八竿子打不着。
    • JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。
    • Java内置了Nashorn引擎(JDK 1.8以前是Rhino),而PlaceholderAPI就是直接使用这个引擎,来对JS脚本进行解析,从而执行并获取我们脚本返回的结果
  • 本教程使用环境
    • 系统环境 Windows 10 Professional Edition 1909(理论上本教程对于Linux也适用)
    • 服务端 Spigot 1.15.2
    • 插件 PlaceholderAPI-2.10.5(插件版本影响不大)
    • 文本编辑器 Notepad++ (为了适配大多数人,没有使用VSC,你没有Notepad++的话用Notepad也行xd)


嘉晚饭,赢
本帖最后由 wjwrh 于 2020-5-8 15:22 编辑

二、基础细节讲解

1. 安装JavaScript扩展

  • 使用ecloud安装
    • 此安装比较简单只需要几个命令即可
    • /papi ecloud download javascript
    • /papi reload
  • 使用现有的文件进行安装
    • 有时ecloud会抽风,这个时候我们可能需要自己找到自己需要的扩展文件(我已经在下面提供了最新版的JS扩展文件)
    • 将下载好的文件放入plugins\PlaceholderAPI\expansions
    • /papi reload

2. 常用JavaScript扩展的指令

  • /jsexpansion 显示此扩展相关信息
  • /jsexpansion reload 重载此扩展,不推荐使用这个,推荐使用/papi reload,使用这个可能会出现你修改了扩展但是并没有马上生效的问题
  • /jsexpansion list 显示已加载的所有扩展

3. 创建一个新的JavaScript变量

  • 打开plugins\PlaceholderAPI文件夹,在扩展正常加载的情况下这里应该有如下内容

    • 名为javascript_placeholders.yml的文件
    • 名为javascripts的文件夹
  • javascripts文件夹中新建一个纯文本文档

  • 修改其名称为<你的扩展标识名>.js,例如我这里修改成test.js
  • 修改完成之后,打开上面提到的javascript_placeholders.yml文件,在文件的最下面添加

    1. <你的扩展标识名>:
    2.   file: <你的扩展标识名>.js
    3.   engine: nashorn
    4. # 使用Java 7开服的请在engine处填写Rhino
    复制代码

    例如我上面命名为test.js,那么我就需要添加

    1. test:
    2.   file: test.js
    3.   engine: nashorn
    复制代码

  • <你的扩展标识名>.js里面写上你的脚本,然后重载一次,你就可以使用%javascript_<你的扩展标识名>%这个变量啦,例如我的就是%javascript_test%

4. 调试JS脚本

  • 方法一(不推荐) 可以将自己的脚本放在其他的计分板之类的插件中,这样的弊端是如果你想要修改你的扩展的名字,还要重新修改计分板插件的配置并将其重载,而且在实际服务器中测试对玩家的游戏体验有影响
  • 方法二(推荐) 使用PlaceholderAPI自带的指令/papi parse me 扩展名,即可在自己这里显示这个变量对自己产生的效果



第一页 上一页 下一页 最后一页