Edr0b0t
Edr0b0t
DIAdiscord.js - Imagine an app
Created by Edr0b0t on 1/28/2024 in #djs-questions
problem with BASE_TYPE_REQUIRED
Hello, here's my code :
const { ApplicationCommandOptionType, ChatInputCommandInteraction, EmbedBuilder, ButtonBuilder, ActionRowBuilder, ButtonStyle } = require('discord.js')

const choices = [
{ name: 'Pierre', emoji: '🪨', beats: 'ciseaux' },
{ name: 'Papier', emoji: '📄', beats: 'Pierre' },
{ name: 'Ciseaux', emoji: '✂️', beats: 'Papier' },
];

module.exports = {
/**
*
* @param {Object} param0
* @param {ChatInputCommandInteraction} param0.interaction
*/

callback: async (interaction) => {
try {
const targetUser = interaction.options.getUser('user');

if (interaction.user.id === targetUser.id) {
interaction.reply({
content: 'Tu peux pas jouer au chifoumi tout seul.',
ephemeral: true,
});

return;
}

if (targetUser.bot) {
interaction.reply({
content: 'Tu peux pas jouer au chifoumi avec un bot.',
ephemeral: true,
})

return;
}

const embed = new EmbedBuilder()
.setTitle('Pierre Feuille Ciseaux')
.setDescription(`C'est actuellement le tour de ${targetUser}.`)
.setColor('Yellow')
.setTimestamp(new Date())

const buttons = choices.map((choice) => {
return new ButtonBuilder()
.setCustomId(choice.name)
.setLabel(choice.name)
.setStyle(ButtonStyle.Primary)
.setEmoji(choice.emoji)
});

const row = new ActionRowBuilder().addComponents(buttons)

const reply = await interaction.reply({
content: `${targetUser},vous avez été mis au défi de jouer au chifoumi, par ${interaction.user}. Pour commencer a jouer, cliquez sur un des bouttons en dessous.`,
embeds: [embed],
components: [row],
});
} catch (error) {
console.log(`Erreur avec /chifoumi`);
console.error(error);
}
},

data: {
name: 'chifoumi',
description: "Faire un pierre, feuille, ciseaux avec quelqu'un.",
dm_permission: false,
options: [
{
name: 'user',
description: "La personne avec qui tu veux jouer.",
type: ApplicationCommandOptionType.User,
required: true,
}
]
}
}
const { ApplicationCommandOptionType, ChatInputCommandInteraction, EmbedBuilder, ButtonBuilder, ActionRowBuilder, ButtonStyle } = require('discord.js')

const choices = [
{ name: 'Pierre', emoji: '🪨', beats: 'ciseaux' },
{ name: 'Papier', emoji: '📄', beats: 'Pierre' },
{ name: 'Ciseaux', emoji: '✂️', beats: 'Papier' },
];

module.exports = {
/**
*
* @param {Object} param0
* @param {ChatInputCommandInteraction} param0.interaction
*/

callback: async (interaction) => {
try {
const targetUser = interaction.options.getUser('user');

if (interaction.user.id === targetUser.id) {
interaction.reply({
content: 'Tu peux pas jouer au chifoumi tout seul.',
ephemeral: true,
});

return;
}

if (targetUser.bot) {
interaction.reply({
content: 'Tu peux pas jouer au chifoumi avec un bot.',
ephemeral: true,
})

return;
}

const embed = new EmbedBuilder()
.setTitle('Pierre Feuille Ciseaux')
.setDescription(`C'est actuellement le tour de ${targetUser}.`)
.setColor('Yellow')
.setTimestamp(new Date())

const buttons = choices.map((choice) => {
return new ButtonBuilder()
.setCustomId(choice.name)
.setLabel(choice.name)
.setStyle(ButtonStyle.Primary)
.setEmoji(choice.emoji)
});

const row = new ActionRowBuilder().addComponents(buttons)

const reply = await interaction.reply({
content: `${targetUser},vous avez été mis au défi de jouer au chifoumi, par ${interaction.user}. Pour commencer a jouer, cliquez sur un des bouttons en dessous.`,
embeds: [embed],
components: [row],
});
} catch (error) {
console.log(`Erreur avec /chifoumi`);
console.error(error);
}
},

data: {
name: 'chifoumi',
description: "Faire un pierre, feuille, ciseaux avec quelqu'un.",
dm_permission: false,
options: [
{
name: 'user',
description: "La personne avec qui tu veux jouer.",
type: ApplicationCommandOptionType.User,
required: true,
}
]
}
}
and when i launched the bot the console reply with this error:
There was an error: DiscordAPIError[50035]: Invalid Form Body
name[BASE_TYPE_REQUIRED]: This field is required
There was an error: DiscordAPIError[50035]: Invalid Form Body
name[BASE_TYPE_REQUIRED]: This field is required
9 replies
DIAdiscord.js - Imagine an app
Created by Edr0b0t on 1/23/2024 in #djs-questions
problem with ChannelType.GuildText
when i type this command the console respond me: TypeError: ChannelType.GuildText is not a function
const {
Client,
Interaction,
ApplicationCommandOptionType,
PermissionFlagsBits,
ChannelType,
} = require('discord.js');

