#javascript-typescript

1 messages · Page 70 of 1

urban stream
#

dans mon index.js du coup je pense

#

marche pas trop bien :/

slim anvil
#

Bah il s'affiche ?? tu veux qu'il fasse quoi d'autre ? đŸ€”

#

C'est Ă  toi de conditionner avec ton loading hein ^^

#

ca te crée pas un fake loading ou autre

urban stream
#

C'est justement ça qui me bloque 😩

slim anvil
#

il te crée juste le skeleton

#

du coup tu bloques sur quoi ? đŸ€”

urban stream
#

conditionner ca avec le loading

slim anvil
#

bah t'as un loading ?

#

ou tu veux en faire un fake ?

urban stream
#

jai pas de loading

#

du moins jpense pas

slim anvil
#

du coup a quoi ça sert de faire un skeleton ? c'est de la data que tu recois d'une API ?

#

ou c'est des infos en dur

urban stream
#

c'est des infos en dur

slim anvil
#

alors Ă  quoi ça sert de faire un Skeleton ? đŸ€”

urban stream
#

parce que ma page est quand mĂȘme lente Ă  load

slim anvil
#

Oui mais si la page est lente Ă  load le composant sera affichĂ© qu'une fois la page entiĂšrement chargĂ© ? đŸ€”

urban stream
#

ah ouais

#

c'est vrai

#

rahwe galĂšre

#

j'avais pas pensé à ça

#

j'suis stupide

#

đŸ€Ł

#

du coup... fake un loading c possible? ^^

slim anvil
#

Faites du Lazy loading de vos components

urban stream
#

c quoi ca ?

slim anvil
#

Oui c'est possible mais dans ce cas là autant pas le fake, de bien découper votre code en composant, et de les lazy loading, du coup vous allez pouvoir faire un vrai loading

urban stream
#

enzo... pk tu me vouvoies subitement? thinking_hard😂

#

c tjr moi ! j'ai juste changé de pp et de pseudo ^^ sorry

slim anvil
#

ahhhh 😂

#

ça permet d'éviter de load ton composant entiÚrement et juste de le load quand tu as besoin, donc - lourd et + opti

#

et dedans tu peux gérer le fait d'avoir un "placeholder" le temps du loading

#

Mais si c'est pour ton site, y a pas grand chose bizarre que ce soit lent Ă  charger... đŸ€” pas tes images qui sont juste trop lourdes ?

urban stream
#

ca a l'air vachement glr a mettre en place

slim anvil
#

ça va en vrai mais ouais ca fait un peu de taff
Mais du coup qu'est ce qui est lourd sur ton site pour que ce soit lent a render ? car tu as pas de requĂȘtes, juste des Ă©lĂ©ments html ? des images trop grosses ?

urban stream
#

je sais pas du tout mon site veut plus charger

#

wtf

slim anvil
#

kappa
Par contre ne test pas la rapidité de ton site en mode dev, build et run ta version build

urban stream
#

ah ca y est

#

d'acc !

slim anvil
#

La tu verras si c'est rapide ou non, car en mode dev et il reload a chaque fois tout

urban stream
#

je t'ai envoyé un ngrok en mp ^^

keen narwhal
#

Hello, j'ai eu cette erreur vous savez d'oĂč ça peut venir ?

#

Uncaught TypeError [INVALID_TYPE]: Supplied parameter is not a User nor a Role

timid loom
#

Le paramĂštre fourni n'est ni un User ni un RĂŽle

#

C'est littéralement ce que dit le message

keen narwhal
#

ok merci

runic quartz
#

Hello, comment je pourrais récupérer des infos stockées sur une base de données mysql pour un bot discord ?

slim anvil
#

t!search mysql

cedar oreBOT
slim anvil
#

Yes voilà on a un tuto là dessus si tu veux 😄

runic quartz
#

Merci

oak turret
#

@slim anvil re! Du coup voici mon code

#

mon index

#

comment je l'utilise

#

et il me sort undefined :x

#

alors que quand je l'utilisais sans le foudre dans mon client, je faisais bien pool.query(...)

slim anvil
#

tu peux voc ? on rĂšglera ca plus rapidement

#

en partage d'écran

oak turret
#

ça marche, y a du monde à cÎté de moi donc je vais me mute pour pas que ça nique le chan

slim anvil
#

ouep vasy d'ici 10 minutes par lĂ 

oak turret
#

np

tropic sable
#

hey

#

j'ai une div contenant des images et mon but est de récupérer mes images et à l'aide d'une variable incrémenter la position en jquery

#
<div id="lucarne">
    <div id="plateau">
        <img src="landscape1.jpg" alt="">
        <img src="landscape2.jpg" alt="">
        <img src="landscape3.jpg" alt="">
        <img src="landscape4.jpg" alt="">
        <img src="landscape5.jpg" alt="">
    </div>
    <div id="num">1</div>
