#javascript-typescript

1 messages · Page 69 of 1

keen narwhal
#

Sa me dit rien du tout

deep torrent
#

Normal

#

C'est pas pour le grand public

keen narwhal
#

xD

deep torrent
#

Pas très grosse commu, donc si problème démerde toi tout seul

keen narwhal
#

Eris is the most massive and second-largest known dwarf planet in the Solar System

#

xD

deep torrent
#

Ou parle au gars vénère du salon sur Discord API

#

xd

cyan iron
#

Dégage avec ton Eris

#

On t'aime pas

deep torrent
#

Mdrr

#

Eris > Discord.js

keen narwhal
#

Euh

#

Je suis pas sur

#

Eris d'après se que je vois c'est bof

deep torrent
keen narwhal
#

C'est comme discord.js mais différent

deep torrent
#

Normal xd

#

C'est du Js

keen narwhal
#

logik 1000 iq

deep torrent
#

Et c'est toujours l'api Discord

#

Tu peux pas changer grand choses non plus

keen narwhal
#

Ouais

deep torrent
#

Faut pas non plus se fier au tuto

#

Du gars

#

Il est mal fait

keen narwhal
#

En vrai vous avez des endroit pour réapprendre Discord.JS ? (je vais sortir mon chien je reviens ^^)

slim anvil
deep torrent
#

Xd

deep torrent
slim anvil
#

A part dire je fais un truc différent

#

en quoi

deep torrent
#

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

cyan iron
#

Pour avoir testé c'est pas ouf honnêtement

deep torrent
cyan iron
#

Ouais mais bof

deep torrent
#

Perso j'adore Eris

cyan iron
#

J'aime pas

deep torrent
#

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

timid loom
#

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

jovial turret
#

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 suefort

deep torrent
#

Les promise c’est simple

jovial turret
#

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 sue

deep torrent
#

Tu veux faire quoi alors?

#

@jovial turret

jovial turret
#

mais je fais autre chose du coup

#

je vais générer la liste en php et après j'applique en js

deep torrent
#

En gros c'est quoi ton problème?

#

Tu peux mettre la fonction en haut en async

#

Et faire un await

jovial turret
#

oui mais ça ne fonctionne pas

#

enzo m'a dit de faire une promise mais je ne pense pas que ce soit bon

deep torrent
#
$( document ).ready(async() => {
   await loadNavbar(0,0); // Load all the nav items at page load
});
#

T'as essayé ça?

#

@jovial turret

jovial turret
#

si seulement c'était si simple

deep torrent
#

C'est oui ou non? x)

slim anvil
#

bah non arvix

jovial turret
#

j'étais tellement désespéré que j'aivais mis un await au get de jquery x)

slim anvil
#

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

deep torrent
#
function loadNavbar(parentId,state){
return new Promise((resolve) => {
//ton code
resolve(true)
})
}
jovial turret
#

mais mon code nécessite qu'il se rappel, une promise peut se rappeler? 🤔

slim anvil
#

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

jovial turret
#

elle se rappelle pour charger les éléments enfants

#

et ce n'est pas défini

slim anvil
#

c'est quoi ce bordel

deep torrent
#

Oui je comprend pourquoi tu veux qu'elle se call elle même?

jovial turret
#

nan mais je change de strat du coup :p

slim anvil
#

Tu cherches à faire quoi exactement ? créer ton menu via ce que tu as en base ?

jovial turret
#

oui

#

chaque élément est enfant d'un autre élément

slim anvil
#

Et donc du coup Je suis enfant, enfant 3 doivent aller dans le menu 1 ?

#

Ah non okay

jovial turret
#

l'élément 0 n'existe pas, c'est le root

slim anvil
#

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

jovial turret
#

justement je fais ça là :p

#

car js aime pas trop la técheunik apparement lolwhatthink

slim anvil
#

Pour en gros finir avec un tableau comme ça:

