Skip to content

Commit fd376bc

Browse files
committed
Fix Chat Features causing issues on journals
Fix #415
1 parent 0487367 commit fd376bc

File tree

2 files changed

+34
-32
lines changed

2 files changed

+34
-32
lines changed

src/module/hooks.js

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ export default class PolyglotHooks {
2626
static updateActor(actor, data, options, userId) {
2727
if (actor.hasPlayerOwner && actor.testUserPermission(game.user, "OWNER")) {
2828
game.polyglot.updateUserLanguages();
29-
game.polyglot.updateChatMessages();
29+
if (game.polyglot._enableChatFeatures) game.polyglot.updateChatMessages();
3030
}
3131
}
3232

3333
static controlToken() {
3434
game.polyglot.updateUserLanguages();
35-
game.polyglot.updateChatMessages();
35+
if (game.polyglot._enableChatFeatures) game.polyglot.updateChatMessages();
3636
}
3737

3838
/**
@@ -209,31 +209,20 @@ export default class PolyglotHooks {
209209
const isOwnerOrGM = sheet.document?.isOwner || game.user.isGM;
210210
const isEditable = data.editable;
211211
const isTextSheet = sheet instanceof JournalTextPageSheet;
212+
const isJQuery = html instanceof jQuery;
212213

213214
if (isTextSheet && !(sheet.object.parent.isOwner || isOwnerOrGM || isEditable)) {
214215
if (sheet.document.isOwner) game.polyglot.insertHeaderButton(sheet.object.parent.sheet, html);
215216
else game.polyglot.scrambleSpans(sheet, html);
216-
} else if (html.find(".polyglot-journal").length) {
217+
} else if (isJQuery && html.find(".polyglot-journal").length) {
217218
if (isOwnerOrGM && html.find('[data-engine="prosemirror"]').length) game.polyglot.insertHeaderButton(sheet, html);
218219
else if (!(isOwnerOrGM || isEditable)) game.polyglot.scrambleSpans(sheet, html);
220+
} else if (!isJQuery && html.querySelectorAll(".polyglot-journal").length) {
221+
if (isOwnerOrGM && html.querySelectorAll('[data-engine="prosemirror"]').length) game.polyglot.insertHeaderButton(sheet, html);
222+
else if (!(isOwnerOrGM || isEditable)) game.polyglot.scrambleSpansV2(sheet, html);
219223
}
220224
}
221225

222-
/** @see renderDocumentSheet */
223-
static renderActorSheet(sheet, html, data) {
224-
PolyglotHooks.renderDocumentSheet(sheet, html, data);
225-
}
226-
227-
/** @see renderDocumentSheet */
228-
static renderItemSheet(sheet, html, data) {
229-
PolyglotHooks.renderDocumentSheet(sheet, html, data);
230-
}
231-
232-
/** @see renderDocumentSheet */
233-
static renderJournalTextPageSheet(journalTextPageSheet, html, data) {
234-
PolyglotHooks.renderDocumentSheet(journalTextPageSheet, html, data);
235-
}
236-
237226
/**
238227
* Renders a journal entry, adding the scrambling button to its header in case user is the document's owner or a GM.
239228
*
@@ -247,11 +236,6 @@ export default class PolyglotHooks {
247236
}
248237
}
249238

250-
/** @see renderJournalSheet */
251-
static renderStorySheet(sheet, html) {
252-
PolyglotHooks.renderJournalSheet(sheet, html);
253-
}
254-
255239
static getProseMirrorMenuDropDowns(menu, items) {
256240
if ("format" in items) {
257241
if ("format" in items) {

src/module/logic.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,27 @@ export class Polyglot {
1414
}
1515

1616
init() {
17-
if (game.settings.get("polyglot", "enableChatFeatures")) {
17+
this._enableChatFeatures = game.settings.get("polyglot", "enableChatFeatures");
18+
if (this._enableChatFeatures) {
1819
Hooks.on("renderChatLog", PolyglotHooks.renderChatLog);
19-
Hooks.on("updateActor", PolyglotHooks.updateActor);
20-
Hooks.on("controlToken", PolyglotHooks.controlToken);
21-
Hooks.on("updateUser", PolyglotHooks.updateUser);
22-
Hooks.on("updateActiveEffect", PolyglotHooks.updateActiveEffect);
2320
Hooks.on("preCreateChatMessage", PolyglotHooks.preCreateChatMessage);
2421
Hooks.on("renderChatMessageHTML", PolyglotHooks.renderChatMessageHTML);
2522
Hooks.on("createChatMessage", PolyglotHooks.createChatMessage);
2623
Hooks.on("renderActorDirectoryPF2e", PolyglotHooks.renderActorDirectoryPF2e);
2724
Hooks.on("vinoPrepareChatDisplayData", PolyglotHooks.vinoPrepareChatDisplayData);
2825
}
26+
Hooks.on("updateActor", PolyglotHooks.updateActor);
27+
Hooks.on("controlToken", PolyglotHooks.controlToken);
28+
Hooks.on("updateUser", PolyglotHooks.updateUser);
29+
Hooks.on("updateActiveEffect", PolyglotHooks.updateActiveEffect);
30+
Hooks.on("renderDocumentSheetV2", PolyglotHooks.renderDocumentSheet);
2931
Hooks.on("renderDocumentSheet", PolyglotHooks.renderDocumentSheet);
30-
Hooks.on("renderActorSheet", PolyglotHooks.renderActorSheet);
31-
Hooks.on("renderItemSheet", PolyglotHooks.renderItemSheet);
32-
Hooks.on("renderJournalTextPageSheet", PolyglotHooks.renderJournalTextPageSheet);
32+
Hooks.on("renderActorSheet", PolyglotHooks.renderDocumentSheet);
33+
Hooks.on("renderItemSheet", PolyglotHooks.renderDocumentSheet);
34+
Hooks.on("renderJournalTextPageSheet", PolyglotHooks.renderDocumentSheet);
3335
Hooks.on("renderJournalSheet", PolyglotHooks.renderJournalSheet);
34-
Hooks.on("renderStorySheet", PolyglotHooks.renderStorySheet);
36+
Hooks.on("renderStorySheet", PolyglotHooks.renderJournalSheet);
37+
Hooks.on("renderJournalEntryPageSheet", PolyglotHooks.renderDocumentSheet);
3538
Hooks.on("getProseMirrorMenuDropDowns", PolyglotHooks.getProseMirrorMenuDropDowns);
3639
Polyglot.handleTinyMCE();
3740

@@ -506,6 +509,21 @@ export class Polyglot {
506509
});
507510
}
508511

512+
scrambleSpansV2(document, html) {
513+
html.querySelectorAll("span.polyglot-journal").forEach((e) => {
514+
const lang = e.dataset.language;
515+
if (!lang) return;
516+
const conditions = !game.polyglot._isTruespeech(lang)
517+
&& !game.polyglot.isLanguageKnown(game.polyglot.comprehendLanguages)
518+
&& !game.polyglot.languageProvider.conditions(lang);
519+
if (conditions) {
520+
e.dataset.tooltip = "????";
521+
e.textContent = game.polyglot.scrambleString(e.textContent, document.id, lang);
522+
e.style.font = game.polyglot._getFontStyle(lang);
523+
}
524+
});
525+
}
526+
509527
knows(lang) {
510528
return this.knownLanguages.has(lang);
511529
}

0 commit comments

Comments
 (0)