Complete Classic telemetry, authenticated player replies and reversible cutover
Core tests / core (push) Successful in 27s
Core tests / core (push) Successful in 27s
This commit is contained in:
+5
-2
@@ -210,7 +210,7 @@ export async function applyAuthoritativeAleEvent(store:StateStore,kind:string,pa
|
||||
b.memories=b.memories.slice(-100);
|
||||
}
|
||||
event(s,'memory',`${b.name} survived a close call in ${b.zone}; the experience was committed to memory.`,b.id);
|
||||
}else if(kind==='player.killed-by-creature'||kind==='player.permanent-death'){
|
||||
}else if(kind==='player.killed-by-creature'||kind==='player.permanent-death'||kind==='player.death'){
|
||||
if(b.plotArmorHpFloor>=1){
|
||||
event(s,'error',`Plot armor breach: authoritative ALE reported ${b.name} dead. Worldserver damage enforcement must prevent this transition.`,b.id);
|
||||
}else if(s.settings.hardcore.enabled){
|
||||
@@ -236,7 +236,10 @@ export async function applyAuthoritativeAleEvent(store:StateStore,kind:string,pa
|
||||
export async function execute(store:StateStore,input:unknown,config:RuntimeConfig={}) {
|
||||
const a=actionSchema.parse(input);let s=await store.load();
|
||||
const connector=connectors[s.settings.connector](config);
|
||||
if(a.type==='health')return {health:await connector.health()};
|
||||
if(a.type==='health'){
|
||||
if(config.GAME_BACKEND==='cmangos-classic'){const result=await runGM('server info',true,true,config);return {health:{ok:true,detail:result.output}};}
|
||||
return {health:await connector.health()};
|
||||
}
|
||||
const active=Object.values(s.operations).find(o=>Date.now()-o.started<60000);
|
||||
if(active)throw new Error('A realm operation is in progress. Wait for it to finish.');
|
||||
if(Object.keys(s.operations).length){s.operations={};event(s,'error','An interrupted operation expired. Verify live server state before retrying.');}
|
||||
|
||||
Reference in New Issue
Block a user