[
  {
    name: 'toto',
    children: [{
      name: 'tata'
    }]
  }
]
``` etc etc
jovial turret
#

yes

slim anvil
#

Bah c'est surtout que la ton code c'est la guerre

jovial turret
#

x)

slim anvil
#

et pas celle du vietnam

jovial turret
#

x))

slim anvil
#

même pour toi je te conseille de mapper vraiment ta data, pour ta propre relecture ce sera + simple

jovial turret
#

en plus :p

jovial turret
#

fini 😄

slim anvil
#

et tu trouves ça mieux ?

jovial turret
#

et en 1 boucle j'ai pu tout mettre

slim anvil
#

niquel

jovial turret
#

quoique je vous passe le lien mais...

slim anvil
#

on y a pas accès mais tkt kappo

jovial turret
#

yes

slim anvil
#

like si je suis bg kappa

hybrid berry
#

@jovial turret j'adore

jovial turret
#

ça se voit que c'est terminé hein kappo

#

je poste des news toutes les semaines sur mon serveur à propos de l'avancement :p

oak turret
#

incitation à venir sur ton discord :oo

jovial turret
#

non je ne vwa pa de koi tu parles kappo

spring dock
#

trop bien les patch note qui redirige vers des 404 kappa

jovial turret
spring dock
jovial turret
#

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 🤦‍♂️ )

deep torrent
#

C’est kwaa?

jovial turret
#

un truc mal foutu x)

keen narwhal
#

Bonjour, après avoir effectué un message avec mon bot, il spam... Savez vous pourquoi ?

#

Voici le code

half osprey
#

Comment vas tu*

keen narwhal
#

Ha bas oui jsuis pas très intelligent, merci, mais par contre tu sais comment faire sa ? X)

keen narwhal
half osprey
#

If (message.author.bot) return

slim anvil
#
if (message.author.bot) return
keen narwhal
#

Merci Enzo et Yphar

#

Malheureusement, il continue à spam

slim anvil
#

Faut le mettre avant ^^

keen narwhal
#

Ha x)

half osprey
#

Une ERREUR ?

cyan iron
#

bonjour, une erreur ?

cyan iron
#

Dans ce cas il fonctionne !

half osprey
#

Les reactions sont bidons non ?

cyan iron
#

Si, il remplis sa fonction

half osprey
#

Ok

deep torrent
#

Hm?

#

@keen narwhal tu veux faire quoi? xd

#

@keen narwhal C'est quoi le problème?

half osprey
#

C'est pour faire un sondage

deep torrent
#

Oui mais qu'est-ce qui ne fonctionne pas? @keen narwhal

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

timid loom
#

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"); }

cyan iron
#

===

timid loom
#

et on peut mettre des .then pour faire des trucs dans l'ordre

timid loom
#

un await là dessus ça serait useless vu qu'on cherche pas à récupérer des variables

cyan iron
#

Yep mais ça fait le truc dans l'ordre

keen narwhal
#

Re hola, vous savez se qu'il ne vas pas, j'ai une erreur..

slim anvil
#

T’as fais un else if mais t’as bien un if avant ?

keen narwhal
#

Ha j'avais supp le code, je pense que c'est sa yep, je retourne vers toi

slim anvil
#

@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

ashen aspen
#

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

cyan iron
spring dock
#

ç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

ashen aspen
#

ok merci à vous deux

tulip tusk
#

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

burnt perch
#

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 ?

tulip tusk
#

Le 1 je l'ai fait, mais je vais essayer le 2, merci du conseil 🙂

burnt perch
#

Normalement tu as un premier code assez simple sur la doc pour commencer

oak turret
#

t!search bot

cedar oreBOT
burnt perch
#

bien jouer myman

oak turret
timid loom
# ashen aspen Bonsoir, est ce que le fait de faire du bot discord en js peut me servir par rap...

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.

timid loom
#

Et puis de base js et php sont deux langages vraiment différents

slim anvil
#

quelle version de discordjs et quelle version de node

#

Bah je sais pas non plus ^^

#

node -v pour la version nodejs

oak turret
#

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

slim anvil
#

tu peux replace dans ta string

#

avec une espece de pattern ou quand ta string contiendra ${member} venir le remplacer par la variable member

oak turret
#

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 !

oak turret
#

le fait que je replace ou ta méthode, à une différence notable ou ?

slim anvil
#

mieux son truc

oak turret
#

okay, mais je t'avoue que je comprends pas bien son utilisation

#

du moins dans mon cas je comprends pas trop comment l'use

keen narwhal
#

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

oak turret
#

plutôt

#

message.content.includes("tamention");

keen narwhal
#

Ha merde att c'est l'ancien code

#

Voilà

oak turret
#
if ( message.content.includes("tamention") ) {
  message.delete();
  return message.channel.send("text");
}

à test

keen narwhal
#

Je test je te dit ^^

#

Merci

slim anvil
#

Ça sert à rien ton truc... ça mention quand même hein

oak turret
#

ah ça oui du coup

#

ça va faire un ghost ping

keen narwhal
#

Comment faire autrement ?

oak turret
#

je doute que tu puisses

keen narwhal
#

On peut pas il me semble

oak turret
#

ç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

keen narwhal
#

C'est pas un grade mais un utilisateur ^^

slim anvil
#

Oui tout simplement

keen narwhal
#

Genre = @keen narwhal

oak turret
#

ah

slim anvil
#

Tu pourras pas alors

oak turret
#

là tu peux pas je crois

slim anvil
#

Ça va ping quand même

keen narwhal
#

Je sais mais sa indique comme même a l'utilisateur de pas mentionner

#

C'est juste sa que je veux ^^`

