Files
gregWiki/docs/reference/greg-hooks-registry.md
Marvin fcac837bd9 docs: update references from FrikaMF to gregCore throughout documentation
Revised multiple documentation files to replace instances of "FrikaMF" with "gregCore," reflecting the updated naming conventions and project structure. This change enhances consistency and clarity across the documentation, ensuring that users and contributors have accurate information regarding the framework and its components.
2026-04-10 18:28:55 +02:00

3.6 KiB
Raw Blame History

id, title, slug, description
id title slug description
greg-hooks-registry greg.* hooks registry (IL2CPP) /reference/greg-hooks-registry greg_hooks.json, Harmony-Quellen unter gregCore, Regeneration, Überschneidung mit Hand-Patches.

greg.* hooks registry (IL2CPP)

Diese Seite beschreibt die kanonische MelonLoader-Hook-Oberfläche für Data Center (IL2CPP): stabile String-IDs, JSON-Registry, erzeugte Harmony-Stubs und das Zusammenspiel mit handgeschriebenen Patches (z.B. HarmonyPatches.cs).

Kanonische Hook-IDs

greg.<DOMAIN>.<Action>
  • greg — fester Präfix für neue APIs.
  • <DOMAIN> — u.a. aus GregDomain (PLAYER, NETWORK, SYSTEM, …).
  • <Action>PascalCase.

In Mods vorzugsweise GregHookName.Create(GregDomain.*, "Action") oder Konstanten aus GregNativeEventHooks verwenden.

Lua-Zugriff auf dieselben Hooks

Lua-Skripte (MoonSharp, greg.*) können dieselben greg.*-Strings nutzen:

  • greg.on(hookName, fn) — Callback am GregEventDispatcher (beliebige registrierte greg.*-Events).
  • greg.hook.before(hookName, fn) / greg.hook.after(hookName, fn) — Harmony-Prefix bzw. -Postfix über den HookBinder (Patches parallel zur Registry).

Details zum Laufzeitmodell, Payloads und Katalog: Greg hooks & event runtime. API-Tabellen: Language Bridges README.

Registry-Datei greg_hooks.json

Ort Rolle
Repo-Root greg_hooks.json Eincheckter Katalog (name, patchTarget, strategy, payloadSchema, optional legacy).
Neben gregCore.dll Build-Kopie für GregCompatBridge.

Code-Layout (gregFramework-Repo)

Pfad Zweck
gregCore/framework/Sdk/ gregFramework.Core: GregEventDispatcher, GregHookName, GregDomain, GregPayload, GregCompatBridge, GregNativeEventHooks
gregCore/framework/ModLoader/ EventDispatcher, HarmonyPatches, FFI, GregHookIntegration, Services
gregCore/framework/harmony/ Optional: generierte Domain-Harmony-Klassen (Skript Generate-GregHooksFromIl2CppDump.ps1)

Das Projekt gregCore/framework/gregCore.csproj fasst diese Quellen zusammen; Harmony erkennt alle [HarmonyPatch]-Typen in der Assembly.

Regeneration

pwsh -NoProfile -File gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1

Anschließend gregCore neu bauen.

Generator (Kurz)

  • Emittiert Postfix-Stubs mit GregEventDispatcher.Emit, filtert häufige Unity-Loops und Lärm.
  • Harmony-Ausschluss: Das Skript wertet framework/ModLoader/HarmonyPatches.cs aus, damit z.B. Player.UpdateCoin nicht doppelt generiert wird (Hand-Patch + InvokeCancelable / GregHookIntegration).

Mod-Autor:innen

Legacy

GregCompatBridge lädt legacyname aus greg_hooks.json. Zusätzlich gibt es eingebaute Alias-Tabellen für ältere Schreibweisen — siehe Quellcode GregCompatBridge.

Siehe auch