#javascript-typescript
1 messages · Page 102 of 1
nan déso mon discord bug :/
je croyais que j'avais était blacklist du channel je pouvais plus écrire
Okok
T'as des retours en console ?
Bah oui le WarnFileType et le complete
juste les console.log
sinon rien
🤔
T'es sur de ton path ?
Yep c'est le même path que mon fichier config (juste le nom qui change) et pour le coup pour récupérer des infos de ma config ça fonctionne, donc techniquement ça devrait aussi marché
C’est que ça arrive pas jusqu’au moment où tu écris dans le fichier
Vérifies bien tes conditions
Alors c'est assez bizarre
enfaite il écrit bien dans le fichier warn.json
mais il en recrée un
en dehors du dossier de mon bot..
Ah, bah ton chemin est juste pas le bon alors
message.member.permissions.has('ADMINISTRATOR')
Quelqu'un sais pourquoi mon fichier json n'est pas bon niveau syntaxe svp ? json {"warnedMember":"877379324968316938","sourceWarn":"791401737993977866","reason":"Troll"}, {"warnedMember":"877379324968316938","sourceWarn":"791401737993977866","reason":"Autre"}
tu ne peux pas faire {}, {}
tout doit être dans un seul {} qui ouvre en gros le json
je vais te rectifier ton json en le changeant
10 minutes
Okk merci
{" id": {}, "id": {} }
soit un array soit un object
Bonsoir, en gros j'ai fais une API qui me récupère des données, et en gros j'aimerais les récupéré pour les mettres sur ma page HTML et je connais pas du tout, je sais pas si c'est possible de récuperer directement depuis le localhost ou si je dois heberger l'API pcq elle se lance depuis mon script sur mon ordi, j'ai comme erreur:
Access to XMLHttpRequest at 'http://localhost:1010/' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Je connais vraiment pas comment ça marche les requête niveau serveur si une âme charitable pourrait m'éclairer ce serait le top merci !
Dans ta requête vers ton API ajoute "Access-Control-Allow-Origin" dans les headers
Bah justement j'ai lu ça sur internet mais je comprend pas comment ça dans les headers
C'est pas dans la requête, c'est le serveur qui doit autorisé le cross origin
Sinon ça n'a pas de sens
et je dois changer ça ou ?
Si tu utilises express tu dois faire avec le modules cors
ouai j'utilise express
Voilà
Sur ton serveur API, comme 'la dit wailrone, tu peux utiliser un module ou simplement ajouter l'en-tête à la main
var cors = require('cors')
app.use(cors())
Finito pépito
Je pense que dans son cas, c'est mieux qu'il comprenne à la main pour commencer, mais dans l'idée oui
Comment tu le ferais à la main ?
comment je l'ajoute du coup l'header ?
niquel merci j'essayerais
En deux lignes il se fait un middleware custom, et au moins il comprendra ce que fait le cors x)
Dans un cas de prod, bien sur le module est mieux, il gère plus de trucs, mais dans son cas, je pense que comprendre c'est jamais mauvais
Oui mybad
j'ai juste a mettre ça dans mon code ?
J'ai jamais utilisé ça, donc si j'ai bien compris selon la doc ça donnerait :
app.use(function (req, res, next) {
res.header(...)
});
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS',
Par exemple, je te laisse faire le reste des recherches (la seconde ligne permet d'autoriser la methode OPTIONS qui est utilisé pour le préflight)
Oui c'est ça, c'est ce que le module fait au final (en plus d'autres choses pratiques)
Ok 👍
J'insiste bien sur le fait, que si tu as les notions de cors, le faire à la main n'a aucun intérêt à ma connaissance
oui mais ce morceau la je peux pas le mettre ou je veux si ? faut le mettre a l'intérieur de quelque chose
c'est ça que je comprend pas
pcq ce code la je l'ai vu plusieurs fois
mais je comprend pas ou le mettre
res.header() permet de définir un champ header de ta réponse
ah donc je met ça dans le res.header
daccord je vais essayer apres
merci
et donc cors permet de faire ça automatiquement ?
Oui, il va autoriser le cors sur toute ton API (ou bien sur une partie en fonction de où tu l'appelle)
et c'est pas risqué, niveau sécurité ?
Après c'est un choix en fonction des besoins
Si ton API doit être public, t'as pas trop le choix
Si elle est destiné à être utilisé que sur une liste de domaine, alors au lieu de *, tu précise les origines
daccord, parcontre j'ai mis
res.setHeader( 'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS')
et ça me met les : en erreur
ah non c'est bon
parcontre le res correspond a quoi
ah faut que je mette l'autre truc aussi alors
mmh j'ai toujours l'erreur
ah bah c'est header et pas setheader
parcontre depuis que ça marche mon localhost ne fonctionne plus
je peux pas aller sur la page
je comprend vraiment rien aux requête je lis pas mal de truc je comprends pas comment je peux recuperer une des valeurs qui sont de mon API dans mon code
j'ai utilisé httpRequest je sais pas si c'est bien
Bonjour, savez vous comment reset la selection d'un select menu, j'ai essayé la fonction deferUpdate() mais toute seule elle ne marche pas
simplement update() devrait fonctionner
Non car il sort une erreur avec fetchReply
Comme quoi il arrive pas à fetch reply
^
TypeError: Cannot read properties of undefined (reading 'fetchReply')
at SelectMenuInteraction.update (/home/container/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:224:20)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/container/src/events/interactions/interactionCreate.js:86:11```
Mais le problème c'est que si je lui met un reply au dessus
Il met dit que l'intéraction a déjà été reply
L'idéal c'est d'avoir le message ephemeral et le reset du selectmenu
bah il va rien t'édit du tout si tu mets juste {} dans les parenthèses
mais le fait que tu vois encore le truc du sélect c'est uniquement côté client, ça influence en rien le système de fonctionnement, mais si tu tiens vraiment à ce que ça disparaisse, interaction.message.edit({}); devrait résoudre ton problème
Oui, c'est une solution mais il y aura le petit "edited"
je ne connais aucun autre moyen à part celui-ci, désolé, j'espère que quelqu'un a une autre méthode, mais j'en doute 🤔
Tu ne peut pas autrement 🤔
Il est pas là pour rien le petit "edited" 
Il est embetant
Malheureusement c'est Discord qui est fait comme ça (et tant mieux en quelques sortes pour la sécurité de l'utilisateur)
Je pense pas que tu puisses faire autrement qu'en modifiant le message si tu veux modifier le contenu
Je vois pas en quoi c’est embêtant
Je suis maniaque et ça me dérange quand y'a le truc "edited"
Hi !
Je souhaite inclure un emoji que j'ai ajouté à mon serveur sur mon bot afin qu'il puissent l'use, si quelqu'un aurais la solution merci
si c'est un emoji de discord, utilises le format unicode. Si c'est un emoji de serveur utilises la syntaxe discord.
Dans les 2 cas il faut mettre un \ <emoji> sur discord pour l'obtenir
Par exemple :
🥳 => \🥳
=> !discordjs
Et si c'est un emoji animé et que tu as pas nitro
T'as vraiment fais un record ?? C'est un helper d'élite ça
Go faire un gif !
Il a presque 1 an le record, je l'avais fais a l'epoque
Superbe utile en tout cas, thks
hmm- pour les émojis custom, il vaut mieux les get via la lib
Bruh j’ai l’impression que ce salon est dédié que pour les bots discord
Oui possible aussi, après les 2 marchent sauf pour les slash-commands, vu que c'est des webhooks on peut pas utiliser d'emojis custom
Ce salon est dédié à l'entraide autour du language javascript
?
surement car l'emoji existe sur le serveur non ? mais sur certains serveurs ca marche pas
Les webhooks peuvent utiliser des émojis d'autres serveurs que si everyone a la perm d'envoyer des émojis d'autres serveurs
ah bah x)
Ah peut etre que j'avais pas check la perm dans mes tests alors


Sur ce serveur ?
oui
si mdr je pense que comme c'est une réponse à une slash ils ont du faire le nécessaire
Ah oui les webhooks c'est mal foutu car si la permission est en neutre (ni en vert ni en rouge) ca marche pas avec les slash-commands mais ca marche avec les commandes message
après là l'émoji est sur le serveur

donc jsp
Ah bah voilà !
Bah oui
Si l'émoji est sur le serveur 
bah oui mais là donc 
bref mdr
je vais tenter quand même on ne sait jamais
Je confirme que non !
ha bah c'est toujours mal foutu du coup 
Oui, et le rôle du bot a bel et bien la permission !
go faire un feedback à discord à propos de ça mdr
Je le fais si tu veux il faudrait le relayer
yep vas y 🤔
j'ai une question la balise script dans le html, faut la mettre dans le head ? pcq en gros quand je met dans le head bah dans mon script mon boutton par exemple est inconnu
je sais pas si c'est normal
du coup je dois mettre mon script apres mon body pour avoir tous mes éléments
En gros
tu peux la mettre dans le head mais pour ton cas met la dans le body
si tu la met dans le head le javascript se lancera avant le html
si tu le met dans le body il se lancera après
donc je te recommande dans ton cas de le mettre a la fin du body
ouai c'est ce que je me disais mais je regarde une vidéos le mec a le script dans le head et ça marche pour lui
hmm
Je sais pas alors mais dans ton cas je te conseil d'essayer de le mettre dans le body a la toute fin
oui normal alors
daccord merci !
si ton script utilises le DOM et que tu veux le mettre dans le head tu dois l'exécuter une fois que tu reçois l'évenement DOMContentLoaded
Pk ça marche pas jfait comment pour faire une action quand y select un truc precis dans le selec menu ?
value sans s peut être
Tjr pas 😭
interaction.commandName
Et je laisse la value a coter ?
essaye
Jsais mais ça fait que avec le custom id donc toute les options font le meme
Moi jveux1 options fait un truc
Separer
bah else if non ?
OE mais sque jveux dire C'est que la je verif que si c'est nimporte la qu'elle de select
Mais jveux verif aussi l'options
Comment jfait ? ^^
Tsais juste que ça envoie un msg
Avec des instructions
Bonjour !
J’ai besoin de vos lumières :),
de quelle manière je peux intégrer un preloader sur les pages de mon site, en animant mon logo ?
Merci
Tu peux faire un élément que tu fais disparaître au chargement de ta page
On peut le faire a partir d’un gif de mon logo ?
salut cherche une persone pour configue un serveur minecraft me mp
premièrement #java-jvm ensuite
Tu es à la recherche d'un créateur de contenu ?
D'un super développeur pour te faire le nouveau site de l'année, ou encore d'un graphiste pour réaliser le logo de ton serveur ?
Clique ici et tu trouveras ton bonheur !
Il te suffit simplement de créer ton offre en détaillant précisemment ce que tu recherches 👌
Quelqun peut maider pour definir une condition svp
const Discord = require('discord.js')
module.exports.run = async (bot,message,guild,args) => {
message.channel.send(`Voici la pp de = __**${message.guild.name}**__`)
message.channel.send(message.guild.iconURL ({ format: 'png', dynamic: true, size: 1024 }));
};
module.exports.config = {
name: "pp-server"
};
J'aimerai faire une condition : si message.guild.iconURL est vide, on envoi un message le serveur na pas de pp mais si il y en a un, on execute
message.channel.send(`Voici la pp de = __**${message.guild.name}**__`)
message.channel.send(message.guild.iconURL ({ format: 'png', dynamic: true, size: 1024 }));
```
Tutoriel pour faire des if
or apprendre les bases du javascript
Ça dépend de la méthode utilisée
Je n'ai aucune base de Js et je voudrais faire une commande pour mon bot discord pour que lorsque "LaeDé" est écris, cela donne un nombre aléatoire entre 1 et 20, comment je m'y prend ?
Apprends le JS, et après apprends à utiliser l’API discord (avec discord.js ou #sheweny-js)
ok, pour l'instant mes seules bases de js ont été le tuto pour faire son bot de GCA
Maintenant youtube
Tu me conseille quel youtubeur ?

Salut ! je suis sous nextjs et j'ai un petit soucis :/
en gros j''essaye de faire ca : ```js
export const ProtectRoute = ({ children }) => {
const router = useRouter();
const { pathname } = useRouter();
const { isAuthenticated } = useAuth();
if (
!isAuthenticated &&
pathname !== "/auth/login" &&
pathname !== "/auth/register" &&
pathname !== "/auth/forgot-password" &&
pathname !== "/"
) {
console.log("Not authenticated, redirecting to login");
router.push({
pathname: "/auth/login",
});
}
return children;
};```
mais ca me renvois cette erreur : ```Error: No router instance found. you should only use "next/router" inside the client side of your app. https://err.sh/vercel/next.js/no-router-instance
mon _app.js :```js
<AuthProvider>
<ProtectRoute>
<Layout>
<Component {...pageProps} />
</Layout>
</ProtectRoute>
</AuthProvider>
C’est bon enfaite
getcodingknowledge
Merci
Dr
interaction.values[0]
Thx j'ai fait un collector ça ma souler 😂
Bonsoir, après un grand nombre d'essais, je n'ai pas réussi à trouver et comprendre où est l'erreur, si quelqu'un peut m'eclaircir
Voici l'erreur
et voici le code
Tu as oublié un =
Ta oublié un = à la fin

EH OH
En même temps !
🙂
Des boss, c'est ça que vous êtes
Ouais je sais
x)
Aberrant
Voici mon erreur, désolé de vous spam :c
const mysql = require("mysql")
const fs = require("fs")
const intents = new Discord.Intents(32767)
const Command = require("./Command")
const Database = require("./Database")
const Event = require("./Event")
class Client extends Discord.Client {
constructor(options) {
super({ intents });
/**
* @type {Discord.Collection<string, Command>}
*/
this.commands = new Discord.Collection()
this.db = Database;
this.color = "#757575";
}
async start(token) {
fs.readdirSync("./Commandes").filter(file => file.endsWith(".js")).forEach(async f => {
/**
* @type {Command}
*/
let props = require(`../Commandes/${f}`)
console.log(`${f} commandes chargés avec succès`)
this.commands.set(props.name, props)
})
fs.readdirSync("./Events/").forEach(dirs => {
fs.readdirSync(`./Events/${dirs}/`).filter(files => files.endsWith(".js")).forEach(async evt => {
/**
* @type {Event}
*/
const event = require(`../Events/${dirs}/${evt}`);
console.log(`${event.event}.js événement chargé avec succès !`)
this.on(event.event, event.run.bind(null, this));
})
});
await SlashCommand(this);
this.login(token)
}
}
module.exports = Client;```
Voici le code
Enlève le .run @keen narwhal
this.on(event, event.bind(null, this)); jpense 🤔
Si sa fonctionne pas, je ne sais pas, je ne fais pas comme ça
😦
Nope toujours pas même erreur
quel est le dernier nom d'event dans la console ? 🤔
Pas compris :c
bah t's des retours console?
je peux voir tous tes events (screen de ton dossier) ?
interactionCreate stp
mmh
t'as pas d'autres fichiers?
Personne pour me help, j'ai pas trouvé depuis hier soir :c
Montre ton fichier structure/event stp @keen narwhal
Déjà c'était bien event.run.bind, si seulement run existait dans ton event
un const Event = require qui manque ?
Avant le " chargé avec succès ", tu peux faire un console.log(event) ?
😐
Réfléchis bien à ce que tu viens de faire 😄
Et ça te met quoi dans la console ?
Ah mais attends, y'a juste un event qui n'a pas de run
Vérifies si run existe, si ce n'est pas le cas, alors ne fait pas le bind ;)
Montre ce que tu as fait
Ok, mais tu fais une vérification ?
if (!event?.run) return console.log(`Il y a eu une erreur lors du chargement de l'event ${event?.event}`)
Met ça au dessus, ça devrait régler ton problème ;)
je crois pas avoir fait d'erreurs en ce qui concerne la syntaxe, ça doit être quelque chose de non défini qui devrait l'être
J'ai réussi à avancer mais un nouveau problème se met en place :
Personne ?
On recup comment une interaction de buttons svp ?
Un bouton html ?
Si tu parle des boutons discord, c'est comme les commandes sauf que au lieu de faire interaction.isCommand() tu fais interaction.isButton()
Merciiii ^^
tqt
Yop
await interaction.channels.cache.get(OPENTICKET).send({ embeds: [ticketgmodembed_option1], components:[] });
Guild ?
Azy je test
Mais Whattt att j'ai un prob la
Ça marche mais ça envoie dans un channel que jveux pas
Ah nan
Ok
J'ai compris
C'est avec quoi que l'on creer un channel ? ^^
Documentation suggestion for @peak cedar:
:_: GuildChannelManager#create()
Creates a new channel in the guild.
Thx ❤️
Parcontre ptite question comme ça mais
C'est GUILD_.... pour un chann Ecrit C'est quoi ? ^^
?
GUILD_TEXT
Dr
C'est pas du Javascript, c'est du #java-jvm
et ça sera affiché dans #demande-de-dev
Holà, vous savez pourquoi il fait sa ?
Merci de vos futur réponse
Le succes doit être défini via la bdd qui modifie quand une personne exécute la cmd
Ta variable success elle est jamais définie dans ton code
Ou comme je suis sur tel je la vois pas @keen narwhal 🤷🏻♂️
Effectivement mais sur le tuto il ne l’a défini pas
Mais j’ai enlever succes et sa fonctionne c’est chelou
Normal que sa fonctionne
J’avoue que je suis perdu la x)
Il a du forcément la définir quelque part de toute façon
C’était une variable pour un emoji ?
Nan un salon
Mais si sa fonctionne, je regarderai plus tard x)
Faut que je me mette sur le sujet
Ah oui ok je vois ce que tu veux faire
Je dois partir dehors je t’aiderais plus tard si personne la fait
Ha ptn non
Enfaite après que tu me l’a dit c’est un émogi perso
Mais j’ai abonné le sujet des émogie car j’avais dès erreur partout, et j’ai oublier la catégorie admin
X) jsuis bête ptn
Yes, mais faut que je m’y mette sur mon pc
On peut prendre des emoji animer ?
Oui pour sa faut que tu rajoute un a :
Emoji normal : <:nom_emoji:id_emoji>
Emoji animé : <a:nom_emoji:id_emoji>
D’accord merci beaucoup
@keen narwhalCode 🤔
Les quels ? 😅
messageCreate, là ou est l'erreur quoi
Hmm
bah log interaction pour voir si c'est bien non null
Same
Non
J'ai réussi à trouver pour la précédente mais voici ce que j'ai mtn :
@timid loom
je comprends pas comment tu peux bloquer sur les problèmes que tu as
ligne 52 de ton client définit le terme SlashCommand et c'est bon
je veux dire le truc est ultra détaillé
Je demande comment, on a pas tous 5 ans d'expérience :c
thx 