oak turret
#

test ce que je t'ai donné

keen narwhal
#

Certe de le message delete sert a rien

slim anvil
#

Surtout quel intérêt d’avoir un discord si on a pas le droit de te ping 😫

oak turret
#

même dans la Zarocratie on peut sue

keen narwhal
oak turret
#

pas de soucis

timid loom
#

ç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");
}
timid loom
# oak turret okay, mais je t'avoue que je comprends pas bien son utilisation

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

oak turret
#

donc dans mon json je replace mon ${member} par %s et dans mon code je mets format(config.tatata, member); ?

timid loom
#

ouais

oak turret
#

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

timid loom
#

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

oak turret
#

oauip j'ai fais comme ça aussi ^^

timid loom
#

il le fait déjà de son côté dans format node

half osprey
#

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
  }
timid loom
#

logsInvites c'est défini où?

half osprey
#

Dans un .json

#

Tout est défini c'est pas le problème

timid loom
#

dans ce cas il peut pas y avoir de méthode dessus

half osprey
#

Ah ouai

timid loom
#

sauf si c'est un array

#

mais là c'est pas le cas

#

il faut que tu transforme ton objet en Collection

half osprey
#

Comment

timid loom
#

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

half osprey
#

Sinon c'est pas possible de passer en Array le .json ?

#

Enfin de le chargé en array dans la variable

timid loom
#

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

half osprey
#

Ah ouai

#

Je comprends rien au Collection

timid loom
#

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

half osprey
#

Oui je vois

#

Mais comment on la crée la collection et on l'utilise après

timid loom
#

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)

half osprey
#
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 ?

timid loom
#

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

half osprey
#

Je fais comment pour mettre tout les codes des invites dans la collection

timid loom
#

Je t'ai littéralement donné le code dans ma réponse précédente

half osprey
#

Ah je crois que j’ai compris

tulip tusk
#

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.

timid loom
timid loom
tulip tusk
slim anvil
#
const letter = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 1)

j'ai trouvé ça pour le random word si tu veux

tulip tusk
slim anvil
#

random letter pardon

oak turret
#

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

slim anvil
#

et si tu fais juste guild.roles.create ?

oak turret
#

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 ^^

timid loom
tulip tusk
#

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

keen narwhal
#

Mais wtf 😭

oak turret
oak turret
tulip tusk
#

jvais tester canvas

dapper coral
#

Bonsoir savez vous comment je peut récupérer username svp ?

#

j'ai console.log(user)

timid loom
#

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

dapper coral
#

Wow ok

#

Merci beaucoup

timid loom
#

tu utilise quoi pour récupérer user là ?

#

un fetch ou quelque chose comme ça ?

dapper coral
#

ouai client.users.fetch

timid loom
#

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

slim anvil
#

// ici user est undefined
c'est pas vrai ???

timid loom
#

sisi je t'assure

timid loom
dapper coral
#

normalement il est undefined en dessous ouai

slim anvil
#

c'est quand meme triste de pas être aller voir sur google avant de venir sur le discord mais bon

dapper coral
#

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

oak turret
#

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 ?

timid loom
#

j'ai pas compris

oak turret
#

en gros

timid loom
#

pour récupérer une guild tu fais comme d'hab non? je vois pas le souci

oak turret
#

de base tu peux get en général on l'appelle "client", qui return le bot et ses guilds etc

timid loom
#

bah oui

oak turret
#

bahhh comment vu que j'ai pas client ?

#

et quand je le define il me return undefined

timid loom
#

tu sais que le CommandoClient c'est une extension de Client?

oak turret
#

yes ça je savais

timid loom
#

ah tu veux dire depuis les commandes?
c'est this.client

oak turret
#

oui exact

timid loom
#

bah

oak turret
#

aahh, je vais tester merci ^^

timid loom
#

t'as juste à lire la doc hein

#

pourtant

oak turret
#

il me return undefined

timid loom
#

