Add locale cmd, new lines and change User Agent

This commit is contained in:
Wessel T
2019-02-03 15:01:51 +01:00
parent 67cebb07a6
commit ebfcfdf76e
9 changed files with 203 additions and 11 deletions

View File

@@ -1,18 +1,19 @@
translation :
code : 'en_us' # Language code
flag : '🇺🇸' # Language flag
full : 'English (United States)' # Full language name in english
full : 'English' # Full language name in english
orig : 'English (United States)' # Full language name in your language
progress : 100 # Progression of the translation (%)
translator : # Your information (can leave fields empty)
email : 'discord@go2it.eu'
website : 'https://wessel.meek.moe'
email : 'discord@go2it.eu' # Optional
website : 'https://wessel.meek.moe' # Optional
discord :
name : 'Wesselgame'
userid : '107130754189766656'
discrim: '0498'
name : 'Wesselgame' # Required, can be set to "Clyde"
userid : '107130754189766656' # Required, can be set to "1"
discrim: '0498' # Required, can be set to "0001"
error :
- '$[author:mention] **>** An error occured while executing this command'
- '$[author:mention] **>** An error occurred while executing this command'
- 'If this problem keeps occurring, consider joining ***https://discord.gg/SV7DAE9*** and posting your problem there'
- '```ini'
- '[ Error Information ]'
@@ -21,6 +22,24 @@ error :
- '```'
cooldown: '$[emoji#0] $[author:mention] **>** This command is on cooldown for **$[cooldown:left]**'
core :
locale :
dupe : '$[emoji#0] Your locale is already set to `$[uLocale:code]`'
gdupe : '$[emoji#1] The guild''s locale is already set to `$[gLocale:code]`'
list :
- '$[emoji#2] **>** Your current locale is `$[uLocale:code]`'
- '$[emoji#3] **>** The guild''s locale is `$[gLocale:code]`'
- ''
- '$[emoji#3] **Available locales**:'
- '$[locale:map]'
- ''
- 'Type `$[locale:changeCmd]` to update your/the guild''s locale'
- 'If you want to help translate wump, you can join my [Discord](https://discord.gg/SV7DAE9) and create a pull request on my [GitHub](https://github.com/PassTheWessel/wump/compare)'
gchanged: '$[emoji#4] The guild''s locale changed to `$[gLocale:code]`'
changed : '$[emoji#4] Your locale has changed to `$[uLocale:code]`'
invalid : '$[emoji#5] The locale you provided isn''t a valid locale'
gperms : '$[emoji#6] You''re missing permissions in order to execute this command (`MANAGE_GUILD`)'
util :
ping :
busy : '$[emoji#0] Pinging...'

View File