module.exports = {
name: 'clear',
description: 'Supprime un certain nombre de messages dans un salon.',
options: [
{
name: 'nombre',
description: 'Effacer des messages.',
type: ApplicationCommandOptionType.Integer,
required: true,
},
{
name: 'channel',
description: 'Le channel dans lequel vous souhaitez supprimer les messages.',
type: ApplicationCommandOptionType.Channel,
},
],

permissionsRequired: [PermissionFlagsBits.ManageMessages],
botPermissions: [PermissionFlagsBits.ManageMessages],

callback: async (client, interaction) => {
const channel = interaction.options.getChannel("channel") || interaction.channel;
const number = interaction.options.getInteger("nombre");

if (!ChannelType.GuildText()) {
return interaction.reply({ content: "Vous ne pouvez supprimer des messages que dans un salon texte.", ephemeral: true });
}

if (number <= 0 || number > 100) {
return interaction.reply({ content: "Le nombre doit être compris entre 0 et 100 inclus.", ephemeral: true });
}

await interaction.deferReply();

try {
const messages = await channel.bulkDelete(number);
interaction.followUp({ content: `J'ai bien supprimé \`${messages.size}\` message(s) dans le salon ${channel} !`, ephemeral: true });
} catch (error) {
const messages = [...(await channel.messages.fetch()).filter(msg => !msg.interaction && (Date.now() - msg.createdTimestamp) <= 1209600000).values()];

if (messages.length <= 0) {
return interaction.followUp({ content: "Aucun message à supprimer car ils datent de plus de 14 jours !", ephemeral: true });
}

await channel.bulkDelete(messages);
interaction.followUp({ content: `J'ai pu supprimer uniquement \`${messages.length}\` message(s) dans le salon ${channel} car les autres dataient de plus de 14 jours !`, ephemeral: true });
}
}
}
const {
Client,
Interaction,
ApplicationCommandOptionType,
PermissionFlagsBits,
ChannelType,
} = require('discord.js');

module.exports = {
name: 'clear',
description: 'Supprime un certain nombre de messages dans un salon.',
options: [
{
name: 'nombre',
description: 'Effacer des messages.',
type: ApplicationCommandOptionType.Integer,
required: true,
},
{
name: 'channel',
description: 'Le channel dans lequel vous souhaitez supprimer les messages.',
type: ApplicationCommandOptionType.Channel,
},
],

permissionsRequired: [PermissionFlagsBits.ManageMessages],
botPermissions: [PermissionFlagsBits.ManageMessages],

callback: async (client, interaction) => {
const channel = interaction.options.getChannel("channel") || interaction.channel;
const number = interaction.options.getInteger("nombre");

if (!ChannelType.GuildText()) {
return interaction.reply({ content: "Vous ne pouvez supprimer des messages que dans un salon texte.", ephemeral: true });
}

if (number <= 0 || number > 100) {
return interaction.reply({ content: "Le nombre doit être compris entre 0 et 100 inclus.", ephemeral: true });
}

await interaction.deferReply();

try {
const messages = await channel.bulkDelete(number);
interaction.followUp({ content: `J'ai bien supprimé \`${messages.size}\` message(s) dans le salon ${channel} !`, ephemeral: true });
} catch (error) {
const messages = [...(await channel.messages.fetch()).filter(msg => !msg.interaction && (Date.now() - msg.createdTimestamp) <= 1209600000).values()];

if (messages.length <= 0) {
return interaction.followUp({ content: "Aucun message à supprimer car ils datent de plus de 14 jours !", ephemeral: true });
}

await channel.bulkDelete(messages);
interaction.followUp({ content: `J'ai pu supprimer uniquement \`${messages.length}\` message(s) dans le salon ${channel} car les autres dataient de plus de 14 jours !`, ephemeral: true });
}
}
}
9 replies
DIAdiscord.js - Imagine an app
Created by Edr0b0t on 1/23/2024 in #djs-questions
problem with timestamp
when I type the command unmute the console reply DiscordAPIError[50035]: Invalid Form Body communication_disabled_until[INVALID_COMMUNICATION_DISABLED_TIMESTAMP]: Invalid communication disabled timestamp unmute.js
const { Client, Interaction, ApplicationCommandOptionType, PermissionFlagsBits } = require('discord.js');