tu l'appelle où

#

parce que ça fonctionne hein

oak turret
#

je l'ai define quand this était égal à autre chose

#

c'est good merci ^^

half osprey
#

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.

timid loom
#

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

half osprey
#

Ok dommage

timid loom
#

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

oak turret
#

jamais eu de pb non plus avec les images en embed

viral marten
#

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
           }
       }```
slim anvil
#

boucle infini

#

a aucun moment tu incrementes ton i donc il reste a 0

hybrid berry
dapper coral
#

Bonjour savez vous comment je peut recuperer "User.id" ?
j'ai console.log(reaction.users)

oak turret
#

t'es dans l'event reactionAdd ?

#

@dapper coral

#

si oui à mon avis

#

même pas

#

my bad j'update

dapper coral
#

nan je suis pas dans l'event reactionAdd

oak turret
#

t'es dans quoi ?

dapper coral
#

message

#

euh dans un collector.on('collect

oak turret
#

log collect.first().user.id

#

ou juste collect.first()

#

fin montre moi ce que log collect

dapper coral
#

J'ai pas compris ce que tu me demande de log

#

reaction.first() sa existe pas

dapper coral
#

après quelque temps de galère j'ai reussie a aller jusque ici

oak turret
#

aaaah

#

bah là

#

tu fais tata.forEach(user => {})

#

et dedans

dapper coral
#

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 /°

#

🙂

oak turret
#

np^^

half osprey
#

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
slim anvil
#

arrêtez d’utiliser des await partout en pensant que ça fonctionne de telle sorte......

half osprey
#

Oui...

slim anvil
#

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

half osprey
#

Ah

slim anvil
#

tu cherches à faire quoi sinon

half osprey
#

Ajouter 1 au nombre d'utilisations

#

De ça :

#
{
    "6a8UxbXz4b": {
        "code": "6a8UxbXz4b",
        "uses": 0,
        "inviterID": "302050872383242240"
    },
    "HRJ8wuX4": {
        "code": "HRJ8wuX4",
        "uses": 10,
        "inviterID": "295129219426680833"
    }
}
slim anvil
#

.invite existe pas alors

half osprey
#

Oui c'est ça le problème c'était pour l'exemple

slim anvil
#

c’est obj[variableQuiContientLinvite].uses++

half osprey
#

Aaaah merci j'avais complétement zapper ça

tame shore
#

pourquoi mon discord est pas bon ?

burnt perch
#

c'est new Discord sans majuscule

tame shore
#

ah

#

thanks

#

x)

oak turret
#

t!search bot

cedar oreBOT
oak turret
#

au pire

urban stream
#

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...

slim anvil
#

hello, c'est à dire je comprend pas ta demande ?

urban stream
#

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 ... ^^

slim anvil
#

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

urban stream
#

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 😄

urban stream
#

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) ?

timid loom
urban stream
#

k! merci 🙂

#

à quoi ça sert, ça?

#

j'le vois jamais sur les documentations représentant un fichier main.js concernant react

slim anvil
#

regarde il y a quoi dedans mais ca a l'air d'etre un fichier de ton côté

urban stream
#

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

slim anvil
#

c'est des fonctions qu'ils récupère en paramètre du .then

urban stream
slim anvil
#

ça sert a rien

#

cest des metrics en gros

#

tu peux les virer

urban stream
#

ah ok donc je delete

#

ok merci ! 🙂

fathom jay
#

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

slim anvil
#

tu peux les déclarer au début effectivement

#

ca évitera des redondances de code

modest condor
#

aie les couleurs ^^

fathom jay
#

oké merci

#

je me lasse vite donc je change souvent de thème, celui-ci est bien noir donc mes yeux aiment

spring dock
fathom jay
#

tu trouves ?

#

moi je vois bien sinon je l'aurai pas mis^^

fathom jay
#

déjà testé mais il est assez lumineux

plain crystal
fathom jay
#

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

hazy mirage
#

Faut activer le mode moins de lumière bleue sur ton écran à ces heures la awesmart

fathom jay
#

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

urban stream
#

quelqu'un sait comment disable le X-Powered-By par hasard sur nextjs?

slim anvil
#

poweredByHeader: false

urban stream
#

yes c ce que j'ai fait

#

ca marche pas ....

slim anvil
#

Show me comment tu l’as mis

#

Ou: const app = next({ dev, xPoweredBy: false })

urban stream
#

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 😦

slim anvil
#

C'est bien dans ton next.config.js que tu le mets ?

urban stream
slim anvil
#

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

urban stream
#

je vais commencer à croire que je porte la poisse hahaha

slim anvil
#

tu rebuild bien etc a chaque fois ? ThinKappa

#

par contre my bad

#

withImages

urban stream
#

suis en npm run dev... ? c good non ? thinking_hard

slim anvil
#

pas WithImages j'ai mis une maj a with

#

Essaye de tester en faisant un build pour etre sur quand meme

urban stream
#

pg ! 🙂 c corrigé

slim anvil
#

essaye les 2

urban stream
#

depuis taleur il me dit ca

#

et j'vois pas

#

je suis un CLOWN 🤡

slim anvil
#

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

urban stream
#

😦

#

trop trop bizarre

#

bon pas grave

#

c du détail !

slim anvil
#

yes la comme ca idk sorry 😒

urban stream
#

merci qd meme ! 😉

#

le fichier qui se trouve dans le dossier "api" qui s'appelle hello.js

#

je peux le delete hein ?

slim anvil
#

Yes si tu t'en sers pas et qu'il est utilisé nul part

urban stream
#

ok ! thx

viral marten
#

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 :

slim anvil
#

@viral marten montre ton code juste au dessus plz (le js)

#

faut que tu cherches le top dans ton code

viral marten
#

sa ? @slim anvil

tame shore
#

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 !

hazy mirage
#

Hey

#

c'est l'event ready qu'il faut écouter, et non Ready

oak turret
#

t!search bot

cedar oreBOT
slim anvil
viral marten
#

oki

tame shore
#

je test et je te dit

#

c'est bon !

#

merci x)

oak turret
#

pareil pour ton "async", il te faut une fonction donc, or là tu n'en as pas tu peux juste faire () => {}

urban stream
#

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?

modest condor
#

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

slim anvil
#

et que ça serait "moche" d'utiliser autre chose que sa propre oeuvre...

urban stream
slim anvil
#

du coup il utilise ni des frameworks js ou php ou meme ui ?

urban stream
modest condor
slim anvil
#

Ouais donc bizarre quoi

urban stream
#

Je t'avoue que je n'ai jamais pensé à lui dire pour briser la glace

#

"briser la glace", dans un sens seulement 😂

slim anvil
#

ç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 harold

urban stream
#

En effet, je t'avoue que je ne le comprends pas trop sur ce coup-là!

slim anvil
urban stream
#

Du coup, si vous étiez à ma place, vous seriez partants d'utiliser Crisp.chat, ou du moins... une alternative à celui-là?

slim anvil
#

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

urban stream
#

C'est le meilleur selon eux ^^'

#
#

Je me permets de le link

#

Et en plus, c'est made in France 🇫🇷 !

timid loom
urban stream
#

quelqu'un sait ici par hasard comment "unminify" son code html depuis la tech nextjs (webpck) ?

#

webpack*

viral marten
#

@slim anvil Pourrais tu etre un peut plus dans les details je m'y connais aps du tout en js

timid loom
#

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

timid loom
#

si t'as laissé les source maps ça se fait correctement

#

L'onglet Sources sur Google Chrome

urban stream
#

ça me le montre toujours minified...

#

ah non

#

c bon

timid loom
#

explore un peu, cherche un truc webpack

#

yes voilà

urban stream
#

dans le coin à gauche

#

il y avait "pretty-print this file?" tu cliques et ça te le pretty-print

urban stream
#

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...

slim anvil
#
distDir: 'name',
urban stream
#

ahhh merci !

#

fonctionne pas 😦

#

ah oui non si

#

ça fonctionne mais c pas ce que je cherchais à faire 😦

#

je cherche à modifier ça

viral marten
#

@slim anvil Pour ce que tu m'as dit tu peux etre un peut plus dans le details ?

slim anvil
#

Bah ajoute un console.log(this.hash, target) après avoir déclaré const target

oak turret
#

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

slim anvil
#

On regarde quand je suis sur pc dans la soirée

oak turret
#

ça marche ty

urban stream
#

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?

slim anvil
#

Pour un portfolio j’aurais tendance à dire SPA du coup, par contre pour des sites types ecommerce, ou autre oui le MPA est mieux

urban stream
fathom jay
#

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'
     });
});```
slim anvil
#

