32 lines
891 B
TypeScript
32 lines
891 B
TypeScript
// SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { getGame } from "./helpers";
|
|
|
|
declare global {
|
|
interface FlagConfig {
|
|
ChatMessage: {
|
|
ds4?: {
|
|
flavorData?: Record<string, string | number | null>;
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
export class DS4ChatMessage extends ChatMessage {
|
|
/** @override */
|
|
prepareData(): void {
|
|
super.prepareData();
|
|
if (this.data.flavor) {
|
|
const game = getGame();
|
|
const flavorData = Object.fromEntries(
|
|
Object.entries(this.data.flags.ds4?.flavorData ?? {}).map(([key, value]) => [
|
|
key,
|
|
typeof value === "string" ? game.i18n.localize(value) : value,
|
|
]),
|
|
);
|
|
this.data.flavor = game.i18n.format(this.data.flavor, flavorData);
|
|
}
|
|
}
|
|
}
|