SkBee++СкачатьСкачать
ВЕРСИИ (2)
release
SkBee++ 1.1
1.121 авг. 2026 г.308Minecraft: 26.1, 26.1.1, 26.1.2paper
Что нового
# SkBee++ 1.1
This update focuses on **stability, diagnostics, and fixing issues discovered during a full stress test**.
The plugin was tested on a live Paper 26.1.2 / Skript 2.16.1 server with everything from simple Java blocks to circular includes, nested `switch` statements, security violations, hot reloads, multiple module compilation, and more complex stateful Java code.
## Fixed
### Dynamic `.jv` paths no longer crash Skript
Using a dynamic module path, for example inside a loop with a loop variable, could previously trigger an uncaught exception and a full Skript "Severe Error" report.
SkBee++ now catches this case and reports a clean, localized error instead:
```text
run jv / include jv requires a literal module path
```
### Correct line numbers for `.jv` compilation errors
Compilation errors inside `.jv` modules previously pointed to lines inside SkBee++'s generated Java wrapper.
They are now translated back to the correct line in the original `.jv` file.
### Fixed `sender` inside Skript commands
Java code executed from a Skript command could incorrectly receive the console as `sender`, even when the command was executed by a player.
SkBee++ now correctly handles Skript's command event and resolves the actual command sender.
### Runtime errors now point to the correct script line
Runtime exceptions from compiled Java code previously appeared without usable source information.
Janino debugging information is now enabled, allowing SkBee++ to map runtime errors back to the original Java block line.
### More complete localization
Several internal messages from the module system and Java compiler were still hardcoded in English.
These messages now use SkBee++'s localization system and support both English and Russian.
## Known limitations
This update also documents several behaviors discovered during testing.
### Variable Bridge scope
`setVar` and `getVar` currently operate within Skript's local variable scope.
Values written through the Variable Bridge do not currently behave like normal persistent Skript variables and do not survive between separate trigger executions. `/jvdebug vars` displays values tracked by SkBee++ itself rather than directly verifying Skript's variable storage.
This is documented as a known limitation and will require a deliberate design decision rather than a simple bugfix.
### Janino language support
SkBee++ uses Janino 3.1.12, which does not support every modern Java language feature.
Currently tested unsupported features include:
* Lambda expressions
* Method references
* Switch expressions
* `var`
These limitations are now documented.
### `switch` / `case` indentation
Because `execute java` uses Skript's section parser, Java `case` and `default` labels require special indentation handling inside an `execute java` block.
This behavior is now documented.
beta
SkBee++ 1.0
1.03 июл. 2026 г.56Minecraft: 26.1, 26.1.1, 26.1.2paper
Что нового
# SkBee++
**SkBee++** is a Skript addon that lets you write and execute **real Java code directly inside your Skript scripts**.
Java blocks are compiled with Janino at script parse time and executed as part of the Skript trigger — no separate plugin project, external build step, or server restart required.
## Features
* **`execute java:`** — write Java code directly inside your Skript scripts.
* **`.jv` modules** — move Java logic into standalone files inside Skript's `scripts/` folder.
* **`include "file.jv"`** — include Java files recursively, with circular include detection.
* **`run jv` / `include jv`** — execute `.jv` modules as Skript effects.
* **Variable Bridge** — use `getVar` and `setVar` to exchange values between Java and Skript.
* **Event bindings** — access `event`, `sender`, and context values such as `player`, `damage`, `victim`, and `attacker` when available.
* **Paper/Bukkit API access** — use the API directly from your Java code.
* **Compilation caching** — identical Java blocks share the same compiled class.
* **Hot reload** — `/sk reload` clears the compiled class cache and rescans `.jv` modules.
* **Line-mapped errors** — compilation and runtime errors are mapped back to your original script lines.
* **`/jvdebug`** — inspect current bindings and Variable Bridge data.
* **Localization** — English and Russian language support.
## Example
### Java inside Skript
```skript
on damage:
execute java:
if (victim() instanceof Player) {
setVar("last_damage", event.getDamage());
}
```
### Using a `.jv` module
```skript
on join:
run jv "modules/welcome.jv"
```
`modules/welcome.jv`:
```java
Player player = (Player) sender;
player.sendMessage("Welcome back, " + player.getName());
```
## Requirements
* **Paper 26.x+**
* **Skript 2.15+**
* **Java 25**
## Security
`execute java` runs with full server permissions by design. It is **not a sandbox**.
Only allow trusted users to edit scripts that use SkBee++. Some dangerous calls such as `System.exit`, `Runtime.halt`, and `Runtime.exit` are blocked, but SkBee++ is not intended to safely execute untrusted Java code.