feat(rust): RunicNPC is required for every Place NPCs step (runicnpc stage 9, D310)
A Place NPCs step on a server without RunicNPC, or with one older than the
bridge needs, is refused before it is sent: "<server> needs RunicNPC to place
NPCs, Rust's own scientists included: <why>". Rust's own scientists were the
fallback until now (D243); they need RunicNPC too. Crates are unaffected.
- npcs.model: API_NEEDED rises from 4 to 6, the bridge's RunicNpcApiNeeded, so a
server the site calls ready is one the bridge will not refuse as runicnpc-old.
The profile push follows the same floor.
- eventWorld: profileMissing becomes npcMissing, asked for every NPC step.
- Admin → Rust → Servers: each server carries `runicNpc` ({ready, absence,
version, api}) and a server without one that will do reads "Incomplete" with
the reason. Swagger documents the field.
The event picker is unchanged in this commit (an open question on the PR).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -149,6 +149,16 @@ module.exports = {
|
||||
reason: { type: 'string', example: 'this ZoneManager (3.2.0) has no Zone.InitializeZone' },
|
||||
},
|
||||
},
|
||||
runicNpc: {
|
||||
type: 'object',
|
||||
description: "The server's RunicNPC from its last hello (runicnpc stage 9, D310). RunicNPC is required: `ready: false` means every Place NPCs step on it is refused, Rust's own scientists included, and `absence` says why.",
|
||||
properties: {
|
||||
ready: { type: 'boolean', example: true },
|
||||
absence: { type: 'string', example: 'RunicNPC is not loaded on it' },
|
||||
version: { type: 'string', nullable: true, example: '1.0.0' },
|
||||
api: { type: 'integer', example: 6 },
|
||||
},
|
||||
},
|
||||
online: { type: 'boolean', example: true },
|
||||
players: { type: 'integer', example: 42 },
|
||||
stale: { type: 'boolean', example: false },
|
||||
|
||||
Reference in New Issue
Block a user