scroll-behavior: smooth; en css sinon ce sera plus simple et plus rapide à mettre en place

slim anvil
#

go mp des que tu es dispos

fathom jay
#

déjà essayé mais j'ai le même résultat

slim anvil
#

tu l'as mis ton smooth

fathom jay
#

sur le body

slim anvil
#

essaye sur le html

fathom jay
#

toujours pareil

slim anvil
#

🤔 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

oak turret
slim anvil
#

Oui okay no soucis

fathom jay
#
               <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;
}```
slim anvil
#

@fathom jay
le buttonDown est bien defini plus haut ?

fathom jay
#

oui sinon il était déjà défini

slim anvil
#

et du coup dans ton html t'as bien un élément avec #Portfolio en id ?

fathom jay
#

oui : html <section id="Portfolio">

#

la redirection marche, c'est le scroll qui ne marche pas

slim anvil
#

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

fathom jay
#

je viens d'essayer mais toujours pareil, j'ai regardé dans la console et le scroll-behaviour:smooth; est bien sur le html

slim anvil
#

si tu veux envoie ton truc je test rapido pour voir

fathom jay
#

oké je met sa sur un codepen

slim anvil
#

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

fathom jay
#

google chrome c'est pour ça je comprends pas

spring dock
#

regarde en bas

#

la derniere reponse

fathom jay
#

j'ai une maj google, je regarde si c'est sa, sinon je fais cette méthode

spring dock
#

c’est juste un paramètre à modifier sur ton navigateur

#

vérifie que c’est bien activé

fathom jay
#

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

viral marten
#

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

keen narwhal
#

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 ?

half osprey
#

Et tu mets la réponse dedans + le message.delete()

#

(Et si tu veux un return à la fin)

keen narwhal
#

Je test sa merci beaucoup

#

Je pense etre une vrai merde, j'ai une tone d'erreur

half osprey
#

Comme ?

keen narwhal
#
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..

oak turret
#

=== déjà

#

et dans ta condition

#

tu return message.delete();

half osprey
#
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()
}
 });```