@@ -0,0 +1,98 @@
translation :
code : 'nl' # Language code
flag : '🇳🇱' # Language flag
full : 'Dutch' # Full language name in english
orig : 'Nederlands' # Full language name in your language
progress : 100 # Progression of the translation (%)
translator : # Your information (can leave fields empty)
email : 'discord@go2it.eu' # Optional
website : 'https://wessel.meek.moe' # Optional
discord :
name : 'Wesselgame' # Required, can be set to "Clyde"
userid : '107130754189766656' # Required, can be set to "1"
discrim: '0498' # Required, can be set to "0001"
error :
- '$[author:mention] **>** Er is een fout opgetreden tijdens het uitvoeren van dit commando'
- 'Als dit probleem zich blijft voordoen, kunt u overwegen lid te worden van *** https: //discord.gg/SV7DAE9*** en uw probleem daar te plaatsen'
- '```ini'
- '[ Fout Informatie ]'
- 'Code = "$[err:code]"'
- 'Bericht = "$[err:message]"'
- '```'
cooldown: '$[emoji#0] $[author:mention] **>** Dit commando is op cooldown voor **$[cooldown:left]**'
core :
locale :
dupe : '$[emoji#0] Uw landinstelling is al ingesteld op `$[uLocale:code]`'
gdupe : '$[emoji#1] The guild''s locale is already set to `$[gLocale:code]`'
list :
- '$[emoji#2] **>** Uw huidige landinstelling is `$[uLocale:code]`'
- '$[emoji#3] **>** De landinstelling van de gilde is `$[gLocale:code]`'
- ''
- '$[emoji#4] **Beschikbare talen**:'
- '$[locale:map]'
- ''
- 'Typ `$[locale:changeCmd]` om uw/de gilde zijn landinstelling bij te werken'
- 'Als u wilt helpen met het vertalen van wump, kunt u zij aansluiten bij mijn [Discord](https://discord.gg/SV7DAE9) en een pull request op [GitHub](https://github.com/PassTheWessel/wump/compare) te maken'
changed : '$[emoji#5] Uw landinstelling is veranderd naar `$[uLocale:code]`'
gchanged: '$[emoji#6] De landinstelling van de gilde is veranderd naar `$[gLocale:code]`'
invalid : '$[emoji#7] De landinstelling dat u heeft aangegeven is geen geldige landinstelling'
gperms : '$[emoji#8] U heeft onvoldoende rechten om dit commando uit te voeren (`MANAGE_GUILD`)'
util :
ping :
busy : '$[emoji#0] Pingen...'
health :
- 'Onbekend'
- 'Goed'
- 'Oke'
- 'Slecht'
result :
- '$[emoji#2] **Rondvaart**: $[roundtrip]ms'
- '$[emoji#1] **Hartslag**: $[latency]ms'
- '$[emoji#3] **Gezondheid**: $[health]'
math :
busy : '$[emoji#0] Aam het berekenen, dit kan enige tijd duren...'
blocked: '<geblokkeerd> De methode "$[math:function]" is om veiligheidsredenen uitgeschakeld <geblokkeerd>'
snipe :
fail : '$[emoji#0] Geen snipebare berichten gevonden'
footer : 'Sniped door $[author:tag] ($[author:id])'
info :
stats :
fetching: '$[emoji#0] Statistieken aan het ophalen, dit kan enige tijd duren...'
commands:
multi :
- '$[emoji#0] Het voorvoegsel voor **$[guild:name]** is `$[guild:prefix]`'
- '$[emoji#1] typ `$[guild:prefix]command <command:str>` voor meer informatie'
- '$[emoji#2] **Links**: [`Uitnodiging`]($[bot:invite]) **|** [`Ondersteuning`](https://discord.gg/SV7DAE9) **|** [`GitHub`](https://github.com/PassTheWessel/wump) **|** [`Patreon`](https://patreon.com/wessel)'
single:
- '**Naam**: $[command:name]'
- '**Syntaxis**: $[command:syntax]'
- '**Aliassen**: $[command:aliases]'
- '**Cooldown**: $[command:cooldown#formatted]'
- '**Argumenten**: $[command:arguments]'
fields:
- 'Informatie'
- 'Plaatjes'
- 'Overig'
- 'Ontwikkelaar'
image:
fetching : '$[emoji#0] Een willekeurig plaatje aan het ophalen, dit kan enige tijd duren...'
failed_cache: 'Kliek hier als het plaatje niet is geladen'
developer:
echo : '$[emoji#0] Ongeldig bericht om te echoën'
eval :
args : '$[emoji#0] Ongeldig codefragment om te evalueren'
busy : '$[emoji#1] Aan het evalueren, Dit kan enige tijd duren...'
silent: '$[emoji#2] Codefragment stil uitgevoerd'
types :
- 'geslaagd'
- 'mislukt'
result:
- '$[emoji#3] **Resultaat** (`$[result:type]`):'
- '```js'
- '$[result:message]'
- '```'

View File

