Skip to content

Commit 60c0b3f

Browse files
authored
Merge pull request #11 from astorks/dev
v1.1.5 Dev -> Master
2 parents fbd20c3 + 89f8058 commit 60c0b3f

18 files changed

+502
-569
lines changed

.github/workflows/build_deploy.yml

Lines changed: 0 additions & 73 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build and Upload Release Artifacts
2+
on:
3+
release:
4+
types: [created]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v1
10+
- name: Set up JDK 1.8
11+
uses: actions/setup-java@v1
12+
with:
13+
java-version: 1.8
14+
- name: Set up Node.js 12.14.1
15+
uses: actions/setup-node@v1
16+
with:
17+
node-version: 12.14.1
18+
- name: Fix gradlew permissions
19+
run: chmod +x ./gradlew
20+
- name: Build with Gradle
21+
run: ./gradlew shadowJar
22+
- name: Export TypeScript Libraries with Gradle
23+
run: ./gradlew exportTypeScriptLibraries
24+
- name: Compile TypeScript libraries and create archives for release
25+
run: |
26+
cd ./lib/
27+
npm install
28+
npm run compile
29+
cd ./ts/
30+
zip -r ../ScriptableMC-TypeScript-Lib.zip ./*
31+
cd ../js/
32+
zip -r ../ScriptableMC-JavaScript-Lib.zip ./*
33+
- name: Upload Plugin Jar
34+
uses: skx/github-action-publish-binaries@master
35+
env:
36+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37+
with:
38+
args: 'build/libs/ScriptableMC.jar'
39+
- name: Upload TypeScript Libraries
40+
uses: skx/github-action-publish-binaries@master
41+
env:
42+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43+
with:
44+
args: 'lib/ScriptableMC-TypeScript-Lib.zip'
45+
- name: Upload JavaScript Libraries
46+
uses: skx/github-action-publish-binaries@master
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
with:
50+
args: 'lib/ScriptableMC-JavaScript-Lib.zip'

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,10 @@ You can take the typescript example and compile it, then directly modify the jav
2727
| `/scriptablemc javascript file <filePath>` | `/smc js f <filePath>` | Executes javascript file from the scripts folder. | `scriptablemc.js.execute.file` |
2828
| `/scriptablemc menu` | `/smc menu` | Opens an inventory menu that allows you to control the scriptable engine. | `scriptablemc.menu` |
2929
| `/scriptablemc info` | `/smc info` | Prints plugin version and GraalVM/GraalJS versions if available. | `scriptablemc.info` |
30+
31+
### `/smc javascript execute` Command Example
32+
> `/jsex return 1 + 1` <br>
33+
> ![2](https://i.imgur.com/1MkiDxW.png)
34+
35+
> `/jsex sender.sendMessage(lib.org.bukkit.ChatColor.GREEN + "Hello World!")` <br>
36+
> ![Hello World!](https://i.imgur.com/1dzwpqy.png)
File renamed without changes.
File renamed without changes.

build.gradle

Lines changed: 0 additions & 94 deletions
This file was deleted.

build.gradle.kts

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
plugins {
2+
java
3+
id("org.jetbrains.kotlin.jvm") version "1.3.61"
4+
id("com.github.johnrengelman.shadow") version "5.2.0"
5+
id("org.jetbrains.gradle.plugin.idea-ext") version "0.7"
6+
}
7+
8+
group = "com.pixlfox.scriptablemc"
9+
version = "1.1.5"
10+
11+
java {
12+
sourceCompatibility = JavaVersion.VERSION_1_8
13+
targetCompatibility = JavaVersion.VERSION_1_8
14+
}
15+
16+
17+
idea {
18+
module {
19+
isDownloadJavadoc = true
20+
isDownloadSources = true
21+
}
22+
}
23+
24+
repositories {
25+
mavenCentral()
26+
jcenter()
27+
maven {
28+
name = "spigotmc"
29+
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
30+
}
31+
maven {
32+
name = "spigotmc nexus"
33+
url = uri("https://hub.spigotmc.org/nexus/content/repositories/sonatype-nexus-snapshots/")
34+
}
35+
maven {
36+
name = "minecraft"
37+
url = uri("https://libraries.minecraft.net")
38+
}
39+
maven {
40+
name = "mccommandapi"
41+
url = uri("https://raw.githubusercontent.com/JorelAli/1.13-Command-API/mvn-repo/1.13CommandAPI/")
42+
}
43+
maven {
44+
name = "papermc"
45+
url = uri("https://papermc.io/repo/repository/maven-public/")
46+
}
47+
maven {
48+
name = "placeholderapi"
49+
url = uri("http://repo.extendedclip.com/content/repositories/placeholderapi/")
50+
}
51+
maven {
52+
name = "aikar-acf"
53+
url = uri("https://repo.aikar.co/content/groups/aikar/")
54+
}
55+
}
56+
57+
dependencies {
58+
// GraalVM SDK & GraalJS Engine
59+
implementation("org.graalvm.sdk:graal-sdk:19.3.1")
60+
implementation("org.graalvm.js:js:19.3.1")
61+
implementation("org.graalvm.js:js-scriptengine:19.3.1")
62+
implementation("org.graalvm.truffle:truffle-api:19.3.1")
63+
64+
implementation("org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT")
65+
implementation("co.aikar:acf-paper:0.5.0-SNAPSHOT")
66+
implementation("fr.minuskube.inv:smart-invs:1.2.7")
67+
compileOnly("me.clip:placeholderapi:2.10.4")
68+
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
69+
implementation("com.thoughtworks.paranamer:paranamer:2.8")
70+
implementation("com.beust:klaxon:5.2")
71+
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
72+
testImplementation("junit", "junit", "4.12")
73+
}
74+
75+
tasks.compileKotlin {
76+
kotlinOptions.jvmTarget = "1.8"
77+
kotlinOptions.javaParameters = true
78+
}
79+
tasks.compileTestKotlin {
80+
kotlinOptions.jvmTarget = "1.8"
81+
kotlinOptions.javaParameters = true
82+
}
83+
84+
tasks.jar {
85+
86+
}
87+
88+
tasks.shadowJar {
89+
archiveFileName.set("ScriptableMC.jar")
90+
relocate("co.aikar.commands", "com.pixlfox.scriptablemc.acf")
91+
mergeServiceFiles()
92+
}
93+
94+
tasks.register<JavaExec>("exportTypeScriptLibraries") {
95+
dependsOn(":classes")
96+
group = "libraries"
97+
main = "com.pixlfox.scriptablemc.TypescriptLibraryExporter"
98+
classpath = sourceSets["main"].runtimeClasspath
99+
//classpath = sourceSets["main"].java.srcDirs
100+
}

settings.gradle

Lines changed: 0 additions & 2 deletions
This file was deleted.

settings.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rootProject.name = "ScriptableMC-Engine"
2+

src/main/kotlin/com/pixlfox/scriptablemc/ScriptablePluginCommand.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.pixlfox.scriptablemc.smartinvs.MainMenu
1010
import org.bukkit.ChatColor
1111
import org.bukkit.command.CommandSender
1212
import org.bukkit.entity.Player
13+
import org.graalvm.polyglot.PolyglotException
1314

1415

1516
@Suppress("unused")
@@ -81,17 +82,29 @@ class ScriptablePluginJsCommand(private val basePlugin: ScriptablePluginMain) :
8182
@Syntax("<code>")
8283
fun onSmcJsExecute(sender: CommandSender, code: String) {
8384
try {
84-
val response = basePlugin.scriptEngine!!.evalJs(code)
85+
val response = basePlugin.scriptEngine!!.evalCommandSenderJs(code, sender)
8586
if (!response.isNull) {
8687
sender.sendMessage(response.toString())
8788
}
8889
}
90+
catch (e: PolyglotException) {
91+
e.printStackTrace()
92+
93+
sender.sendMessage("${ChatColor.RED}$e")
94+
for (stackTrace in e.stackTrace) {
95+
if(stackTrace.fileName?.endsWith(".js", true) == true) {
96+
sender.sendMessage("${ChatColor.YELLOW}$stackTrace")
97+
}
98+
}
99+
}
89100
catch (e: Exception) {
90101
e.printStackTrace()
91102

92103
sender.sendMessage("${ChatColor.DARK_RED}$e")
93104
for (stackTrace in e.stackTrace) {
94-
sender.sendMessage("${ChatColor.DARK_RED}$stackTrace")
105+
if(stackTrace.className.startsWith("com.pixlfox.scriptablemc", true)) {
106+
sender.sendMessage("${ChatColor.RED}$stackTrace")
107+
}
95108
}
96109
}
97110
}

0 commit comments

Comments
 (0)