</div>```
#

Quelqu'un a une idée ?

slim anvil
#

tu veux bouger tes images en js en gros ?

tropic sable
#

en gros faire ça

let pos = 1;
let count = $('#lucarne img').length;
$('#lucarne img').click(function(){
        if(pos === count){
            pos = 0;
        }

        pos++;
        let idToSRC = 'img/landscape'+ pos +'.jpg';
        $('#lucarne img').attr('src', idToSRC);
});
#

mais en plus propre

#

J'aimerais ne pas le faire en fonction de la source mais en mode faire un tableau et l'incrémenter

slim anvil
#

okay je crois comprendre, enfaite tu n'as qu'une image de visible, et tu veux juste la changer des qu'il va cliquer dessus ? en changeant du coup le 1, 2, 3, 4, 5 etc ?

tropic sable
#

yep

slim anvil
#

je vois pas trop comment améliorer le truc, ça reste bien ce que tu as fais (à part jquery kappa)
Mais a la limite tu peux avoir un tableaux avec tes images et en fonction de ta variable pos tu viens select l'index, mais ca reste quasi la mĂȘme chose

#

J'ai pas l'idée de ce que tu pourrais réellement changer qui va changer ton code de façon considérable quoi

urban stream
#

Hello à tous... alors voilà, j'ai un gros problÚme et ça me chiffonne, je vous avoue que ça me rend triste.

J'ai redĂ©marrĂ© mon PC, et mon application fonctionnant sous Next ne fonctionne plus du tout, ça me dit qu'il est impossible de lire les fichiers ".svg", alors que ça fonctionnait trĂšs bien juste avant que je redĂ©marre mon ordi'... Ă  savoir qu'avant cette erreur, ça m'en disait 2 autres oĂč ça disait que ça ne pouvait pas lire les fichiers ".png".

J'me suis dit que peut-ĂȘtre c'Ă©tait un problĂšme de packages, j'ai donc fait un coup de "npm install" pour que ça installe bien chaque paquet du "package.json", mais toujours rien.

slim anvil
#

ta config webpack qu'il faut update

#

t'as un webpack.config.js ?

#

si oui envoie ce que tu as dedans

urban stream
#

j'ai un next.config.js

#

pas un webpack.config.js

#

:/

#

j'en ai jamais eu

#

donc pourquoi ça fonctionnait avant ?

#

parcontre

#

j'ai trouvé ce code sur internet

#

et c'est vrai qu'avant que ça arrive, j'avais ce code

#

mĂȘme si cependant ça n'empĂȘchait pas mon code de fonctionner juste aprĂšs l'avoir enlevĂ©

#

c'est vraiment aprÚs le redémarrage que mon code a commencé à faire n'importe quoi

#

Par exemple, ici il manque une icĂŽne

#

et pourtant...

slim anvil
#

alors attend

#

la actuellement montre ton next.config.js please

#
module.exports = {
  poweredByHeader: false,
  webpack(config) {
    return config
  }
}
#

remet juste ça pour voir

urban stream
#

c'était comme ça juste avant

#

et en fait

#

c'est parce qu'il ne trouve pas mon image

slim anvil
#

t'as remis ce que je t'ai envoyé ou pas

#

en laissant le const withImages bien sur

urban stream
#

oui oui

slim anvil
#

T'as relancé le projet pour voir si c'était ok ?

urban stream
#

oh super !

#

ça fonctionne

#

merci beaucoup !!

slim anvil
urban stream
#

Tu mérites un trophée

urban stream
#

@slim anvil Ton site est down?

slim anvil
#

ovh harold

urban stream
#

arf...

#

Tu es hébergé chez OVH ?

slim anvil
#

pas grave en soit j'aurais juste a pull

urban stream
#

ou bien, tu as juste le NDD ?

slim anvil
#

oui mon serveur perso

#

tout harold

urban stream
#

Viens MP !

deep torrent
#

Hmm...

slim anvil
deep torrent
#

Rien rien

#

Triste pour Ovh

slim anvil
#

pour moi aussi kappo2

deep torrent
#

Ce meme que j'ai trouvé

#

Mais bon c'était sur quel Dc ton serveur?

#

SBG2 ?

bright pecan
slim anvil
deep torrent
#

xd

#

Si ca trouve ton vps a cramé xd

slim anvil
#

rt j'irais chez scaleway

urban stream
#

j'adore scaleway perso

slim anvil
#

yes c'est pas mal !

scenic fog
#

Comment je pourrais créé une image du style, avec un fichier zif et l'integrer en Js dans le web

#

Tu peux faire un mega zoom et ca reste en assez bonne qualité

keen narwhal
#

Je re-up Ă  cause d’un problĂšme que je viens de voir, je ne comprends rien de pourquoi ni comment mais les utilisateurs sont sĂ©lectionnĂ©s au pif dans le .json (au lieu de sortir tous les noms stockĂ©s, il ne m’en sort qu’un ou deux)

keen narwhal
#

Contenu du json

#

Ce qui en sort

keen narwhal
#

Quelqu'un pourrait m'aider ? :d

slim anvil
#

Montre ton code peut ĂȘtre

#

Parce la on peut pas faire grand chose

keen narwhal
#

@slim anvil

#

J’ai pas pu prendre les lignes 😒 (j’ai pu mon pc de dispo dĂ©so)

slim anvil
#

parce que en cache il a peut etre que ces 2 users la đŸ€”

#

t'as tésté de log list.members voir t'en as combien dedans

keen narwhal
#

J’ai pas essayĂ© mais je vais voir quand je rentrerais chez moi, mais c’est vraiment bizarre si c’est ça parce que je liste tous les membres :/

slim anvil
#

Oui qui sont dans le cache

keen narwhal
#

Je viens de retaper la commande et j’obtiens plus de rĂ©sultats mais pas tous :d (dont un que je voyais tout a l’heure et qui n’apparaĂźt plus)

slim anvil
#

Log juste ce que je t’ai dis

#

mais à mon avis c’est ça

keen narwhal
#

D’acc

#

je te donne la rep d’ici ce soir

keen narwhal
#

D’ailleurs en attendant, je n’arrive pas Ă  rĂ©cupĂ©rer avec ce mĂȘme tableau le @ des joueurs (pour qu’ils soient mentionnĂ©s). Quand je mets juste : member.user ça n’affiche que ce qui est stockĂ© pour moi et ça ne met pas les autres

oak turret
#

tu dois get les membres avec l'id

keen narwhal
#

J’ai dĂ©jĂ  les id

oak turret
#

oui je sais

#

mais lĂ  pour le mentionner, il te faut get le membre dans ton serveur avec l'id

#

pour choper toutes ses infos

#

et le mentionner

keen narwhal
#

Ah d’accord, okey, je vais verrais aussi

#

d’ici ce soir

oak turret
#

ça marche

keen narwhal
#

Yo !
mini question , comment je fais pour que quand l'on ** mentionne ** mon bot il r'envoie un message ?

oak turret
#

seulement la mention, ou genre tatata @mentionbot

keen narwhal
#

non seulement la mention ^^

oak turret
#
if ( message.content === "<@idbot>" ) {
  message.reply("tatata");
}
#

sinon tu as

#
if ( message.mentions.members.first().id === <client>.id ) {
  //
}
#

<client> = variable oĂč tu define ton discord client

keen narwhal
#

je vois merci 👌

oak turret
#

avec plaisir

keen narwhal
#

et autre mini question

imaginons qu'une personne fais une commande , et que je met Ă  disposition du bot 2 msg.reply
comment je fais pour que le bot en choisi un des 2 au pif ?

slim anvil
#

c'est un tableau avec tes phrases dedans et tu random sur ton tableau

keen narwhal
#

ok merci ^^

keen narwhal
#

Pour l'autre problÚme, il a l'air d'avoir été réglé @slim anvil

#

Pour savoir, si il y'a un pb de cache, ça se rÚgle comment ?

oak turret
#

ah c’est dans un title d’embed @keen narwhal ?

#

si oui normal tu ne peux pas

keen narwhal
#

Pourtant ça a fonctionnĂ© đŸ€”

oak turret
#

le mentionner ?

keen narwhal
#

Yep

oak turret
#

genre comme : @oak turret

keen narwhal
#

Ca a fonctionné ce matin

#

Yep

oak turret
#

dans un title d’embed ? đŸ€”

slim anvil
#

Dans un titre impossible

keen narwhal
#

je suis juste bĂȘte, j'ai inversĂ© entre le title et le field

oak turret
#

ah bah oui

keen narwhal
#

C'est dans la 1ere partie du field

oak turret
#

voilà title c’est pas possible

#

oui le title du field c’est ok value pareil

keen narwhal
#

Hmm, ducoup quelle est l'issue ?

oak turret
#

tu peux mettre le tag du mec en title d’embed mais pas le mentionner

keen narwhal
#

Oui, mais ducoup sur mon .addfield ?

oak turret
#

bah du coup

#

.addField(tonuser, value)

keen narwhal
#

D'acc, je regarde ça

keen narwhal
#

comment je fais pour faire sauter des lignes à mon js .addField pour espacé un peut les commandes que je veux afficher ?

oak turret
#

inline: false

#

sur un .addField(title, value, false)

keen narwhal
#

donc Ă  la fin c'est le "inline: false"
si oui merci ^^

oak turret
#

sur un .addFields() oui

#

sur un .addField() juste false ou true

keen narwhal
#

ok ok 👌

#

sa ne marche pas

oak turret
#

ton code ?

keen narwhal
#
.addField("**Commande du bot**", "!sm info : Information Bot !sm ban : Bannir des Membres !sm kick : Expulser une personne" , inline: false)

oak turret
#

pas le inline

#

juste false

keen narwhal
#

sa ne marche toujours pas , sa me fais la mĂȘme chose que quand c'est true

oak turret
#

tu as enlevé le inline: ?

keen narwhal
#

oui

oak turret
#

.addField('Inline field title', 'Some value here', true) comme ça pourtant

#

essaye :

keen narwhal
#

ok

oak turret
#
.addFields(
  {name: "", value: "", inline: false}
)
keen narwhal
#

tjr pas

oak turret
#

t'as qu'un field ?

#

ah bah

keen narwhal
#

oe

oak turret
#

tu fais plusieurs fileds

#

donc

keen narwhal
#

ok

oak turret
#
.addFields(
  {name: "Commande1", value: "tata", inline: false},
  {name: "Commande2", value: "tata", inline: false},
  {name: "Commande3", value: "tata", inline: false},
  {name: "Commande4", value: "tata", inline: false},
)
keen narwhal
#

merci sa marche trĂšs bien !

oak turret
#

no problem

fallen kindle
#

Bonjour,
J'ai un petit problÚme, en gros je fais une cmd qui utilise une fonction que je définie dans un autre fichier, jusque là c ok. Mais en gros j'ai besoin dans mon fichier de cmd de ré-utiliser une variable qui est définie dans la fonction (qui est dans un autre fichier).
Donc je voulais savoir si c'était possible de récupérer ma variable depuis la fonction ?

slim anvil
#

tu lui passes en paramĂštres

#

dans les ()

#

et dans ta fonction tu vas la récupérer aussi dans tes ()

#
function hello (name) {
  return `hello ${name}` 
}

hello(message.author.name)

en gros

fallen kindle
#

oui, ça c'est pour use une variable définie dans le fichier cmd pour la fonction, mais moi c l'inverse, je voudrais utiliser dans mon fichier commande une variable définie dans ma fonction

slim anvil
#

bah tu appelles ta fonction et elle return ta variable

#
// function.js
const value = 0;
function getValue () {
  value++
  return value
}

// index.js

const value = getValue()
#

par exemple đŸ€”

fallen kindle
#

en gros voilĂ  ma fonction :

detectChannel: function (args,message,client) {
        let channel;
        if (args[0][0] === '<') {
            channel = args[0].substr(2, args[0].length-3);
        } else {
            channel = args[0];
        }
        const channelId = client.channels.cache.get(channel);
        if (typeof channelId === 'undefined' || !(channelId.type === `text`)) {
            return message.channel.send({
                embed: {
                    title: `:warn2:  Vous n'avez pas stipulé un channel correct !`,
                    color: 0x2f3136,
                    description: 'Le channel doit un channel textuel du serveur. Veuillez recommencer, merci.',
                },
            }).then(msg => msg.delete({timeout: 5000}));
        }
    }

ça marche parfait, sauf que moi en plus d'exécuter la fonction dans mon fichier commande, je veux récupérer channelId pcq j'en ai besoin.

slim anvil
#

Bah du coup comme je t'ai dis plus haut tu return channelId au lieu de return message.channel.send

#

