diff --git a/src/client/Main.ts b/src/client/Main.ts index d78d431f3..e1a72f887 100644 --- a/src/client/Main.ts +++ b/src/client/Main.ts @@ -182,13 +182,13 @@ class Client { const territoryModal = document.querySelector( "territory-patterns-modal", ) as TerritoryPatternsModal; - const tpButton = document.getElementById( + const patternButton = document.getElementById( "territory-patterns-input-preview-button", ); territoryModal instanceof TerritoryPatternsModal; - if (tpButton === null) + if (patternButton === null) throw new Error("territory-patterns-input-preview-button"); - territoryModal.previewButton = tpButton; + territoryModal.previewButton = patternButton; territoryModal.updatePreview(); territoryModal.resizeObserver = new ResizeObserver((entries) => { for (const entry of entries) { @@ -197,7 +197,7 @@ class Client { } } }); - tpButton.addEventListener("click", () => { + patternButton.addEventListener("click", () => { territoryModal.open(); }); diff --git a/src/client/TerritoryPatternsModal.ts b/src/client/TerritoryPatternsModal.ts index b7b3938a8..9984994cd 100644 --- a/src/client/TerritoryPatternsModal.ts +++ b/src/client/TerritoryPatternsModal.ts @@ -64,6 +64,11 @@ export class TerritoryPatternsModal extends LitElement { async onUserMe(userMeResponse: UserMeResponse | null) { this.patterns = await patterns(userMeResponse); + const p = this.patterns.find((p) => p.name === this.selectedPattern); + if (p === undefined || p.lockedReason || p.notShown) { + console.warn("selected pattern is locked or not shown, resetting"); + this.selectPattern(undefined); + } this.me = userMeResponse; this.requestUpdate(); } diff --git a/src/server/Privilege.ts b/src/server/Privilege.ts index bc7125a3d..f59aff7e6 100644 --- a/src/server/Privilege.ts +++ b/src/server/Privilege.ts @@ -40,7 +40,7 @@ export class PrivilegeChecker { if ( roles !== undefined && roles.some((role) => - this.cosmetics.role_groups[groupName].includes(role), + this.cosmetics.role_groups[groupName]?.includes(role), ) ) { // Player is in a role group for this pattern