mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-13 15:38:59 +00:00
Move translateMessage to libs
This commit is contained in:
parent
8c59420d4e
commit
28bf024990
2 changed files with 85 additions and 81 deletions
|
|
@ -1,6 +1,10 @@
|
||||||
import { chatModel as Chat } from '../../models/message';
|
import { chatModel as Chat } from '../../models/message';
|
||||||
|
import shared from '../../../common';
|
||||||
|
import _ from 'lodash';
|
||||||
import { MAX_CHAT_COUNT, MAX_SUBBED_GROUP_CHAT_COUNT } from '../../models/group';
|
import { MAX_CHAT_COUNT, MAX_SUBBED_GROUP_CHAT_COUNT } from '../../models/group';
|
||||||
|
|
||||||
|
const questScrolls = shared.content.quests;
|
||||||
|
|
||||||
// @TODO: Don't use this method when the group can be saved.
|
// @TODO: Don't use this method when the group can be saved.
|
||||||
export async function getGroupChat (group) {
|
export async function getGroupChat (group) {
|
||||||
const maxChatCount = group.isSubscribed() ? MAX_SUBBED_GROUP_CHAT_COUNT : MAX_CHAT_COUNT;
|
const maxChatCount = group.isSubscribed() ? MAX_SUBBED_GROUP_CHAT_COUNT : MAX_CHAT_COUNT;
|
||||||
|
|
@ -22,3 +26,82 @@ export async function getGroupChat (group) {
|
||||||
return previous;
|
return previous;
|
||||||
}, []);
|
}, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function translateMessage (lang, info) {
|
||||||
|
let msg;
|
||||||
|
let foundText = '';
|
||||||
|
let spells = shared.content.spells;
|
||||||
|
let quests = shared.content.quests;
|
||||||
|
|
||||||
|
switch (info.type) {
|
||||||
|
case 'quest_start':
|
||||||
|
msg = `\`${shared.i18n.t('chatQuestStarted', {questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'boss_damage':
|
||||||
|
msg = `\`${shared.i18n.t('chatBossDamage', {username: info.user, bossName: questScrolls[info.quest].boss.name(lang), userDamage: info.userDamage, bossDamage: info.bossDamage}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'boss_dont_attack':
|
||||||
|
msg = `\`${shared.i18n.t('chatBossDontAttack', {username: info.user, bossName: questScrolls[info.quest].boss.name(lang), userDamage: info.userDamage}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'boss_rage':
|
||||||
|
msg = `\`${questScrolls[info.quest].boss.rage.effect(lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'boss_defeated':
|
||||||
|
msg = `\`${shared.i18n.t('chatBossDefeated', {bossName: questScrolls[info.quest].boss.name(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'user_found_items':
|
||||||
|
foundText = _.reduce(info.items, (m, v, k) => {
|
||||||
|
m.push(`${v} ${questScrolls[info.quest].collect[k].text(lang)}`);
|
||||||
|
return m;
|
||||||
|
}, []).join(', ');
|
||||||
|
msg = `\`${shared.i18n.t('chatFindItems', {username: info.user, items: foundText}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'all_items_found':
|
||||||
|
msg = `\`${shared.i18n.t('chatItemQuestFinish', lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'spell_cast_party':
|
||||||
|
msg = `\`${shared.i18n.t('chatCastSpellParty', {username: info.user, spell: spells[info.class][info.spell].text(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'spell_cast_user':
|
||||||
|
msg = `\`${shared.i18n.t('chatCastSpellUser', {username: info.user, spell: spells[info.class][info.spell].text(lang), target: info.target}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'quest_cancel':
|
||||||
|
msg = `\`${shared.i18n.t('chatQuestCancelled', {username: info.user, questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'quest_abort':
|
||||||
|
msg = `\`${shared.i18n.t('chatQuestAborted', {username: info.user, questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'tavern_quest_completed':
|
||||||
|
msg = `\`${quests[info.quest].completionChat(lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'tavern_boss_rage_tired':
|
||||||
|
msg = `\`${shared.i18n.t('tavernBossTired', {rageName: quests[info.quest].boss.rage.title(lang), bossName: quests[info.quest].boss.name(lang)}, lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'tavern_boss_rage':
|
||||||
|
msg = `\`${quests[info.quest].boss.rage[info.scene](lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'tavern_boss_desperation':
|
||||||
|
msg = `\`${quests[info.quest].boss.desperation.text(lang)}\``;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'claim_task':
|
||||||
|
msg = `${shared.i18n.t('userIsClamingTask', {username: info.user, task: info.task}, lang)}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ import {
|
||||||
} from './subscriptionPlan';
|
} from './subscriptionPlan';
|
||||||
import amazonPayments from '../libs/payments/amazon';
|
import amazonPayments from '../libs/payments/amazon';
|
||||||
import stripePayments from '../libs/payments/stripe';
|
import stripePayments from '../libs/payments/stripe';
|
||||||
import { getGroupChat } from '../libs/chat/group-chat';
|
import { getGroupChat, translateMessage } from '../libs/chat/group-chat';
|
||||||
import { model as UserNotification } from './userNotification';
|
import { model as UserNotification } from './userNotification';
|
||||||
|
|
||||||
const questScrolls = shared.content.quests;
|
const questScrolls = shared.content.quests;
|
||||||
|
|
@ -333,85 +333,6 @@ schema.statics.getGroups = async function getGroups (options = {}) {
|
||||||
return groupsArray;
|
return groupsArray;
|
||||||
};
|
};
|
||||||
|
|
||||||
function _translateMessage (lang, info) {
|
|
||||||
let msg;
|
|
||||||
let foundText = '';
|
|
||||||
let spells = shared.content.spells;
|
|
||||||
let quests = shared.content.quests;
|
|
||||||
|
|
||||||
switch (info.type) {
|
|
||||||
case 'quest_start':
|
|
||||||
msg = `\`${shared.i18n.t('chatQuestStarted', {questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'boss_damage':
|
|
||||||
msg = `\`${shared.i18n.t('chatBossDamage', {username: info.user, bossName: questScrolls[info.quest].boss.name(lang), userDamage: info.userDamage, bossDamage: info.bossDamage}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'boss_dont_attack':
|
|
||||||
msg = `\`${shared.i18n.t('chatBossDontAttack', {username: info.user, bossName: questScrolls[info.quest].boss.name(lang), userDamage: info.userDamage}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'boss_rage':
|
|
||||||
msg = `\`${questScrolls[info.quest].boss.rage.effect(lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'boss_defeated':
|
|
||||||
msg = `\`${shared.i18n.t('chatBossDefeated', {bossName: questScrolls[info.quest].boss.name(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'user_found_items':
|
|
||||||
foundText = _.reduce(info.items, (m, v, k) => {
|
|
||||||
m.push(`${v} ${questScrolls[info.quest].collect[k].text(lang)}`);
|
|
||||||
return m;
|
|
||||||
}, []).join(', ');
|
|
||||||
msg = `\`${shared.i18n.t('chatFindItems', {username: info.user, items: foundText}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'all_items_found':
|
|
||||||
msg = `\`${shared.i18n.t('chatItemQuestFinish', lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'spell_cast_party':
|
|
||||||
msg = `\`${shared.i18n.t('chatCastSpellParty', {username: info.user, spell: spells[info.class][info.spell].text(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'spell_cast_user':
|
|
||||||
msg = `\`${shared.i18n.t('chatCastSpellUser', {username: info.user, spell: spells[info.class][info.spell].text(lang), target: info.target}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'quest_cancel':
|
|
||||||
msg = `\`${shared.i18n.t('chatQuestCancelled', {username: info.user, questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'quest_abort':
|
|
||||||
msg = `\`${shared.i18n.t('chatQuestAborted', {username: info.user, questName: questScrolls[info.quest].text(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'tavern_quest_completed':
|
|
||||||
msg = `\`${quests[info.quest].completionChat(lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'tavern_boss_rage_tired':
|
|
||||||
msg = `\`${shared.i18n.t('tavernBossTired', {rageName: quests[info.quest].boss.rage.title(lang), bossName: quests[info.quest].boss.name(lang)}, lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'tavern_boss_rage':
|
|
||||||
msg = `\`${quests[info.quest].boss.rage[info.scene](lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'tavern_boss_desperation':
|
|
||||||
msg = `\`${quests[info.quest].boss.desperation.text(lang)}\``;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'claim_task':
|
|
||||||
msg = `${shared.i18n.t('userIsClamingTask', {username: info.user, task: info.task}, lang)}`;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
// When converting to json remove chat messages with more than 1 flag and remove all flags info
|
// When converting to json remove chat messages with more than 1 flag and remove all flags info
|
||||||
// unless the user is an admin or said chat is posted by that user
|
// unless the user is an admin or said chat is posted by that user
|
||||||
// Not putting into toJSON because there we can't access user
|
// Not putting into toJSON because there we can't access user
|
||||||
|
|
@ -536,7 +457,7 @@ schema.methods.translateSystemMessages = function translateSystemMessages (user)
|
||||||
|
|
||||||
this.chat.forEach((chat, i, chatArray) => {
|
this.chat.forEach((chat, i, chatArray) => {
|
||||||
if (!_.isEmpty(chat.info)) {
|
if (!_.isEmpty(chat.info)) {
|
||||||
chatArray[i].text = _translateMessage(lang, chat.info);
|
chatArray[i].text = translateMessage(lang, chat.info);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue