Files
Runelite-EssentialsPlus/README.md
T

183 lines
6.6 KiB
Markdown
Raw Normal View History

2026-09-18 17:18:53 +02:00
# RuneLite Example Plugin ("Hello World")
Ein einsatzbereites RuneLite-Plugin-Beispielprojekt. Das Plugin sendet eine **"Hello World!"**-Nachricht in den Ingame-Chat, sobald du dich einloggst oder das Plugin aktivierst.
---
## 📁 Projektstruktur
```
.
├── build.gradle # Gradle Build-Konfiguration
├── settings.gradle # Projektname
├── gradlew / gradlew.bat # Gradle Wrapper (keine manuelle Gradle-Installation nötig)
└── src
├── main/java/com/example
│ ├── ExamplePlugin.java # Hauptklasse des Plugins
│ └── ExampleConfig.java # Einstellungs-Menü im RuneLite Config-Panel
└── test/java/com/example
└── ExamplePluginTest.java # Startet RuneLite mit dem geladenen Plugin
```
---
## 🚀 Wie starte / teste ich das Plugin lokal?
Der Standard- und einfachste Weg in der RuneLite-Entwicklung ist der **integrierte Test-Client**. Dadurch musst du keine JAR-Dateien manuell kopieren oder den offiziellen Client patchen.
### Option 1: Über das Terminal / CLI (am schnellsten)
Führe einfach folgenden Befehl im Projektordner aus:
```bash
./gradlew run
```
*Unter Windows:*
```cmd
gradlew.bat run
```
RuneLite startet im Entwicklermodus mit deinem geladenen Plugin. Sobald du dich mit deinem Account einloggst, erscheint im Chat:
> `Example Plugin: Hello World!`
---
### Option 2: Über eine IDE (IntelliJ IDEA / VS Code / Eclipse)
1. **IntelliJ IDEA öffnen** $\rightarrow$ `Open` $\rightarrow$ diesen Projektordner auswählen $\rightarrow$ als Gradle-Projekt importieren.
2. Zu [`ExamplePluginTest.java`](file:///home/hikyu/Documents/projects/orsrs-plugin-bank-highlighter/src/test/java/com/example/ExamplePluginTest.java) navigieren.
3. Den grünen **Play-Button ▶** neben `main()` anklicken (oder `Shift + F10`).
4. RuneLite startet sofort mit Hot-Reloading & Debugging-Möglichkeiten.
---
## ⚙️ Wie funktioniert das "Hello World"?
In [`ExamplePlugin.java`](file:///home/hikyu/Documents/projects/orsrs-plugin-bank-highlighter/src/main/java/com/example/ExamplePlugin.java):
1. **Beim Login:** Das Event `@Subscribe public void onGameStateChanged(GameStateChanged gameStateChanged)` fängt `GameState.LOGGED_IN` ab und sendet die Nachricht.
2. **Bei Plugin-Aktivierung:** In `startUp()` wird geprüft, ob du bereits eingeloggt bist (`client.getGameState() == GameState.LOGGED_IN`), und sendet ebenfalls die Nachricht.
3. **Anpassbar:** Die Nachricht kann im RuneLite Einstellungsmenü (unter **Example Plugin** in der Seitenleiste) konfiguriert werden.
---
## 📦 Standalone-JAR bauen (ShadowJar)
Falls du eine eigenständige JAR-Datei benötigst:
```bash
./gradlew shadowJar
```
Die fertige JAR befindet sich anschließend in:
`build/libs/bank-highlighter-1.0-SNAPSHOT-all.jar`
---
## ⚡ Installation in Bolt (lokal)
Die Plugins (ExamplePlugin, LiveDashboardPlugin, EssentialsPlusPlugin) werden über
den Einstiegspunkt `ExamplePluginTest.main` direkt als Builtin-Externals in den
RuneLite-Client injiziert — es ist **kein** Bolt-Plugin-Manifest (RS3) nötig.
### 1. Einmalige Bolt-Konfiguration
In `~/.config/bolt-launcher/launcher.json` muss gesetzt sein:
```json
"runelite_use_custom_jar": true,
"runelite_custom_jar": "/home/hikyu/.local/share/bolt-launcher/custom-runelite.jar",
"osrs_launch_command": "java -jar /home/hikyu/.local/share/bolt-launcher/custom-runelite.jar"
```
### 2. Bauen & installieren
```bash
./gradlew deploy
```
Der Befehl baut den Shadow-Jar und kopiert ihn **atomar** nach
`~/.local/share/bolt-launcher/custom-runelite.jar`, so dass er auch bei laufendem
Bolt/RuneLite sicher ersetzt werden kann (build.gradle `deploy`).
### 3. Automatische Neuinstallation bei jeder Änderung
Lasse den Continuous-Build im Projektordner laufen — er überwacht die Quelldateien
und installiert automatisch neu, sobald etwas geändert wird:
```bash
./gradlew deploy -t
```
*(Beenden mit `Ctrl+C`. Der Watcher kompiliert und kopiert die JAR bei jeder
Quellcode-Änderung selbstständig.)*
### 4. Start in Bolt
1. Bolt starten → **RuneLite** wählen → einloggen.
2. „Essentials Plus" erscheint mit einem Icon in der Seitenleiste.
3. Falls nicht sichtbar: RuneLite-Hamburger → **Configuration** → **External Plugins** → „Essentials Plus" aktivieren.
---
## 🪟 Windows / Jagex Launcher (offizielles RuneLite)
Auf Windows wird RuneLite über den **Jagex Launcher** gestartet. Dort lässt sich der
Bolt-Trick (eigenes Client-JAR mit `ExamplePluginTest.main`) **nicht** verwenden, weil
der Jagex Launcher immer die offizielle RuneLite-EXE startet. Stattdessen nutzt man das
offizielle **Side-Loading** von RuneLite: Beim Client-Start lädt RuneLite alle `.jar`
Dateien aus `~\.runelite\sideloaded-plugins\` nach – sofern der **Developer Mode**
aktiviert ist. `runelite-plugin.properties` wird dabei nicht gebraucht.
### 1. Plugin-JAR bauen (klein, ohne Client)
```cmd
gradlew.bat jar
```
Ergebnis: `build\libs\bank-highlighter-1.0-SNAPSHOT.jar` (enthält nur `com.example.*`
Klassen, keine `net.runelite.*` – der richtige Jar-Typ zum Side-Loaden).
### 2. JAR in den Side-Load-Ordner kopieren
Ordner anlegen (falls nicht vorhanden) und das JAR hineinkopieren:
```
%USERPROFILE%\.runelite\sideloaded-plugins\bank-highlighter.jar
```
*Beispiel via Explorer: `Start` → `%USERPROFILE%\.runelite\` eingeben → Ordner
`sideloaded-plugins` erstellen → JAR hineinlegen.*
### 3. Developer Mode in RuneLite aktivieren
1. RuneLite über den **Jagex Launcher** starten.
2. Schraubenschlüssel (Configuration) → ganz nach unten scrollen → **RuneLite**-Reiter.
3. **„Enable Developer Mode"** aktivieren (Hinweis bestätigen).
4. RuneLite vollständig schließen und erneut starten.
### 4. Plugin aktivieren
Nach dem Neustart erscheinen die Plugins in der Plugin-Liste (Plug-Icon) unter
**External Plugins** (unten).
- **Essentials Plus** aktivieren.
- Weitere: **Example Plugin**, **Live Dashboard**.
### Automatisch aktualisieren
Sobald sich etwas im Quellcode ändert, im Projektordner laufen lassen:
```cmd
gradlew.bat jar -t
```
Der Watcher kompiliert das schlanke JAR automatisch neu. Danach **RuneLite einmal
neu starten**, damit das neue JAR geladen wird (Side-Loaded-Plugins werden nur beim
Client-Start eingelesen – nicht live).
> ⚠️ **Hinweis:** Nach einem OSRS-Game-Update muss das JAR frisch gebaut werden
> (`gradlew.bat jar` bzw. der Watcher), damit die API (`net.runelite.api.gameval`, …)
> zum laufenden Client-Rev passt. Läuft ein älteres JAR, können Plugins mit Fehlern
> abstürzen.