keen narwhal
#

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 :/

half osprey
#

Renseigne toi sur les awaitMessages et awaitReactions

#

Sur la docs

oak turret
#

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

#

tu fais tes cases et à toi de jouer

keen narwhal
#

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 😁😁

oak turret
#

avec plaisir :p

keen narwhal
# oak turret 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 ? 😄

oak turret
#

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

keen narwhal
#

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 😄

oak turret
#

sinon tu peux faire une fonction d’embed

#

et use ta fonction

#

mais bon

keen narwhal
#

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;```
keen narwhal
#

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"
        ]
slim anvil
#
let value = 0;
service.forEach(e => {
    value += Number(e)
})

par ex

#

vérifie peut etre avant que ce soit bien un number

keen narwhal
#

Yep je l'ai déjà fait pour la vérif, je vais tester ça et je te dis :p

keen narwhal
#

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)

            })
slim anvil
#

quelle erreur

keen narwhal
#

(node:18816) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'service' of undefined

slim anvil
#

car le member ne doit pas exister

keen narwhal
#

Hmm, bizarre

slim anvil
#

regarde juste ton json

keen narwhal
#

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

slim anvil
#

regarde juste ton json si il existe dedans l'id du user

#

car si il existe pas tu auras une erreur

keen narwhal
#

Oui il existe, mais en gros quand je remplace l'id du joueur par l'id du bot, ça fonctionne

slim anvil
#

je comprend pas le probleme ??

keen narwhal
#

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

slim anvil
#

screen ton json ? 🤔

keen narwhal
slim anvil
#

okay donc le user c'est le 2eme c'est ça ?

keen narwhal
#

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)

slim anvil
#

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
}

keen narwhal
#

Bien vu

#

Parfait, ça fonctionne ! J'avais l'intention de le faire mais à la fin (je suis pas organisé :d)

tame shore
#

on peut m'expliqué c'est quoi le package-lock.json

oak turret
#

google c'est ton meilleur ami

burnt perch
#

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

signal marsh
#

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
tame shore
#

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

slim anvil
#

comment ça avec un serveur

tame shore
#

avec un server spécifique

#

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

slim anvil
#

.guild

tame shore
#

et j'ai fait sa vue que j'ai pas compris mais s amrche pas

#

Mais sa mrche pas

#

le guild

#

c'est bizarre

slim anvil
#

pas en majuscule

tame shore
#

je vais testé

#

idem

#

@slim anvil

burnt perch
#

essaye "message" à la place de "msg"

tame shore
#

ok

#

Toujours rien

#

pourtant j'ai restart le bot

burnt perch
#

et le message d'erreur ?

half osprey
#

des erreurs ?

tame shore
#

rien

#

aucune erreur

half osprey
#

Je peux voir un peu plus de ton code ?

slim anvil
#

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 ....

burnt perch
#

ah bah oui

slim anvil
#

t!search bot

cedar oreBOT
slim anvil
#

je peux pas faire + la tu dois reprendre du début

tame shore
#

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

slim anvil
#

good luck

tame shore
#

Mais il faut des bases pour le tuto ?

#

ou pas ?

slim anvil
#

il faut des bases en js oui quand meme

burnt perch
#

bah engros la ton "message" ou "msg" existait pas mais bon regarde le tuto je pense que c'est la meilleur soluce

slim anvil
#

c'est toujours mieux de comprendre

tame shore
#

yes

#

thanks

#

Il y aura bientot un tuto js ou pas ?

#

maybe ?

slim anvil
#

c'est super large le js

#

tu as besoin de quoi

tame shore
#

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

pseudo bolt
#

salut les gars le bot discord et en java script ou pas

slim anvil
#

Tu peux le faire en JavaScript oui

oak turret
hybrid elk
#

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

hazy mirage
#

@hybrid elk tu peux essayer à l’arrache de faire const randomized = Math.floor(randomnum * 100) / 100

hybrid elk
hazy mirage
#

Oui j’ai bien compris, tu laisse randomnum au dessus et tu rajoute cette ligne en dessous

#

Et tu utilise cette variable

hybrid elk
#

Ok merci

hybrid elk
#

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

oak turret
#

une tâche cron

tacit patio
#

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 }```
slim anvil
# tacit patio Petite question, une instruction conditionnelle en Javascript c'est bien sous le...

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
tacit patio
#

