mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 11:39:50 +02:00
feat: nickname based commands
This commit is contained in:
1 parent
0d30c78e5e
commit
d88784d2fc
11 files changed
+143
-29
No files matched your search
@@ -2,10 +2,10 @@ import { EmbedBuilder, SlashCommandBuilder } from 'discord.js';
|
||||
import markdownEscape from 'markdown-escape';
|
||||
import { CommandRegistry } from '../behaviors/interactionCreate.js';
|
||||
import { NEGATIVE_COLOR, POSITIVE_COLOR } from '../constants/colors.js';
|
||||
import { BlitzServer } from '../constants/servers.js';
|
||||
import addIGNOption from '../utilities/addIGNOption.js';
|
||||
import addServerChoices from '../utilities/addServerChoices.js';
|
||||
import blitzLinks from '../utilities/blitzLinks.js';
|
||||
import extractUser from '../utilities/extractUser.js';
|
||||
import getBlitzAccount from '../utilities/getBlitzAccount.js';
|
||||
import getBlitzStarsAccount from '../utilities/getBlitzStarsAccount.js';
|
||||
import poweredByBlitzStars from '../utilities/poweredByBlitzStars.js';
|
||||
@@ -36,10 +36,13 @@ export default {
|
||||
.addStringOption(addServerChoices)
|
||||
.addStringOption(addIGNOption),
|
||||
|
||||
execute(interaction) {
|
||||
const name = interaction.options.getString('name')!;
|
||||
const server = interaction.options.getString('server') as BlitzServer;
|
||||
async execute(interaction) {
|
||||
const clan = interaction.options.getString('clan') as keyof typeof CLANS;
|
||||
|
||||
const extractedUser = await extractUser(interaction);
|
||||
if (!extractedUser) return;
|
||||
|
||||
const { name, server } = extractedUser;
|
||||
const command = `eligible ${server} ${name} ${clan}`;
|
||||
|
||||
getBlitzAccount(interaction, command, name, server, async (account) => {
|
||||
|
||||
@@ -2,13 +2,13 @@ import { EmbedBuilder, SlashCommandBuilder } from 'discord.js';
|
||||
import markdownEscape from 'markdown-escape';
|
||||
import { CommandRegistry } from '../behaviors/interactionCreate.js';
|
||||
import { SKILLED_COLOR } from '../constants/colors.js';
|
||||
import { BlitzServer } from '../constants/servers.js';
|
||||
import { AccountInfo, AllStats } from '../types/accountInfo.js';
|
||||
import { PeriodStatistics } from '../types/statistics.js';
|
||||
import addIGNOption from '../utilities/addIGNOption.js';
|
||||
import addServerChoices from '../utilities/addServerChoices.js';
|
||||
import { args } from '../utilities/args.js';
|
||||
import blitzLinks from '../utilities/blitzLinks.js';
|
||||
import extractUser from '../utilities/extractUser.js';
|
||||
import getBlitzAccount from '../utilities/getBlitzAccount.js';
|
||||
import getBlitzStarsAccount from '../utilities/getBlitzStarsAccount.js';
|
||||
import getWargamingResponse from '../utilities/getWargamingResponse.js';
|
||||
@@ -39,10 +39,13 @@ export default {
|
||||
.addStringOption(addServerChoices)
|
||||
.addStringOption(addIGNOption),
|
||||
|
||||
execute(interaction) {
|
||||
const name = interaction.options.getString('name')!;
|
||||
const server = interaction.options.getString('server') as BlitzServer;
|
||||
async execute(interaction) {
|
||||
const period = interaction.options.getString('period') as Period;
|
||||
|
||||
const extractedUser = await extractUser(interaction);
|
||||
if (!extractedUser) return;
|
||||
|
||||
const { name, server } = extractedUser;
|
||||
const command = `stats ${server} ${name} ${period}`;
|
||||
|
||||
getBlitzAccount(
|
||||
|
||||
+17
-12
@@ -2,11 +2,11 @@ import { EmbedBuilder, SlashCommandBuilder } from 'discord.js';
|
||||
import markdownEscape from 'markdown-escape';
|
||||
import { CommandRegistry } from '../behaviors/interactionCreate.js';
|
||||
import { SKILLED_COLOR } from '../constants/colors.js';
|
||||
import { BlitzServer } from '../constants/servers.js';
|
||||
import { TanksStats } from '../types/tanksStats.js';
|
||||
import addIGNOption from '../utilities/addIGNOption.js';
|
||||
import addServerChoices from '../utilities/addServerChoices.js';
|
||||
import { args } from '../utilities/args.js';
|
||||
import extractUser from '../utilities/extractUser.js';
|
||||
import getBlitzAccount from '../utilities/getBlitzAccount.js';
|
||||
import getWargamingResponse from '../utilities/getWargamingResponse.js';
|
||||
import { TANK_TYPE_EMOJIS, tankopedia } from '../utilities/tankopedia.js';
|
||||
@@ -38,23 +38,28 @@ export default {
|
||||
inPublic: true,
|
||||
|
||||
command: new SlashCommandBuilder()
|
||||
.setName('tanks')
|
||||
.setName('tanksdev')
|
||||
.setDescription("Shows a player's owned tanks")
|
||||
.addStringOption(addServerChoices)
|
||||
.addStringOption(addIGNOption)
|
||||
.addIntegerOption((option) =>
|
||||
option
|
||||
.setName('tier')
|
||||
.setDescription('The tier you want to see (default: all tiers)')
|
||||
.setDescription('The tier you want to see')
|
||||
.setMinValue(1)
|
||||
.setMaxValue(10)
|
||||
.setRequired(true),
|
||||
),
|
||||
)
|
||||
.addStringOption(addServerChoices)
|
||||
.addStringOption(addIGNOption),
|
||||
|
||||
execute(interaction) {
|
||||
const server = interaction.options.getString('server') as BlitzServer;
|
||||
const name = interaction.options.getString('name')!;
|
||||
async execute(interaction) {
|
||||
const tier = interaction.options.getInteger('tier')!;
|
||||
|
||||
await interaction.deferReply();
|
||||
|
||||
const extractedUser = await extractUser(interaction);
|
||||
if (!extractedUser) return;
|
||||
|
||||
const { name, server } = extractedUser;
|
||||
const command = `tanks ${server} ${name} ${tier}`;
|
||||
|
||||
getBlitzAccount(interaction, command, name, server, async (account) => {
|
||||
@@ -63,9 +68,9 @@ export default {
|
||||
interaction,
|
||||
command,
|
||||
async (tankStats) => {
|
||||
const tanks = tankStats[account.account_id]!.map(
|
||||
(tankData) => tankopedia.data[tankData.tank_id],
|
||||
).filter((tank) => tank.tier === tier);
|
||||
const tanks = tankStats[account.account_id]
|
||||
.map((tankData) => tankopedia.data[tankData.tank_id])
|
||||
.filter((tank) => tank.tier === tier);
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [
|
||||
|
||||
+11
-7
@@ -3,7 +3,7 @@ import markdownEscape from 'markdown-escape';
|
||||
import discord from '../../discord.json' assert { type: 'json' };
|
||||
import { CommandRegistry } from '../behaviors/interactionCreate.js';
|
||||
import { NEGATIVE_COLOR, POSITIVE_COLOR } from '../constants/colors.js';
|
||||
import { BlitzServer } from '../constants/servers.js';
|
||||
import { BLITZ_SERVERS_SHORT, BlitzServer } from '../constants/servers.js';
|
||||
import { PlayerClanData } from '../types/playerClanData.js';
|
||||
import addIGNOption from '../utilities/addIGNOption.js';
|
||||
import addServerChoices from '../utilities/addServerChoices.js';
|
||||
@@ -17,10 +17,10 @@ export default {
|
||||
inPublic: true,
|
||||
|
||||
command: new SlashCommandBuilder()
|
||||
.setName('verify')
|
||||
.setName('verifydev')
|
||||
.setDescription("Set's the user's username to their in-game name")
|
||||
.addStringOption(addServerChoices)
|
||||
.addStringOption(addIGNOption),
|
||||
.addStringOption((option) => addServerChoices(option).setRequired(true))
|
||||
.addStringOption((Option) => addIGNOption(Option).setRequired(true)),
|
||||
|
||||
execute(interaction) {
|
||||
let name = interaction.options.getString('name')!;
|
||||
@@ -70,7 +70,9 @@ export default {
|
||||
|
||||
if (member) {
|
||||
await member
|
||||
?.setNickname(`${name}${clanTag}`)
|
||||
?.setNickname(
|
||||
`${name} (${BLITZ_SERVERS_SHORT[server]})${clanTag}`,
|
||||
)
|
||||
.then(async () => {
|
||||
if (interaction.guildId === discord.guild_id) {
|
||||
if (
|
||||
@@ -112,13 +114,15 @@ export default {
|
||||
.setDescription(
|
||||
`The user is now verified as ${markdownEscape(
|
||||
name,
|
||||
)}${markdownEscape(clanTag)}`,
|
||||
)} (${BLITZ_SERVERS_SHORT[server]})${markdownEscape(
|
||||
clanTag,
|
||||
)}`,
|
||||
),
|
||||
],
|
||||
});
|
||||
|
||||
console.log(
|
||||
`${interaction.user.username} verified as ${name}${clanTag}`,
|
||||
`${interaction.user.username} verified as ${name} (${BLITZ_SERVERS_SHORT[server]})${clanTag}`,
|
||||
);
|
||||
})
|
||||
.catch(async () => {
|
||||
|
||||
Reference in new issue
Block a user