Files
Runelite-EssentialsPlus/Item Information.md
T
2026-10-05 21:04:27 +02:00

8.6 KiB
Raw Blame History

Item Information – Zusammenlegung der Item-Helper

Ziel

Item prices, Item charges und das neue Feature Banked items werden unter einem gemeinsamen Helper zusammengeführt.

Empfohlener Name:

Item information

Alternativen: Item details, Item info.

Der Nutzer soll einen einzigen Hauptschalter haben. Die einzelnen Informationsarten bleiben per Rechtsklick separat aktivierbar.

Aktueller Zustand

Item prices

Implementierung: helpers/ItemPriceOverlay.java

  • Hover-Tooltip über Inventar- und Bank-Items
  • GE-Preis
  • High-Alchemy-Wert
  • Mengen werden berücksichtigt
  • Coins und Platinum-Tokens werden ignoriert
  • Optionen:
    • Show GE price
    • Show HA price

Item charges

Implementierung:

  • helpers/ItemCharges.java

  • helpers/ItemChargesOverlay.java

  • Permanente Werte direkt auf Item-Icons

  • Inventar

  • Ausrüstung

  • optional Bank

  • Unterstützt viele Charge-/Füllstandsquellen, unter anderem:

    • Varbits
    • Barrows
    • Moon-Ausrüstung
    • Blowpipe mit mehreren Werten
    • Dragonfire-Schilde
    • Schmuck und Tränke
    • Bags, Pouches und Container
    • Master Scroll Book
    • weitere Spezialitems
  • Optionen:

    • Show weapons and armor
    • Show looting and coal bags
    • Show charges in bank
    • Textgröße
    • Low-Charge-Warnschwelle
    • Primärfarbe
    • Sekundärfarbe
    • Warnfarbe
    • gespeicherte Charges zurücksetzen
    • Coal-Bag-Daten vergessen

Neues Feature: Banked items

Beim Hover über ein Item soll im Tooltip zusätzlich die Bankmenge erscheinen.

Beispiel:

GE: 12.3k gp  HA: 4.8k gp
Banked: 300

Regeln:

  • Die Bankmenge wird nur angezeigt, wenn sie bekannt ist.
  • Bei unbekanntem Bestand keine Banked: 0-Zeile anzeigen.
  • Noted und unnoted Items müssen zusammengefasst werden.
  • Die Zuordnung muss über ItemManager.canonicalize() erfolgen.
  • Bei geöffneter Bank ist der Live-Bankcontainer maßgeblich.
  • Bei geschlossener Bank wird der zuletzt bekannte Bankbestand verwendet.
  • Bankänderungen müssen über ItemContainerChanged berücksichtigt werden.
  • Die bestehende Bank-/Container-Speicherung des Plugins soll wiederverwendet werden.

Zieloberfläche

In der Helpers-Karte gibt es nur noch eine Checkbox:

Item information

Tooltip:

Shows item prices, banked quantities and charge information. Right-click for options.

Die bisherigen Checkboxen Item prices und Item charges entfallen.

Ziel-Rechtsklick-Menü

Informationsarten

  • Show GE price
  • Show High Alchemy value
  • Show banked quantity
  • Show item charges

Charge-Kategorien

Nur relevant, wenn Show item charges aktiv ist:

  • Weapons and armor
  • Bags and containers

Die bestehende Option Show charges in bank wird in den Bereich Anzeigeorte verschoben.

Anzeigeorte

Preise und Bankmengen sind Hover-Informationen:

  • Show in inventory
  • Show in bank

Charges sind Icon-Informationen:

  • Show charges in inventory
  • Show charges in equipment
  • Show charges in bank

Falls eine zu große Anzahl an Optionen vermieden werden soll, kann Show in inventory entfallen, weil Inventar standardmäßig immer aktiv ist. Dann bleibt nur:

  • Show in bank
  • Show charges in equipment

Darstellung

  • Text size
  • Primary color
  • Secondary color
  • Warning color

Warnungen

Low-charge warning mit:

  • Off
  • ≤ 10
  • ≤ 50
  • ≤ 100
  • ≤ 500
  • ≤ 1000

Datenverwaltung

  • Reset saved charges
  • Forget coal bag

Zurücksetzen

  • Reset appearance

Tooltip-Design

Der bestehende Preis-Tooltip soll zu einem gemeinsamen Tooltip-Builder erweitert werden.

Empfohlene Reihenfolge:

  1. GE-Preis
  2. High-Alchemy-Wert
  3. Bankmenge

Beispiel mit allen Informationen:

GE: 12.3k gp  HA: 4.8k gp
Banked: 300

Wenn nur einzelne Informationen aktiviert sind, werden nur diese Zeilen ausgegeben.

Die Charge-Werte bleiben auf den Item-Icons und werden nicht in den Hover-Tooltip verschoben, außer dies wird später ausdrücklich gewünscht.

Empfohlene interne Struktur

Gemeinsamer Helper-Schalter

Neuer Hauptschlüssel:

itemInformation

Mögliche neue Unteroptionen:

itemInformationGe
itemInformationHa
itemInformationBanked
itemInformationCharges
itemInformationChargesWeapons
itemInformationChargesBags
itemInformationBank
itemInformationEquipment
itemInformationSize
itemInformationColor
itemInformationSecondaryColor
itemInformationLowColor
itemInformationLowAt

