feat: implement tejtrack command to remove a tracker
This commit is contained in:
88
src/index.ts
88
src/index.ts
@@ -1,7 +1,12 @@
|
|||||||
import { getAccountBalance, initAccounts, setAccountBalance } from "./account";
|
import { getAccountBalance, initAccounts, setAccountBalance } from "./account";
|
||||||
import { makeResultEmbed } from "./discord";
|
import { makeResultEmbed } from "./discord";
|
||||||
import { env } from "./env";
|
import { env } from "./env";
|
||||||
import { initTracking, listTrackedPlayers, trackWovPlayer } from "./tracking";
|
import {
|
||||||
|
initTracking,
|
||||||
|
listTrackedPlayers,
|
||||||
|
trackWovPlayer,
|
||||||
|
untrackWovPlayer,
|
||||||
|
} from "./tracking";
|
||||||
import {
|
import {
|
||||||
checkForNewQuest,
|
checkForNewQuest,
|
||||||
getClanInfos,
|
getClanInfos,
|
||||||
@@ -232,7 +237,86 @@ client.on("messageCreate", async (message) => {
|
|||||||
.split(" ");
|
.split(" ");
|
||||||
if (command === "ping") {
|
if (command === "ping") {
|
||||||
await message.reply("pong");
|
await message.reply("pong");
|
||||||
|
} else if (command === "tejtrack") {
|
||||||
|
if (!message.member) return;
|
||||||
|
if (!message.member.roles.cache.has("1147963065640439900")) {
|
||||||
|
await message.reply({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description:
|
||||||
|
"### ❌ Erreur\n\n\nTu t'es cru chez mémé ou quoi faut être staff",
|
||||||
|
color: 15335424,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let playerName = args[0];
|
||||||
|
if (!playerName) {
|
||||||
|
await message.reply({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description: `### ❌ Erreur\n\n\n\nUsage:\`@LBF untrack NOM_JOUEUR\`, exemple: \`@LBF untrack Yuno\`.\n**Attention les majuscules sont importantes**`,
|
||||||
|
color: 15335424,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const player = await searchPlayer(playerName);
|
||||||
|
if (!player) {
|
||||||
|
await message.reply({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description: `### ❌ Erreur\n\n\n\nCette personne n'existe pas.\n**Attention les majuscules sont importantes**`,
|
||||||
|
color: 15335424,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await untrackWovPlayer(player.id);
|
||||||
|
switch (res.event) {
|
||||||
|
case "notTracked": {
|
||||||
|
await message.reply({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description: `Pas de tracker pour \`${playerName}\` [\`${player.id}\`]`,
|
||||||
|
color: 0x89cff0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "trackerRemoved": {
|
||||||
|
await message.reply({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description: `Tracker enlevé pour \`${playerName}\` [\`${player.id}\`]`,
|
||||||
|
color: 0x89cff0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const chan = client.channels.cache.get(env.DISCORD_TRACKING_CHANNEL);
|
||||||
|
if (!chan?.isSendable()) throw "Invalid tracking channel";
|
||||||
|
|
||||||
|
await chan.send({
|
||||||
|
embeds: [
|
||||||
|
{
|
||||||
|
description: `### [REMOVED] \`${playerName}\` [\`${player.id}\`]`,
|
||||||
|
color: 0x89cff0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (command === "track") {
|
} else if (command === "track") {
|
||||||
|
if (!message.member) return;
|
||||||
if (!message.member.roles.cache.has("1147963065640439900")) {
|
if (!message.member.roles.cache.has("1147963065640439900")) {
|
||||||
await message.reply({
|
await message.reply({
|
||||||
embeds: [
|
embeds: [
|
||||||
@@ -272,8 +356,6 @@ client.on("messageCreate", async (message) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0x89cff0
|
|
||||||
|
|
||||||
const res = await trackWovPlayer(player.id);
|
const res = await trackWovPlayer(player.id);
|
||||||
switch (res.event) {
|
switch (res.event) {
|
||||||
case "notFound": {
|
case "notFound": {
|
||||||
|
|||||||
@@ -17,6 +17,20 @@ export async function listTrackedPlayers(): Promise<string[]> {
|
|||||||
return Object.keys(trackedPlayers);
|
return Object.keys(trackedPlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function untrackWovPlayer(
|
||||||
|
playerId: string,
|
||||||
|
): Promise<{ event: "notTracked" } | { event: "trackerRemoved" }> {
|
||||||
|
const trackedPlayers: TrackedPlayers =
|
||||||
|
await Bun.file(TRACKED_PLAYER_FILE).json();
|
||||||
|
|
||||||
|
if (!trackedPlayers[playerId]) return { event: "notTracked" };
|
||||||
|
|
||||||
|
delete trackedPlayers[playerId];
|
||||||
|
await Bun.file(TRACKED_PLAYER_FILE).write(JSON.stringify(trackedPlayers));
|
||||||
|
|
||||||
|
return { event: "trackerRemoved" };
|
||||||
|
}
|
||||||
|
|
||||||
export async function trackWovPlayer(playerId: string): Promise<
|
export async function trackWovPlayer(playerId: string): Promise<
|
||||||
| { event: "notFound" }
|
| { event: "notFound" }
|
||||||
| {
|
| {
|
||||||
|
|||||||
Reference in New Issue
Block a user