spacecommands 3.4.8 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/message-handler.js +41 -5
- package/dist/models/user-languages.js +65 -0
- package/package.json +1 -1
package/dist/message-handler.js
CHANGED
|
@@ -37,10 +37,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const languages_1 = __importDefault(require("./models/languages"));
|
|
40
|
+
const user_languages_1 = __importDefault(require("./models/user-languages"));
|
|
40
41
|
const defualtMessages = require('../messages.json');
|
|
41
42
|
class MessageHandler {
|
|
42
43
|
_instance;
|
|
43
44
|
_guildLanguages = new Map(); // <Guild ID, Language>
|
|
45
|
+
_userLanguages = new Map(); // <User ID, Language>
|
|
44
46
|
_languages = [];
|
|
45
47
|
_messages = {};
|
|
46
48
|
constructor(instance, messagePath) {
|
|
@@ -61,6 +63,11 @@ class MessageHandler {
|
|
|
61
63
|
for (const { _id: guildId, language } of results) {
|
|
62
64
|
this._guildLanguages.set(guildId, language);
|
|
63
65
|
}
|
|
66
|
+
const userResults = await user_languages_1.default.find();
|
|
67
|
+
// @ts-ignore
|
|
68
|
+
for (const { _id: userId, language } of userResults) {
|
|
69
|
+
this._userLanguages.set(userId, language);
|
|
70
|
+
}
|
|
64
71
|
}
|
|
65
72
|
})();
|
|
66
73
|
}
|
|
@@ -70,9 +77,38 @@ class MessageHandler {
|
|
|
70
77
|
async setLanguage(guild, language) {
|
|
71
78
|
if (guild) {
|
|
72
79
|
this._guildLanguages.set(guild.id, language);
|
|
80
|
+
if (this._instance.isDBConnected()) {
|
|
81
|
+
await languages_1.default.findOneAndUpdate({
|
|
82
|
+
_id: guild.id,
|
|
83
|
+
}, {
|
|
84
|
+
_id: guild.id,
|
|
85
|
+
language,
|
|
86
|
+
}, {
|
|
87
|
+
upsert: true,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
73
90
|
}
|
|
74
91
|
}
|
|
75
|
-
|
|
92
|
+
async setUserLanguage(user, language) {
|
|
93
|
+
this._userLanguages.set(user.id, language);
|
|
94
|
+
if (this._instance.isDBConnected()) {
|
|
95
|
+
await user_languages_1.default.findOneAndUpdate({
|
|
96
|
+
_id: user.id,
|
|
97
|
+
}, {
|
|
98
|
+
_id: user.id,
|
|
99
|
+
language,
|
|
100
|
+
}, {
|
|
101
|
+
upsert: true,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
getLanguage(guild, user) {
|
|
106
|
+
if (user) {
|
|
107
|
+
const userLang = this._userLanguages.get(user.id);
|
|
108
|
+
if (userLang) {
|
|
109
|
+
return userLang;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
76
112
|
if (guild) {
|
|
77
113
|
const result = this._guildLanguages.get(guild.id);
|
|
78
114
|
if (result) {
|
|
@@ -81,8 +117,8 @@ class MessageHandler {
|
|
|
81
117
|
}
|
|
82
118
|
return this._instance.defaultLanguage;
|
|
83
119
|
}
|
|
84
|
-
get(guild, messageId, args = {}) {
|
|
85
|
-
const language = this.getLanguage(guild);
|
|
120
|
+
get(guild, messageId, args = {}, user) {
|
|
121
|
+
const language = this.getLanguage(guild, user);
|
|
86
122
|
const translations = this._messages[messageId];
|
|
87
123
|
if (!translations) {
|
|
88
124
|
console.error(`SpaceCommands > Could not find the correct message to send for "${messageId}"`);
|
|
@@ -95,8 +131,8 @@ class MessageHandler {
|
|
|
95
131
|
}
|
|
96
132
|
return result;
|
|
97
133
|
}
|
|
98
|
-
getEmbed(guild, embedId, itemId, args = {}) {
|
|
99
|
-
const language = this.getLanguage(guild);
|
|
134
|
+
getEmbed(guild, embedId, itemId, args = {}, user) {
|
|
135
|
+
const language = this.getLanguage(guild, user);
|
|
100
136
|
const items = this._messages[embedId];
|
|
101
137
|
if (!items) {
|
|
102
138
|
console.error(`SpaceCommands > Could not find the correct item to send for "${embedId}" -> "${itemId}"`);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
const supabase_1 = require("../supabase");
|
|
5
|
+
const TABLE_NAME = 'spacecommands_user_languages';
|
|
6
|
+
exports.default = {
|
|
7
|
+
async find(filter = {}) {
|
|
8
|
+
const client = (0, supabase_1.getSupabaseClient)();
|
|
9
|
+
if (!client)
|
|
10
|
+
return [];
|
|
11
|
+
let query = client.from(TABLE_NAME).select('*');
|
|
12
|
+
if (filter._id) {
|
|
13
|
+
query = query.eq('user_id', filter._id);
|
|
14
|
+
}
|
|
15
|
+
const { data, error } = await query;
|
|
16
|
+
if (error) {
|
|
17
|
+
console.error('SpaceCommands > Error fetching user languages:', error);
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
return (data || []).map((row) => ({
|
|
21
|
+
_id: row.user_id,
|
|
22
|
+
language: row.language,
|
|
23
|
+
}));
|
|
24
|
+
},
|
|
25
|
+
async findOne(filter) {
|
|
26
|
+
const client = (0, supabase_1.getSupabaseClient)();
|
|
27
|
+
if (!client)
|
|
28
|
+
return null;
|
|
29
|
+
const { data, error } = await client
|
|
30
|
+
.from(TABLE_NAME)
|
|
31
|
+
.select('*')
|
|
32
|
+
.eq('user_id', filter._id)
|
|
33
|
+
.single();
|
|
34
|
+
if (error) {
|
|
35
|
+
if (error.code === 'PGRST116')
|
|
36
|
+
return null;
|
|
37
|
+
console.error('SpaceCommands > Error finding user language:', error);
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
_id: data.user_id,
|
|
42
|
+
language: data.language,
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
async findOneAndUpdate(filter, update, options = {}) {
|
|
46
|
+
const client = (0, supabase_1.getSupabaseClient)();
|
|
47
|
+
if (!client)
|
|
48
|
+
return null;
|
|
49
|
+
const userId = filter._id;
|
|
50
|
+
const language = update.language || update.$set?.language;
|
|
51
|
+
const { data, error } = await client
|
|
52
|
+
.from(TABLE_NAME)
|
|
53
|
+
.upsert({ user_id: userId, language }, { onConflict: 'user_id' })
|
|
54
|
+
.select()
|
|
55
|
+
.single();
|
|
56
|
+
if (error) {
|
|
57
|
+
console.error('SpaceCommands > Error upserting user language:', error);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
_id: data.user_id,
|
|
62
|
+
language: data.language,
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
};
|