diff --git a/server/traits/informed.trait.js b/server/traits/informed.trait.js index 5906b0f..169b9f7 100644 --- a/server/traits/informed.trait.js +++ b/server/traits/informed.trait.js @@ -140,9 +140,14 @@ export class Informed extends decorate(Trait) { const parts = removal.get('parts'); const layerId = parts[3]; const uuid = parts[5]; - this._rememberedEntities[uuid] = state.getIn( + const remembered = state.getIn( ['room', 'layers', layerId, 'entityList', uuid] ); + // Actually destroyed? + if (!remembered) { + return; + } + this._rememberedEntities[uuid] = remembered; // Add overrides. const overrides = this.entityOverrides( removal.get('path'), @@ -155,7 +160,12 @@ export class Informed extends decorate(Trait) { }); // Remove all removes. return steps.filter((step) => { - return !isRemove(step); + if (!isRemove(step)) { + return true; + } + const parts = step.get('parts'); + const uuid = parts[5]; + return !(uuid in this._rememberedEntities); }); }