SEARCH_GAME_CATALOG
Find items by name for the product editor
Required
The item picker is the only way to choose what a product, bundle or Lucky Slots prize grants — there is no raw item-id entry anywhere in the admin console. Without this capability, or an uploaded name table, an owner cannot create any item content, so Portal Coins have nothing to buy. Content authored earlier keeps working and players keep their portal.
Uploaded name tables come first
An owner can upload the game client's own name tables per game server in Admin → Game Servers:
itemname-e and skillname-e, exported as text by any dat editor. When a server has one, the
picker searches it and does not call the connector at all — the client table is what a player will
actually read, and it answers while the game server is down.
Implement this capability anyway. It is what the picker falls back to, and it is what Connector check exercises.
Results take this shape, with type and grade allowed to be null when the pack does not expose
them:
{ "itemId": 57, "name": "Adena", "type": "EtcItem", "grade": null, "stackable": true }Matches are ranked: exact id or name first, then name prefix, then substring — so searching
"Adena" does not bury it under everything containing the word. limit is clamped to 1–50.
Implementing it
JsonArray searchCatalog(String term, int limit);Search the pack's loaded item templates in memory — the same objects the server itself uses, so custom items are included with no extra work and no query.
An L2J pack needs no name-table upload: its item XML already carries
name="Blessed Scroll of Escape", which is what a player reads.
Verification
Connector check searches for a with a limit of one. A completed request passes, even with an
empty result.