chore: init
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user