donc tu vas dire const channelId = detectChannel()

fallen kindle
#

ok mais dcp la partie sous le return channelId va pas ĂȘtre exĂ©cutĂ©

slim anvil
#

Tu send puis tu return

#

ou tu return dans ton .then() sinon

fallen kindle
#

ok c'est bon merci, j'aurai du y penser 😅

slim anvil
#

Mais pas sur qu'il attende la fin de l'execution il va surement te return undefined a tester

fallen kindle
#

nan ça marche quand je met le return aprÚs le if

slim anvil
#

Oui moi je te parlais de le mettre dans le .then sinon

#

comme ça t'es sur qu'il te le return quand le msg est envoyé à toi de voir en fonction de ton besoin ^^

fallen kindle
#

ah ok merci beaucoup

hybrid elk
#
const cmd = `g!warn ${user} `;
const reason = message.content.slice(cmd.length).split(/ +/);

hook.send(`[![warn](https://cdn.discordapp.com/emojis/818827641481461760.webp?size=128 "warn")] ‱ ${user} **a Ă©tĂ© averti par** ${message.author} **pour** ${reason}`);
        

RĂ©sultat attendu: [warn] ‱ @Bratva ‱ Bot a Ă©tĂ© averti par @hybrid elk pour raison du warn

RĂ©sultat obtenu: [warn] ‱ @Bratva ‱ Bot a Ă©tĂ© averti par @hybrid elk pour ,test,du,test,du,warn,des,bots

#

đŸ€”

slim anvil
#

tu peux log reason ?

hybrid elk
#

oui att

hybrid elk
#

Y a pas quelque chose pour remplacer les virgules par des espaces?

slim anvil
#

si tu replace()

#

mais tu peux log message.content avant stp

hybrid elk
slim anvil
#

enlĂšve justre ton .split()

#

ce sera ok

hybrid elk
#

Nickel merci ça marche

silk edge
#

Bonjour, Bonsoir
Je voudrais apprendre à faire des bots discord donc je me démerde comme je peux avec discord.js.
Je fais déjà pas mal de dev mais j'aurais bien besoin de quelqu'un pour m'expliquer comment fonctionne la donc j'y comprend rien XD. Merci d'avance

oak turret
#

Salut, la doc de djs est vraiment super bien faite

#

par exemple prenons : message

#

tu peux voir ses méthodes et ses attributs

#

donc par exemple tu clique sur message => author => qui te retournera un « user » et ce que tu peux get avec

#

username, tag, avatarURL() etc!

silk edge
#

ouaip je comprend ça mais j'arrive pas Ă  mettre en place se que je trouve c'est pour ça que j'aurais bien aimĂ© une explication en partage aprĂšs mes cours 😅

slim anvil
#

Tu souhaites faire quoi exactement

#

car ne rien comprendre c'est pas possible

#

on comprend toujours des choses 200iq le plus important c'est de savoir ce que tu as du mal Ă  comprendre exactement qu'on puisse t'aiguiller

silk edge
#

je vais donner un simple exemple

#

j'ai mis au moins 1h pour arriver à chopper la pp d'un utilisateur quand il a envoyé un message

#

et lĂ  je suis a prendre la pp du serveur mais pareil je trouve pas XD

#

je me perd dans la doc

slim anvil
#

đŸ€”

silk edge
#

oui mais comment je le met en place c'est aussi un de mes soucis comme j'ai pas d'exemple je comprend pas comment l'utiliser

#

J'ai des gros soucis de compréhension de cette doc XD

#

j'ai envie de tout casser quand je bosse sur des bots 😆

slim anvil
#

tu débutes complÚtement ? car dans ce cas là à part regarder 2/3 trucs pour comprendre l'utilisation de la lib discord.js je vois pas trop

#

t!search bot

cedar oreBOT
slim anvil
#

puis ensuite sur youtube pour approfondir un peu

silk edge
#

Nan pas vraiment en faite je comprend

#

mais je vois pas comment mettre en place

#

Je vois les objets et quoi faire dessus

#

mais je vois pas comment en js le mettre en place

oak turret
#

tu veux faire quoi concrùtement que je te dise et que je t’explique

oak turret
#