Ah oui c'est vrai, j'avais fait pareil merci !!!

bronze needle
#

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

slim anvil
bronze needle
slim anvil
#

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

bronze needle
#
  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
slim anvil
#

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 ?

bronze needle
#
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
slim anvil
#

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

bronze needle
slim anvil
#

yes par exemple

bronze needle
#

Et comment je peu faire ca?

slim anvil
#
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

slim anvil
#
function get (type) {
  return JSON.parse(require(`./${type}.json`, "utf-8"))
}

par exemple, je te laisse faire les vérifs de ton côté

bronze needle
#
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é)

slim anvil
#

pour récupérer ton json tu fais

const member = get('member')
bronze needle
#

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
slim anvil
#

merde my bad

#

trompé j'ai mis require attend

#
function get (type) {
  return JSON.parse(fs.readFileSync(`./${type}.json`, "utf8"));
}
#

normalement c'est good

bronze needle
#

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 ()
slim anvil
#

yes mais tu appelles ces fonctions au moment ou tu en as besoin ?

bronze needle
slim anvil
#

Faut que tu utilises cette fonction des que tu as besoin de récupérer ton json comme je t'ai dis plus haut

bronze needle
#

Ca fonctionne ❤️

slim anvil
#

héhé

tacit patio
#

Salut, est-ce que vous pouvez m'envoyer le lien vers le cours de Javascript svp

keen narwhal
#

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

keen narwhal
#

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

slim anvil
#

🤔
t'as quoi comme version de node

keen narwhal
#

je précise que j'ai fais les manips

slim anvil
#

sinon test de desinstaller node et reinstaller une latest version pour voir

keen narwhal
#

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#

slim anvil
#

y a pas de . je crois

#

c'est nodejs

keen narwhal
#

J'ai fait toutes les combinaisons possibles pour delete mais ça ne veut pas

slim anvil
#

mais si tu node -v ca fonctionne ? 🤔

keen narwhal
#

nop

slim anvil
#

installe node alors harold

keen narwhal
#

Bah je vais réessayer

#

Att

slim anvil
#

passe par nvm tant qu'à faire

keen narwhal
#

@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

slim anvil
#

fais un which node

keen narwhal
#

ça me fait absolument rien

slim anvil
#

ca te renvoie pas une entrée ?

keen narwhal
#

bah si

slim anvil
#

Ca te renvoie quoi

keen narwhal
#

ça

slim anvil
#

🤔

#

viens voc

keen narwhal
#

Si je suis muet ça pose un soucis ?

slim anvil
#

no

slim anvil
ancient sonnetBOT
#
Citation de Alkenos#0891 posté dans html-css

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 :)
slim anvil
#

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 🙂

vapid lintel
#

Merci je vais tenter ça :)

oak turret
#

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 ?

spring dock
#

non

slim anvil
#

tu peux break

oak turret
#

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

