mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 13:17:24 +01:00
Update to new method for fcm (#15238)
* begin moving to new fcm library * Add error handling * Add opening notification to correct screen * Fix tests and make async * lint fix * Rename pushNotificationstest..js to pushNotifications.test.js * fix(potions): remove Fungi Potion time banner * 5.24.3 * update(content): add 2024-06 content prebuild (#15231) * update sprites * add 2024-06 content * add 2024-06 enchanted armoire items * update sprites * update sprites * fix errors found in testing * Fix liveliness probes being rate limited (#15236) * Do not rate limit any liveliness probes * update example config * Translated using Weblate (German) Currently translated at 96.2% (181 of 188 strings) Translated using Weblate (Japanese) Currently translated at 99.4% (769 of 773 strings) Translated using Weblate (German) Currently translated at 93.6% (176 of 188 strings) Translated using Weblate (Japanese) Currently translated at 96.2% (2972 of 3089 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (232 of 232 strings) Translated using Weblate (Japanese) Currently translated at 96.8% (841 of 868 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (94 of 94 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (German) Currently translated at 86.7% (163 of 188 strings) Translated using Weblate (German) Currently translated at 85.1% (160 of 188 strings) Translated using Weblate (German) Currently translated at 84.0% (158 of 188 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (94 of 94 strings) Translated using Weblate (German) Currently translated at 83.5% (157 of 188 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (German) Currently translated at 82.9% (156 of 188 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (German) Currently translated at 81.9% (154 of 188 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (8 of 8 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (8 of 8 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (German) Currently translated at 79.2% (149 of 188 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (189 of 189 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (8 of 8 strings) Translated using Weblate (German) Currently translated at 90.6% (2799 of 3089 strings) Translated using Weblate (German) Currently translated at 77.6% (146 of 188 strings) Translated using Weblate (German) Currently translated at 90.5% (2797 of 3089 strings) Translated using Weblate (German) Currently translated at 90.4% (2794 of 3089 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (German) Currently translated at 90.1% (2786 of 3089 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (German) Currently translated at 77.1% (145 of 188 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.7% (763 of 773 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (German) Currently translated at 90.0% (2782 of 3089 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (773 of 773 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (378 of 378 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (259 of 259 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (259 of 259 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (239 of 239 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (French) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (German) Currently translated at 75.0% (141 of 188 strings) Translated using Weblate (Spanish) Currently translated at 99.0% (766 of 773 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (189 of 189 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (Japanese) Currently translated at 98.8% (764 of 773 strings) Translated using Weblate (Japanese) Currently translated at 99.6% (258 of 259 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (378 of 378 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (140 of 140 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (Ukrainian) Currently translated at 62.5% (1931 of 3089 strings) Translated using Weblate (German) Currently translated at 89.8% (2777 of 3089 strings) Translated using Weblate (French) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (762 of 773 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (French) Currently translated at 82.9% (156 of 188 strings) Translated using Weblate (German) Currently translated at 93.0% (241 of 259 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (8 of 8 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (427 of 427 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (762 of 773 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Japanese) Currently translated at 99.2% (257 of 259 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (762 of 773 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (868 of 868 strings) Translated using Weblate (German) Currently translated at 92.2% (239 of 259 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (286 of 286 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (239 of 239 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (188 of 188 strings) Translated using Weblate (German) Currently translated at 91.8% (238 of 259 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (762 of 773 strings) Translated using Weblate (German) Currently translated at 90.3% (234 of 259 strings) Co-authored-by: Finrod <963505255@qq.com> Co-authored-by: Jaime Martí <jaumemarti77@icloud.com> Co-authored-by: Kem Kembo <medamamef@gmail.com> Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com> Co-authored-by: TOMA Mitsuru <toma0001@gmail.com> Co-authored-by: Tetiana <merekka13@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Weblate <noreply@weblate.org> Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/character/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/content/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/inventory/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/es/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/overview/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/quests/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/de/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/uk/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/tasks/zh_Hans/ Translation: Habitica/Achievements Translation: Habitica/Backgrounds Translation: Habitica/Character Translation: Habitica/Content Translation: Habitica/Faq Translation: Habitica/Gear Translation: Habitica/Generic Translation: Habitica/Groups Translation: Habitica/Inventory Translation: Habitica/Limited Translation: Habitica/Npc Translation: Habitica/Overview Translation: Habitica/Pets Translation: Habitica/Quests Translation: Habitica/Questscontent Translation: Habitica/Settings Translation: Habitica/Subscriber Translation: Habitica/Tasks * 5.25.0 * Fix dockerfile (#15241) * Fix issue with l4p not resetting properly (#15240) * actually clear out seeking field on user. Even when creating a party * Add tests to ensure party.seeking is cleared * fix(lint): don't assign unused const --------- Co-authored-by: Sabe Jones <sabe@habitica.com> --------- Co-authored-by: Sabe Jones <sabe@habitica.com> Co-authored-by: Natalie <78037386+CuriousMagpie@users.noreply.github.com> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: Finrod <963505255@qq.com> Co-authored-by: Jaime Martí <jaumemarti77@icloud.com> Co-authored-by: Kem Kembo <medamamef@gmail.com> Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com> Co-authored-by: TOMA Mitsuru <toma0001@gmail.com> Co-authored-by: Tetiana <merekka13@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Rafał Jagielski <jagielski.rafal.uwm@gmail.com>
This commit is contained in:
@@ -526,7 +526,7 @@ schema.methods.getMemberCount = async function getMemberCount () {
|
||||
return User.countDocuments(query).exec();
|
||||
};
|
||||
|
||||
schema.methods.sendChat = function sendChat (options = {}) {
|
||||
schema.methods.sendChat = async function sendChat (options = {}) {
|
||||
const {
|
||||
message, user, metaData,
|
||||
client, flagCount = 0, info = {},
|
||||
@@ -596,7 +596,7 @@ schema.methods.sendChat = function sendChat (options = {}) {
|
||||
sendChatPushNotifications(user, this, newChatMessage, mentions, translate);
|
||||
}
|
||||
if (mentionedMembers) {
|
||||
mentionedMembers.forEach(member => {
|
||||
await mentionedMembers.forEach(async member => {
|
||||
if (member._id === user._id) return;
|
||||
const pushNotifPrefs = member.preferences.pushNotifications;
|
||||
if (this.type === 'party') {
|
||||
@@ -617,7 +617,7 @@ schema.methods.sendChat = function sendChat (options = {}) {
|
||||
}
|
||||
|
||||
if (newChatMessage.unformattedText) {
|
||||
sendPushNotification(member, {
|
||||
await sendPushNotification(member, {
|
||||
identifier: 'chatMention',
|
||||
title: `${user.profile.name} mentioned you in ${this.name}`,
|
||||
message: newChatMessage.unformattedText,
|
||||
@@ -751,7 +751,7 @@ schema.methods.startQuest = async function startQuest (user) {
|
||||
_id: { $in: nonMembers },
|
||||
}, _cleanQuestParty()).exec();
|
||||
|
||||
const newMessage = this.sendChat({
|
||||
const newMessage = await this.sendChat({
|
||||
message: `\`${shared.i18n.t('chatQuestStarted', { questName: quest.text('en') }, 'en')}\``,
|
||||
metaData: {
|
||||
participatingMembers: this.getParticipatingQuestMembers().join(', '),
|
||||
@@ -766,7 +766,7 @@ schema.methods.startQuest = async function startQuest (user) {
|
||||
const membersToEmail = [];
|
||||
|
||||
// send notifications and webhooks in the background without blocking
|
||||
members.forEach(member => {
|
||||
await members.forEach(async member => {
|
||||
if (member._id !== user._id) {
|
||||
// send push notifications and filter users that disabled emails
|
||||
if (member.preferences.emailNotifications.questStarted !== false) {
|
||||
@@ -776,7 +776,7 @@ schema.methods.startQuest = async function startQuest (user) {
|
||||
// send push notifications and filter users that disabled emails
|
||||
if (member.preferences.pushNotifications.questStarted !== false) {
|
||||
const memberLang = member.preferences.language;
|
||||
sendPushNotification(member, {
|
||||
await sendPushNotification(member, {
|
||||
title: quest.text(memberLang),
|
||||
message: shared.i18n.t('questStarted', memberLang),
|
||||
identifier: 'questStarted',
|
||||
@@ -1021,7 +1021,7 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
|
||||
group.quest.progress.hp -= progress.up;
|
||||
if (CRON_SAFE_MODE || CRON_SEMI_SAFE_MODE) {
|
||||
const groupMessage = group.sendChat({
|
||||
const groupMessage = await group.sendChat({
|
||||
message: `\`${shared.i18n.t('chatBossDontAttack', { bossName: quest.boss.name('en') }, 'en')}\``,
|
||||
info: {
|
||||
type: 'boss_dont_attack',
|
||||
@@ -1032,7 +1032,7 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
});
|
||||
promises.push(groupMessage.save());
|
||||
} else {
|
||||
const groupMessage = group.sendChat({
|
||||
const groupMessage = await group.sendChat({
|
||||
message: `\`${shared.i18n.t('chatBossDamage', {
|
||||
username: user.profile.name, bossName: quest.boss.name('en'), userDamage: progress.up.toFixed(1), bossDamage: Math.abs(down).toFixed(1),
|
||||
}, user.preferences.language)}\``,
|
||||
@@ -1051,7 +1051,7 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
if (quest.boss.rage) {
|
||||
group.quest.progress.rage += Math.abs(down);
|
||||
if (group.quest.progress.rage >= quest.boss.rage.value) {
|
||||
const rageMessage = group.sendChat({
|
||||
const rageMessage = await group.sendChat({
|
||||
message: quest.boss.rage.effect('en'),
|
||||
info: {
|
||||
type: 'boss_rage',
|
||||
@@ -1094,7 +1094,7 @@ schema.methods._processBossQuest = async function processBossQuest (options) {
|
||||
|
||||
// Boss slain, finish quest
|
||||
if (group.quest.progress.hp <= 0) {
|
||||
const questFinishChat = group.sendChat({
|
||||
const questFinishChat = await group.sendChat({
|
||||
message: `\`${shared.i18n.t('chatBossDefeated', { bossName: quest.boss.name('en') }, 'en')}\``,
|
||||
info: {
|
||||
type: 'boss_defeated',
|
||||
@@ -1148,7 +1148,7 @@ schema.methods._processCollectionQuest = async function processCollectionQuest (
|
||||
}, []);
|
||||
|
||||
foundText = foundText.join(', ');
|
||||
const foundChat = group.sendChat({
|
||||
const foundChat = await group.sendChat({
|
||||
message: `\`${shared.i18n.t('chatFindItems', { username: user.profile.name, items: foundText }, 'en')}\``,
|
||||
info: {
|
||||
type: 'user_found_items',
|
||||
@@ -1164,7 +1164,7 @@ schema.methods._processCollectionQuest = async function processCollectionQuest (
|
||||
const questFinished = collectedItems.length === remainingItems.length;
|
||||
if (questFinished) {
|
||||
await group.finishQuest(quest);
|
||||
const allItemsFoundChat = group.sendChat({
|
||||
const allItemsFoundChat = await group.sendChat({
|
||||
message: `\`${shared.i18n.t('chatItemQuestFinish', 'en')}\``,
|
||||
info: {
|
||||
type: 'all_items_found',
|
||||
@@ -1236,7 +1236,7 @@ schema.statics.tavernBoss = async function tavernBoss (user, progress) {
|
||||
const chatPromises = [];
|
||||
|
||||
if (tavern.quest.progress.hp <= 0) {
|
||||
const completeChat = tavern.sendChat({
|
||||
const completeChat = await tavern.sendChat({
|
||||
message: quest.completionChat('en'),
|
||||
info: {
|
||||
type: 'tavern_quest_completed',
|
||||
@@ -1273,7 +1273,7 @@ schema.statics.tavernBoss = async function tavernBoss (user, progress) {
|
||||
}
|
||||
|
||||
if (!scene) {
|
||||
const tiredChat = tavern.sendChat({
|
||||
const tiredChat = await tavern.sendChat({
|
||||
message: `\`${shared.i18n.t('tavernBossTired', { rageName: quest.boss.rage.title('en'), bossName: quest.boss.name('en') }, 'en')}\``,
|
||||
info: {
|
||||
type: 'tavern_boss_rage_tired',
|
||||
@@ -1283,7 +1283,7 @@ schema.statics.tavernBoss = async function tavernBoss (user, progress) {
|
||||
chatPromises.push(tiredChat.save());
|
||||
tavern.quest.progress.rage = 0; // quest.boss.rage.value;
|
||||
} else {
|
||||
const rageChat = tavern.sendChat({
|
||||
const rageChat = await tavern.sendChat({
|
||||
message: quest.boss.rage[scene]('en'),
|
||||
info: {
|
||||
type: 'tavern_boss_rage',
|
||||
@@ -1306,7 +1306,7 @@ schema.statics.tavernBoss = async function tavernBoss (user, progress) {
|
||||
&& tavern.quest.progress.hp < quest.boss.desperation.threshold
|
||||
&& !tavern.quest.extra.desperate
|
||||
) {
|
||||
const progressChat = tavern.sendChat({
|
||||
const progressChat = await tavern.sendChat({
|
||||
message: quest.boss.desperation.text('en'),
|
||||
info: {
|
||||
type: 'tavern_boss_desperation',
|
||||
|
||||
Reference in New Issue
Block a user