@@ -0,0 +1,71 @@
const { DiscordCommand } = require('../../../core');
const larg = require('larg');
module.exports = class Locale extends DiscordCommand {
constructor(bot) {
super(bot, {
name : 'locale',
syntax : 'locale <locale:code> <-u|-g>',
aliases : [],
argument : [ '-<u|g>', '<locale:code' ],
description : 'Change your locale',
hidden : false,
enabled : true,
cooldown : 1000,
category : 'Core',
ownerOnly : false,
guildOnly : false,
permissions : [ 'embedLinks' ]
});
}
async execute(msg, args, user, guild) {
if (args.join(' ').includes('-u') || args.join(' ').includes('--user')) {
for (let i = 0; i < args.length; i++) !this.bot.locales.has(args[i]) ? args.splice(i, 1) : undefined;
if (!this.bot.locales.has(args[0])) return msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['invalid']));
if (user.locale === args[0]) return msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['dupe'], { uLocale: user.locale }));
this.bot.m.connection.collection('dUsers').findOneAndUpdate({ 'userId': user.userId }, { $set: { locale: args[0] } }, (err) => { if (err) throw err; });
this.bot.cache.get('users').some((v, _) => { if (v['userId'] === msg.author.id) this.bot.cache.get('users').splice(_, 1); });
msg.channel.createMessage(this.localize(this.bot.locales.get(args[0])['core']['locale']['changed'], { uLocale: args[0] }));
} else if (args.join(' ').includes('-g') || args.join(' ').includes('--guild')) {
for (let i = 0; i < args.length; i++) !this.bot.locales.has(args[i]) ? args.splice(i, 1) : undefined;
if (!msg.channel.permissionsOf(msg.author.id).has('manageGuild')) return msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['gperms']));
if (!this.bot.locales.has(args[0])) return msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['invalid']));
if (guild.locale === args[0]) return msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['gdupe'], { gLocale: guild.locale }));
this.bot.m.connection.collection('dGuilds').findOneAndUpdate({ 'guildId': guild.guildId }, { $set: { locale: args[0] } }, (err, d) => { if (err) throw err; });
this.bot.cache.get('guilds').some((v, _) => { if (v['guildId'] === msg.channel.guild.id) this.bot.cache.get('guilds').splice(_, 1); });
msg.channel.createMessage(this.localize(msg.author.locale['core']['locale']['gchanged'], { gLocale: args[0] }));
} else {
return msg.channel.createMessage({
embed: {
description: this.localize(msg.author.locale['core']['locale']['list'].join('\n'), { uLocale: user.locale || 'en_us', gLocale: guild.locale || 'en_us' })
}
});
}
}
localize(msg, extData) {
if (!msg) return '';
if (extData && extData.uLocale) msg = msg.replace(/\$\[uLocale:code]/g, extData.uLocale);
if (extData && extData.gLocale) msg = msg.replace(/\$\[gLocale:code]/g, extData.gLocale);
return msg
.replace(/\$\[emoji#0]/g, this.bot.emote('core', 'locale', '0'))
.replace(/\$\[emoji#1]/g, this.bot.emote('core', 'locale', '1'))
.replace(/\$\[emoji#2]/g, this.bot.emote('core', 'locale', '2'))
.replace(/\$\[emoji#3]/g, this.bot.emote('core', 'locale', '3'))
.replace(/\$\[emoji#4]/g, this.bot.emote('core', 'locale', '4'))
.replace(/\$\[emoji#5]/g, this.bot.emote('core', 'locale', '5'))
.replace(/\$\[emoji#6]/g, this.bot.emote('core', 'locale', '6'))
.replace(/\$\[emoji#7]/g, this.bot.emote('core', 'locale', '7'))
.replace(/\$\[emoji#8]/g, this.bot.emote('core', 'locale', '8'))
.replace(/\$\[locale:changeCmd]/g, this.extData.syntax)
.replace(/\$\[locale:map]/g, this.bot.localeMap.join('\n'));
}
};

View File

@@ -16,7 +16,7 @@ module.exports = class Stats extends DiscordCommand {
hidden : false,
enabled : true,
cooldown : 5000,
cooldown : 10000,
category : 'Information',
ownerOnly : false,
guildOnly : false,

View File

@@ -42,6 +42,8 @@ module.exports = class WumpDiscord extends Eris {
this.col = options.colors ? options.colors : undefined;
this.ico = options.emojis ? options.emojis : undefined;
this.conf = options.config ? options.config : undefined;
this.requestHandler.userAgent = this.ua ? this.ua : `Wump (https://github.com/PassTheWessel/wump, ${this.pkg.version})`;
}
async launch(events, commands, locales) {

View File

@@ -6,7 +6,8 @@ const conf = safeLoad(readFileSync('application.yml', { encoding: 'utf8' }));
const guild = new mongoose.Schema({
guildId: { type: String, default: undefined },
prefix : { type: String, default: conf['discord']['prefix'] }
prefix : { type: String, default: conf['discord']['prefix'] },
locale: { type: String, default: conf['discord']['locale'] }
});
const user = new mongoose.Schema({

View File

@@ -82,7 +82,7 @@ module.exports = class CommandRegistry {
user = new this.bot.schema.user({ userId: msg.author.id });
await user.save((err) => { if (err) process.handleError(err); });
} else uCache.push({ 'userId': msg.author.id, locale: user.locale ? user.locale : this.bot.conf['discord']['locale'], 'entryAge': Date.now() });
} else user = gCache.filter((v) => v['userId'] === msg.author.id );
} else user = uCache.filter((v) => v['userId'] === msg.author.id )[0];
msg.author.locale = this.bot.locales.get(user['locale'] ? user['locale'] : 'en_us');
prefix = new RegExp([

View File

@@ -20,6 +20,7 @@ module.exports = class LocaleRegistry {
if (f.startsWith('strings')) {
this.bot.locales.set(l['translation']['code'].toLowerCase(), l);
this.bot.localeDic.push(l['translation']['code']);
this.bot.localeMap.push(`${l['translation']['flag']} \`${l['translation']['code']}\` **:** ${l['translation']['orig']} (*${l['translation']['full']}*) \`[${l['translation']['progress']}%]\` {***${l['translation']['translator']['discord']['name']}#${l['translation']['translator']['discord']['discrim']}***}`);
}
}
} catch (ex) {

View File

@@ -81,7 +81,7 @@ if (conf['discord']['enabled']) {
autoreconnect: true
},
ua : `${pkg.displayName}/${pkg.version}/${conf['nightly'] ? 'nightly' : 'distribution'}`,
ua : `${pkg.displayName}/${pkg.version}/${conf['nightly'] ? 'nightly' : 'distribution'} (https://github.com/PassTheWessel/wump)`,
db : mongoose,
pkg : pkg,
colors: col,