oak turret
#

j'ai trouvé lel ty

hybrid elk
#

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

half osprey
#

C’est quoi ton code pour les commandes ?

hybrid elk
#

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\`\`\``);
    }```
vapid lintel
#

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 :)

slim anvil
#

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 ?

vapid lintel
#

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

slim anvil
#

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)
}
 
vapid lintel
#

aussi simple que ça ?

slim anvil
#

Si dans tableUser tu as bien le champ que tu veux oui je pense

vapid lintel
#

je vais essayer merci

#

je galère depuis 2-3h pour trouver

#

ça marche :) merci

slim anvil
#

top

vapid lintel
#

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 :)

slim anvil
#

le resultPartial te return quoi ? 🤔

#

d'ailleurs rajoute option.toLowerCase().starts...

#

pour comparer 2 chaines en minuscule

vapid lintel
#

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

keen narwhal
#

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é :/

hazy mirage
#

ça marche pu ça ?

keen narwhal
#

Bah nan

hazy mirage
#

¯_(ツ)_/¯

#

C'est depuis que ta mis à jour node nan ?

keen narwhal
#

Justement sinon je me serais pas permis de te ping

hazy mirage
keen narwhal
hazy mirage
#

npm rebuild

keen narwhal
#

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

keen narwhal
#

st^p

hazy mirage
#

Il faut faire un retour à la ligne après le ) ligne 13

#

Tu peux copier coller ton code ?

keen narwhal
#

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)

hazy mirage
#
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

keen narwhal
#

a oui mince

#

Ca refonctione merci beaucoup

slim anvil
vapid lintel
#

@slim anvil i'm here

#

enfaite il me return pas false

#

il me return ça

slim anvil
#

oui je me disais aussi

#

du coup ton truc est bon

vapid lintel
#

ça doit par return un bool ?

#

ha mais non jsuis bete mdr

slim anvil
#

nop un array

thick mortar
#

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 :)

slim anvil
#

tu trouves pas quoi exactement

#

Comment give le rôle, créer la commande, créer l’événement

thick mortar
#

Comment ajouter le rôle

slim anvil
#

C’est assez vague

thick mortar
#

Sorry ^^"

slim anvil
#

member.roles.add()

#

Et dans le add l’id du rôle par exemple

thick mortar
#

Avec l'id du bot entre parenthèses ?

#

ok

#

merci ^^

slim anvil
#

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

thick mortar
#

Yes merci ça marche avec le message.member.roles.add ^^

oak turret
#

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

urban stream
#

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

slim anvil
urban stream
#

<View> <Image style={{ width: 50, height: 50 }} source={{ uri: props.image }} /> <Text>{props.text}</Text> </View>

#

Cette partie-là... je ne comprends pas

slim anvil
#

Tu comprends pas quoi du coup

urban stream
#

C'est quoi "{props.text}" ?

slim anvil
#

Pas certains à 100%, mais le <View> c'est du react native non ?

urban stream
#

et c'est quelle version que je dois importer ?

#

j'sais pas du tout ...

slim anvil
#

bah react du coup, react-native c'est pour le mobile

urban stream
slim anvil
#

et donc oui <View> c'est react-native
mais props.text c'est juste les props que tu recois de ton parent

urban stream
#

sinon y'a ça

slim anvil
#

Non mais il marche très bien son truc

urban stream
#

imaginons

#

je veux faire ça ici

#

j'ai pas de props.text, moi ici...

#

donc je comprends pas trop

slim anvil
#

bah tu en mets pas

#

Tu sais ce que c'est qu'une props ?

urban stream
#

absolument pas

slim anvil
#

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

urban stream
#

oui

slim anvil
#
// Index.js

<Card title="Salut à tous" color="red" />
// Card.js
<div className="card">
  <h1>{ props.title } // display "Salut à tous"
</div>
#

dans ce genre quoi

urban stream
#

Ohhhh, d'accord

slim anvil
#

C'est la notion de composants enfaite

#

tu peux passer des objets, tableaux, etc etc

urban stream
#

mes composants j'les fais comme ça moi

slim anvil
#

Ah

urban stream
#

c'est comme ça qu'mon pote m'a dit de faire 🤡

#

suis-je un clown?

slim anvil
#
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)

urban stream
#

yes ...

slim anvil
#

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

urban stream
slim anvil
#
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)

urban stream
#

dans mon composant card.js ou dans ma page index.js ?

slim anvil
#

Ou tu veux

#

là ou tu en as besoin enfaite