Die genaue Benennung kann noch angepasst werden. Wichtig ist ein einheitliches Präfix.

Overlay-Struktur

Empfohlene Varianten:

  1. ItemInformationOverlay übernimmt den Hover-Tooltip und ruft Preis- und Banked-Provider auf.
  2. ItemChargesOverlay bleibt für die Icon-Anzeige bestehen.
  3. Beide verwenden denselben gemeinsamen Hauptschalter und dieselben zentralen Optionen.

Damit muss die komplexe Charge-Logik nicht unnötig mit der Tooltip-Logik vermischt werden.

Alternativ kann der bestehende ItemPriceOverlay umbenannt und erweitert werden. Inhaltlich sollte er aber als allgemeiner Item-Information-Tooltip behandelt werden.

Bankbestand

Für den Bankbestand sollte keine neue parallele Speicherung eingeführt werden, wenn die vorhandenen Plugin-Daten verwendet werden können.

Benötigt wird eine Methode nach diesem Muster:

long getBankedQuantity(int itemId)

Die Methode sollte:

  • die Item-ID kanonisieren
  • noted/unnoted zusammenführen
  • die aktuelle Bank bevorzugen, wenn sie geöffnet ist
  • ansonsten den letzten bekannten Bestand verwenden
  • bei unbekanntem Item 0 oder einen klar unterscheidbaren „unknown“-Zustand liefern

Wichtig: 0 darf nicht automatisch als „unbekannt“ interpretiert werden. Ein bekannter leerer Bestand und ein unbekannter Bestand müssen unterscheidbar sein.

Rückwärtskompatibilität

Bestehende Konfigurationswerte sollen zunächst gelesen werden können:

  • itemPrices
  • itemPricesGe
  • itemPricesHa
  • itemCharges
  • itemChargesWeapons
  • itemChargesBags
  • itemChargesBank
  • itemChargesSize
  • itemChargesColor
  • itemChargesSecondaryColor
  • itemChargesLowColor
  • itemChargesLowAt

Mögliche Strategie:

  • Neuer Hauptschalter verwendet neue Keys.
  • Falls neue Keys noch nicht existieren, werden die alten Werte als Fallback gelesen.
  • Alte Einstellungen werden nicht sofort gelöscht.
  • Ein späterer Migrationsschritt kann alte Keys übernehmen oder dauerhaft weiter unterstützen.

Tests

Vor der Implementierung sollten die vorhandenen Tests ausgeführt werden. Relevant sind insbesondere:

  • ItemChargesTest
  • ItemChargesFullTest
  • Bank-/Container-Tests
  • Tests für ItemManager.canonicalize()-Verhalten, falls vorhanden

Neue Tests sollten abdecken:

  1. GE-Preis allein
  2. HA-Wert allein
  3. GE und HA zusammen
  4. Bankmenge bei normalem Item
  5. Bankmenge bei noted/unnoted Kombination
  6. unbekannter Bankbestand wird nicht angezeigt
  7. bekannter Bankbestand von 0
  8. Bankbestand aktualisiert sich nach Containeränderung
  9. gemeinsamer Hauptschalter deaktiviert beide Overlay-Arten
  10. Charge-Unteroptionen bleiben funktionsfähig
  11. alte Konfigurationswerte werden korrekt übernommen
  12. Tooltip erscheint nicht bei Coins/Platinum, sofern das bestehende Verhalten beibehalten werden soll

Offene Fragen vor der Implementierung

  1. Soll der endgültige Name Item information, Item details oder Item info sein?
  2. Soll Banked: 0 bei bekannt leerem Bestand angezeigt werden oder komplett entfallen?
  3. Soll der Bankbestand auch beim Hover über ein Item im Bankfenster selbst angezeigt werden?
  4. Soll die Bankmenge inklusive Items im Inventar angezeigt werden oder ausschließlich der Bestand in der Bank?
  5. Soll Show in inventory entfallen, weil Inventar immer aktiv sein soll?
  6. Sollen Preise und Bankmenge optional auch auf Item-Icons statt nur im Tooltip erscheinen?
  7. Soll die Anzeige von Charges im Bankfenster weiterhin separat schaltbar sein?
  8. Soll eine gemeinsame Farbe für alle Tooltip-Zeilen verwendet werden oder behalten GE/HA/Banked eigene Farben?
  9. Sollen die alten Config-Keys dauerhaft unterstützt oder nur einmalig migriert werden?
  10. Soll das neue Feature standardmäßig deaktiviert bleiben, wie die bisherigen Helper?

Empfohlene Standardentscheidung

Für eine einfache und übersichtliche erste Version:

  • Name: Item information
  • Ein Hauptschalter
  • GE, HA, Banked und Charges separat toggelbar
  • Inventar immer aktiv
  • Bank-Hover separat toggelbar
  • Equipment-Charges separat toggelbar
  • Banked zählt nur Bankbestand, nicht Inventar
  • unbekannter Bestand wird nicht angezeigt
  • vorhandene Charge-Unteroptionen bleiben erhalten
  • alte Config-Keys werden als Fallback unterstützt
  • Tooltip-Informationen bleiben getrennt von den Charge-Zahlen auf Item-Icons