pour la pp du serveur ( Ă  condition qu'il y en ait une ) c'est : message.guild.iconURL(), tu as 3 paramĂštres dispo pour cette fonctions, ils sont tous optionnels, sinon pour get l'icon url d'un autre serveur, oĂč ton bot est, c'est <client>.guilds.cache.get("id_serveur").iconURL(), <client> = ta variable qui dĂ©finit le client discord

silk edge
#

En gros je veux faire un bot qui remplace tous les autres

#

Pour en avoir qu'un

#

Et aprĂšs le lier avec une BDD

#

Par se que le web je connais bien 😆

oak turret
#

c'est ambitieux, mais c'est vaste 🙂

silk edge
#

Yep justement je veux toucher un peux Ă  tout

#

Pour bien m'approprier le truc

oak turret
#

commence par des trucs simple !

#

genre des commandes

#

!ping et le bot répond pong

#

des tickets, reaction role, etc !

#

si t'as un soucis, ping moi 😉

keen narwhal
#

Comment je fais pour faire en sorte que lorsque que mon bot poste un message , 1 min plus tard il se supprime ?

oak turret
#

hello,

message.delete( { timeout: 60000 } )
keen narwhal
#

Merci 👌

oak turret
#

avec plaisir 🙂

silk edge
#

@oak turret pour le moment j'arrive à faire ça XD

#

mais merci maintenant j'ai compris la doc ça va mieux XD

silk edge
#
client.on("guildMemberAdd", (member, data, guild) => {
    print("il a rejoint");
    // const MemberAddEmbed = new Discord.MessageEmbed()
    //     .setColor('#27ae60b')
    //     .setTitle('Une personne nous Ă  rejoint')
    //     .setDescription(member.user.tag, "Nous Ă  rejoint aujourd'hui")
    //     .setThumbnail(member.user.avatarURL())
    //     .setTimestamp()

    //     guild.channels.get('555436620241698840').send(MemberAddEmbed);
});
#

aussi bien le add que le remove ne fonctionne pas je pige pas pk XD

slim anvil
#

active les intents sur ton panel bot

silk edge
#

?

#

c'est Ă  dire mdr

slim anvil
silk edge
#

oki dac je vais voir ça

#

c'est bon

#

c'est le channels qu'il aime pas

#

dans le send de mon embed

slim anvil
#

ah ça c'est autre chose aprÚs ^^

silk edge
#

XD ui

#

je cherche du coup

#

et en js c'est pas print mais console.log

#

XD

oak turret
#

.cache.get() pour le channel

#

si t’es en v12

silk edge
#

j'ai trouvé ça je vais essayer là

#

toujours pas XD

oak turret
#

non

#

guild.channels.cache.get("id").send(embed);

lapis onyx
#

Le message apparait lorsque je me connecte sur le site

spring dock
#

C’est juste une alerte qui te dit que le mot de passe que ta utilisĂ© pour le site en question (en l’occurence ton site local) est dans une liste de mdp, tu verras que si tu met ce mĂȘme mot de passe sur un autre site en t’inscrivant tu aura la mĂȘme modal qui s’ouvrira

lapis onyx
#

Oups effectivement, 0000 ça doit ĂȘtre utilisĂ© ailleurs

spring dock
#

Normalement faut que ce soit liĂ© Ă  l’adresse mail que ta utilisĂ© pour te rĂ©inscrire

#

Donc t’es inscrit sur un site avec comme mot de passe 0000

#

bon Ă  savoir

lapis onyx
spring dock
#

Nice

peak cedar
#

@lapis onyx sa va m'Ă©tre utile de oufff 😂

#

jvais faire des trafique de kinder pingui avec ton mail eheh

lapis onyx
#

Avec plaisir, tu me reverseras 90% des bénéfices du coup

#

Pendant que je suis la, j'aimerais supprimer dans ma BDD une item seulement si son ownerId = l'ownerId passé dans le token. Mais ça marche pas trÚs bien ou alors je m'y prends mal

slim anvil
#

tu veux filter

#

pas sort

#
filter: {
  owner: {
    $eq: tokenUserID
  } 
}
#

Mais en soit pourquoi filter si tu as dĂ©jĂ  l'id mongo ? đŸ€”

lapis onyx
#

Je veux vérifier que la personne qui fait la demande pour supprimer l'item soit bien son propriétaire

slim anvil
#

ah yes okay

lapis onyx
#

Merci 🙂

slim anvil
#

ça fonctionne ?

#

quelle question evidemment que oui kappa

lapis onyx
#

yep ptdr

slim anvil
#

tu nous concoctes quoi comme application

lapis onyx
#

Simple todo app angular et node js

slim anvil
#

quel homme courageux d'etre sur angular déjà

lapis onyx
#

C'est cool angular

slim anvil
#

c'est vraiment po mon préféré des 3

#

c'est le 3eme du coup (des 3 gros)

lapis onyx
#

react, vue, angular ?

slim anvil
#

vue, react, angular

#

mais vue est passé au dessus de react parce que j'ai trop fais de react

#

mais en vrai react reste > vue actuellement

slim anvil
#

Mais en tout cas trop cool tu nous montreras tout ça osmoS

peak cedar
#

Osmos le best

#

🙂

lapis onyx
#

Et symfony dans tout ça KappaRetard ? J'ai jamais utilisĂ© react et vue mais un jour peut ĂȘtre

slim anvil
#

je suis pas developpeur php donc pas d'avis 😩

lapis onyx
#

Ouais quand ça sera terminé je balancerais surement une vidéo de présentation

slim anvil
#

pas d'avis personnel dessus

keen narwhal
#

@slim anvil je viens de trouver la source du problÚme (par rapport aux utilisateurs pas présent dans le cache), en gros à chaque restart du bot, les données sont toujours sauvegardées mais je peux pas les récupérer

#

Aurais-tu une solution ?

peak cedar
#

@slim anvil wsh bebouuuu ptite question


if (message.channel.type === "dm") {
        if (message.author.bot) return
        if (message.content.startsWith("!")) return
        channel = bot.channels.cache.get('816601104267477012')
        channel.send(message.content).then(async(msg) => {
            await msg.react(":white_check_mark:")
            await msg.react(":x:")
            await msg.react(":warning:")

        })
    }

le code marche oklm
je Mp le bot sa marche
d'autres gens mp le bot sa met Que les message priver sont bloquer
style mon bot la bloquer
une idée ?

#

voillaa

slim anvil
slim anvil
peak cedar
#

je check

keen narwhal
keen narwhal
#

Une idée de comment faire ?

half osprey
#

avec une BDD MySQL ou du JSON

#

t!search mysql

cedar oreBOT
slim anvil
#

Comme ça tu affiches que les donnes que tu as

keen narwhal
#

Bonjour je débute dans le javascript et j'essaye de dev un ticket bot mais il ne marche pas merci d'avance et bonne soirée

peak cedar
#

une erreur

#

???

keen narwhal
#

salut !
J'ai une petite une question Ă  vous poser , je cherche Ă  faire un commande qui avec cette derniĂšre set des grade Ă  l'aide d'un id ^^

half osprey
#

Tu peux nous l'envoyer en texte ça serait beaucoup plus simple déjà

keen narwhal
peak cedar
#

jfinit juste un truc

keen narwhal
peak cedar
#

creer un voc donne le mdp en priver step

#

jrammene un pote

#

avec qui je jou e

keen narwhal
#

c'es rĂ©servĂ© au michel les mdp 😆

peak cedar
#

ah

#

jcreer un vo

#

c

#

c bno

keen narwhal
peak cedar
#

ok ta une erreur
?

keen narwhal
#

je ne montre juste pas le token

#

oui une

peak cedar
#

si non fait des console log

keen narwhal
#

je l'ai fait mais je ne trouve pas l'erreur

#

D:\Program Files (x86)\node.exe .\index.js
Process exited with code 1
Uncaught d:\BotDiscord\index.js:11
const Client = new Discord.Client({ partials: ['MESSAGE' , 'CHANNEL','REACTION']})
^

SyntaxError: Identifier 'Client' has already been declared
No debugger available, can not send 'variables'
Voila l'erreur

half osprey
#

Déjà faire simplement message.delete() c'est mieux que message.channel.bulkDelete(1)

keen narwhal
#

ok

half osprey
#

Ah

#
const Discord = require("discord.js");

const Client = new Discord.Client({ partials: ['MESSAGE' , 'CHANNEL','REACTION']});

const prefix = "*";

Client.on("ready", () => {
     console.log("bot opérationnel");
});

Client.on("message", message => {
...
#

Tu enlĂšves le deuxiĂšme

#

parce que tu le déclares deux fois

#

let category = message.guild.channels.cache.get("701212442138640426")
Tu peux laisser ça simplement

keen narwhal
#

Celle la
const Client = new Discord.Client({ partials: ['MESSAGE' , 'CHANNEL','REACTION']});

half osprey
#

oui

half osprey
#

Le rĂŽle everyone c'est le quel dans ton serveur ?

keen narwhal
#

Everyone

#

Tu peux voc 2s si ça te gĂȘne pas ?

half osprey
#

let everyone = message.guild.roles.everyone ça suffit

#

Oui si tu veux

keen narwhal
slim anvil
#

Je t’ai dis quoi moi ? 😆

#

Ça n’a pas d’intĂ©rĂȘt de boucler sur tout tes membres si tu veux juste afficher ce qu’il y a dans ton json

keen narwhal
#

Je sais plus précisément x)

#

Ah nan je l'avais déjà fait de base :d

keen narwhal
#

AprÚs moultes essais je n'arrive pas à récupérer tous les id stockés

slim anvil
#

t'as juste a bouclés sur ton json

keen narwhal
#

Oui mais je n'arrive pas Ă  avoir la syntaxe correcte

timid loom
#

đŸ€”

#

tu fais quoi?

keen narwhal
#
    var dataSS = JSON.parse(fs.readFileSync('./data.json', 'utf8'));

        dataSS.forEach(member => {
timid loom
#

ton fichier data est bien de la forme

[
  {
    "name": "membre1"
  },
  {
    "name": "membre2"
  },
  {
    "name": "membre3"
  }
]
#

?

keen narwhal
#

PlutÎt comme ça:

{
  "membre1": {
},
  "membre2": {
}
}
#

(sous forme d'id)

#

@timid loom

timid loom
#

dans ce cas tu devrais faire Object.keys(dataSS).forEach(member => { ... })

keen narwhal
timid loom
#

cela dit c'est étrange de les stocker comme ça je trouve

keen narwhal
#

J'ai appris comme ça :d

timid loom
#

bah pour stocker plusieurs objets ça me paraßt logique de faire un tableau d'objet

#

m'enfin bon

#

les deux fonctionnent

keen narwhal
#

Mais là, l'Object.keys, je le remplace par quoi, pour le coup je n'ai aucune idée :d Je n'ai pas la logique

broken lynx
#

En vrais perso je trouve pas ça déconnant de stocker comme ça harold

#

Du moins si c'est uniquement des members et que tu vas pas faire de ton data.json un fourre tout

keen narwhal
#

Mouais

keen narwhal
slim anvil
#

Regarde sur internet strax

#

log ton Object.keys(dataSS) sinon

#

tu verras bien le retour

#

Mais ce que taink t'a envoyé va fonctionner

keen narwhal
#

D’acc

timid loom
broken lynx
#

C'est vrais la c'est en mode gros sac j'avoue kappa

keen narwhal
#

C'est désormais fonctionnel (Object.keys me faisait penser à qqchose de totalement différent, enfin bon), aprÚs plusieurs essais j'essaye de récupérer le nickname sauf que je n'arrive pas à convertir correctement tous les id par un nickname (vu que la seule chose que je peux récup. c'est l'username ou le tag). Une idée pour convertir tout ça ?

timid loom
#

le nickname c'est sur un guildmember donc il faut le récupérer sur une guild

keen narwhal
#

Oui sauf que justement, avant je passais par un guildmember sauf que récupérer tous les membres alors que seul les utilisateurs marqués dans le .json sont utilisés c'est pas trÚs efficace

slim anvil
#

Il te dit pas de récupérer tout tes membres, mais de passer par le guild.member() pour récupérer le member

#

mais que ceux qui sont dans ton json

keen narwhal
#

Justement, je n'y arrive pas :d

keen narwhal
#

Ca n'affiche que mon pseudo, les autres sont null

#

(alors qu'ils ont un nickname)

oak turret
#

tu les as log ?

keen narwhal
#

Ouaip, je t'envoie ça

oak turret
#

mh

#

et

#

message.guild.members.cache.get() ?

#

le premier est null

#

tu sais qui c'est ?

keen narwhal
#

Alors, le premier non, sinon ça m'aurait affiché (un des id disponible aprÚs)

oak turret
#

log ton m plutĂŽt

#

ton m devrait te return un guildMember

keen narwhal
#

Il me return null aussi

oak turret
#

donc dans ton Object.keys() y a un "null"

#

log ton object.keys

keen narwhal
#

Il est log au dessus (tous les ids)

oak turret
#

j'avais pas look

#

si il est null c'qu'il trouve donc pas l'user dans ton serveur discord

#

donc đŸ€”

keen narwhal
#

Pourtant les id sont stockés à l'issus de commandes tappés par les utilisateurs

oak turret
#

c'est bizarre

keen narwhal
#

Je pense pas get correctements ce que me disait taink

#

Mais je ne vois pas comment faire autrement

oak turret
#

.nickname fait pareil no ?

#

mais alors lĂ  je vois pas pourquoi il te met un null

keen narwhal
#

Oui j'ai juste essayé de faire différemment

oak turret
#

essaye de reset ton tableau json, et d'en refaire un

keen narwhal
#

Ca vient surement de comment je recupĂšre les id

#

C'est lĂ  oĂč je me trompe

timid loom
#

ça te le met dans une promise donc tu peux await

#

ou le récupérer dans un .then

#

le .fetch va chercher dans le cache d'abord, mais si il le trouve pas il va le demander Ă  l'api

#

et tu peux lui passer un objet FetchMemberOptions (https://discord.js.org/#/docs/main/stable/typedef/FetchMemberOptions) qui te permettra de mieux contrĂŽler le comportement de la fonction

keen narwhal
#

Okey ! Tu gùres, merci beaucoup ! 👌

keen narwhal
#

Ca marche, merci Ă©normĂ©ment ! 🙌

timid loom
keen narwhal
#

Bonjour j'aimerais savoir comment mettre mon message de bienvenue en embed

#

sur mon bot discord

#

si il y a un tuto

oak turret
#

@keen narwhal donc,

soit tu fais :

const embed = new Discord.MessageEmbed()
  .setColor()
  etc...
member.guild.channels.cache.get("id").send(embed);

ou

member.guild.channels.cache.get("id").send({embed: {
  color: color,
  description: "",
  etc...
}});
keen narwhal
#

je comprend pas ,

#

voici le code

#

client.on('guildMemberAdd', member => {
member.guild.channels.cache.get(config.greeting.channel).send(${member} a rejoint le serveur. Nous sommes dĂ©sormais ${member.guild.memberCount} ! 🎉)
member.roles.add(config.greeting.role)
})

oak turret
#

tu l'as pompé ce code ?

#

car dans ce que tu m'as envoyĂ©, c'est la mĂȘme syntaxe, et je t'ai expliquĂ© ce que tu pouvais faire, il te suffit d'adapter

keen narwhal
#

je l'ai vue dans un tuto

oak turret
#

bah dans ce cas, je t'ai tout expliquĂ©, test ! c'est comme ça qu'on apprend 🙂

keen narwhal
#

Merci beaucoup j'ai reussi grace a toi Ăč

#

! 🙂

peak cedar
#

Comment get Le message de qq'un ?

timid loom
#

donc channel.messages.fetch()

peak cedar
#

ok je tcheck Merci de la rep

#

Eu

#

c'est en dm

#

pas en channel

#

c'est a cause de sa ?

spring dock
#

car ça te retourne une promesse, faut que tu await ou .then

peak cedar
#

hmmm

#

jsuis con ouuu ?

spring dock
#

fait voir ton code

peak cedar
#

j'ai fait avec et sans les ()

timid loom
#

mais tu sais ce que c'est une promesse?

peak cedar
#

hmmm jte jure que non 😂

#

deso

#

mais non

slim anvil
#

oui c'est quand tu dis a quelqu'un que tu vas faire un truc en disant "promis"

#

c'est ça @timid loom ou pas

timid loom
#

et quand je te dis de fetch() je m'attends Ă  ce que tu mettes des paramĂštres

timid loom
timid loom
#

style ce qu'il y a dans la doc

#

t'as des exemples lĂ  stv

peak cedar
#

oula euu

slim anvil
#

on sait pas lire une doc chez Huandev kappa

peak cedar
#

Mdrrr albatard 😂

timid loom
#

là ça marche pas non plus

peak cedar
#

non

timid loom
#

parce que ton .then(message.content) a pas de sens

peak cedar
#

ah

#

bas

timid loom
#

si tu veux l'utiliser comme ça, fais un await

#

je te conseille de te renseigner sur les promesses

peak cedar
#

Mais c'est un dm le msg

#

jpeux pas get le msg direct des mp

#

?

timid loom
#

non

#

tu dois le fetch

peak cedar
#

j'ai trouver MRCCC

#

jsuis con

#

et con mais bon

timid loom
peak cedar
#

Merci jvais check pendent ma visio

keen narwhal
#

Bonjour j'ai fait un systeme de ticket et quand je lance il me donne l'erreur

if(message.content.startsWith(prefix + "ticket")){
ReferenceError: prefix is not defined
dapper coral
#

Yo ! bah pour le coup c'est écrit noir sur blanc

#

prefix n'est pas définie

keen narwhal
#

Oui

#

Mon prefix est bien définie

half osprey
#

avant ou aprĂšs ?

keen narwhal
#

il est dans mon config.json et pas dans mon index peut ĂȘtre cela viens d'ici

dapper coral
#

Il faut que tu le "relis"

half osprey
#

Donc il faut faire un const prefix = config.prefix

#

sinon tu peux pas le récupérer dans ton index

keen narwhal
#

Merci beaucoup

half osprey
#

et faut aussi avoir relier ton config

dapper coral
#

const config = require("./config.json");

keen narwhal
#

config = require('./config.json'),

#

j'ai pas mis const

dapper coral
#

yes c'est ça

keen narwhal
#

le const est obligatoire

#

?

half osprey
#

Si il y a pas de const il faut avoir let config ou quelque chose comme ça avant

dapper coral
#

Oui voila c'est pas "obligatoire" mais c'est mieux que de mettre un var quoi

keen narwhal
#

J'ai

const Discord = require('discord.js'),
    client = new Discord.Client({
        fetchAllMembers: true,
        partials: ['MESSAGE', 'REACTION']
    }),
    config = require('./config.json'),
    fs = require('fs')

avant

dapper coral
#

a la place de la virgule met un point virgule

keen narwhal
#

ok

#

merci

dapper coral
#

np

slim anvil
#

ça a réglé ton soucis @keen narwhal ?

keen narwhal
#

oui

slim anvil
#

Bizarre parce que tu peux dĂ©clarer de maniĂšre inline tes imports comme tu l’as fais

timid loom
slim anvil
#

Ouais t’as du zapper un truc ailleurs

oak turret
#

member.guild.memberCount

keen narwhal
#

merci

#

ProblÚme résolu

oak turret
#

np

keen narwhal
#

en mĂȘme temps si tu peut aussi

member.user.displayAvatarURL

je doit mettre quoi a la place pour afficher son avatar

oak turret
#

c'est une fonction

#

donc member.user.displayAvatarURL()

#

ou juste member.displayAvatarURL()

keen narwhal
#

Dac merci

#

la premiere marche bien merci

oak turret
#

np

keen narwhal
#

Salut

#

j'ai un soucis avec mon code

#
client.on("message", async message => {
    // If the message is "what is my avatar"
    if(message.content ===  prefix + 'avatar') {
      // Send the user's avatar URL
      message.reply(message.author.displayAvatarURL());
    }
});```
#

je comprend pas pourquoi il ne fonctionne pas

slim anvil
#

l'erreur en question ??

broken lynx
#

Message.content te revoie bien une string ? Prefix est bien une string ? Mets un coup de typeof à mon avis ça vient de là

keen narwhal
#

le javascript c'est juste pour les sites ?

slim anvil
#

Non du tout

keen narwhal
#

ok merci a toi

broken lynx
#

C'est ultra polyvalent le js 😉

oak turret
#

comme les agents chez mcdo kappa

broken lynx
dusk palm
#

bonjour, je fais une commande discord pour mon bot personnel mais je ne trouve pas comment ping une personne dans mon message de réponse ET prendre mettre un ping dans ma commande genre :

commande : +punch @...
réponse : désolé @... mais @... vient de te frapper !

half osprey
#

Salut, tu fais simplement message.channel.send("désolé " + message.mentions.members.first() + " mais " + message.author + " vient de te frapper !")

boreal edge
#

Yop !
Est ce que vous savez comment je peux envoyer un émoji basique depuis son ID dans un embed par exemple (version de discord.js : v12.5.1)

Merci,
Hugo 😉

half osprey
#

émoji perso ?

boreal edge
#

Nop

#

J'allais le rajouter dans le message 😉

half osprey
#

alors pourquoi l'envoyer par l'ID ?

#

tu fais

#

:warning:

boreal edge
#

Car je le save en SQL par ID

half osprey
#

Tu peux simplement le save par le nom

#

enfin je trouve plus cohérent

boreal edge
#

Yep

#

Ah mais oui

#

Car j'arrivais pas Ă  choper son nom dans le message.content

#

Mais faut que j'fasse un .resolve nan ?

oak turret
#

tu veux faire quoi ?

boreal edge
#

Commande de save --> SQL --> Retranscription en embed

oak turret
#

save quoi?

boreal edge
#

En gros

#

Save l'émoji et deux trois autres infos

oak turret
#

alors l’id plutît

#

et aprùs tu peux soit le get par l’id

#

ou faire

boreal edge
#

Mais je n'arrive pas à get un émoji publique depuis son ID

oak turret
#

bah

boreal edge
#

C'est justement ce que j'essayais de faire mais sans résultat

oak turret
#

message.guild.emojis.cache.get().id

#

log ton emoji

#

t’auras l’id

boreal edge
#

C'est un émoji publique

#

Pas privé

oak turret
#

le name etc

boreal edge
#

Ah

#

non

#

Ok j'vais tester

oak turret
#

tous les émojis ont un id

#

look

#

đŸ€”

#

822501888746061945

#

et

#

tu peux get l’id avec le nom comme ça

boreal edge
#

console.log(message.guild.emojis.cache.get(emoji)); me return undefined

oak turret
#

emoji = ?

boreal edge
#

Emoji : (console.log)

oak turret
#

non mais

#

ta variable emoji contient quoi

#

le .get() doit contenir un id

boreal edge
#

Ahh

#

Alors attends du ocup

#

J'pensais que tu parlais avant le save bdd

oak turret
#

bah envoie l’id en bdd selon ce que tu veux faire

boreal edge
#

là j'ai tester avec les 👀

oak turret
#

il changera jamais alors que le name peut changer et ton code sera obsolĂšte

#

ouaip

boreal edge
#

Donc j'ai cette entrée en bdd : 822225335587307581

oak turret
#

l’id en string

#

ouaip

#

c’est good

#

👀

#

822502779263516782

#

ça c’son id

boreal edge
#

Alors j'ai du tester avec un autre sue

#

Attends

#

Bon j'viens de le changer en bdd

#

Donc lĂ  on est bon

oak turret
#

oauip

boreal edge
#
        console.log(infos.emojiID);
        var emoji = client.functions.getGuild().emojis.cache.get(infos.emojiID);
        console.log(emoji);

Résultats :

  • 822502779263516782
  • undefined

Fais pas gaffe Ă  la fonction getGuild elle return un client.guilds.cache.get

oak turret
#

fais le en dur

#

message.guild.emojis.cache.get("id");

boreal edge
#

Ah oui merde

#
        console.log(infos.emojiID);
        var emoji = message.guild.emojis.cache.get(infos.emojiID);
        console.log(emoji);
#

Toujours undefined pour le deuxiĂšme console log

oak turret
#

.toString() aprĂšs emojiID

#

ça doit ĂȘtre un string

boreal edge
#

ça changes rien, j'suis toujours en undefined

oak turret
#

si ça marche pas, mets la valeur en dur

boreal edge
#

En principe j'devrais pas avoir de soucis, vu que j'suis en VARCHAR en save sql

#

Dac

oak turret
#

mets le en text

boreal edge
#

Toujours en undefined

oak turret
#

wtf

boreal edge
#

--> var emoji = message.guild.emojis.cache.get("822502779263516782");

oak turret
#

client.emojis.find(emoji => emoji.id === "id")

boreal edge
#

Yep Osmium

#

J'suis en full basique lĂ 

#

\👀

#

Ah oui

#

Mais du coup c'est un peu chiant pour la config

#

Mais ouais au pire j'ferais ça

#

Mais lĂ  j'aimerai bien (tenter) de trouver une solution pour les basiques depuis l'id

#

Alors en gros

#

J'fais un message.content que je split et dedans, y a l'émojiID
J'le save en SQL
Et aprĂšs j'essaye de le rechoper pour le renvoyer dans un embed

#

Les émojis sont full basiques, pas de perso pour l'instant

#

Oui

#

Car je l'envoie directement dans ma commande

#

Genre !command <emojiID>

#

Nop

#

J'ai l'impression que les émojis de bases ne sont plus stockés dans le cache du bo

#

t

#

Et j'vois pas comment je peux les synchroniser autrement

fallen kindle
#

Bonjour, j'aimerai savoir comment je peux récupérer le contenu d'un message traité avec un awaitMessages()
Par ex :

message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] })
                .then(collected => {
                    message.channel.send(`${collected.first().author} got the correct answer : ${collected.content} !`);
                })
                .catch(collected => {
                    message.channel.send('Looks like nobody got the answer this time.');
                });

ici le collected.content me renvoi undefined

oak turret
#

collected.first().content

#

@fallen kindle

fallen kindle
#

oui j'ai rĂ©solu le pblm avec cette solution, mais merci quand mĂȘme ^^

oak turret
#

np

keen narwhal
#

qlq pourrais m'aider svp ? quand je debug / lance mon launcheur minecraft sur eclipse sa me mait cette erreur 😩

oak turret
#

#java-jvm

boreal edge
#

Bon au final, ça ma souled, j'ai carrément save l'émoji en SQL

#

Mais du coup j'arrive pas Ă  supprimer toutes les rĂ©actions de cet emoji en particulier, quelqu'un sait comment je peux faire ? thx 😉

oak turret
#

j'ai pas le code en tĂȘte

#

mais un :

#

ah oui j'suis con

#

bah juste <message>.reactions.removeAll();

dusk palm
#

j'en peux plus

#

je n'arrive pas à récupérer la mention dans une commande et ping la personne mentionné dans la réponse

oak turret
#

c'quoi ton code

dusk palm
#

client.on('message', (message) => {
if (message.content === ${PREFIX}punch) {
message.channel.send(Eh mais pourquoi tu me frappes ?)
.catch(console.error)
}
if (message.content === ${PREFIX}punch ${message.mentions}) {
message.channel.send(${MessageMentions.users} tu vient de te faire frapper violemment par ${message.author})
.catch(console.error)

#

le message.author marche

#

mais le reste j'ai tout essayer...

delicate river
#

Bonjour, savez-vous si il est possible de refresh une ul avec jquery ?
J'ai vu .listview('refresh') mais c'est avec jquery mobile.
J'aimerai faire l'équivalent mais avec jquery ou en js ?

oak turret
#

je suis pas sûr à 100% mais un truc comme ça

dusk palm
#

wow

#

je vais voir et essayer de comprendre

oak turret
delicate river
# slim anvil Pourquoi faire exactement

Le joueur rempli le formulaire à droite, lorsqu'il confirme, j'aimerai que sa nouvelle entrée soit affichée dans la liste à gauche, sans devoir refresh la page

oak turret
#

document.location.reload() mais ça refresh la page je crois

dusk palm
#

j'ai compris

delicate river
#

Yess ça refresh la page, et du coup ça fais tout bug, pour ça que j'aimerai refresh l'ul, ou la div, mais pas tout

oak turret
#

ah oui je vois

slim anvil
#

Pourquoi tu viens juste pas crĂ©er l’élĂ©ment et le push dans ta page

#

au lieu de passer par jquery et des reloads etc

#

Ce serait mieux

dusk palm
#

@oak turret chez moi ça marche pÎ x)

#

je crois que je vais arrĂȘter de coder.

oak turret
#

faut pas se décourager si facilement

#

montre moi tout ton code

#

en screen

dusk palm
#

tout ?

delicate river
#

Si j'ai bien compris je push tout dans une liste et ensuite je fou ma liste dans mon ul c'est ça ?

oak turret
#

oui King

#

doit y avoir une couille dans ton code

dusk palm
#

tout mes autres commandes marchent

oak turret
#

oula

dusk palm
#

sauf celle lĂ 

#

juste car je veux une mentionne dedans

oak turret
#

pourquoi tu as plusieurs évents message ?

dusk palm
#

un pour chaque commande ^^

oak turret
#

bah non ^^

#

un seul

#

et toutes tes commandes dedans

dusk palm
#

y'a le nom juste au dessus

#

ah.

oak turret
#

faut que t'apprennes correctement Ă  faire un bot

#

en sachant faire du js du moins la base

slim anvil
oak turret
#

t!search bot

#

c'po ça la commande ?

#

t!search bot

slim anvil
#

il run pas je crois

oak turret
#

ah merde

slim anvil
#

Ton erreur @dusk palm c’est que tu vĂ©rifies que la commande ===

#

Alors que faut vĂ©rifier qu’elle commence donc startsWith

oak turret
#

en plus tu require un "configuration" sans extension ?

oak turret
#

je vais te donner un tuto

dusk palm
#

il me donné une erreur du style que c'est undefined

oak turret
dusk palm
#

alors j'ai laissé ===

oak turret
#

bah c'est message.content.startsWith()

dusk palm
#

je suis entrain de changer

delicate river
#
$('#playersCasiers').empty();
for (let i = 0; i < playersTab.length; i++) {
    list.push("<li class='nav-item'><a class='nav-link active' aria-current='page' href='#'><span data-feather='home'></span>" +         
    playersTab[i].nom + " " + playersTab[i].prenom + "</a></li>")
}
$('#playersCasiers').append(list.join(''))

Du coup j'ai fais ça, sauf que quand je confirme la nouvelle entrée, ça n'actualiste pas la nouvelle mais la precedente, je vais vous faire un streamable pour que vous compreniez mieux

slim anvil
#

T’as pas besoin de recrĂ©er toute la liste enfaite, tu peux juste venir crĂ©er ton Ă©lĂ©ment en JS (li) et venir ajouter ton Ă©lĂ©ment html au parent playersCasiers

#

sans venir recréer tout les autres

delicate river
slim anvil
#

Ah tu veux juste qu’il soit au dessus ?

#

tu unshift() au lieu de .push()

delicate river
#

Non non pas qu'il soit au dessus, qu'il soit ajouté à la fin de la list

dusk palm
#

bon

delicate river
#

Par exemple la dans la vidéo j'ai créé le casier de Jean Michel et ça ne s'est pas actualisé, ensuite j'ai direct recréé un autre casier celui de Test Test et une fois celui-ci créé, celui de Jean Michel est apparu dans la liste, en gros le dernier créé n'est jamais présent dans la liste

dusk palm
#

@oak turret j'ai tout mis dans un seul event avec startsWith

#

et.

#

ça marche (mais j'ai pas compris une partie du code que tu m'as donné)

oak turret
#

"mentions" c'est mentionner un utilisateur

#

et si y en a pas j'arrĂȘte

slim anvil
#

Ah okay Draze autant pour moi
Mais du coup tu peux screen ton code que je puisse te donner une réponse direct please

delicate river
#

Uniquement le js, ou le html et lua aussi ?

dusk palm
#

donc le if (!mentions) return; te sert just Ă  stop si y'a rien

#

et ta variable let est juste pour éviter raccourcir le code ?

slim anvil
#

js et html juste un screen suffit

delicate river
#

VoilĂ  tout le js

#

Et la partie concernée en html

slim anvil
#

yes bah du coup au moment ou tu valides ton formulaire

#

tu peux rajouter ça

const players = document.getElementById('playersCasiers')
const li = document.createElement('li')
li.innerHTML = 'Salut Ă  tous'
players.appendChild(li)
#

sans l'event click du coup, tu prends juste ce qu'il y a dedans

#

attend j'enlĂšve ce dont tu as pas besoin

#

à la place de "Salut à tous" tu met ce que tu veux et ca va venir s'incrémenter dans le dom automatiquement

#

réecrit-le en jquery si tu veux

delicate river
#
for (let i = 0; i < test.length; i++) {
            const players = document.getElementById('playersCasiers');
            const li = document.createElement('li');
            li.innerHTML = "<a class='nav-link active' aria-current='page' href='#'><span data-feather='home'></span>" + test[i].nom + " " + test[i].prenom + "</a>";
            players.appendChild(li);
        }

J'ai donc rajouté ça mais ca ne fonctionne pas non plus

slim anvil
#

Mais tu as pas besoin de ta boucle enfaite

#

tu viens juste le faire au moment ou tu submit

delicate river
#
const players = document.getElementById('playersCasiers');
const li = document.createElement('li');
li.innerHTML = "<a class='nav-link active' aria-current='page' href='#'><span data-feather='home'></span>" + nom + " " + prenom + "</a>";
players.appendChild(li);

J'ai ça, et ca marche pas non plus 😂
Quelle galĂšre mdrr

#

J'ai réussi en retirant d'autres trucs qui je ne sais pas pourquoi était la alors qu'ils étaient inutile mdr

dusk palm
#

bon bah aprÚs ça j'ai coder un jeu du chifoumi @oak turret ^^

delicate river
#

Tout est parfait, merci beaucoup @slim anvil ! 🙂

idle ice
#

Quelqu'un aurait un lien assez comprĂ©hensible pour rĂ©cupĂ©rer l'Ă©tat d'un stream avec un bot Discord, car toutes les docs sont sur une ancienne version đŸ€Ł

oak turret
#

api twitch ?

timid loom
#

Si c'est via l'api twitch tu fais une requĂȘte HTTP

delicate river
#

Bonsoir, je suis de retour avec un autre problÚme, en gros j'ai une ul avec des li à l'intérieur et j'ai remarqué que quand les li sont mis directement dans le html je peux cliquer dessus et tout fonctionne, alors que quand je les ajoute via le js avec un append, mon event click ne se déclenche pas quand je click dessus, avez-vous une idée de pourquoi ca fonctionne dans un cas et pas dans l'autre ?

Merci par avance

slim anvil
#

remontre le js qui ajoute et le html de base please

delicate river
#

C'est ici que ça ajoute toutes les personnes trouvées dans la bdd

#

Ici c'est le html avec la ul qui est vide

#

Et ceci c'est mon event click sur le li

slim anvil
#

Oui normal car tu click sur li a

#

mais quand tu ajoutes comme on a fait tout a l'heure on a pas crée de a juste le li

#

du coup sois tu edit ton click pour le faire sur le li, sois le mieux c'est que en + de crée l'élément li tu crée aussi celui du a

#

que tu viens append dans le li, puis tu append le li comme on a fait

delicate river
#

J'ai ça de ce qu'on a fait tout à l'heure

slim anvil
#

yes bah comme je t'ai dis plus haut du coup

delicate river
#

J'ai pas tout suivi la, mon event click est sur 'li a', et j'ai bien créé des li avec des a dans mon append non ?

slim anvil
#

donc forcément ta fonction click ne fonctionnera pas, car tu l'as fais sur le a

#

Par contre oui si tu raffraichis ou autre ce sera okay

delicate river
#

Yess je suis d'accord avec toi, mais mĂȘme quand je rafraĂźchis ou je click sur un li qui n'est pas le dernier l'event click ne fonctionne pas pour autant

slim anvil
#

si tu mets un console.log au tout début de l'event click il y a que le dernier c'est ça ?

#

juste pour etre sur le console.log() si tu peux le mettre avec ne serait-ce que 'toto' dedans etre sur qu'il soit bien pas appelé et non pas fonctionnel

delicate river
#

Je l'ai mis ici et j'ai aucun retour

#

L'event n'est pas déclenché

slim anvil
#

sauf sur le dernier c'est ça ? ou sur aucun ?

delicate river
#

Sur aucun

#

Alors que quand je le met en dur dans le HTML mon li et bah là ça fonctionne

#

Mais pas quand je l'ajoute depuis le js

#

C'est ça qu'est bizarre

slim anvil
#

hmmm

#

quand tu regardes l'html, le selecteur est bon ?

#

tu as bien #playersCasiers li a

#

Ah mais je pense que comme tu boucles aprÚs la déclaration de ton event click il a pas pu lier tes éléments html

#

car en gros si je dis pas de bĂȘtise le selecteur jquery doit faire comme on fait en js vanilla, c'est Ă  dire de venir select tout les nodes elements, boucler dessus et y ajouter l'event

#

donc lĂ  forcĂ©ment au dĂ©marrage il y en a tout simplement pas, faudrait voir pour tester tout bĂȘtement met ton event click dans un setTimeout de 2000 ms voir si ensuite tes Ă©lĂ©ments sont cliquables

idle ice
delicate river
idle ice
#

Merci

slim anvil
#

Hmm pas ouf @delicate river là tu bricoles mais bon si ça fonctionne et que ça te convient

delicate river
#

Ca me conviens pas, mais on va dire qu'on a déjà la source du problÚme donc je suis en train de réfléchir comment faire d'autre pour que ça soit plus propre

#

Est-ce qu'il n'y a pas moyen de cb quelque chose aprÚs avoir bouclé et du coup déclarer mon event click une fois le cb recu ?

#

C'est qu'une supposition

#

J'ai rĂ©ussi avec un timeout, c'est parfait du coup, ça m'a plutĂŽt l'air fonctionnel, un grand merci Ă  toi encore une fois ! 😄
En te souhaitant une bonne soirée

slim anvil
#

Ah non mais le timeout n’est pas une bonne solution c’était surtout pour localiser le problĂšme ahah

keen narwhal
#

Le boss @slim anvil :)

delicate river
#

Ah mince 😂
Tu as une idée de comment faire pour que ça soit plus propre ?

slim anvil
delicate river
#

Ca serai cool, merci Ă  toi

slim anvil
#

Hello @delicate river sorry je n'étais pas là, mais si tu veux je viens de le faire, mais en vanilla JS par contre

#

Donc ce sera un peu plus long qu'en jquery mais au moins ça te donne l'idée puis tu pourras le réecrire en jQuery si tu veux

#

En partant du principe que dans l'html j'ai:

<ul id="playersCasiers"></ul>
  <button id="add">add element</button>
#

voilà le JS pour creations d'elements en fonction d'un array, ajout d'un element + creations des events pour chaque element existant ou ajouté

#
const lists = ['Element 1', 'Element 2', 'Element 3']
const playersCasiers = document.getElementById('playersCasiers')
const add = document.getElementById('add')

const createElement = (item, id) => {
    const li = document.createElement('li')
    li.setAttribute('class', 'nav-item')
    const a = document.createElement('a')
    a.setAttribute('id', id)
    a.setAttribute('class', 'nav-link')
    a.innerText = item
    li.appendChild(a)
    return li
}

const createEvent = element => {
    element.addEventListener('click', e => {
        e.preventDefault()
        const { id } = e.target
        console.log('Clicked on : ', id)
    })
}

lists.forEach((list, l) => {
    const element = createElement(list, l)
    playersCasiers.appendChild(element)
})

const playersCasiersElement = document.querySelectorAll('#playersCasiers li a')

if (playersCasiersElement && playersCasiersElement.length > 0) {
    playersCasiersElement.forEach(element => {
        createEvent(element)
    })
}

add.addEventListener('click', e => {
    e.preventDefault()
    const element = createElement(`Element ${lists.length + 1}`, lists.length)
    lists.push(`Element ${lists.length + 1}`)
    playersCasiers.appendChild(element)
    createEvent(element)
})
delicate river
#

Salut Enzo ! Tout d'abord merci pour le temps que m'a accordĂ© en faisant ceci, j'vais essayer de comprendre comment tout cela fonctionne, je pense le laisser en js natif, en rĂ©alitĂ© j'utilise jquery uniquement pour la mĂ©thode post qui je trouve est beaucoup plus facile que en js natif, sinon pour le reste je prĂ©fĂšre le js natif. Encore merci, je vais tester tout ça et je te tiens au courant 😁

slim anvil
#

j'ai cru en voir, mais sinon en js tu peux juste faire un fetch('url', { method: 'POST, body: data })

#

ca reste tout aussi simple 😛

delicate river
#

Yep l'ajax, ahh je savais pas, j'avais déjà regardé et j'avais vu une horreur lol
J'vais aller regarder aussi avec fetch du coup merci !

slim anvil
#

yes bah l'ajax aujourd'hui tu en as plus besoin du tout avec les evolutions de JS tu peux réellement faire sans

#

et bcp plus clean

delicate river
#

J'savais pas

keen narwhal
#

Bonjour j'ai chercher dans la doc du gamedig j'ai pas trouver savez vous comment faire pour que mon embed gamedig s'actualise automatiquement tout les 30 sec un truc dans le genre

floral bolt
#

Salut j'essaye de faire un truc pour sort selon si c'est true ou false en cachant les autes produit

#

avec l'exemple de ce code qui permet de trié par rapport aux prix :

#
if (attr === 'price') {
      $('.item').sort(function (a, b) {
        var contentA = parseInt($(a).attr('sort-price'));
        var contentB = parseInt($(b).attr('sort-price'));
        return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
      }).appendTo('.items');
    }```
timid loom
#

quel est le problĂšme du coup?

floral bolt
#

j'ai une idĂ©e enfaite 😄

#

mais je cherche a caché des items qui on une valeur false

oak turret
#

bah tu typeof(), et si c'est undefined, tu visiblity: hidden no ?

#

ou je sais pas comment t'as fais ton code mais un truc comme ça

peak cedar
#

slt comment kick vocal un gars ?

#

!kickvoice @lejoueur

slim anvil
#

tu dois set le voice channel a null je crois

boreal edge
#

Euh j'crois que c'est un move Ă  rien

#

Yep

#

Donc user.voice.setChannel(null)

#

Je sais aps si il sert réellement à quelque chose de mettre null mais sinon c undefined j'penses

plain crystal
#

hello, comment je peut passer un object avec la méthode res.redirect() d'express?

boreal edge
#

@plain crystal expressjs ?

plain crystal
#

oui

#

et sans utiliser res.render()

boreal edge
#

idk

peak cedar
#

user.voice.setChannel(null)

#

@boreal edge

#

😭

#

je commence

slim anvil
peak cedar
#
    if (message.content.startsWith("!kickvoice")) {
        message.mentions.users.first().user.voice.setChannel(null)

    }

slim anvil
#

mais sinon renvoie juste un objet ? đŸ€”

peak cedar
#

? genre il faut definir voice mais comment ?

slim anvil
#

je répond a darz

peak cedar
#

ah

plain crystal
#

j'ai trouvĂ© une solution, merci quand mĂȘme 😏

boreal edge
#

Ta fais comment du coup Darz ?

silent quiver
#

bonsoir,
je vient vers vous car je n'arrive pas a démarrer nodemon j'ai essayé des truc que j'ai trouver sur google mais en vain
merci d'avance

timid loom
#

npm i -g nodemon
et essaie de relancer ton terminal si c'est toujours pas dispo

silent quiver
#

nan j'obtiens ça

PS C:\Users\anton\Desktop\movies-app> nodemon index.js
nodemon : Impossible de charger le fichier C:\Users\anton\AppData\Roaming\npm\nodemon.ps1, car l’exĂ©cution de scripts est dĂ©sactivĂ©e sur ce systĂšme. Pour plus d’informations, consultez about_Execution_Policies Ă  l’adresse 
https://go.microsoft.com/fwlink/?LinkID=135170.
Au caractĂšre Ligne:1 : 1
+ nodemon index.js
+ ~~~~~~~
    + CategoryInfo          : Erreur de sécurité : (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
#

je comprends pas trop Erreur de sécurité @timid loom

timid loom
#

t'as bien installé?

silent quiver
#

je pense qu'il y a un problÚme quand j'installe mais il n'y a pas d'erreur est il me dit que les packages ont été installés

#

j'arrive pas a voir ou ça merde

timid loom
#

c'est normal c'est juste les options d'exécutions qui sont désac

#

attends

silent quiver
#

ok

timid loom
#

https://docs.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1#managing-the-execution-policy-with-powershell
Globalement c'est un paramÚtre de sécurité installé par défaut sur windows powershell
En soi si tu fais gaffe tu peux le désactiver (via Set-ExecutionPolicy -ExecutionPolicy Unrestricted).
Si tu veux juste exécuter ça je te conseille de get en premier lieu la mesure de sécurité actuelle (Get-ExecutionPolicy) et de la garder dans un fichier texte, puis de la remettre aprÚs avoir changé les droits d'exécutions avec la commande Set-ExecutionPolicy que je t'ai donné un peu plus haut. Pour remettre l'ancienne tu as juste à faire Set-ExecutionPolicy -ExecutionPolicy <PolicyName> en remplaçant <PolicyName> par ce que tu as récupéré via Get-ExecutionPolicy.

silent quiver
#

ok merci bcp je fait ça est je te dit

#

ça fonctionne nickel 👌 par contre p'tit question c'est vraiment important comme sĂ©curitĂ© ou pas ?

dusk palm
#

y'a un tuto sur le javaScript ?

oak turret
#

google

dusk palm
#

je parlais de GCA x)

#

sinon oui je vais sur google

oak turret
#

js pur ? je crois pas

#

t!search javascript

cedar oreBOT
dusk palm
#

ok merci

#

je chercherais sur Internet

spring dock
#

t!tag Javascript

cedar oreBOT
#

@spring dock, nous avons rencontré une erreur...

spring dock
#

ah

dusk palm
#

j'ai du mal Ă  comprendre car quand je cherche des tutos, il le mette h24 avec HTML alors que pour mon bot j'utilise que la librairie

#

de base j'aimerais juste connaĂźtre la syntaxe car je sais coder en objet grĂące Ă  Python

#

car mon problÚme souvent c'est que je comprends pas la totalité de la syntaxe en JS

slim anvil
#

tu parles de faire du NodeJS alors

#

Du javascript cÎté serveur, comme pour les bots par exemple
Du coup cherche des tutos NodeJS et non Javascript sinon oui tu vas forcément avoir de l'HTML car la base du JS c'est de savoir maitriser son DOM

dusk palm
#

ahhhhh

#

donc enfaite nodejs et js sont différents ?

keen narwhal
#

C'est un runtime JS je crois node

dusk palm
#

ok ok

#

donc je vais regarder des tutos node js

#

merci pour vos infos, ça va m'aider à avancer plus rapidement

silk edge
#
guild.channels.cache.get("id_du_channel").send(`Bienvenue sur le serveur ${member}`);

Il met une erreur j'ai mis ça dans mon guildememberadd

#

je comprend pas

#

Qq pourrait m'aider ?

boreal edge
#

Yep, tu ne peux pas mettre le member dedans

#

Il faut que tu récupÚres sont nom ou son ID

#

Pour le ping par exemple

#

Mais tu ne ne peux pas envoyer un array de cette façon