https://github.com/otymko/jones
Engine OneScript on Java π
https://github.com/otymko/jones
hacktoberfest
Last synced: 7 months ago
JSON representation
Engine OneScript on Java π
- Host: GitHub
- URL: https://github.com/otymko/jones
- Owner: otymko
- License: mpl-2.0
- Created: 2021-06-07T14:13:26.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2023-09-25T21:35:24.000Z (over 2 years ago)
- Last Synced: 2025-04-06T00:01:41.816Z (9 months ago)
- Topics: hacktoberfest
- Language: Java
- Homepage:
- Size: 908 KB
- Stars: 29
- Watchers: 7
- Forks: 4
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java OneScript (Jones)
Jones - ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ [OneScript](https://github.com/EvilBeaver/OneScript) Π½Π° Java.
## ΠΠ°ΡΠ΅ΠΌ?
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Java-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
ΡΠ΅ΡΠ΅Π· ΡΠΊΡΠΈΠΏΡΡ OneScript.
## ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
### ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
```sh
java -jar /path/to/jonec-exec.jar /path/to/script.os
```
Π³Π΄Π΅:
* `/path/to/jonec-exec.jar` - ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. ΠΠ΄Π΅ Π½Π°ΠΉΡΠΈ? Π‘Π°ΠΌΠΎΠΌΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
Π² ΡΠ΅Π»ΠΈΠ·Π°Ρ
(Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ).
* `/path/to/script.os` - ΠΏΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ OneScript.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
```sh
java -jar jonec-exec.jar my-script.os
```
### ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
#### ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
Π‘ΠΊΡΠΈΠΏΡ `my-script.os`:
```bsl
ΠΠ΅ΡΠ΅ΠΌ Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΡΠ²Π΅ΡΡΠΈΠ§ΠΈΡΠ»ΠΎ()
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ(Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ);
ΠΠΎΠ½Π΅ΡΠΡΠΎΡΠ΅Π΄ΡΡΡ
Π§ΠΈΡΠ»ΠΎΠΠ·ΠΠΎΠ΄ΡΠ»Ρ = 42;
```
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ (ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° JitPack)
`develop-SNAPSHOT` - ΡΠ΅Π³, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±Π΅ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Ρ [JitPack](https://jitpack.io/#otymko/JOneS/). Π’Π΅Π³ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ
Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ΅Π»ΠΈΠ·Ρ), ΡΠ°ΠΊ ΠΈ Ρ
Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° GitHub.
Gradle:
```groovy
implementation group: 'com.github.otymko', name: 'JOneS', version: 'develop-SNAPSHOT'
```
Gradle (Kotlin):
```kotlin
implementation("com.github.otymko", "JOneS", "develop-SNAPSHOT")
```
```xml
com.github.otymko
JOneS
develop-SNAPSHOT
```
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java:
```java
// ΠΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Jones
Path pathToScript = Path.of("/path/to/my-script.os");
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°
ScriptEngine engine = new ScriptEngine();
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
ScriptCompiler compiler = new ScriptCompiler(engine);
// ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ "Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ"(UserScriptContext)
ModuleImage moduleImage = compiler.compile(pathToScript, UserScriptContext.class);
// Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ· ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
ScriptDrivenObject sdo = engine.newObject(moduleImage);
// ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎ Π΅Π³ΠΎ ΠΌΠΌΠ΅Π½ΠΈ
int methodId = sdo.getScriptMethod("ΠΡΠ²Π΅ΡΡΠΈΠ§ΠΈΡΠ»ΠΎ");
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄
sdo.callScriptMethod(engine, methodId, new IValue[0]);
```
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
```
42
```
## ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° [ΠΠΎΡΠΊΠ° MVP](https://github.com/otymko/JOneS/projects/1) ΠΈ Π²ΡΠΏΡΡΡΠΈΡΡ ΡΠ΅Π»ΠΈΠ·.
## ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ [Mozilla Public License Version 2.0](LICENSE)