Ça n’a pas de rapport faut juste lire pour le coup c’est assez clair
Comment on peut vouloir faire des bots ou autre si on ne sait pas déclarer un import
Arrêtez de vouloir courir avant de marcher c’est pas une bonne idée
c'est même pas son code donc déjà en partant de là c'est compliqué
Hey, des gens font du discord.js v13 ici ?
Non, on fais du discord.js v10, pk ?
moi du discord.js v3
Ça me semble logique
Donc du coup, je souhaite faire un bot qui, dés qu'il est allumé, se connecte dans un vocal et joue une musique.
Voici le code actuel :
const Discord = require("discord.js");
const Client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES
]});
Client.login("mon token lol");
const { joinVoiceChannel } = require('@discordjs/voice');
Client.on("ready", async () => {
console.log("Pret")
const guild = await Client.guilds.fetch("565599771872722944");
var connection = joinVoiceChannel({
channelId: "950804559146672168",
guildId: "565599771872722944",
adapterCreator: guild.voiceAdapterCreator,
})
const { createAudioPlayer } = require('@discordjs/voice');
const player = createAudioPlayer();
const subscription = connection.subscribe(player);
const { VoiceConnectionStatus } = require('@discordjs/voice');
connection.on(VoiceConnectionStatus.Ready, () => {
console.log('The connection has entered the Ready state - ready to play audio!');
const resource = createAudioResource('opbajvpc.mp3');
player.play(resource);
})});
Là, mon bot se lance, mais il ne joue pas la musique.
j'avais eu le même problème pour la connexion en vocal, il se lançait mais il ne se connectait pas, et enfait il manquait des variables.
Peut être est-ce la même chose ici ?
@azure blazeIl te manque des intents 🙂
ah
Et ceci:
const { joinVoiceChannel } = require('@discordjs/voice');
const { createAudioPlayer } = require('@discordjs/voice');
const { VoiceConnectionStatus } = require('@discordjs/voice');
Tu peut tout mettre dans la même ligne:
const { joinVoiceChannel, createAudioPlayer, VoiceConnectionStatus } = require('@discordjs/voice');
Ah, oui, ça optimisera ahah merci
Il y a un endroit où sont répértoriés tous les intents disponibles ? Je ne trouve pas...
FLAGS.GUILDS,
FLAGS.GUILD_MEMBERS,
FLAGS.GUILD_BANS,
FLAGS.GUILD_EMOJIS_AND_STICKERS,
FLAGS.GUILD_INTEGRATIONS,
FLAGS.GUILD_WEBHOOKS,
FLAGS.GUILD_INVITES,
FLAGS.GUILD_VOICE_STATES,
FLAGS.GUILD_PRESENCES,
FLAGS.GUILD_MESSAGES,
FLAGS.GUILD_MESSAGE_REACTIONS,
FLAGS.GUILD_MESSAGE_TYPING,
FLAGS.DIRECT_MESSAGES,
FLAGS.DIRECT_MESSAGE_REACTIONS,
FLAGS.DIRECT_MESSAGE_TYPING,
J'imagine que c'est celui-ci FLAGS.GUILD_VOICE_STATES qu'il me faut ?
Yes
Hmm, il faut bien le taper comme ça ?
Pour les paramètres vocaux c'est autre chose ?
Ta oublié une ,
L'importance des symboles quand on code, c'est vrai
Je suis trop d'accord avec toi mec
^^"""
Nan sérieusement merci beaucoup
En fait je pense que j'ai copier des lignes qui ne sont pas a jour
Faut le définir en haut
Salut est ce que ça marche si on met comme value un number ou un boolean ?
à un select menu
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
Donc non
Cela dit tu peux y associer une valeur boolean ou numérique que tu convertis en string et la récupérer ensuite, tant que ça fait moins de 100 caractères
dommage
Bah en vrai les nombres il peut y avoir des soucis donc je peux comprendre, c'est les boolean où effectivement c'est dommage mais bon c'est pas très utile
Bonjour j'aimerais avoir un peut d'aider pour crée mon bot twitch s'il vous plaît ^^
Sa je doit le m'être ou 😅
Oui je me suis tompé à la fin
Les fichiers sont là
Je dois tout installer ?
Tu as déjà fait du js ?
Tu n'as jamais installé de node modules ?
Si 😭
Bah voilà, il suffit de download les fichiers et de faire npm install ;)
Mais sa me fait sa
C'est parce que tu n'as pas git d'installé
Mais ça revient à download les fichiers que je viens de t'envoyer
La je les installer en zip du coup 😅
Tu decompiles le dossier
Et avec ton invité de commande tu rentres dans le dossier
Et ensuite tu rentres la commande npm install
Ça va t’installer les dépendances du projet
Bah voilà c'est bon
Mais ses normale les "4vulnerabilities " ?
oui
quand un projet date un peu les gens finissent par découvrir des vulnérabilités sur les dépendances
entre temps y a sûrement eu des patchs de sécurité donc je te conseille de faire npm audit pour voir les soucis et si tu estime que ces vulnérabilités sont dangereuses dans ton cas, tu mets à jour les dépendances sur des versions plus récentes
déjà faire un npm audit fix ça corrigera les trucs sur lesquels tu as pas besoin de faire ces vérifications
mais potentiellement tu dois te rappeler que les changements de versions c'est pas anodin -- si tu sais que tu utilise certaines fonctionnalités en voie de dépréciation sur des modules d'une certaine version il faut que tu te prépare à refactor ton projet pour prendre en compte la dépréciation des fonctionnalités
après si ça peut te rassurer un projet react par exemple le plus souvent démarre avec une dizaine de vulnérabilités
c'est pas dramatique, mais les vulnérabilités dites "critiques" sont appelées comme ça parce qu'elles mettent vraiment en danger les utilisateurs de projets dépendants d'une version vulnérable
hey, je ne sais pas ou mettre ma variable seriez vous m'aider ?
// recup le nombre de document dans cette collection
db.collection('todo-items')
.get().then((snapshot) => {
console.log(snapshot.docs);
})
j'aimerai console.log mavariable au lieu de snapshot
me ping
Tu as aucune variable là 🤔
Bonsoir, j’ai vu les bases du JavaScript et je souhaiterais faire une galerie de +300 images, seulement en html/css ce sera très long, donc je me demandais si c’était possible ou s’il existait une manière d’automatiser le travail en JavaScript, merci à vous.
Salut oui tout à fait, après ça dépend comment tu vois ton système
D’accord je te remercie, je vais faire mes recherches sur ça !
+300 Images sur la même page je te conseil dans un premier temps d'optimiser tes images à coup de tinypng (un outil pour reduire le poids des images sinon ça va etre long). Apres si c'est une galerie que tu vas pas mettre à jour tout les 4 matins oui tu peux faire ça en javascript assez simplement avec le system de boucle (idéalement il faudrait que tes images ai un nom simple en mode "image_1" "image_2" ... )
Tu peux faire quelque chose du genre :
Apres si c'est voué a être souvent mis à jour, ce que j'ai fait pour un projet perso c'est de le rediger finalement en php comme ça quand j'ajoute une image dans le dossier, directement la boucle ne va plus boucler jusqu'a 300 mais jusqu'a 340 imagnions. Puisqu'en php il existe des fonctions pour connaitre le nombre de fichier dans un dossier. C'est bien pratique 😉
php >> tout de façon 
pendant mes études on a étudié le php seulement pour faire des appels avec la base de données mais là , depuis que je suis vraiment en poste, je me rend compte que le php c'est tellement plus puissant que ça 😄
C’est certain que quand tu commences à toucher au mvc, à la poo etc t’apprends bien mieux php
Wesh mes bgeyyy
Ptit prob
collector.on("collect", async(collected)=>{
const value = collected.values[0]
if(value === "first_option"){
collected.reply({content: " ", ephemeral:true, embeds : [embed1], components:[] })
interaction.member.roles.add('952581402556252220')
}
if(value === "second_option"){
collected.reply({content: " ", ephemeral:true, embeds : [embed2], components:[] })
interaction.member.roles.add('952581403491598366')
}
})
Ça give que au gens qui on fait la commandes
Comment faire pour que sa give a tt le monde qui utilise ?
@peak cedarTu as mis un filter ?
Nan jcrois pas
Envoi ton code
run: async (client, interaction) => {
const row = new MessageActionRow()
.addComponents(
new MessageSelectMenu()
.setCustomId('select')
.setPlaceholder('Choisir une options')
.setMinValues(1)
.setMaxValues(1)
.addOptions([
{
label: 'Post Apocalypse',
value: 'first_option',
emoji: {
name: '🌇',
},
},
{
label: 'Gta Rp',
value: 'second_option',
emoji: {
name: '🛩️',
},
},
]),
);
let embed = new MessageEmbed()
.setTitle("Les Roles.")
.setDescription("Choisir un role celon vos besoin.")
.setColor("GREEN")
let embed1 = new MessageEmbed()
.setTitle("Roles admis !")
.setDescription("Vous avez le role Garry's Mod.")
.setColor("GREEN")
let embed2 = new MessageEmbed()
.setTitle("Les Roles.")
.setDescription("Vous avez le role Fivem.")
.setColor("GREEN")
let sendmsg = await interaction.channel.send({ content: " ", ephemeral:true, embeds : [embed], components:[row] })
const collector = interaction.channel.createMessageComponentCollector({
componentType: "SELECT_MENU"
})
collector.on("collect", async(collected)=>{
const value = collected.values[0]
if(value === "first_option"){
collected.reply({content: " ", ephemeral:true, embeds : [embed1], components:[] })
interaction.member.roles.add('952581402556252220')
}
if(value === "second_option"){
collected.reply({content: " ", ephemeral:true, embeds : [embed2], components:[] })
interaction.member.roles.add('952581403491598366')
}
})
}
}
collected => ton interaction
Donc utilise collected.member
Néanmoins
Utiliser un collector ne sera pas durable
Si le bot crash ou le temps est dépassé, ton interaction ne marchera plus, mieux vaut donc utiliser l'event interactionCreate directement
Et sinon tu peux aussi faire quelque chose de statique comme ça plutôt qu'un appel de commande comme #hub-developpement
Ton bot démarre ?
Si oui tu ignore. Si non, je sais pas x)
non en fait je fais npm i ET SA MET SA
Ba là, start ton index.js 🤔
justement sa met l'error que j'ai envoyer au dessus
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module 'quick.db'
Require stack:
- C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js:2:12)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js' ]
}
Node.js v17.1.0
pareil
de nouveau l'err ?
bah du coup install les dernières de Visual Studio
oui c'est installer sa mais sinon oui l'erreur et encore la
t'as fait des majs ?
j'ai desinstaller Visuel sutdio et installer la derniere maj
et c'est quoi ton erreur maintenant ?
C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt>node index
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module 'quick.db'
Require stack:
- C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js:2:12)
at Module._compile (node:internal/modules/cjs/loader:1097:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\index.js' ]
}
Node.js v17.1.0
t'avais supprime le fichier node module ?
oui
Quelqu'un peut m'aiguiller sur la commande ticket pour un bot ?
t'as include le Desktop development with C++ dans l'installation ?
normalement oui
{
"name": "slash-bot-template",
"version": "1.0.0",
"description": "A discord bot with slash commands",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo "Error: no test specified" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/gurizenit/slash-bot-template.git"
},
"author": "GuriZenit",
"license": "MIT",
"bugs": {
"url": "https://github.com/gurizenit/slash-bot-template/issues"
},
"homepage": "https://github.com/gurizenit/slash-bot-template#readme",
"dependencies": {
"@androz2091/discord-invites-tracker": "^1.1.0",
"@discordjs/builders": "^0.10.0",
"@discordjs/rest": "^0.2.0-canary.0",
"canvacord": "^5.2.3",
"canvas": "^2.8.0",
"discord-anti-spam": "^2.6.1",
"discord-giveaways": "^5.1.1",
"discord-slash-commands-client": "^1.2.2",
"discord-xp": "^1.1.16",
"discord.js": "^13.6.0",
"dotenv": "^10.0.0",
"fs-temp": "^2.0.1",
"node-twitch": "^0.4.5",
"quick.db": "^7.1.3",
"replace-ext": "^2.0.0",
"temp": "^0.9.4"
}
}
comment sa ?
bah vu toutes les dépendances
c'est plus un modèle x)
t'as node-gyp d'installer sur ton pc manifestement, ça pose des soucis
faut queje le desinstalle ?
Non si il tu l'utilise
wallah je comprend que dal ;-;
mais normalement avec vs build tools et en installant avec le Desktop c++ ça aurait du déjà régler ce problème 🤔
pff sa me soule
et là y a quoi dans ton fichier node module ?
un fichier marquer canvas
supprime le
He bg calme toi c'est un template
J'utilise le même pour tous mes projets
J'ai eu aucun soucis
Jusque là
Une erreur ?
Nope, rien dans la console du moins
Et il se passe quoi ?
rien justement
Test l'évent en mettant un console.log
Et sinn vérifie que t'as bien les bon intents d'ajouté
Ou alors que ta variable prefix a pas le bon prefix
Meaculpa je pensais que le bot avec tous les dépendances c'était la template 👀 effectivement c'est plutôt sympa
Le problème étant qu'avec un autre bouton mais qui nest pas un ticket ça fonctionne
c'était un LINK, là un PRIMARY
c'est ça qui bloque je crois
Je suis pas revendeur de code Github :(
Seul problème x), c'est pour de la v12
Désolé 
Non non
Le boug il l'a adapté pour la v13
Ha le no life
du coup je fais comment si rien marche
Beerk le joueur lol
npm i quick.db
déja essayer
Et ?
Parce que le readme indique que ça marche qu'avec la version v12 de eiscord.js
Il a du faire une update sans changer le readme
Prcq le template est fait pour la v13 comme tu peux voir
T'as pas de custom id pour ton button
j'ai cru que c'était ça mais ça a rien changé
Même comme ça rien ne se passe
Donc soit c'est l'évent soit la condition
oui?

Mais
Wtf
Tu sais que tu peux tout mettre dedans
Tu mets les conditions à la suite
Haha je suis pas venu pour qu'on se foute de moi :c
Tu devrais te tourner vers un handler ^^'
Yes mais j'ai déjà essayer, une erreur qui ne devrait pas être là était là, j'ai passé deux longues nuit à chercher mais rien à faire
C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt>npm i quick.db
npm ERR! code 1
npm ERR! path C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\node_modules\better-sqlite3
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || npm run build-release
npm ERR! > better-sqlite3@7.4.5 build-release
npm ERR! > node-gyp rebuild --release
npm ERR! prebuild-install WARN install No prebuilt binaries found (target=17.1.0 runtime=node arch=x64 libc= platform=win32)
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@8.3.0
npm ERR! gyp info using node@17.1.0 | win32 | x64
npm ERR! gyp info find Python using Python version 3.10.2 found at "C:\Users\maxim\AppData\Local\Programs\Python\Python310\python.exe"
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version not set from command line or npm config
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS checking VS2019 (16.11.31727.386) found at:
npm ERR! gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
npm ERR! gyp ERR! find VS - "Visual Studio C++ core features" missing
npm ERR! gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack at VisualStudioFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
npm ERR! gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16
npm ERR! gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:351:14)
npm ERR! gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:70:14
npm ERR! gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16
npm ERR! gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:404:5)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1062:16)
npm ERR! gyp ERR! System Windows_NT 10.0.19044
npm ERR! gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--release"
npm ERR! gyp ERR! cwd C:\Users\maxim\OneDrive\Bureau\Maxime Verrückt\node_modules\better-sqlite3
npm ERR! gyp ERR! node -v v17.1.0
npm ERR! gyp ERR! node-gyp -v v8.3.0
npm ERR! gyp ERR! not ok
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\maxim\AppData\Local\npm-cache_logs\2022-03-13T21_14_34_840Z-debug.log
C'était quoi ton erreur?
c'était sur un "bind"
Faudrait déjà que tu désinstalle la vielle version de VC
Et que tu mettes la nouvelle
et bas j'ai desinstaller Visuel studio code et j'ai installer la nouvelle
j'arrete pas de le fairesa
@coarse trench @sharp grail J'ai réussi à réparer l'erreur, maintenant manque plus qu'à faire en sorte que quand on clique, ça crée un channel
Mais t'as dis que y'avait pas d'erreur
Elle s'affichait pas, mais yen avait une, j'ai bidouillé le customID puis ça a marcher
j'ai refais encore uen fosi c pareil
Pourquoi tu fais pas un message static genre dans un channel ouvrir un ticket?
Désolé j'arrive pas à savoir pourquoi, l'erreur viens de pc pas du bot
Hmmm parce que je sais pas faire ? c:
Il dit que tu dois installer la dernière version de visual code studio
et bas c fais sa
Mmh x))
Screen le terminal stp
Une aide ne serait pas de refut ^^
Tu dois utiliser l'évent interactionCreate
T'as les bases du js ? 👀
ça dépend ce qui tu dis pas base, je code depuis un petit moment, j'ai fais le bot moi même, sans youtube je veux dire, mais je ne suis pas apte à créer des scripts encore
enfin, trouver des scripts seul

🤔 je vois
Autrement dit, j'ai pas les bases ^^
ce que j'entends par base en javascript, c'est boucle conditions opérateurs fonction variable, et éventuellement les objets et les arrays
variables je sais faire je dirais, conditions aussi mais le reste nope
ouh x)
bah t'en utilises
t'utilises des events, des callback, des classes sans même le savoir, est ce que c'est pas beau ? :0
La condition je m'en doutais
condition c'est globalement if, opérateur c'est par exemple + = - / * >= <=
Mais du coup
avant de continuer ton bot je te conseille de te renseigner là dessus
et ensuite, tu peux regarder des tutos, explorer la doc de discord.js, et créer ton bot
mais faut que tu comprennes un minimum ce que tu fais 👀
@coarse trench
Le meilleur moyen d'apprendre c'est en pratiquant 👌
Pour ça qu'à chaque fois que je demande de l'aide, je demande qu'on m'aide à trouver la réponde, pas me donner la réponse
Et bah c'est parfait, c'est comme ça que tu vas apprendre.
Tu verras il y aura des tutos cools sur la mise à jour du site 👌
🙂
Salut j'aimerais savoir si il y a un module pour recupp les streams twitch et les vidéos ytb pout les poster auto ?
Check les API respectives
Si tu trouves pas ton bonheur, analyse le flux quand tu le fais à la main
Si trop complexes à reproduire, t'aura toujours la solution headless, bien que pas ouf
Salut à tous j'ai un probleme j'ai fais un bot et quand quelqu'un veut appuyer sur un bouton que j'ai mis ça répond ça
Est ce que quelqu'un sait pourquoi ça fait ça
tu as pas répondu à l'intéraction correctement avec interaction.reply ou tu as pas defer la reply. Autre possibilité : ton bouton est mal formé
Bonsoir tout le monde 👋 ,
est-ce que quelqu'un aurait des tips pour commencer à étudier je Javascript svp ? Des tutoriels complets ou autre cours ^°^
Merci à tous !
Salut,
Tu peux commencer par :
https://www.codecademy.com/learn/introduction-to-javascript
Par exemple, sinon y a plein d'autres ressources que tu peux trouver en tapant simplement "JavaScript Courses".
merci !
envoie direct ta question 
@cyan iron c'est tout aussi con de juste envoyer le lien du site
Je voudrais que quand une personne clique sur un bouton, sa lui donne un role chuis bloqué a la
je pense être pas loin
member n'existe pas 🙂
Si je ne me trompes pas c'est interaction.member
Mais je vais vérifier je ne suis pas sûr
Oui
même pas
Tu as une erreur ?
Tu es sûr du customId que tu as mis ?
x)
merciii

Pour ceux qui ne connaissent pas encore la différence entre const, let et var 👇
salon d’entraide la vous débattez de l’utilité du Tweet
Non non, à aucun moment j'ai dis que le twitte était inutile, vu le succès de celui-ci, se serait un peu stupide
il va encore supprimer, je dis juste que c'est un rappel voir juste un truc pour un dev débutant qui connaissait pas la diff mais qui voit le truc comme ça dans sa tl et pas d'un cours sur twitter
Comment on fait une commande ban, kickbet warn ?
Dans quel domaine ?
discord.js
:_: GuildMember#ban()
Bans this guild member.
:_: GuildMember#kick()
Kicks this member from the guild.
@rustic mulch regarde ces deux liens
Ho c'est génial ce bot
Bonjour, Bonsoir j'ai une petite question
if (!message.member.hasPermission("ADMINISTRATOR"))```
Oe ?
Je voudrais faire en sort que sa ne soit pas un role
mais un ID User
en gros une commande bot owner
let owners = ["id", "id"]
if (!owners.includes(message.author.id)) return message.channel.send("Vous n'avez pas la permission")
C'est ça que tu veux ?
(:
let owners = {
"id1": true,
"id2": true
};
if (!owners[message.author.id])
return message.channel.send("Vous n'avez pas la permission !");
Bon je fais un peu le chiant mais tu peux faire ceci c'est plus opti
(si c'est pour 2/3 id on s'en fout mais voilà au moins tu sais)
Y'a quoi d'opti ?
Dans ton cas, tu fais une array avec une liste comme valeurs, donc includes va aller check chaque valeur une par une pour vérifier si c'est égal à ce que tu veux
Dans mon cas, il va directement chercher l'ID voulu dans la table, si il existe, c'est == true, si il existe pas, c'est == null. Ca évite de boucler parmi tous les éléments de ta table pour rien
Après bon c'est de la micro-opti mais c'est toujours intéressant à savoir
L'ordinateur va tout de même dans ton cas check chaque valeur si elle est égale à ce que tu demandes ^^
Nope
L'ordinateur va directement aller chercher la valeur de l'ID dans la table
Dans ton cas, elle va passer parmi toutes les valeurs de la table jusqu'à quand elle trouve la tienne
Si tu le dis
C'est pas moi qui le dit c'est le langage
C'est bien toi qui parle
Max a raison, y a pas à discuter, en théorie c'est une opti, mais c'est très déconseillé de faire ça en JS étant donné que le moteur va remanier ton code au cours de sa vie
Pour que tu comprennes la logique, .includes fonctionne un peu comme ceci en interne :
let owners = ["id1", "id2", "id3"];
let userId = "id3";
let found = false;
for (const v of owners) {
if (v === userId) {
found = true;
break;
}
}
return (found);
Donc si tu te retrouves avec une array de 100000 éléments par exemple
Et que l'élément que tu veux trouver est le dernier de ton array
Il va boucler 100000 fois, faire une condition 100000 fois pour pouvoir dire si il est dans l'array ou non
Alors qu'en utilisant l'index d'un object, il va directement chercher la valeur via l'index, peu importe combien d'éléments tu as dans ton objet 😉
Tu entends quoi par "remanier ton code au cours de sa vie" ? Ca m'intéresse ^^
Tu sais comment fonctionne le moteur V8 de nodejs ?
Dans l'idée en tout cas ?
@lone flax
Pour la compilation du code tu parles ?
Yes exactement
Yes, mais en fait c'est même plus cool que ça
En réalité, le moteur démarre avant ton code et va compiler celui-ci avec une méthode un peu particulière (compilation JIT), ce qui va lui permettre de compiler à la volé (c'est le gros avantage de JIT) mais en plus de ça, vu qu'on compile le code au besoin, on va pouvoir lui passer des petites optimisations au passage
Contrairement à un langage en compilation standard ou là, le système de compilation (+ le dev) va devoir penser les opti à l'avance.
De ce fait, si tu lances une fonction à T et la même à T+10, il y des chances pour que le code compilé (ici du bytecode), soit différents. Bien sur la logique et le résultat restera le même
Je sais pas si c'est clair comme explication
(je parle bien de la compilation ici, pas du transpile du code)
Oh okey je vois, c'est pas mal du tout! Et je vois encore des gens dire que javascript c'est le pire langage 
Oui ^^ pourtant c'est la techno de base du V8 ça, on est d'accord que c'est dingue
Et du coup pour en revenir à ton opti, on va éviter ce genre d'opti car c'est impossible d'anticiper ce que le compiler va faire étant donné que lui il gère des centaines de millions (si ce n'est pas plus) de conditions pour opti de telle ou telle manière le code
Par contre à la place tu as tout à fait le droit d'utiliser une map/collection
ça peut paraitre un peu extrême mais dans certains langages propriétaires, la compilation JIT peut fusionner des objets pour faire des gains de place (je sais pas si le js peut en arriver là par contre). Donc c'est vraiment impossible à anticiper
Ah ouais d'accord, c'est super intéressant en vrai
Il y a pas moyen de savoir ce qu'il fait j'imagine ?
Faudrait analyser du bytecode 
J'imagine que les fou furieux qui ont fait ça ont déjà plongé dedans, mais bon c'est un niveau plutôt violent je pense ^^'
Je m'y risquerais pas perso x)
Aha j'me doute, merci pour l'explication en tout cas
np
J'ai bien compris
Bonjour,
J'ai un petit problème de crash de mon bot discord, discord.js n'arrive pas lire la description d'un fichier (de temps en temps), et je n'arrive pas a intercepté l'erreur, savez-vous comment faire ?
try
{
message.channel.send({
files: [faction1, map, faction2]
});
}
catch (e)
{
console.log(e);
}
L'erreur ?
Uncaught TypeError TypeError: Cannot read properties of undefined (reading 'description')
at <anonymous> (c:\Users\Mathieu\Documents\BotDiscord\MMFR\node_modules\discord.js\src\structures\MessagePayload.js:183:25)
laissez tombé, j'ai juste dépassé l'index d'un tableau du coup ça vient de code plus tot 🙂
un try catch ne marchera pas sur une promesse
utilise .catch à la place
ah merci 🙂
Salut salut! est ce que c'est possible de faire une commande qui ping qqn au hasrd dans le serveur ? 🙂
oui ^^
J'avais déjà fais ça
J'avais fais en sorte que quand on fasse @random ça réponde avec un utilisateur random
ui x)
la v13 ?
bon après c'est pas compliqué à faire
En v11 c'était présent !
Alors là j'étais aps au courant
Non
Client.on("messageCreate", message => {
if(message.content === "bouton"){
const row = new Discord.MessageActionRow()
.addComponents(new Discord.MessageButton()
.setCustomId("bouton1")
.setLabel("Dire Bonjour")
.setStyle("SECONDARY")
.setEmoji("")
);
message.reply({ content: "Message avec Bouton", components: [row] });
}
});
Client.on("interactionCreate", interaction => {
if(interaction.isButton()){
if(interaction.customId === "bouton1"){
interaction.reply("Vous avez appuyé sur le bouton");
}
}
});
Client.on("guildMemberAdd", member => {
Client.channels.cache.get("955027961352953946").send({"<@" + member.id + "> est arrivé !", components: [row]})
member.roles.add("955096255594385498");
});
Hey, alors j'essaye que quand quelqu'un join mon serv, un message drop avec un bouton, sauf que il me met une erreur avec les deux + avec le member.id
l'erreur ?
{content:"ton contenu", components: [row]}
sinn .send("ton contenu", {components: [row]})
Montre nous l'erreur
Yes, mais je veux mentionnez l'utilisateur
et donc ?
Ba ca marche pas, ca fait rien
send("<@" + member.id + "> est arrivé !", {components: [row]})
hop la petite virgule que j'avais oublié
Ah, tu as oublié quelque chose quelque part
une parenthèse ou un truc comme ça
Y'a tout ton code en haut là ?
Client.channels.cache.get("955027961352953946").send({"<@" + member.id + "> est arrivé !", components: [row]}) manque une key pour ton obj là
@sharp grail
Ah bien vu
ou
Ouaip c'est ça
marche plus en v13
Je regardait dans messageCreate moi 
bahaha
"Hey, alors j'essaye que quand quelqu'un join mon serv, "
J'ai pas tout lu je dois l'avouer 
du coup oui x)
sinon, { content: ${member.toString()} est arrivé ! ... }
ou juste member mais jsuis pas sur que ce soit très bon pour l'opti x)
explique
J'ai ça mais il me met des erreur
Client.channels.cache.get("955027961352953946").send({content: member.toString()+ "est arrivé !", components: [row]})
tu fermes pas ta parenthèse
okay

oe fin
Non mais c'est pour qu'il regarde son code pas les erreurs
L'autre il l'aurait trouvé sinon
Ha c'est bon je crois
Voilà
ça pose juste problème si c'est le channel est pas en cache de faire ça

défini row ?
Pour ceux qui ne connaissent pas encore la différence entre const, let et var 👇
Tient regarde
waaaaaaa on apprend encore des trucs
Tu vas avoir l'explication là dedans ;)
En gros tu met ta variable dans ton bloc mais elle ne peut pas en sortir, si tu veux qu'elle soit globale il faut que tu la mette en dehors des blocs, ou que tu utilises var ( mais bon pas très conseillé )
{
...
const tavar = ...
...
// Accessible
}
// Pas accessible
haa okay
Mais si tu fais :
const tavar = ...
{
...
...
// Accessible
}
// Accessible aussi
Donc en gros faut que je mette mon bouton dans mon block
Ta variable row si tu l'utilises à deux endroits différents alors sort là de ton bloc
Vu que tu fais tout dans un seul fichier c'est pas problématique pour toi
Mais donc ca change rien dans ce cas si ?
Comment ça ?
Je comprend pas 

C'est peine perdu
Ce que tu as actuellement :
Client.on("messageCreate", message => {
const row = "ta row";
// ton code
// row est accessible
});
Client.on("guildMemberAdd", member => {
// ton code
// row n'est pas accessible
});
Ce que tu dois faire :
const row = "ta row";
Client.on("messageCreate", message => {
// ton code
// row est accessible
});
Client.on("guildMemberAdd", member => {
// ton code
// row est accessible
});
Voilà ce que j'ai fais ^^ et l'image en thumbnail est un png mais discord me le met en noir, possible de changer ça ?
met un fond couleur embed
pas bette
#2f3136
Ha okayy
Ca marche let's go
Maintenant faut pouvoir le faire une fois
aller adieu

et merci à tous aussi
Adios pépitos
Holà, Holà
const activites = [
{ type: 'PLAYING', message: '#1' },
{ type: 'WATCHING', message: '#2' },
{ type: 'LISTENING', message: '#3' }
];
bot.on('ready', () => {
setInterval(() => {
const index = Math.floor(Math.random() * (activites.length - 1) + 1);
bot.user.setActivity(activites[index].message, { type: activites[index].type });
}, 10000);
});```
j'aimerais faire une 2èm boucle mais qui change le status : (online, dnd, offline...)
j'ai essayé des trucs, et j'ai cherché sur overstack mais rien 🤷♂️
la seule chose que j'ai réussi à faire c'est ça client.user.setStatus('dnd')
mais j'arrive pas à le randomize
une err ?
et sinon ton calcul d'index est pas bon x)
const index = Math.floor(Math.random() * activites.length);
en gros
tu multiplies un chiffre compris entre 0 et 1 par le nombre d'activité - 1 soit 2, puis tu ajoutes 1 et tu prends la valeur inférieure,
soit
0 < x < 1
0 < 2x < 2
1 < 2x + 1 < 3
et arrondi à l'entier inférieur
2x + 1 = { 1 ; 2 }
nop, le truc du status marche bien
mais j'aimerais le convertir avec le stauts
tu n'auras jamais la première valeur ;)
ça
oui, ça je sais
je m'en fiche un peu de ça,
bref sinon la doc 👀
c'est pas dérangent
:_: ClientUser#setStatus()
Sets the status of the client user.
Bah c'est un peu bête..
du coup sinon
pour réunir les deux
:_: ClientUser#setPresence()
Sets the full presence of the client user.
Bah 🤔
tu fais la même chose
||en prenant une méthode qui prend en compte tous les éléments de l'array||
ex
let status = [
'dnd',
'online',
'invisible'
'idle',
]
setInterval(() => {
bot.user.setStatus(status[Math.floor(Math.random() * activites.length)]);
}, 10000);
ahhhhhh, je vois
beh merci (:
heyyy, désolé de re te déranger
J'ai une error output
Uncaught ReferenceError ReferenceError: activites is not defined```
bot.on('ready', () => {
setInterval(() => {
bot.user.setStatus(status[Math.floor(Math.random() * activites.length)]);
}, 30000);
});```
heu, mais j'ai deja ça
;-;
setActivities
je te parle pas de ça
je met ça ?
t'as les bases du js ?
si t'as compris c'est l'essentiel x)
j'ai une dernière question et j'arrete de t'embeter
if (!owners.includes(message.author.id)) return```
j'aimerai faire en sort que le return envoie un embed mais je n'y arrive pas
:_: TextChannel#send()
Sends a message to this channel.
message.channel.send({ embeds: [ ton-embed ]};
ça je sais j'ai fais ça js if (!owners.includes(message.author.id)) return message.channel.send(test);
mais je ne sais pas ou mettre le const embed et les infos
:_: BaseMessageOptions
Base options provided when sending.
bah tu le mets juste au dessus par exemple 🤔
if (...) {
const embed = ..
message.channel.send({});
}
if (command === "try") {
const test = new Discord.RichEmbed()
.setTitle("#1")
.setDescription(":no_entry: ")
.setTimestamp()
.setColor(red);
if (!owners.includes(message.author.id)) return message.channel.send(test);```
like this ?
tu devrais passer en v13
parce que décommissions de l'api v7, repoussé certes, mais ça va pas durer éternellement, et que c'est plus compliqué et moins pratique d'avoir les nouvelles fonctionnalitésb
après comment dire que j'ai un piti peut la flemme d'update mon code actuel :/
y'a beaucoup de chose à changer ?
plus t'attends plus y aura de chose à changer 
non c'est correct, y a même le guide qui t'explique ce qui change
tu pourrais m'envoyer ce guide ?
:_: discordjs.guide results:
• Additional Information: Changes and deletions - User
• Additional Information: Changes and deletions - User
heuuuuuuuuu
mais sa change quand même pas mal
c'est de la difficulté en plus mdr
deja que j'ai du mal
boarf
j'ai pas un niveau EXTRORDINNAIRE
dans ce cas là ptet te tourner vers l'apprentissage du js pur avant de continuer x)
je préfère prendre du temps pour le web :/
yo
je suis en train de test un modèle next
et pour la carte spotify
il faut un .env.local
mais je ne sais pas ou le placer
et quoi mettre dedans
SPOTIFY_CLIENT_ID=blablabla
SPOTIFY_CLIENT_SECRET=blablabla
SPOTIFY_REFRESH_TOKEN=blablabla```
ou bien
SPOTIFY_CLIENT_ID="blablabla"
SPOTIFY_CLIENT_SECRET="blablabla"
SPOTIFY_REFRESH_TOKEN="blablabla"```
et mon spotify.ts est comme ceci :
const client_id = process.env.SPOTIFY_CLIENT_ID;
const client_secret = process.env.SPOTIFY_CLIENT_SECRET;
const refresh_token = process.env.SPOTIFY_REFRESH_TOKEN;
const basic = Buffer.from(`${client_id}:${client_secret}`).toString("base64");
const NOW_PLAYING_ENDPOINT = `https://api.spotify.com/v1/me/player/currently-playing`;
const TOP_TRACKS_ENDPOINT = `https://api.spotify.com/v1/me/top/tracks`;
const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`;
const getAccessToken = async () => {
const response = await fetch(TOKEN_ENDPOINT, {
method: "POST",
headers: {
Authorization: `Basic ${basic}`,
"Content-Type": "application/x-www-form-urlencoded",
},
body: new URLSearchParams({
grant_type: "refresh_token",
refresh_token,
}),
});
return response.json();
};
export const getNowPlaying = async () => {
const { access_token } = await getAccessToken();
return fetch(NOW_PLAYING_ENDPOINT, {
headers: {
Authorization: `Bearer ${access_token}`,
},
});
};
export const getTopTracks = async () => {
const { access_token } = await getAccessToken();
return fetch(TOP_TRACKS_ENDPOINT, {
headers: {
Authorization: `Bearer ${access_token}`,
},
});
};```
Regardes au début
Ceci
Mais ça ne marche pas :(
Erreur ?
C'est juste .env aussi @honest maple
ah ok
Et essaye avec " et sans
ready - started server on 0.0.0.0:3000, url: http://lo
npm run dev
> anurag@0.2.1 dev
> next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
info - Loaded env from /home/runner/Portfolio/.env.local
event - compiled client and server successfully in 5.5s (175 modules)
wait - compiling / (client and server)...
event - compiled client and server successfully in 3.7s (272 modules)
undefined```
ok


