Skip to main content
Hooks sind eine Möglichkeit, das Verhalten des Inventarsystems zu verändern. Sie werden auf dem Server registriert und können z.B. genutzt werden, um Spieler daran zu hindern, Items in ein bestimmtes Inventar zu verschieben. Einige Beispiele für Hooks findest du im Ordner jaksam_inventory/_hooks.

Best Practices

Filter nutzen

Verwende immer passende Filter, um unnötige Hook-Ausführungen zu vermeiden

Frühe Rückgaben

Nutze frühe returns, um Hooks zu verlassen, wenn Bedingungen nicht erfüllt sind

Performance

Halte die Hook-Logik schlank, um die Inventar-Performance nicht zu beeinträchtigen

Anwendungsbeispiele

  • Verhindern, dass Spieler Items mit dem Metadaten-Feld sole_owner stehlen (z.B. VIP-Items)
  • Verhindern, dass Spieler Polizeiwaffen in ihr persönliches Inventar verschieben
  • Nur einen Rucksack pro Spieler-Inventar erlauben
  • Items craften, indem ein bestimmtes Item auf ein anderes gezogen wird (z.B. Brot auf Fleisch ziehen ergibt ein Sandwich)
  • Item-Nutzung blockieren, wenn der Spieler gefesselt ist oder sich in bestimmten Zonen befindet
  • Item-Nutzungsstatistiken und Erfolge erfassen
  • Die Nutzung bestimmter Items in Fahrzeugen verhindern
  • Neuen Spieler-Inventaren bei der Erstellung Starter-Items hinzufügen
  • Mülltonnen oder Stashes bei der Erstellung mit zufälligen Items vorbefüllen

API-Funktionen

Einen Hook registrieren

Parameter

Rückgabewert

Einen Hook deregistrieren

Parameter

Alle Hooks einer Resource deregistrieren

Parameter

Options-Parameter

Der Options-Parameter akzeptiert eine Table mit Filtern zur Performance-Optimierung.

Verfügbare Hook-Events

Hook-Verhalten

Priorität

Höhere Zahlen werden zuerst ausgeführt (Standard: 0)

Rückgabewerte

return nil oder return true: die Aktion wird fortgesetzt.return false, "message", "notifyType": verhindert die Aktion und stoppt die weitere Hook-Ausführung. Die Parameter message und notifyType sind optional (notifyType kann "error", "success", "info" sein)