module.exports = {
/**
*
* @param {Client} client
* @param {Interaction} interaction
*/

callback: async (client, interaction) => {
const mentionable = interaction.options.get('user').value;

await interaction.deferReply();

const targetUser = await interaction.guild.members.fetch(mentionable);
if (!targetUser) {
await interaction.editReply("Cet utilisateur n'existe pas dans ce serveur.");
return;
}

// Remove the timeout
try {
await targetUser.timeout(0);
await interaction.editReply(`${targetUser} a été untimeout.`);
} catch (error) {
console.log(`Une erreur s'est produite lors de l'untimeout: ${error}`);
await interaction.editReply("Une erreur s'est produite lors de l'unmute.");
}
},

name: 'unmute',
description: 'Enlève le timeout d\'un utilisateur.',
options: [
{
name: 'user',
description: "L'utilisateur que tu veux unmute",
type: ApplicationCommandOptionType.Mentionable,
required: true,
},
],
permissionsRequired: [PermissionFlagsBits.MuteMembers],
botPermissions: [PermissionFlagsBits.MuteMembers],
};
const { Client, Interaction, ApplicationCommandOptionType, PermissionFlagsBits } = require('discord.js');

module.exports = {
/**
*
* @param {Client} client
* @param {Interaction} interaction
*/

callback: async (client, interaction) => {
const mentionable = interaction.options.get('user').value;

await interaction.deferReply();

const targetUser = await interaction.guild.members.fetch(mentionable);
if (!targetUser) {
await interaction.editReply("Cet utilisateur n'existe pas dans ce serveur.");
return;
}

// Remove the timeout
try {
await targetUser.timeout(0);
await interaction.editReply(`${targetUser} a été untimeout.`);
} catch (error) {
console.log(`Une erreur s'est produite lors de l'untimeout: ${error}`);
await interaction.editReply("Une erreur s'est produite lors de l'unmute.");
}
},

name: 'unmute',
description: 'Enlève le timeout d\'un utilisateur.',
options: [
{
name: 'user',
description: "L'utilisateur que tu veux unmute",
type: ApplicationCommandOptionType.Mentionable,
required: true,
},
],
permissionsRequired: [PermissionFlagsBits.MuteMembers],
botPermissions: [PermissionFlagsBits.MuteMembers],
};
3 replies
DIAdiscord.js - Imagine an app
Created by Edr0b0t on 1/20/2024 in #djs-questions
Problem with Reddit API
When I run the /meme command, the console replies Unexpected token '<', "<!doctype "... is not a valid JSON (PS: I use a hosting company) Here's my meme.js const { EmbedBuilder } = require('discord.js'); module.exports = { name: 'meme', description: 'Donne un meme!', callback: async (client, interaction) => {
async function meme() { try { const response = await fetch('https://www.reddit.com/r/memes/random/.json'); const memeData = await response.json(); const title = memeData[0].data.children[0].data.title; const image = memeData[0].data.children[0].data.url; const author = memeData[0].data.children[0].data.author; const embed = new EmbedBuilder() .setColor("Random") .setTitle(title) .setImage(image) .setURL(image) .setFooter(author); await interaction.reply({ embeds: [embed] }); } catch (error) { console.error('Erreur lors de la récupération du meme:', error.message); await interaction.reply("Une erreur s'est produite lors de la récupération du meme."); } } meme(); }, };
7 replies