#javascript-typescript
1 messages · Page 69 of 1
xD
Pas très grosse commu, donc si problème démerde toi tout seul
Eris is the most massive and second-largest known dwarf planet in the Solar System
xD
Tu regarde quoi xd
logik 1000 iq
Ouais
En vrai vous avez des endroit pour réapprendre Discord.JS ? (je vais sortir mon chien je reviens ^^)
Alors quel intérêt
Xd
Il est ultra opti
Même si ton code est pas opti
Il est opti
Rapide
Il met pas 4 fois le même truc dans le cache xd
Pour avoir testé c'est pas ouf honnêtement
Faut s'adapter
Ouais mais bof
Perso j'adore Eris
J'aime pas
Même que apparemment d.js est mieux qu'avant
Le truc aussi sympa avec Eris, que le gars implémente rapidement les nouveautés de l'api
Pas comme discord.js
les màj fréquentes ça se fait au prix de la stabilité
mais le fait que ce soit léger est un plus c'est vrai
cela dit c'est une problématique que tu ne rencontrera que très rarement sur un bot, et c'est + qqch à intégrer avec d'autres applications ou avec des bots de très grosse taille à la limite
je plussoie le support "natif" des commandes mais c'est loin d'être aussi avancé et donc pratique que discord.js-commando
mais c'est un truc de ouf, j'ai l'impression que les gens ont peur de me répondre sur ce sujet xD
et je ne comprend rien aux promises, donc ça n'arrange pas 
Les promise c’est simple
en fait avec ce que je souhaite faire ça ne marche pas
ma fonction est récursive
ce qui marche en php ne marche pas ici 
mais je fais autre chose du coup
je vais générer la liste en php et après j'applique en js
En gros c'est quoi ton problème?
Tu peux mettre la fonction en haut en async
Et faire un await
oui mais ça ne fonctionne pas
enzo m'a dit de faire une promise mais je ne pense pas que ce soit bon
$( document ).ready(async() => {
await loadNavbar(0,0); // Load all the nav items at page load
});
T'as essayé ça?
@jovial turret
si seulement c'était si simple
C'est oui ou non? x)
bah non arvix
j'étais tellement désespéré que j'aivais mis un await au get de jquery x)
tu peux await que sur une promise
Sofiane le await à la fin tu le resolve()
et là justement tu pourras await loadNavbar() car il va attendre le resolve de ta promise pour passer a la suite
function loadNavbar(parentId,state){
return new Promise((resolve) => {
//ton code
resolve(true)
})
}
mais mon code nécessite qu'il se rappel, une promise peut se rappeler? 🤔
Mais pourquoi ta fonction doit se rappeler elle même ?
Si elle en vient a se rappeler c'est que tu peux la diviser en 2 partie
c'est quoi ce bordel
Oui je comprend pourquoi tu veux qu'elle se call elle même?
nan mais je change de strat du coup :p
Tu cherches à faire quoi exactement ? créer ton menu via ce que tu as en base ?
l'élément 0 n'existe pas, c'est le root
Mais dans ce cas là tu devrais mapper ton object quand tu le reçois pour te créer un tableau qui te facilitera la vie
Pour en gros finir avec un tableau comme ça:
[
{
name: 'toto',
children: [{
name: 'tata'
}]
}
]
``` etc etc
yes
Bah c'est surtout que la ton code c'est la guerre
x)
et pas celle du vietnam
x))
même pour toi je te conseille de mapper vraiment ta data, pour ta propre relecture ce sera + simple
en plus :p
fini 😄
et tu trouves ça mieux ?
j'ai fais une liste de cette forme https://rosewood-rp.net/vbcms-admin/backTasks/?loadClientNavbar=all
et en 1 boucle j'ai pu tout mettre
niquel
quoique je vous passe le lien mais...
on y a pas accès mais tkt 
yes
like si je suis bg 

ça se voit que c'est terminé hein 
je poste des news toutes les semaines sur mon serveur à propos de l'avancement :p
incitation à venir sur ton discord :oo
non je ne vwa pa de koi tu parles 
trop bien les patch note qui redirige vers des 404 

aaah
oui je sais
quand je me suis décidé de faire ce site, j'avais déjà commencé la v2
je ne le laisse là que pour la doc (que personne ne lit, et après ça vient me demander pk ça s'installe pas 🤦♂️ )
C’est kwaa?
un truc mal foutu x)
Bonjour, après avoir effectué un message avec mon bot, il spam... Savez vous pourquoi ?
Voici le code
Comment vas tu*
Ha bas oui jsuis pas très intelligent, merci, mais par contre tu sais comment faire sa ? X)
Merci, xD
If (message.author.bot) return
if (message.author.bot) return
Faut le mettre avant ^^
Ha x)
Une ERREUR ?
bonjour, une erreur ?
Les reactions sont bidons non ?
Si, il remplis sa fonction
Ok
C'est pour faire un sondage
Oui mais qu'est-ce qui ne fonctionne pas? @keen narwhal
Hola, savez comment rajouter une réaction lors que un user envois un message genre " salut" le bot repont mais je voudrais qu'il m'êtes une réaction en plus sur le "salut" merci !
@keen narwhal merciii
pas besoin de mettre ça en deux fois
on peut juste dire js if (message.content === "salut le bot") { message.react(":wave:"); message.channel.send("salut"); }
===
et on peut mettre des .then pour faire des trucs dans l'ordre
Ou await
un await là dessus ça serait useless vu qu'on cherche pas à récupérer des variables
Yep mais ça fait le truc dans l'ordre
Re hola, vous savez se qu'il ne vas pas, j'ai une erreur..
T’as fais un else if mais t’as bien un if avant ?
Ha j'avais supp le code, je pense que c'est sa yep, je retourne vers toi
@keen narwhal ce serait bien que tu apprennes les bases je pense car là ce sont que des erreurs qui devraient être trouvé par toi
Bonsoir,
est ce que le fait de faire du bot discord en js peut me servir par rapport à du web ou, si c'est pour faire du web avec js, c'est une perte de temps ?
merci par avance de la réponse :p
nb: je me fais le cours de graphikart sur les bases js, est ce que le cours est assez d'actualité ? https://grafikart.fr/tutoriels/php-to-js-769#autoplay
Je pense que ça te fait travailler ton JS, mais commence directement à faire du JS WEB
ça peut te servir dans le sens où ça reste du JS donc t'apprendra la syntaxe, les fonctions, etc... du js mais si ton but derrière est juste de faire du web et pas des bots discord je ne vois pas l'intérêt de commencer en faisant des bots discord pour apprendre pour du web sachant que ça n'a relativement aucun rapport ce que tu va faire dans l'un ou dans l'autre, par exemple, t'apprendra pas à manipuler le DOM en faisant un bot Discord alors que c'est la chose principale à faire quand tu fait du JS web
ok merci à vous deux
Salut les gens, j'ai une question, je n'arrive pas à développer un bot discord sur visual, quelqu'un pourrait m'aider s'il vous plaît ?
Merci de vos réponses
Alors
1 : tu as installée la librairie discord js ?
2 : si oui tu as fait un coup de node sur ton fichier pour test après avoir mit ton premier code ?
Le 1 je l'ai fait, mais je vais essayer le 2, merci du conseil 🙂
Normalement tu as un premier code assez simple sur la doc pour commencer
t!search bot
bien jouer 

Si par "web" tu veux dire faire de la manipulation au niveau du DOM (donc sur une page html), ça va pas bcp te servir en dehors de la syntaxe. Si tu fais du js avec node donc comme des applications web côté serveur (ça peut aussi être du React ou du Vue, pour le côté client) ça aura son utilité pour t'apprendre l'environnement dans lequel tu vas développer. Node.js a quelques spécificités par rapport au javascript "classique" et supporte mieux les dernières fonctionnalités Ecmascript.
C'est un peu obsolète, d'autant plus que js et php ont tous deux évolué.
Et puis de base js et php sont deux langages vraiment différents
quelle version de discordjs et quelle version de node
Bah je sais pas non plus ^^
node -v pour la version nodejs
bien pris ^^et merci
Hello, je cherche à faire un système de language en json, seulement je ne sais pas comment retranscrire le tag d'un member... du genre dans cette phrase normalement je mentionne l'utilisateur qui est warn, et je ne sais pas comment faire la même chose mais en json
je sais pas si c'est très clair
tu peux replace dans ta string
avec une espece de pattern ou quand ta string contiendra ${member} venir le remplacer par la variable member
mh, je vois mais comment ça s'appelle ce système là :
il met %s
mais je capte pas comment il le définit
pour replace la string, tu parlais comme ça ?
ah bah yes ça marche, ty Enzo !
le fait que je replace ou ta méthode, à une différence notable ou ?
mieux son truc
okay, mais je t'avoue que je comprends pas bien son utilisation
du moins dans mon cas je comprends pas trop comment l'use
Bonjour, j'ai essayé de faire un anti mention, il fonctionne, sauf quand ont met un mot avant " test (ma mention)" la le bot ignore le message alors que quand on fait "(ma mention) test" sa fonctionne.
Savez vous comment faire en sorte que le bot regarde toute la phrase envoyé et Supprime le message si y'a une mention des personne indiquée dans le code avec leurs id.
Merci
if ( message.content.includes("tamention") ) {
message.delete();
return message.channel.send("text");
}
à test
Ça sert à rien ton truc... ça mention quand même hein
Comment faire autrement ?
je doute que tu puisses
On peut pas il me semble
ça va quand même envoyer le message
ça fera un ghost ping
mais il me semble que tu peux sur discord interdire la mention d'un certain rôle
C'est pas un grade mais un utilisateur ^^
Oui tout simplement
Genre = @keen narwhal
ah
Tu pourras pas alors
là tu peux pas je crois
Ça va ping quand même
Je sais mais sa indique comme même a l'utilisateur de pas mentionner
C'est juste sa que je veux ^^`
test ce que je t'ai donné
Certe de le message delete sert a rien
Surtout quel intérêt d’avoir un discord si on a pas le droit de te ping 😫
même dans la Zarocratie on peut 
J'ai mes raison ^^
Sa fonctionne super merci
pas de soucis
ça me paraît plus intelligent de passer par message.mentions pour vérifier qu'il y a une mention 🤔 https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=mentions
exemple:
if (message.mentions.has('733280865588740106')) {
message.delete();
return message.channel.send("text");
}
mettons que ta string sur ton json ça soit "Salut %s !"
tu peux juste faire
const { format } = require('util');
const myStr = 'Salut %s !';
const user = {
name: 'Lartaxx'
}
console.log(format(myStr, user.name));
// output: Salut Lartaxx !
L'avantage c'est que c'est non seulement plus rapide, mais également plus facile à utiliser une fois que tu as déjà préparé ta string : il faut simplement faire attention à l'ordre
donc dans mon json je replace mon ${member} par %s et dans mon code je mets format(config.tatata, member); ?
ouais
alors perso ça fonctionne pas bien
ça me return ça :x
alors que tout est ok quoi
ah oui non ok xd
j'ai oublié un truc
att wtf
tu peux juste faire util.format(config.language.fr.phrases.success_embed_description, member_warn), pas besoin de faire ce que tu fais
genre ça fonctionne quand même normalement
mais c'est super bizarre de faire ça
si tu veux absolument t'assurer que ce soit des string, tu peux utiliser String() mais ça a franchement aucune utilité ici
oauip j'ai fais comme ça aussi ^^
il le fait déjà de son côté dans format node
Quelqu'un sait pourquoi ça fait ça ?
Erreur :
logsInvites.find is not a function
Code :
let invite = guildInvites.find(i => logsInvites.find(inv => inv.code === i.code).uses < i.uses)
guildInvites :
guild: Guild {
members: [GuildMemberManager],
channels: [GuildChannelManager],
roles: [RoleManager],
presences: [PresenceManager],
voiceStates: [VoiceStateManager],
deleted: false,
available: true,
id: '681855957441183755',
shardID: 0,
name: 'Support FR ©',
icon: '',
splash: null,
discoverySplash: null,
region: 'europe',
memberCount: 52,
large: true,
features: [Array],
applicationID: null,
afkTimeout: 300,
afkChannelID: null,
systemChannelID: null,
embedEnabled: undefined,
premiumTier: 0,
premiumSubscriptionCount: 0,
verificationLevel: 'MEDIUM',
explicitContentFilter: 'ALL_MEMBERS',
mfaLevel: 1,
joinedTimestamp: 1610826100296,
defaultMessageNotifications: 'ALL',
systemChannelFlags: [SystemChannelFlags],
maximumMembers: 100000,
maximumPresences: null,
approximateMemberCount: null,
approximatePresenceCount: null,
vanityURLCode: null,
vanityURLUses: null,
description: null,
banner: null,
rulesChannelID: '708420822091563067',
publicUpdatesChannelID: '708602346820730931',
preferredLocale: 'fr',
ownerID: '295129219426680833',
emojis: [GuildEmojiManager]
}```
logsInvites :
```json
"6a8UxbXz4b": {
"guildID": "681855957441183755",
"code": "6a8UxbXz4b",
"temporary": false,
"maxAge": 0,
"maxUses": 0,
"inviterID": "302050872383242240",
"targetUser": null,
"targetUserType": null,
"channelID": "708082687331795037",
"createdTimestamp": 1613307281272,
"url": "-6a8UxbXz4b",
"expiresTimestamp": null
}
logsInvites c'est défini où?
dans ce cas il peut pas y avoir de méthode dessus
Ah ouai
sauf si c'est un array
mais là c'est pas le cas
il faut que tu transforme ton objet en Collection
Comment
tu fais une new Collection et tu inscris toutes les valeurs (par exemple)
y a peut-être un moyen de le faire direct via l'objet, je te suggère d'aller sur la doc
ça c'est le code d'une Collection si ça peut t'aider https://github.com/discordjs/collection/blob/master/src/index.ts#L9
Sinon c'est pas possible de passer en Array le .json ?
Enfin de le chargé en array dans la variable
si tu veux garder les codes d'invitation non vu qu'il s'agit des clés
mais tu peux juste boucler sur ton objet et renseigner une collection
Dans l'essentiel c'est une Map si tu vois ce que c'est
ils ont juste rajouté des méthodes qui sont normalement sur les arrays
Tu peux juste faire ```js
// pour créer une collection
const colLogsInvites = new Collection();
// pour définir une valeur
colLogsInvites.set('key', 'value');
// pour récupérer une valeur
const value = colLogsInvites.get('key');
Pour peupler la collection tu as juste à boucler sur ton objet et définir pour chacune de ses clé une valeur
ie taCollection.set(cleInvitation, invitation)
clogsInvites = new Discord.Collection()
clogsInvites.set('invites', logsInvites)
let invite = guildInvites.find(i => clogsInvites.get('invites').find(inv => inv.code === i.code).uses < i.uses)
ça doit donner ça alors ?
non là t'as rien compris
Essaye déjà de faire new Collection(Object.entries(logInvites)) ptet que ça fonctionnera
sinon tu peux juste boucler via Object.entries(logInvites).forEach(([key, value]) => taCollection.set(key, value)) comme tu le ferais sur n'importe quel objet
Je fais comment pour mettre tout les codes des invites dans la collection
Je t'ai littéralement donné le code dans ma réponse précédente
Ah je crois que j’ai compris
Hello, je débute sur javascript, est-ce-que quelqu'un connaît la commande pour que le bot vous envoie un mp une fois qu'on ait écrit une certaine commande ?
Merci d'avance
PS : j'aimerais si possible, que le bot prenne au hasard une lettre entre a et z et que dès que le message a été envoyé, il supprime une lettre qui a été générée.
https://discord.js.org/#/docs/main/stable/class/User?scrollTo=send
donc message.author.send()
ça je comprends pas trop donc à toi d'y réfléchir
Yes, merci de ta réponse je vais essayer 🙂 !
const letter = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 1)
j'ai trouvé ça pour le random word si tu veux
merci, je vais essayer ça une fois que j'ai fini le système de mon bot
random letter pardon
Hello, alors je suis sur le cul, je ne peux pas créer de rôles à l'arrivé du bot sur un serveur, mais cela marche dans une commande... quelqu'un aurait une idée ?
il me sort que : guild.roles.cache.create is not a function..
wut
il me log bien ma guild
et si tu fais juste guild.roles.create ?
je vais essayer, mais c'est bizarre je suis en v12..
bah en "commande" normale ça fonctionne comme ça, je vais tester quand même
yes ça fonctionne
ty ^^
la v12 veut pas dire que tu mets .cache partout, juste que les collections (qui étaient en fait juste le cache) sont encapsulées dans ce qu'ils appellent des "managers", qui permettent de réaliser plus d'opérations complexes
Hello, vous savez c'est quoi la commande pour envoyer une image de bienvenue dès que quelqu'un rejoint un serv ? J'ai entendu dire qu'il faut mettre l'ID d'une image dans une commande mais j'ai oublié la commande
Mais wtf 😭
j’ai pris l’habitude de le mettre partout, donc j’ai trouvé ça bizarre mais autant pour moi
alors pour une image tu peux soit utiliser canvas pour faire un truc perso, soit tu fais un embed
jvais tester canvas
tu dois await user
je sais quelle est ta requête mais c'est dans une promesse donc ça veut dire que le contenu est récupéré de façon asynchrone
ouai client.users.fetch
bah en fonction de ce que tu veux faire tu peux soit passer la méthode qui est ici ton contexte d'exécution en asynchrone et donc faire un await
du style const user = await client.users.fetch(...)
soit tu rajoute un .then après le fetch
client.users.fetch(...).then((user) => {
// là tu peux utiliser user
})
// ici user est undefined
globalement tu devrais te renseigner sur les promesse parce que c'est super utile à plusieurs niveaux et que bah c'est un peu la base du fonctionnement asynchrone de javascript
sisi je t'assure
The Promise object represents the eventual completion (or failure) of an asynchronous operation and its resulting value.
normalement il est undefined en dessous ouai
sa part en favoris
c'est quand meme triste de pas être aller voir sur google avant de venir sur le discord mais bon
Je suis allez chercher mais a aucun moment je savait que sa avez avoir avec le fait d'await ou autre 😁
J'avais jamais encore vu de Promise
hello, vous savez comment get le bot avec commando ? du genre pour get ses guilds et envoyer un message autre part, car bon à part redefine un client dans une commande et d'ailleurs ça marche po je vois pas comment faire, des idées ?
j'ai pas compris
en gros
pour récupérer une guild tu fais comme d'hab non? je vois pas le souci
de base tu peux get en général on l'appelle "client", qui return le bot et ses guilds etc
bah oui
tu sais que le CommandoClient c'est une extension de Client?
yes ça je savais
ah tu veux dire depuis les commandes?
c'est this.client
oui exact
bah
aahh, je vais tester merci ^^
il me return undefined
tu l'appelle où
parce que ça fonctionne hein
Bonjour,
Il y a-t-il moyen de chargé une image qui a été envoyé (message.attachments) dans le cache pour la poster dans un embed ?
Parce que le attachment.url fait des bugs (images qui charge à l'infini)
En gros, l'utilisateur poste une image, on l'a supprime et on la renvoie dans un embed.
Non vu que ce que renvoie l'api c'est du json
ça serait trop couteux pour une api comme celle de discord d'envoyer des blob à chaque image
donc ils envoient une url vers l'image
Ok dommage
si ça bug l'image c'est plus probable que ce soit ton client discord qui a des problèmes pour voir l'image par contre
parce que j'ai jamais eu de problème de cet ordre
alternativement tu peux peut-être tenter de récupérer l'image sur le bot via l'url puis de la renvoyer, mais je pense que c'est globalement inutile
jamais eu de pb non plus avec les images en embed
bonjour pourquoi lorsque je fais une bouche mon google freeze et la boucle ne se lance pas
var i = 0
while (i < 11) {
console.log(i)
if (i == 5){
break
}
}```
dans ton cas tu pourrais utiliser une boucle for
Bonjour savez vous comment je peut recuperer "User.id" ?
j'ai console.log(reaction.users)
t'es dans l'event reactionAdd ?
@dapper coral
si oui à mon avis
même pas
my bad j'update
nan je suis pas dans l'event reactionAdd
t'es dans quoi ?
log collect.first().user.id
ou juste collect.first()
fin montre moi ce que log collect
aaaah
bah là
tu fais tata.forEach(user => {})
et dedans
if ( user.id === "id" ) { // }
Je vais essayer merci
sa ne marche pas
pour obtenir le screen d'en haut j'avais juste fait u => u dans le map
Okkk c'est bon, merci de m'avoir guider @oak turret /°
🙂
np^^
Comment je fais ça :
logsInvites = await fsp.readFile('./invites.json')
let obj = await JSON.parse(logsInvites);
obj.invite.uses = invite.uses++;
``` sachant que invite est une variable
arrêtez d’utiliser des await partout en pensant que ça fonctionne de telle sorte......
Oui...
Mais ça s’utilise pas n’importe où
JSON.parse() n’est pas une promise
donc tu peux mettre await devant ça changera rien tu sais
Ah
tu cherches à faire quoi sinon
Ajouter 1 au nombre d'utilisations
De ça :
{
"6a8UxbXz4b": {
"code": "6a8UxbXz4b",
"uses": 0,
"inviterID": "302050872383242240"
},
"HRJ8wuX4": {
"code": "HRJ8wuX4",
"uses": 10,
"inviterID": "295129219426680833"
}
}
.invite existe pas alors
Oui c'est ça le problème c'était pour l'exemple
c’est obj[variableQuiContientLinvite].uses++
Aaaah merci j'avais complétement zapper ça
c'est new Discord sans majuscule
t!search bot
au pire
Hello à tous, j'aurais aimé connaître comment, avec ReactJS, render son serveur autrement qu'en montrant uniquement <div id="root"></div>, j'aurais aimé que mon code entier soit visible...
hello, c'est à dire je comprend pas ta demande ?
c'est vrai que c pas très clair, déso.. en gros quand tu fais ctrl+u sur une page, y'a pas le code en entier qui s'affiche, uniquement <div id="root"></div>, et c un peu moche... on se demandait donc comment faire pour afficher son code à la manière d'un pur html
je sais pas si c un peu plus clair mais bon ... ^^
Ah okay, mais du coup c'est le principe de React de venir injecter côté client le rendu du site, si tu veux un rendu côté serveur c'est avec du server side rendering, donc Next.js par exemple
c ce qu'on se disait ! on va essayer de check un peu la doc et voir cmt ca fonctionne 🙂
on n'était pas trop sûr de notre coup
merci btw 😄
Par hasard, quelqu'un ici aurait un lien redirigeant vers un tutoriel, ou une documentation démontrant comment faire plusieurs routes pour ainsi afficher différentes pages sur une application React en SPA (Single Page Application) ?
ReactJS - Router - In this chapter, we will learn how to set up routing for an app.
k! merci 🙂
à quoi ça sert, ça?
j'le vois jamais sur les documentations représentant un fichier main.js concernant react
regarde il y a quoi dedans mais ca a l'air d'etre un fichier de ton côté
c'était déjà là dans le create-react-app ^^ je check et renvoie un screenshot
je pige QUE-DAL mdrr
tout ça je pige pas
c'est des fonctions qu'ils récupère en paramètre du .then
hello j'ai une question très simple, j'organise mon js avec plusieurs fonctions (fonction pour le menu responsive, fonction pour le slider, fonction pour la palette de couleur), cependant, je suis amené à initialiser plusieurs fois la "même" variable dans chaque fonction, un exemple ci-dessous.
La question est : faut il déclarer plusieurs fois les mêmes éléments dans différentes fonctions ou les déclarer une seule fois au début ?
j'espère avoir été clair
aie les couleurs ^^
oké merci
je me lasse vite donc je change souvent de thème, celui-ci est bien noir donc mes yeux aiment
^^
mais c’est genre illisible
Dracula est parfait pour ça
déjà testé mais il est assez lumineux
ça va encore nan?
jte jure que à minuit, ça me pète les yeux
après j'ai mon contraste à fond avec mes gamma à fond sur mon écran, faut en prendre compte hein
Faut activer le mode moins de lumière bleue sur ton écran à ces heures la 
déjà fais x) mais bon mon contraste et gamma sont au max pour des jeux sombres donc bon
pas envie de tout enlever aalors que un simple theme black suffit
quelqu'un sait comment disable le X-Powered-By par hasard sur nextjs?
Dans ta config next
poweredByHeader: false
premièrement je l'avais mis comme ça:
module.exports = withImages({
webpack(config, options) {
return config
}
})
module.exports = {
poweredByHeader: false,
}```
puis mon pote m'a dit d'le mettre comme ça, sauf que ça m'met des erreurs:
```module.exports = {
poweredByHeader: false,
withImages({
webpack(config, options) {
return config
}
})
}```
marche pas 😦
C'est bien dans ton next.config.js que tu le mets ?
yes maos la le app tu t'en sers pas c'était en fonction de comment tu avais ta config
mais du coup la ca donnerait:
module.exports = WithImages({
webpack(config, options) {
return config
},
poweredByHeader: false,
})
try pour voir
suis en npm run dev... ? c good non ? 
pas WithImages j'ai mis une maj a with
Essaye de tester en faisant un build pour etre sur quand meme
pg ! 🙂 c corrigé
essaye les 2
yes le live reload ça il reload a chaque update
Hmmmm essaye quand meme de faire un build de l'app et ensuite de voir si dans le build c'est bon ou pas
yes la comme ca idk sorry 😒
merci qd meme ! 😉
le fichier qui se trouve dans le dossier "api" qui s'appelle hello.js
je peux le delete hein ?
Yes si tu t'en sers pas et qu'il est utilisé nul part
ok ! thx
Bonjour, voila j'utilise un template et j'ai remarquer que dans la barre de navigation lorsque je met un lien externe ou un lien qui redirige vers un fichier cela ne fonctionne et j'ai une erreur javascript :
dossier custom.js - line 88 :
@viral marten montre ton code juste au dessus plz (le js)
faut que tu cherches le top dans ton code
Salut , mon code est bon mais mon bot
est pas en inactif
je sais pas pourquoi :/ , si quelqu'un a une idée d'ou vient le problème je suis preneur !
t!search bot
Je regarde dès que je rentre
oki
hey , merci beaucoupp
je test et je te dit
c'est bon !
merci x)
pareil pour ton "async", il te faut une fonction donc, or là tu n'en as pas tu peux juste faire () => {}
Les amis, vous en pensez quoi d'utiliser des live chat "pre-faits" à la place de le faire soi-même?
Exemple: j'aimerais utiliser "Crisp.chat" mais un ami me dit que créer son propre chat de support en ligne est facilement réalisable, et que ça serait "moche" d'utiliser autre chose que sa propre oeuvre... autrement dit, il critique le fait d'utiliser des live chats disposés publiquement... êtes-vous du même avis? ou il faut justement profiter de ces ressources tant qu'elles existent?
jsuis pas dans le dev web mais "que ça serait "moche" d'utiliser autre chose que sa propre oeuvre" lol ^^
il va vite se rendre compte que réinventer la roue à chaque fois c'est fatiguant
et que ça serait "moche" d'utiliser autre chose que sa propre oeuvre...
Je pense qu'il s'en est déjà rendu compte mais qu'il est tellement fier de ses exploits qu'il continuera jusqu'à la fin de sa vie
du coup il utilise ni des frameworks js ou php ou meme ui ?
Paradoxalement, si...
ouais il a le droit d'être fier et je le felicite si il se demerde beaucoup, mais je comrpend pas cette mentalité
Ouais donc bizarre quoi
Je t'avoue que je n'ai jamais pensé à lui dire pour briser la glace
"briser la glace", dans un sens seulement 😂
ça n'a juste aucun sens de pas vouloir utiliser des libs ou autre si derrière tu utilises react, laravel, tailwind etc
car que je sache il a pas inventé react 
En effet, je t'avoue que je ne le comprends pas trop sur ce coup-là!
ok ok Thankss
console.log ton this.hash et ton target
Du coup, si vous étiez à ma place, vous seriez partants d'utiliser Crisp.chat, ou du moins... une alternative à celui-là?
voir si ils sont vides ou non, car le probleme vient du fait que ton élément ne doit pas exister j'ai l'impression
Yes si il est bien utilise le
C'est le meilleur selon eux ^^'
Discover our Messaging Platform for Startups & SMB's. The one stop for sales, marketing & support in one platform : Crisp. 14 Days free trial. No credit-card required. Try now ! We provide Knowledge base, Team Inbox, Chatbot, CRM and multiple other features to let you build your own way to customer success.
Je me permets de le link
Et en plus, c'est made in France 🇫🇷 !
chaque framework est le meilleur selon ses créateurs
cela dit il a pas l'air mauvais
c vrai !!
ok je testerai 🙂
quelqu'un sait ici par hasard comment "unminify" son code html depuis la tech nextjs (webpck) ?
webpack*
@slim anvil Pourrais tu etre un peut plus dans les details je m'y connais aps du tout en js
quel intérêt? t'as le code source si tu l'as minifié
si c'est juste pour debug y a moyen de le voir via ton navigateur
dans l'onglet "Débogueur" sur Firefox
si t'as laissé les source maps ça se fait correctement
L'onglet Sources sur Google Chrome
ça me le montre toujours minified...
ah non
c bon
dans le coin à gauche
il y avait "pretty-print this file?" tu cliques et ça te le pretty-print
Bon, je suis peut-être (sûrement) chiant, mais j'ai remarqué que lorsque je fais "clique droit -> ouvrir l'image dans un nouvel onglet" sur mon application React (NextJS), ça me l'ouvre dans un dossier tel que "/_next/static/images/*.png", j'aurais aimé savoir comment changer le nom de "_next" en quelque chose d'autre...
distDir: 'name',
ahhh merci !
fonctionne pas 😦
ah oui non si
ça fonctionne mais c pas ce que je cherchais à faire 😦
je cherche à modifier ça
@slim anvil Pour ce que tu m'as dit tu peux etre un peut plus dans le details ?
Bah ajoute un console.log(this.hash, target) après avoir déclaré const target
Hello, @slim anvil j'ai fais ce que tu m'as dis en mp, et malheureusement il me log pas le client mais la commande, je vois pas comment faire
j'ai bien mis le pool dans le client, mais dans les commandes il le trouve po, et je vois pas comment faire pour qu'il le see
ah si mybad mais il met 30 ans wtf, mais les propriétés de "pool" ne marche plus et je capte pas pourquoi
On regarde quand je suis sur pc dans la soirée
ça marche ty
Paraît-il que les SPA sont pas très appréciés des développeurs... si ils devaient conseiller quelqu'un hésitant entre faire une SPA, ou une MPA, ils lui diraient de faire une MPA... je n'ai pas trop compris pourquoi étant donné que les SPA sont utilisés par Facebook, Twitter, Google, etc... mais paraîtrait-il également que c'est plus "classique" de faire une MPA qu'une SPA...
Bien que les SPA sont "bien vues" par le biais qu'elles ne requirent pas de rechargement de page, contrairement aux MPA (c'est un peu l'approche recherchée, vous allez me dire...). Il s'agit aussi de comprendre quel projet est désiré pour son client.
Si le projet concerne un portfolio, un e-commerce, ou que sais-je... c'est mieux une MPA. Si ça concerne autre chose (ex.: réseau social, chat en ligne, site communautaire, blog, etc...), alors c'est mieux une SPA.
Et vous, qu'en pensez-vous?
Pour un portfolio j’aurais tendance à dire SPA du coup, par contre pour des sites types ecommerce, ou autre oui le MPA est mieux
En même temps, je me contredis étant donné qu'un blog peut-être utilisé en guise de portfolio... si on lit bien mes dires, je cite "portfolio = mpa", et "blog = spa"...
hello j'ai un ptit soucis, j'essaye de faire un scroll doux au clic de mon bouton (qui descend à une section), seule soucis, le smooth ne marche pas, voici le js :
const portfolio = document.querySelector('#Portfolio');
buttonDown.addEventListener('click', ()=>{
portfolio.scrollIntoView({
block: 'start',
behavior: 'smooth'
});
});```
scroll-behavior: smooth; en css sinon ce sera plus simple et plus rapide à mettre en place
déjà essayé mais j'ai le même résultat
tu l'as mis ton smooth
sur le body
essaye sur le html
toujours pareil
🤔 je le fais actuellement ca fonctionne pourtant bien montre ton css + la manière de faire ton ancre et enlève ton JS qui sert de smooth
demain soir du coup si t’es ok ?
Oui okay no soucis
<div class="button-down">
<a href="#Portfolio">
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-arrow-down-circle" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8zm15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z"/>
</svg>
</a>
</div>```
```js
*, ::before, ::after{
box-sizing: border-box;
padding: 0;
margin: 0;
outline-color: #47b3e6;
scroll-behavior: smooth;
}
body{
position: relative;
}```
@fathom jay
le buttonDown est bien defini plus haut ?
oui sinon il était déjà défini
et du coup dans ton html t'as bien un élément avec #Portfolio en id ?
oui : html <section id="Portfolio">
la redirection marche, c'est le scroll qui ne marche pas
Essaye de vraiment bien le mettre juste sur html { scroll-behavior: smooth } pour etre sur en l'enlevant du selecteur all et pseudo element + en virant ta fonction en js pour voir
regarde si il est bien set du coup sur ton element html via ta console etre sur que ca ai bien reload
je viens d'essayer mais toujours pareil, j'ai regardé dans la console et le scroll-behaviour:smooth; est bien sur le html
si tu veux envoie ton truc je test rapido pour voir
Normal dans tes liens tu as pas le href="#Portfolio"
ici
<ul class="nav-links">
<li class="link"><a href="#Portfolio">Portfolio</a></li>
<li class="link"><a href="#">Compétences</a></li>
<li class="link"><a href="#">Contact</a></li>
</ul>
Ah tu le veux sur la flèche, mais le smooth de mon côté fonctionne, tu es sous quel navigateur @fathom jay
google chrome c'est pour ça je comprends pas
regarde en bas
la derniere reponse
j'ai une maj google, je regarde si c'est sa, sinon je fais cette méthode
c’est juste un paramètre à modifier sur ton navigateur
vérifie que c’est bien activé
yess c'était sa, merci pour vos aides à toi et Enzo, en effet c'était ce paramètre qui était sur 'Default', peut être que ça a été désactivé quand j'ai désactivé l'accélération matérielle
Bonjour, excusez moi j'ai un petit probleme dans le dropdown de ma navbar les liens qui se trouve dans le dropdown ne marche pas et me donne une erreru js
C'est possible dans les details .. mercii
Bonjour, je voudrais que mon bot dellete la mention, mais je n'arrive pas le faire avec message.delete() enfin je ne sais pas ou le placé pour que le bot le fassent, pouvez vous m'aider ?
Après le if tu mets {}
Et tu mets la réponse dedans + le message.delete()
(Et si tu veux un return à la fin)
Comme ?
client.on("message", function (message) {
if (message.mentions.users.first()
&& message.mentions.users.first().id == "781143664684171294")
return message.channel.send('Bonjour, Je suis actuellement en Maintenance, Mon createur s\'en esxuse d\'avance');
});```
Le code de basse
celui avec le message.delete()
client.on("message", function (message) {
if (message.mentions.users.first(){
message.delete()
&& message.mentions.users.first().id == "781143664684171294")
return message.channel.send('Bonjour, Je suis actuellement en Maintenance, Mon createur s\'en esxuse d\'avance');
}
});```
je pense que c'est pas bon
Non c'est pas bon..
client.on("message", function (message) {
if (message.mentions.users.first()
&& message.mentions.users.first().id === "781143664684171294") {
message.channel.send('Bonjour, Je suis actuellement en Maintenance, Mon createur s\'en esxuse d\'avance');
message.delete()
}
});```
Bonjour, je me posais une question.
Je suis actuellement entrain de développer un bot discord en JS, j'ai créer pas mal de commandes, et même relié le bot à une base de donnée via MongoDB, mais voilà
Lorsque le bot arrive sur un serveur, l'administrateur doit faire la commande ?init , pour voir un embed pour connaitre les commandes à exécuter pour configurer le préfix, le salon de log, etc ...
Mais, j'aimerai fluidifié un peu le tout, car ça peut vite être embétant.
j'aimerai que le bot lorsque la commande ?init est faite, envoie un embed avec différentes classes :
Configuration de base :
Configuration de Bienvenue :
Configuration du Règlement :
Avec des réactions pour choisir, bon c'est pas compliqué car je l'ai appris
Mais j'aimerai par exemple, si le membre choisir configuration de base 1️⃣
Le bot envoie Configuration du préfix : met le préfix voulu
puis le récupère et une fois cela fait , le bot envoie automatiquement le deuxième message avec : Configuration du salon de log
Je pense que je dois utiliser des async await, mais ensuite je suis totalement perdu
Pour envoyer les données et les récupérer de la base de donnée, je sais le faire,
Mais pour afficher des messages automatiquement par le bot, suite à des réactions ou des messages, je suis totalement perdu :/
pour les réactions tu peux gérer l’event messageReactionAdd, et tu test l’emoji et que !user.bot et que user.id === reaction.message.guild.ownerID
pour être sûr
après tu peux switch reaction.emoji.name
tu fais tes cases et à toi de jouer
Je vous adore, merci, j'avais zappé blond que je suis, mais oui exacte avec le système de Switch je peux arriver à mes fins, et faire en sorte de lier l'ajout de la réaction à la base de données et une fois fait, partir sur un await et mettre l'embed suivant 😇
Merci beaucoup 😁😁
avec plaisir :p
Je peux te poser une question ? juste une question de formation de code :
Mon idée , faire plusieurs embed lancer les uns à les suites des autres après réaction de l'utilisateur
Mais pour la bonne structure du code, est-ce propre de mettre tout mes embed à la suite et de ensuite en bas du code mettre le système de switch ? 😄
tu mets tes embeds quand ils doivent être envoyés seulement
sinon tu les load pour rien
donc autant les load quand tu les utilises
donc entre les case et les break 😄
Merci 😄
C'est juste que j'aime avoir un code propre avec des commentaires, mais pour le switch , j'ai pas encore fait avec des embed, juste avec des functions pour la BDD 😄
car voilà la seule fois ou j'ai eu à utiliser un switch 😄
Donc je n'étais pas sur pour les embed 😄 mais maintenant je vois que je peux mettre les embed dans les case directement 😄
module.exports.run = async (client, message, args, settings) => {
const getSetting = args[0];
const newSetting = args.slice(1).join(" ");
//const newLogSetting = args.slice(2, -1);
switch(getSetting) {
case "logChannel": {
if (newSetting) {
if (message.content.includes('<#')) { message.channel.send("Vous devez mettre l'ID du salon !") }
else {await client.updateGuild(message.guild, { logChannel: newSetting});
return message.channel.send(`logChannel mis à jour: \`${settings.logChannel}\`-> \`${newSetting}\``) ;
}}
message.channel.send(`logChannel actuel: \`${settings.logChannel}\``);
break;
}
case "prefix": {
if (newSetting) {
await client.updateGuild(message.guild, { prefix: newSetting });
return message.channel.send(`Prefix mis à jour: \`${settings.prefix}\`-> \`${newSetting}\``);
}
message.channel.send(`Prefix actuel: \`${settings.prefix}\``);
break;
}
}
};
module.exports.help = MESSAGES.COMMANDS.ADMIN.CONFIG;```
Yop ! J'ai relevé un petit problème sur un bot que je réalise actuellement, je n'arrive pas à additionner les valeurs que contient un array (stocké dans un .json en utilisant fs). Quelqu'un saurait me dire comment remédier à ce problème ?
"service": [
"9",
"5",
"3"
]
let value = 0;
service.forEach(e => {
value += Number(e)
})
par ex
vérifie peut etre avant que ce soit bien un number
Yep je l'ai déjà fait pour la vérif, je vais tester ça et je te dis :p
Alors, ça fonctionnait et d'une minute à l'autre ça m'a sorti cette erreur:
let serviceTotal = data[member.user.id].service
let value = 0;
serviceTotal.forEach(e => {
value += Number(e)
embedTableau.addField(member.user.username, value)
})
quelle erreur
(node:18816) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'service' of undefined
car le member ne doit pas exister
Hmm, bizarre
regarde juste ton json
Je viens de checker, ça fonctionne quand je mets l'id du bot mais ça ne fonctionne pas quand je mets l'id d'un joueur
regarde juste ton json si il existe dedans l'id du user
car si il existe pas tu auras une erreur
Oui il existe, mais en gros quand je remplace l'id du joueur par l'id du bot, ça fonctionne
je comprend pas le probleme ??
En gros, quand j'affiche "service" (fin le total), ça fonctionne avec mon compte (quand ça enregistre mon id), l'id du bot aussi mais pas l'id d'un autre joueur
screen ton json ? 🤔
okay donc le user c'est le 2eme c'est ça ?
En gros user est déclaré au préalable pour récupérer tous les ids des membres du discord
const list = bot.guilds.cache.get(config.guildId);
list.members.cache.forEach(member => {
const embedTableau = new Discord.MessageEmbed()
let serviceTotal = data[member.user.id].service
let value = 0;
serviceTotal.forEach(e => {
value += Number(e)
})
embedTableau.addField(member.user.username, value)
embedTableau.setColor('#36393f')
embedTableau.setTitle('Tableau')
embedTableau.setFooter('Requête de : ' + message.author.tag, message.author.displayAvatarURL())
message.channel.send(embedTableau)
});
(le code complet de la commande)
oui mais donc voila tu get tous les users donc tu peux en avoir un qui n'existe pas dans ton tableau d'ou l'erreur
Rajoute juste une condition pour être sur
if (data[member.user.id]) {
// code here
}
Bien vu
Parfait, ça fonctionne ! J'avais l'intention de le faire mais à la fin (je suis pas organisé :d)
google c'est ton meilleur ami
engros si je dit pas de bêtise c'est pour par exemple si tu versionnes ton code gardée la bonne version de tes dépendances ( je résume grossièrement)
et il est relié au package.json bien évidemment
Bonsoir j'ai une question dans un try comment fait on pour récupérer tous les message et non pas que 1 seul message merci de l'aide en avance
msgs3.first().content
ok ok
Merci
Salut tout le monde
si je veut sa mais avec un server ?
je fait comment ?
@timid loom tu peut m'aidé ou pas ?
je suis allé sur discord.js j'ai trouvé guild mais j'ai pas compris
comment ça avec un serveur
avec un server spécifique
par exemple msg.channel.id ==
ya channel
et ducoup la on dit au bot sur quel channel sa va marché
Mais moi je veut faire sur un server spécifique pas channel
.guild
et j'ai fait sa vue que j'ai pas compris mais s amrche pas
Mais sa mrche pas
le guild
c'est bizarre
pas en majuscule
essaye "message" à la place de "msg"
et le message d'erreur ?
des erreurs ?
Je peux voir un peu plus de ton code ?
yes mais deja t'as msg et message
sauf si tu définis les 2, c'est bizarre
faut le mettre dans un event @tame shore ....
ah bah oui
t!search bot
je peux pas faire + la tu dois reprendre du début
ok ok
je sais même pas c'est quoi un event
bon allé je voit tout le tuto
c'est repartit !
enfin partit je l'ai jamais vue
good luck
il faut des bases en js oui quand meme
bah engros la ton "message" ou "msg" existait pas mais bon regarde le tuto je pense que c'est la meilleur soluce
c'est toujours mieux de comprendre
beh a vrai dire
Tout , je ne connais rien de rien au js
enfin pratiquement pas
et je veut juste assez pour pouvoir codé des bots discord
salut les gars le bot discord et en java script ou pas
Tu peux le faire en JavaScript oui
Dans tous les cas il te faut les bases, plus tu veux faire des trucs compliqués plus tu dois avoir de connaissances, logique
Salut, je dev un bot discord et j'aimerais bien qu'il donne une valeur entre 80.01 et 99.99 arrondie a 0.01.
J'ai essayé
var randomnum = Math.random() * (99.99 - 80.01) + 80.01; Mais ça ne marche pas, ça me donne un nombre avec trop de virgules
@hybrid elk tu peux essayer à l’arrache de faire const randomized = Math.floor(randomnum * 100) / 100
Ok merci mais ça doit être entre 80.01 et 99.99
Oui j’ai bien compris, tu laisse randomnum au dessus et tu rajoute cette ligne en dessous
Et tu utilise cette variable
Ok merci
Comment je peux faire pour que tous les jours a une heure précise, mon bot envois un message?
Ou alors qu'il edit tous les jours son message
une tâche cron
Petite question, une instruction conditionnelle en Javascript c'est bien sous le format suivant s'il vous plaît ? Dans ce cas là j'ai juste pris un exemple sans intérêt :
if (variable1 = false) {
variable1 = true
} else {
variable1 = false }```
Alors oui et non, tes opérateurs sont pas bons, car la dans ton if tu dis que variable1 est égale à false (donc tu lui set la valeur false)
Tu dois checker avec des == ou ===
Et pour des boolean le plus simple c'est de directement faire
let variable1 = false
if (!variable1) {
variable1 = true
} else {
variable1 = false
}
meme si en soit tu pourrais juste faire tout simplement
let variable1 = false
variable1 = !variable1
Ah oui c'est vrai, j'avais fait pareil merci !!!
c'est du discord.js
Hello j'ai un soucis, j'aimerais que sans redemarer le bot dans mon json le fichier se syncronise automatiquement
const member = JSON.parse(fs.readFileSync("./member.json", "utf8"));
function savemember() {
fs.writeFileSync("member.json", JSON.stringify(member, null, "\t"), err => {
if (err) console.error(err);
Sync()
});
}
Ca c'est pour ecrire et lire dans member.json mais lorsque je modifie dans le json il faut attendre que je redemare le bot pour qu'elle soit effective. Commet faire pour que dès que j'ai effectué la modification (grace a une commande changé une valeur) que la modification soit effective
Dans une commande j'ai (c'est un exemple) (de base member[j].id=1)
let j = message.member.id
member[j].id= 2
savemember()
dans le json la variiable est passé a 2 mais ils faut attendre que je redem le bot pour que le bot prenne en compte le 2 dans une commande
AVANT LE REDEM suite a l'execution du code ci-dessous
let j = message.member.id
console.log(member[j].id)
La console dis 1
AVANT LE REDEM suite a l'execution du code ci-dessous
let j = message.member.id
console.log(member[j].id)
La console dis 2
Et j'aimerais que la console dise 2 sans redem
Pour lire ton JSON, tu fais ça ou exactement, dans ton index.js ? ou dès que tu appelles ta commande ? tu peux me montrer please
C'est pas lier le json, c'est que lors de la mise a jour du json les valeurs sont imédiatements modifié
Oui mais tu te bases toujours sur ton JSON lors de tes commandes ou tu le déclares au début de ton fichier dans une variable puis tu édites cette variable ?
Est-ce que a chaque commande tu rappelles ton JSON, ou tu le fais une seule fois, c'est ça ma question
let j= message.author.id
let actual_salon= message.channel.id
if(!id[actual_salon]){
message.reply("Ce salon n'est pas un ticket")
} else {
let ticket = id[actual_salon].Ticket
let ticket_member_id = support[ticket].Member_create_id
if(support[ticket].a_channel_Id == message.channel.id){
let user = client.users.cache.find(u => u.id === ticket_member_id);
if(!user) return message.reply("Impossible de trouver cet utilisateur.");
support[ticket].IsOpen= 1
savesupport()
member[ticket_member_id].Ticket_Actuel= "null"
savemember()
member[ticket_member_id].Id_Of_Actual_Salon= "null"
savemember()
client.guilds.cache.get(support[ticket].Guild_Id).channels.cache.get(support[ticket].a_channel_Id).delete()
console.log(user)
if(!user) return message.reply("Impossible de trouver cet utilisateur.");
console.log(user)
let closeEmbed = new Discord.MessageEmbed()
.setAuthor(`🗑️ | Ticket Close`)
.setColor("RED")
.setTimestamp()
.setDescription("Votre ticket a été fermé par un membre de notre équipe. Si vous pensez qu'il a fait une erreur, n'hésitez pas à la rouvrir en envoyant un message.")
.setFooter(`Renvoyez un message pour rouvrir un ticket.`)
user.send(closeEmbed)
} else {
message.reply("Ce salon n'est pas un ticket")
}
}
``` Ca c'est ce qui me permet de close un ticket (car c'est un bot de support mp) sauf que suite a cette fermeture lors que j'mp le bot il bug car pour lui ``member[ticket_member_id].Ticket_Actuel`` est toujours égal a l'ancienne valeur et seulement quand je redémarre le bot ``member[ticket_member_id].Ticket_Actuel`` est égal a "null" alors que ddans le json le "null" est déjà édité des le close effecttué
function savemember() {
fs.writeFileSync("member.json", JSON.stringify(member, null, "\t"), err => {
if (err) console.error(err);
Sync()
});
}
function savesupport() {
fs.writeFileSync("support.json", JSON.stringify(support, null, "\t"), err => {
if (err) console.error(err);
Sync()
});
}```
ca c'est les fonction qui me permette d'édit @slim anvil
const member = JSON.parse(fs.readFileSync("./member.json", "utf8"));
const support = JSON.parse(fs.readFileSync("./support.json", "utf8"));
const id = JSON.parse(fs.readFileSync("./id.json", "utf8"));
``` et ce pour lire dans les fichiers json
déjà ce que tu peux faire c'est une fonction indentique de save pour member et support
function save (data, type) {
if (!type) return
fs.writeFileSync(`${type}.json`, JSON.stringify(data, null, "\t"), err => {
if (err) console.error(err);
Sync()
});
}
et tu passes en paramètre la data et le type
Mais donc du coup on est ok que
const member = JSON.parse(fs.readFileSync("./member.json", "utf8"));
const support = JSON.parse(fs.readFileSync("./support.json", "utf8"));
const id = JSON.parse(fs.readFileSync("./id.json", "utf8"));
c'est au début de ton index ?
const Discord = require("discord.js")
const fs = require("fs")
const client = require("discord.js")
let db = require("./config.json", "utf-8");
let member = require("./member.json", "utf-8");
let support = require("./support.json", "utf-8");
let id = require("./id.json", "utf-8");
``` c'est ca
Du coup c'est bien ce que je te dis tu l'appelles que au démarrage donc il se met pas à jour, donc sois tu fais une fonction pour revenir get ton JSON comme pour le save, sois tu le rappelles dès que tu en as besoin
Ou il y a encore d'autres solutions mais fais au plus simple je pense
Donc rappeler dès que j'en ai besoin
yes par exemple
Et comment je peu faire ca?
let member = require("./member.json", "utf-8");
de la meme manière que tu le fais ici par exemple
ou alors tu te fais une fonction pour venir get ton json aussi comme tu l'as fais pour ton save
elle reesemblerait a?
function get (type) {
return JSON.parse(require(`./${type}.json`, "utf-8"))
}
par exemple, je te laisse faire les vérifs de ton côté
member[ticket_member_id].Ticket_Actuel= "null"
savemember()
member[ticket_member_id].Id_Of_Actual_Salon= "null"
savemember()
get(member)
donc a la fin je met get(member) c'est ca @slim anvil (et le get member c'est ce que tu m'as donné)
pour récupérer ton json tu fais
const member = get('member')
Ok merci
@slim anvil 14:40 | [EVENT] Event fail to load message.js: Error: Cannot find module './member.json'
Require stack:
- c:\Modmail-ticket-mp-system-main\Event\message.js
- c:\Modmail-ticket-mp-system-main\index.js
merde my bad
trompé j'ai mis require attend
function get (type) {
return JSON.parse(fs.readFileSync(`./${type}.json`, "utf8"));
}
normalement c'est good
Ok
@slim anvil non c'est pas good '-' même avec le get ca fait comme si ca rappelait pas le json (et j'ai partitioné pour voir si il y a un bug)
function getmember () {
return JSON.parse(fs.readFileSync(`./member.json`, "utf8"));
}
function getsupport () {
return JSON.parse(fs.readFileSync(`./support.json`, "utf8"));
}
function getid () {
return JSON.parse(fs.readFileSync(`./id.json`, "utf8"));
}
const member = getmember()
const support = getsupport ()
const id = getid ()
yes mais tu appelles ces fonctions au moment ou tu en as besoin ?
ah non je les au mis au début :/
Faut que tu utilises cette fonction des que tu as besoin de récupérer ton json comme je t'ai dis plus haut
Ca fonctionne ❤️
héhé
Salut, est-ce que vous pouvez m'envoyer le lien vers le cours de Javascript svp
Hello, lorsque je démarre mon bot en faisant node ./ node index.js etcc ça me fait ça root@BBCS:~# cd /home/bbcs root@BBCS:/home/bbcs# node . -bash: /usr/bin/node: Permission denied
Auriez vous une idée pour résoudre ceci
Ok merci
ça ne marche pas @slim anvil xD j'ai toujours des problèmes avec linux
-bash: /usr/bin/node: No such file or dir```
ça me dit ça mtn
🤔
t'as quoi comme version de node
je précise que j'ai fais les manips
sinon test de desinstaller node et reinstaller une latest version pour voir
Bah j'ai essayé plein de fois et ça donne ça
root@BBCS:/home/bbcs# sudo apt uninstall node.js
E: Invalid operation uninstall
root@BBCS:/home/bbcs#
ça change rien
J'ai fait toutes les combinaisons possibles pour delete mais ça ne veut pas
mais si tu node -v ca fonctionne ? 🤔
nop
installe node alors 
passe par nvm tant qu'à faire
@slim anvil root@BBCS:/home/bbcs# apt-get install -y nodejs Reading package lists... Done Building dependency tree Reading state information... Done nodejs is already the newest version (14.16.0-1nodesource1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@BBCS:/home/bbcs# node -v -bash: /usr/bin/node: No such file or directory
j'ai envie de reset mon linux et de repartir à 0
fais un which node
ça me fait absolument rien
ca te renvoie pas une entrée ?
bah si
Ca te renvoie quoi
Si je suis muet ça pose un soucis ?
no
@vapid lintel #html-css message
Cliquez sur [📝](#html-css message) pour accéder au message
Salut, est-ce que vous sauriez comment je peut faire pour que quand je recherche un pseudo dans l'input il m'affiche seulement la ligne avec le pseudo ? et si possible en js natif merci :)
tu fais un .filter sur ton tableau
Si tu fais un filtre par pseudo et que ton champs s'appelle aussi pseudo ça donnerait
array.filter(a => a.pseudo.includes(keywords))
array.filter(a => a.pseudo.starsWith(keywords))
sois tu regardes que ça contient la recherche ou alors que ça débute par
Tu peux aussi lowerCase ta string et ta recherche pour éviter qu'il trouve pas a cause d'une MAJ, pareille pour les accents 🙂
Merci je vais tenter ça :)
Yop dites moi, dans mon foreach, quand la condition n'est plus respectée il continue et me fait les embeds, sauf que bon mon return; est censé arrêté le script no ?
non
tu peux break
ah bah yes je testerais ça ty ^^
je peux pas faire ça ?
car du coup si ça l'arrête pas, il m'envoie le nombre de result en embeds
genre il me send 5 embeds :x
j'ai trouvé lel ty
J'ai un problème avec mon bot discord, le préfixe c'est g! Et si j'ecris par exemple wtf au lieu de g!f bah ça fais quand même la commande
C’est quoi ton code pour les commandes ?
Att
if (message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (!client.commands.has(command)) return;
try {
client.commands.get(command).execute(message, args);
} catch (error) {
console.error(`[ERREUR] ${error}`);
message.channel.send(`\`\`\`diff\n-[ERREUR]-\n\`\`\``);
}```
Salut, par rapport a ma table je bloque sur un point , je n'arrive pas a mettre le contenu de mon <table> dans un array, en gros j'ai déjà réussi a récupérer le contenu de la colonne pseudo mais je ne sais pas comment l'insert dans un array voici mon code :
var numberRows = document.getElementById("staff-table").rows.length;
console.log(numberRows)
for (let c = 1; c < numberRows; c++) {
var tableUser = document.getElementById("staff-table").rows[c].cells[1].innerText;
console.log(tableUser)
console.log(c)
}
Bon je sais pas si mon code est optimal mais ça marche
Merci d'avance :)
En gros tu as un tableau déjà existant et tu aimerais mettre le contenu du tableau que tu récupères dans celui deja existant ?
Enfaite j'ai mon element html table et j'aimerais mettre tout les pseudo dans un array pour faire ce que tu m'as dit avant
j'ai déjà réussi a récupérer tout les pseudo mais je sais pas comment les mettre dans un array
ton truc a l'air bon tu vois tu devrais juste rajouter
const numberRows = document.getElementById("staff-table").rows.length;
const users = []
for (let c = 1; c < numberRows; c++) {
const tableUser = document.getElementById("staff-table").rows[c].cells[1].innerText;
users.push(tableUser)
}
aussi simple que ça ?
Si dans tableUser tu as bien le champ que tu veux oui je pense
top
Alors pour l'ajout dans la table ça marche mais le problème c'est que quand je fait avec le startwith il me return false alors que ça commence par ce que j'écrit dans l'input, pour le includes ça fonctionne par contre voilà le code :
const users = []
console.log(numberRows)
for (let c = 1; c < numberRows; c++) {
var tableUser = document.getElementById("staff-table").rows[c].cells[1].innerText.toLowerCase();
console.log(tableUser)
console.log(c)
users.push(tableUser)
}
console.log(users)
function searchFunction() {
searchText = document.getElementById("search-staff").value.toLowerCase();
console.log(searchText)
var resultComplete = users.includes(searchText);
var resultPartial = users.filter(option => option.startsWith(searchText))
if (resultComplete == true || resultPartial == true ) {
console.log("ça marche")
}else{
console.log("tnul")
}
}
Merci d'avance :)
le resultPartial te return quoi ? 🤔
d'ailleurs rajoute option.toLowerCase().starts...
pour comparer 2 chaines en minuscule
Là il me return false
Quand je le print
Alors que je met le bon début de mot
Je mettrai le lowercase quand je serai de nouveau sur mon pc
Bonjour, je reviens avec une nouvelle erreur :
@hazy mirage ( désolé du ping ) mais la dernière fois que j'ai eu cette erreur tu m'avais expliqué et tout mais là j'ai réessayé mais ça n'a pas fonctionné :/
Bah nan
Justement sinon je me serais pas permis de te ping

Bah je suis en node 12.18.1 la même que sur mon ordi
npm rebuild
Merci mec tu gères de fou
Fait gaffe à tes mp 😏 😂
Eu petit problème quand je fais la commande node . ca m'affiche ceci que faire ?
Je rigole
Fait nous voir le code
st^p
Voila
Il faut faire un retour à la ligne après le ) ligne 13
Tu peux copier coller ton code ?
oui stv
const { Client } = require('discord.js')
const config = require('./config.json')
const client = new Client({
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})
client.on('ready', () => {
console.log('Le bot est connecté !')
client.user.setActivity('Joue à Loxia le jeu ', {
type: 'PLAYING'
})client.on('guildMemberAdd', (member) => {
console.log(`${member.user.tag} a rejoint le serveur !`)
})
})
client.login(config.token)
const { Client } = require('discord.js')
const config = require('./config.json')
const client = new Client({
partials: ['GUILD_MEMBER', 'CHANNEL', 'USER', 'REACTION']
})
client.on('ready', () => {
console.log('Le bot est connecté !')
client.user.setActivity('Joue à Loxia le jeu ', {
type: 'PLAYING'
})
})
client.on('guildMemberAdd', (member) => {
console.log(`${member.user.tag} a rejoint le serveur !`)
})
client.login(config.token)```
Voila, essaye de ne pas mettre un event dans un autre event comme c'était le cas
quand t'es sur pc ping moi on regardera
nop un array
Hey j'ai un problème pour coder mon bot discord, je n'arrive pas à lui faire ajouter le rôle Voyageur avec une commande du style
!Voyageur
Si quelqu'un sait comment coder ça, je trouve pas '-'
Et merci d'avance :)
tu trouves pas quoi exactement
Comment give le rôle, créer la commande, créer l’événement
Comment ajouter le rôle
C’est assez vague
Sorry ^^"
No du rôle 😄
Good luck
récupère bien ton member avant
ça peut être message.member.rôles.add toi du coup
Sans l’accent pardon
Yes merci ça marche avec le message.member.roles.add ^^
salut, comment je peux get mon commando_client, vu que this = {} ?, j'ai essayer de le require mais c'est pas le bon truc du coup je sais pas trop :x
Quelqu'un sait comment on configure React-Bones? La doc est vraiment mal foutue, et aucun article explique vraiment trop bien comment
Surtout que j'suis sous NextJS
🤔 je suis sur le git c'est assez clair pourtant, tu galères à quoi
<View> <Image style={{ width: 50, height: 50 }} source={{ uri: props.image }} /> <Text>{props.text}</Text> </View>
Cette partie-là... je ne comprends pas
Tu comprends pas quoi du coup
Pas certains à 100%, mais le <View> c'est du react native non ?
bah react du coup, react-native c'est pour le mobile
et donc oui <View> c'est react-native
mais props.text c'est juste les props que tu recois de ton parent
sinon y'a ça
Non mais il marche très bien son truc
imaginons
je veux faire ça ici
j'ai pas de props.text, moi ici...
donc je comprends pas trop
absolument pas
Tu as regardés le lien storybook sur le git ?
Ah oui ok, les props ça peut etre des datas que tu fais passer à tes composants
oui
// Index.js
<Card title="Salut à tous" color="red" />
// Card.js
<div className="card">
<h1>{ props.title } // display "Salut à tous"
</div>
dans ce genre quoi
Ohhhh, d'accord
Ah
import React, { Component } from 'react'
import PropTypes from 'prop-types'
const icons = [{
text: '👍',
positions: '27.451% 96.0784%'
}]
class Icons extends Component {
static propTypes = {
onSelect: PropTypes.func.isRequired
}
render() {
return icons.map(icon => (
<button
key={icon.text}
type="button"
onClick={() => this.props.onSelect(icon.text)}
/>
))
}
}
export default (Icons)
Un exemple de composant
je le light pour que ce soit plus visible
Ah ok tu fais tes composants avec la nouvelle version de react (avec les hooks)
yes ...
Bah du coup oui ton composant est bon
tes props c'est ce que tu reçois dans ta function Card
ce sont tes props
Mais du coup, soit, dans ton cas tu as juste a important Bones
import { Bones } from "react-bones/lib";
tu l'import tout simplement comme tu l'as fais pour ton Link
et ensuite tu pourras venir faire:
<div>
<Bones />
<div style={{ padding: 10 }} />
<Bones width={600} height={20} />
<div style={{ padding: 10 }} />
<Bones width={600} height={20} />
<div style={{ padding: 10 }} />
<Bones width={600} height={20} />
<div style={{ padding: 10 }} />
</div>
(tu changes le <View> en <div>, vu que <View> c'est pour react-native)
dans mon composant card.js ou dans ma page index.js ?

