Compare commits
3 commits
0100a92f16
...
c5731f133a
Author | SHA1 | Date | |
---|---|---|---|
c5731f133a | |||
aded2add59 | |||
0c617d6855 |
3 changed files with 23 additions and 261 deletions
23
.forgejo/workflows/pr-lint-format.yml
Normal file
23
.forgejo/workflows/pr-lint-format.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
name: Lint and Format Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
lint-and-format:
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Run lint
|
||||
run: npm run lint
|
||||
|
||||
- name: Run format check
|
||||
run: npm run format-check
|
|
@ -1,141 +0,0 @@
|
|||
import { SlashCommandBuilder } from "@discordjs/builders";
|
||||
import {
|
||||
ChannelType,
|
||||
Client,
|
||||
Colors,
|
||||
CommandInteraction,
|
||||
EmbedBuilder,
|
||||
NonThreadGuildBasedChannel,
|
||||
} from "discord.js";
|
||||
import "../../modules/string";
|
||||
import { getLocale, getLocalizations } from "../../utils/locales";
|
||||
import { getFilename } from "../../utils/misc";
|
||||
|
||||
export default {
|
||||
scope: () => ["807244911350906920"],
|
||||
|
||||
data: (client: Client) => {
|
||||
const filename = getFilename(__filename);
|
||||
return (
|
||||
new SlashCommandBuilder()
|
||||
.setName(filename.toLowerCase())
|
||||
.setDescription(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_desc`) ?? "",
|
||||
)
|
||||
.setNameLocalizations(getLocalizations(client, `c_${filename}_name`, true))
|
||||
.setDescriptionLocalizations(getLocalizations(client, `c_${filename}_desc`))
|
||||
|
||||
// Command option
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_opt1_name`) ?? "",
|
||||
)
|
||||
.setDescription(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_opt1_desc`) ?? "",
|
||||
)
|
||||
.setNameLocalizations(getLocalizations(client, `c_${filename}_opt1_name`, true))
|
||||
.setDescriptionLocalizations(getLocalizations(client, `c_${filename}_opt1_desc`)),
|
||||
)
|
||||
);
|
||||
},
|
||||
|
||||
interaction: async (interaction: CommandInteraction, client: Client) => {
|
||||
const loc = getLocale(client, interaction.locale);
|
||||
const desiredCat = interaction.options.get(
|
||||
client.locales
|
||||
.get(client.config.default_lang)
|
||||
?.get(`c_${getFilename(__filename)}_opt1_name`) ?? "",
|
||||
)?.value as string;
|
||||
|
||||
// If a category isn't specified
|
||||
if (!desiredCat) {
|
||||
// Sends a list of commands sorted into categories
|
||||
return interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(Colors.Blurple)
|
||||
.setTitle(loc.get("c_archive1"))
|
||||
.setDescription(loc.get("c_archive2")),
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
// If a category is specified
|
||||
const cleanCat = ["L1", "L2", "L3", "M1", "M2"];
|
||||
const channel = cleanCat.includes(desiredCat);
|
||||
if (!channel) {
|
||||
// Category doesn't exist or is not included
|
||||
return interaction.reply({
|
||||
content: `${loc.get("c_archive3")} \`${desiredCat}\``,
|
||||
ephemeral: true,
|
||||
});
|
||||
}
|
||||
|
||||
const allChannel = interaction.guild?.channels.fetch();
|
||||
allChannel?.then(async (channelGuild) => {
|
||||
// Retrieve category to archive
|
||||
const catToArchive = channelGuild
|
||||
.filter((chan) => chan?.type == ChannelType.GuildCategory)
|
||||
.filter((chan) => chan?.name == desiredCat);
|
||||
|
||||
// Create/Retrieve the archive category
|
||||
const catArchivedName = "archive - " + desiredCat;
|
||||
const catArchivedMap = channelGuild
|
||||
.filter((chan) => chan?.type == ChannelType.GuildCategory)
|
||||
.filter((chan) => chan?.name == catArchivedName);
|
||||
|
||||
let catArchived: NonThreadGuildBasedChannel | null | undefined;
|
||||
if (catArchivedMap.size > 0) {
|
||||
catArchived = catArchivedMap.at(0);
|
||||
} else {
|
||||
catArchived = await interaction.guild?.channels.create({
|
||||
name: catArchivedName,
|
||||
type: ChannelType.GuildCategory,
|
||||
});
|
||||
}
|
||||
|
||||
const allChannelDesired = channelGuild
|
||||
.filter((chan) => chan?.type == 0)
|
||||
.filter((chan) => chan?.parentId == catToArchive.map((cat) => cat?.id)[0]);
|
||||
|
||||
// If no channels in the source category
|
||||
if (allChannelDesired.size == 0) {
|
||||
return interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(Colors.Blurple)
|
||||
.setTitle(loc.get("c_archive6"))
|
||||
.setDescription(loc.get("c_archive7")),
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
// Move channels to the archived categoryx
|
||||
allChannelDesired.forEach((elem) => elem?.setParent(catArchived?.id as string));
|
||||
|
||||
return interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(Colors.Blurple)
|
||||
.setTitle(
|
||||
loc.get("c_archive4") +
|
||||
" `" +
|
||||
catToArchive.map((cat) => cat?.name) +
|
||||
"` " +
|
||||
loc.get("c_archive5") +
|
||||
" `" +
|
||||
catArchivedName +
|
||||
"`",
|
||||
)
|
||||
.setDescription(
|
||||
allChannelDesired
|
||||
.map((cgD) => cgD?.name)
|
||||
.toString()
|
||||
.replaceAll(",", "\n"),
|
||||
),
|
||||
],
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
|
@ -1,120 +0,0 @@
|
|||
import { SlashCommandBuilder } from "@discordjs/builders";
|
||||
import { ChannelType, Client, Colors, CommandInteraction, EmbedBuilder } from "discord.js";
|
||||
import "../../modules/string";
|
||||
import { getLocale, getLocalizations } from "../../utils/locales";
|
||||
import { getFilename } from "../../utils/misc";
|
||||
|
||||
export default {
|
||||
scope: () => ["807244911350906920"],
|
||||
|
||||
data: (client: Client) => {
|
||||
const filename = getFilename(__filename);
|
||||
return (
|
||||
new SlashCommandBuilder()
|
||||
.setName(filename.toLowerCase())
|
||||
.setDescription(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_desc`) ?? "",
|
||||
)
|
||||
.setNameLocalizations(getLocalizations(client, `c_${filename}_name`, true))
|
||||
.setDescriptionLocalizations(getLocalizations(client, `c_${filename}_desc`))
|
||||
|
||||
// Command option
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_opt1_name`) ?? "",
|
||||
)
|
||||
.setDescription(
|
||||
client.locales.get(client.config.default_lang)?.get(`c_${filename}_opt1_desc`) ?? "",
|
||||
)
|
||||
.setNameLocalizations(getLocalizations(client, `c_${filename}_opt1_name`, true))
|
||||
.setDescriptionLocalizations(getLocalizations(client, `c_${filename}_opt1_desc`)),
|
||||
)
|
||||
);
|
||||
},
|
||||
|
||||
interaction: async (interaction: CommandInteraction, client: Client) => {
|
||||
const loc = getLocale(client, interaction.locale);
|
||||
const desired_cat = interaction.options.get(
|
||||
client.locales
|
||||
.get(client.config.default_lang)
|
||||
?.get(`c_${getFilename(__filename)}_opt1_name`) ?? "",
|
||||
)?.value as string;
|
||||
|
||||
// If a category isn't specified
|
||||
if (!desired_cat) {
|
||||
// Sends a list of commands sorted into categories
|
||||
return interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(Colors.Blurple)
|
||||
.setTitle(loc.get("c_prep1"))
|
||||
.setDescription(loc.get("c_prep2")),
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
// If a category is specified
|
||||
const allowedCategories = ["L1", "L2", "L3", "M1", "M2"];
|
||||
const channel = allowedCategories.includes(desired_cat);
|
||||
if (!channel) {
|
||||
// Category doesn't exist or is not allowed
|
||||
return interaction.reply({
|
||||
content: `${loc.get("c_prep3")} \`${desired_cat}\``,
|
||||
ephemeral: true,
|
||||
});
|
||||
}
|
||||
|
||||
// Send information about the command
|
||||
const allChannel = interaction.guild?.channels.fetch();
|
||||
allChannel?.then((channel_guild) => {
|
||||
const cat_to_prep = channel_guild
|
||||
.filter((chan) => chan?.type == ChannelType.GuildCategory)
|
||||
.filter((chan) => chan?.name == desired_cat);
|
||||
const cat_to_prep_id = cat_to_prep.map((cat) => cat?.id);
|
||||
const cat_to_prep_name = cat_to_prep.map((cat) => cat?.name);
|
||||
|
||||
// console.log(cat_to_prep);
|
||||
const all_channel_desired = channel_guild
|
||||
.filter((chan) => chan?.type == 0)
|
||||
.filter((chan) => chan?.parentId == cat_to_prep_id[0]);
|
||||
const all_channel_desired_name = all_channel_desired.map((c_d) => c_d?.name);
|
||||
|
||||
let desc = "";
|
||||
|
||||
const general = "général";
|
||||
if (all_channel_desired_name.filter((cdn) => cdn == general).length == 0) {
|
||||
interaction.guild?.channels.create({
|
||||
name: general,
|
||||
type: 0,
|
||||
parent: cat_to_prep_id[0],
|
||||
});
|
||||
desc = general + loc.get("c_prep5") + "\n";
|
||||
}
|
||||
|
||||
const info = "informations";
|
||||
if (all_channel_desired_name.filter((cdn) => cdn == info).length == 0) {
|
||||
interaction.guild?.channels.create({
|
||||
name: info,
|
||||
type: 0,
|
||||
parent: cat_to_prep_id[0],
|
||||
});
|
||||
|
||||
desc += "`" + info + "` " + loc.get("c_prep5") + "\n";
|
||||
}
|
||||
|
||||
if (desc == "") {
|
||||
desc = loc.get("c_prep6");
|
||||
}
|
||||
|
||||
return interaction.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setColor(Colors.Blurple)
|
||||
.setTitle(loc.get("c_prep4") + cat_to_prep_name)
|
||||
.setDescription(desc),
|
||||
],
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
Loading…
Reference in a new issue