#javascript-typescript

1 messages · Page 84 of 1

ashen rapids
#

Ça va, à part les commandes, ya pas grand chose à refaire

sharp grail
#

Bah si

#

Puis les commandes marchent encore nan ? Enfin t'es pas obligé de faire des slash commandes ou pas le choix ?

ashen rapids
#

T'es pas obligé mais c'est grandement conseillé

#

J'ai migré un bot sur la v13 et je t'assure que ya moins de boulot que ce que l'on pense 😁

#

Tu fais ton handler de slash command, et tu c/c toutes tes commandes

#

De toute manière Discord va continuer d'encourager les devs à utiliser leur système. Ils vont ajouter des fonctionnalités, etc. .

sharp grail
#

Oui de ce que j'ai vu

#

Mais flemme un peu

sharp grail
dire latch
#

Mon site je le fais avec un fichier .js

#

Si jamais vous serez le soucis ou des solutions 😅

ashen rapids
dire latch
#

Aucun, c'est un vps

#

Et mon certificat ssl fonctionne @ashen rapids

ashen rapids
dire latch
#

Avec express

#

Sinon apache

dire latch
#

@ashen rapids

keen narwhal
#

Salut,

Je rencontre un problème avec l'utilisation en node.js avec Date.now(). Depuis un bout de temps mainteanant, je travaille sur un bot discord pour des serveurs axés military rp, le bot a pour but de recenser le temps de service total d'un joueur. Il suffit au joueur d'entrer une commande pour débuter son service, et de réitérer cette même commande pour l'arrêter. Venons en au problème, je stock au début du service un Date.now() dans un fichier .json et je soutrais à la fin du service, le Date.now() actuel et le Date.now() stocké cependant, la nuit (à partir de minuit), des problèmes surviennent comme l'arrêt inexpliqué d'un service, etc...

Sauriez-vous d'où peut provenir ce soucis ?

Merci.

inner escarp
#

D'après la doc w3schools tu devrait avoir un output de base avec un string que tu peut parser. Est-ce le cas ? Dans les méthodes disponibles pour l'objet Date tu as aussi la méthode .toJson qui pourrait t'être utile ainsi que la méthode .UTC

keen narwhal
#

Je pars me renseigner 👍

inner escarp
keen narwhal
#

Pour le toJson, j'enregistre des strings donc pas sur que ça me serve. Je parse déjà le fichier json afin de récupérer toutes les infos stockées

hybrid berry
#

@keen narwhal utilise un timestamp ou UnixTime

sharp grail
dire latch
#

@ashen rapids?

dire latch
ashen rapids
#

Ça doit être lié à Clousflare, ça m'arrivais souvent

dire latch
keen narwhal
dire latch
#

@hardy glacier ? 🤔

hardy glacier
#

Ben quoi ? 😂

dire latch
#

Pourquoi ta réaction ? mdrr

hardy glacier
#

Jcp 😅 mais tu as regardé sur internet pour ton pb ?

dire latch
#

-__-

bold sparrow
#

Tu as regardé la doc de Cloudfare pour ton problème ?

dire latch
#

Ouah, quel aide extraordinaire

bright relic
#

@dire latch j'ai pu allé sur ton site en http mais pas en https ou ça dit qu'il y a une erreur de version de ton SSL

#

et que c'est incompatible ^^'

dire latch
#

Sa vient de toi ça, car moi, j'ai pas cet erreur

#

@bright relic

red torrent
dire latch
#

Ba non 🤔

bright relic
#

j'ai vérifié c'est une erreur qui n'est pas si rare que ça

bright relic
#

a j'ai pas la même erreur moi :/

red torrent
#

L'erreur sera différente en fonction du navigateur

dire latch
#

Ouais moi, il me redirige sur localhost par exemple @red torrent

#

Sur mon pc

bright relic
#

j'ai la même quand je suis sur Chrome ou sur Internet Explorer perso

red torrent
dire latch
#

Sur ?

red torrent
#

C:/Windows/system32/etc/hosts

dire latch
#

Euh nan

#

J'ai pas

#

Et j'ai jamais modif ça

red torrent
#

Ou alors tu utilises des dns qui sont un peu long à recevoir la propagation

#

Ou bien le site sur lequel on est redirigé avec ton url est hébergé sur ton pc en local

dire latch
#

Non, héberger sur le vps

red torrent
#

Donc c'est la propagation

#

Ça fait longtemps que tu as changé les dns de ton domaine?

dire latch
#

J'utilise express pour le site

red torrent
#

C'est pas la question

#

Je te parle de ton nom de domaine pas de ton site

dire latch
#

Je sais, j'était en train d'écrire, calme

#

Et oui, sa fais longtemps que j'ai mis le A pour cloudflare

#

J'ai juste modifié, proxied en dns only

red torrent
#

Et sur cloudfare tu as bien redirigé vers l'ip de ton vps?

dire latch
#

Et sa a fais fonctionner le site en http

#

Oui

red torrent
#

Ok maintenant pour le certificat ssl tu utilises quoi?

dire latch
#

Cloudflare

red torrent
#

Et c'est cloudfare qui envoie la clé publique aux utilisateurs qui essaient d'accéder à ton site ou c'est ton vps?

dire latch
#

Très bonne question 🤔

red torrent
#

J'ai jamais utilisé cloudfare donc je sais pas trop comment ça fonctionne

#

Mais un certificat tls fonctionne assez simplement : un utilisateur veut se connecter à ton site, ton serveur lui envoie la clé de chiffrement publique et ton navigateur vérifie que la clé a été générée par une autorité de certification reconnue. Apparemment c'est à cette étape là que ça bloque

dire latch
#

Ok

red torrent
#

Mais vu que les utilisateurs passent par cloudfare pour accéder à ton serveur je ne sais pas qui envoie la clé de chiffrement publique dans tout ça

dire latch
#

La galère tout ça mdrr

red torrent
#

J'ai l'habitude d'utiliser un reverse proxy avec nginx pour mes sites avec nodejs et du coup c'est nginx qui s'occupe d'envoyer le certificat

#

Certificat que j'ai généré avec certbot

dire latch
#

Moi, certbot, sa fonctionne pas

#

@red torrentSi tu en sais un peu plus

red torrent
dire latch
#

Yep

#

Mais sa fonctionne pas, comme je t'ai dis

red torrent
# dire latch Yep

Oui tu as choisis quoi quand certbot t'a demandé si tu voulais mettre en place un serveur web temporaire ou placer les fichiers dans le dossier root de ton site?

dire latch
#

Euh, c'est ou ? Mdr

red torrent
#

Tu as fait quoi comme commande ?

dire latch
#

Jt'avou que j'ai mis juste Y

red torrent
#

certbot certonly ou juste certbot?

dire latch
#

certbot certonly --manual

red torrent
#

Fais juste certbot certonly

#

Ensuite il te demandera ton domaine

dire latch
#

Tu veut pas que je te fasse un partage sinon ?

#

Juste au cas ou ?

red torrent
#

Et après il te demandera de "spin up a temporary webserver" tu choisiras ça

#

Je suis dans le train j'ai pas souvent de réseau

dire latch
#

Ok

red torrent
#

Tu as quelques chose qui tourne sur le port 80

#

Tu as apache ou nginx?

dire latch
#

Oui, mon site

red torrent
#

Il faut que tu stop le service apache le temps de générer le certificat

#

Ensuite tu pourras le relancer

dire latch
red torrent
#

Tu peux relancer apache

#

Ton certificat a été généré

#

Dans /etc/letsencrypt/live/shadow-bot.com/

dire latch
#

C'était pas apache, c'est mon site qui est sur le port 80 🙂

red torrent
#

Ah je sais pas si c'est une bonne pratique de lancer un serveur node sur internet sans reverse proxy

#

Si tu veux continuer comme ça il faut que tu regardes comment envoyer ton certificat ssl avec nodejs

dire latch
red torrent
#

C'est pas dans le dossier archives

#

C'est dans live

#

/etc/letsencrypt/live/shadow-bot.com/

dire latch
#

Oui, c'est pareil

red torrent
#

Pas vraiment, mais passons

#

Tu dois pouvoir faire un truc du genre : ```js
https.createServer({ key: fs.readFileSync("/etc/letsencrypt/live/[yourdomain]/privkey.pem"), cert: fs.readFileSync("/etc/letsencrypt/live/[yourdomain]/fullchain.pem") }, app).listen(443);

dire latch
#

Régler @red torrent

#

Fallait remettre en proxied

#

Et dans SSL/TLS, mettre en flexible

dire latch
#

Hey, quelqu'un qui saurait faire un paiement automatique avec paypal ?

hardy glacier
#

Regarde sur internet API PayPal, normalement la Doc est très fourni

hybrid berry
#

@dire latch

dire latch
#

C'est régler @hybrid berry

#

La solution

#

Merci quand même @hybrid berry 😉

hybrid berry
#

derien

bold sparrow
#

On peut plus préparer la save d'un document avec mongoose fait chier ...

keen narwhal
#

Bonjours j'aimerais diminuée le circle mais je ne trouve pas la ligne cx,cy,r dans mon CSS

keen narwhal
#

J'aimerais aussi modifié les icons

slim anvil
nocturne fable
#

Je me disais c’est bizzare c’est pas du JavaScript 😂

keen narwhal
#

Bonjour

#

J'ai un problème avec ma commande Lock

dire latch
#

@keen narwhalCode + erreur ?

keen narwhal
#

Non aucune erreur

#

Regarde le fils @dire latch

keen narwhal
#

casse tête x)

keen narwhal
#

Haha

hardy glacier
#

Il y a un pb dans ton json... Soit il est mal créé soit il est mal fini...

keen narwhal
#

Bonjour, pouvez vous m'aider, je voudrais faire en sorte que la date, et duré ( donc heure ect ) soit en mode Française .
Pouvez vous m'aider ?

#

Merci beaucoup classe

sharp grail
#

Hey,
Meme avis que Carotte, essaye de check au niveau de ton index js a la ligne 69 meme si le problème vient peut-être de l'api (ou pas) 🤔

sharp grail
blazing wadi
#

Après il y a moment (le module) @keen narwhal

ionic swan
keen narwhal
sharp grail
keen narwhal
sharp grail
#

Je pense

#

(Aide utile :D)

ionic swan
#

^^

#

J'ai chercher et essayer quelques trucs , rien ne marche :/

blazing wadi
# keen narwhal Comment sa ?

Bah le module moment permet de faire la date tu fais npm i moment ensuite tu définis moment et après tu fais moment.locale('fr') et tu fais ce dont tu as besoin

sharp grail
sharp grail
#

Alors que tu peux use que du natif et le module discordjs logik mdr

blazing wadi
keen narwhal
#

Le module est plus simple ?

#

Ou le code directement de discord.js

blazing wadi
#

En fait c'était une solution après tu fais ce qui te plaît

sharp grail
#

C'est trois ligne de code pour mettre ta date en Francais PepeClown
Apres si tu préfères utiliser un module tu peux mais ça demandera plus d'opération 👀

#

Mais yes tu peux use un module si t'as pas envie de chercher 👀

#

Prends ce qui te plaît !

keen narwhal
#

Le plus simple, qui prend le moin de ressources

sharp grail
#

Le natif

blazing wadi
#

Bah ouais

#

Celui de djs

keen narwhal
#

:/
Je sens que je vais foiré

sharp grail
#

C'est simple x)

#

Si tu veux je te donnerai le code si t'y arrives vraiment pas

keen narwhal
#

Je vais essayer, et je reviens vers toi

sharp grail
#

Dacc

blazing wadi
keen narwhal
# sharp grail Dacc
.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").toLocaleDateString()}`, true)```
dire latch
#

@keen narwhalEnlève le .toLocaleDateString() ?

oak turret
#

t’as pas besoin de le mettre sous string il y est déjà de base dans ce que te return moment

#

il attend une date or il a un string donc flop

keen narwhal
dire latch
#

Vite fais mais je pense que tu peut l'enlever

oak turret
#

oui j’expliquais juste son erreur

#

il faut l’enlever yes

keen narwhal
#

J'enlève donc le string

dire latch
#

Yes

keen narwhal
#

Oki

#

Je re

#

:/

#
.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").toLocaleDate()}`, true)```
slim anvil
#

Enlève le toLocaleDate

#

C’est sur un Date() que ça fonctionne pas un moment

keen narwhal
#

Oui, mais pour qu'il fasse se que j'ai demandé en haut ?

slim anvil
#

c’est quoi que t’as demandé

dire latch
#

Mais

#

On t'as dis d'enlevé un truc, et tu en met un autre à la place 😂

keen narwhal
#

Qu'il mette la date en format française

slim anvil
#

c’est ton timezone ça

keen narwhal
dire latch
#

Nan, on t'as dis d'enlevé le tout mdr

slim anvil
#

.locale()

keen narwhal
slim anvil
#

Avec la langue dedans

#

donc « fr » pour toi je pense

dire latch
#

FR yep

slim anvil
#

sûrement que tu import le locale aussi en question

keen narwhal
#
.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").local(FR)}`, true) ```
slim anvil
#

Donc import ‘moment/locale/fr’ après l’import de ton moment

#

locale

#

Et non

#

Fais en un global tout en haut

dire latch
#

moment.locale("FR");

slim anvil
#

après l’import des 2 tu fais le truc de mcduck

#

comme ça toutes tes autres dates seront aussi en fr

#

et en minuscule de préférence comme l’import est aussi en fr

keen narwhal
slim anvil
#

oui par exemple

keen narwhal
#

D'accord, je reviens pour voir si sa fonctionne

dire latch
#

Oui

keen narwhal
#

Merci beaucoup les gars 💪

dire latch
#

Np 🙂

keen narwhal
#

Bizarre qu'il mette pas le 9 avant x)

dire latch
#

Ouais

keen narwhal
#

On n'est d'accord que d = days m = month Y = Year

dire latch
#

?

slim anvil
#

M = mois

#

m = minute

keen narwhal
#

Ha d'accord

#

Et pourquoi le 9 et après

#

Ducoup

dire latch
#

Car le module est fais comme ça 🤷‍♀️

keen narwhal
#

Gg pour ton rôle

#

Et merci

dire latch
#

Oh, je suis vert mdrr

#

Thx

keen narwhal
#

X)

dire latch
#

Niv 20

#

Oof

slim anvil
#

enlève le Do

#

tu veux le 09 Aout ?

#

en affichage

keen narwhal
#

Oui

#

Si il peux afficher les 0

slim anvil
#

DD DDDD

keen narwhal
#

Sa serai parfait

slim anvil
#

puis le reste

keen narwhal
#

:/

#

Comment sa

slim anvil
#

c po bon ?

#

dd dddd, MMMM YYYY, HH:mm:s

#

sinon

keen narwhal
#

Ha d'accord

slim anvil
#

Do dddd, MMMM YYYY, HH:mm:ss

keen narwhal
#

Je fait sa je te dit

#

Merci beaucoup

#

@slim anvil, yes alors, la bonne ligne c'est :

dddd, Do MMMM YYYY, HH:mm:ss

#

Merci beaucoup en tout cas

slim anvil
#

oki en fonction de ce que tu veux quoi

keen narwhal
keen narwhal
keen narwhal
#

Mmmmh

ionic swan
#

Hey, Qui sait comment recuperer la latence de son proxy en MS ?

keen narwhal
#

Comme une commande ping en JS ?

#

Nan

ionic swan
#

Yep je pense ^^

keen narwhal
#

Je te donne sa

ionic swan
keen narwhal
#
const Discord = require('discord.js');
const { Command } = require("../../config")

module.exports.config = {
    name: 'ping',
    aliases: ['ping'],
    description: 'Ping du bot',
    category: Command.Utile,
    user_permissions: [],
    bot_permissions: ['EMBED_LINKS']
}
module.exports.execute = async (client, message) => {

    let ping = client.ws.ping.toFixed(1);

    const embed = new Discord.MessageEmbed();
    embed.setDescription(`🏓 Le ping est de \`\`${ping}\`\` ms`);
    await message.channel.send(embed);
}
#

Et voilà x)

#

Ducoup, pour toi sa serait

let ping = clients.ws.ping.toFixed(1);```
ionic swan
#

Yes, je te redit sa, Merci 😉

keen narwhal
#

Pas de quoi yeah

ionic swan
#

Pour le coup, c'est pas sa ^^

keen narwhal
#

Ha :/

#

Je sais pas ducoup désolé sue

bold sparrow
ionic swan
bold sparrow
#

Tu dois faire la différence entre le temps actuel et le createdTimestamp du message

#

message - date actuel

ionic swan
#

Je check sa demain, faut déjà que je trouve comment je pourrai installer ce foutu proxy :/

bold sparrow
#

De quel proxy tu parles ?

ionic swan
#

Juste rajouter un proxy avec le fetch pour spam l’api on va dire, et avoir une meilleure rapidité, mais j’y arrive po

dire latch
#

Spam l'api sert à rien @ionic swan

oak turret
#

y a un rateLimit tout de façon

dire latch
#

Yep

desert riverBOT
bold sparrow
#

Ah yes

dire latch
#

🤔

bold sparrow
#

J’ai fail

dire latch
#

Je vois ça mdr

blazing wadi
#

Tu as réussi @keen narwhal ?

keen narwhal
#

Tu a pas vus mes message :/
@blazing wadi

blazing wadi
#

Nop dsl

#

J'étais indispo

keen narwhal
#

Si une personne et calé sur le sujet du fils actuel je suis preneur

nocturne fable
#

Non sorry

keen narwhal
#

J’arrive

slim anvil
#

@solemn forum typiquement imaginons que dans ton data() (ou setup si tu fais du composition api) tu ai 2 valeurs comme:
start: 1, finish: 5
tu peux faire un computed pour venir additionner les 2 automatiquement, donc meme si ces valeurs sont modifiés ce sera automatiquement recalculer

#

donc tu pourras te créer une computed total qui vient faire ça par exemple

computed: {
  total() {
    return this.start + this.finish
  }
}
#

ou

const total = computed(() => {
  return start.value + finish.value
})

si tu fais du composition-api

solemn forum
#

Ok je vois donc le computed c'est pour des calculs ou autres codes qui doit changer comparé a methods qui fais juste des simples fonctions utiles pour le reste du code c'est ça ?

slim anvil
#

en gros oui c'est ça

solemn forum
#

ok ça marche je vois

#

Mercii

ionic swan
#

Hey, J'ai actuellement un problème, Mon bot est censé envoyer un message a une heure précise, j'ai donc décider de faire en sorte qu'on puisse l'ajouter un d'autre serveur, le problème étant que j'arrive pas a faire en sorte que le message soit envoyer dans le channel avec l'id stocker dans la bdd (l'id est bien stocker)

#
bot.on("guildCreate", guild => {
  guild.channels.create('drop-time', { 
    permissionOverwrites: [
      {
          id: guild.roles.everyone,
          allow: ["VIEW_CHANNEL"]
      },
      {
        id: guild.roles.everyone,
        deny: ["SEND_MESSAGES"]
      }
  ],
    type: 'text' })
  .then(chan => {
    console.log(`Le  bot a été ajouté à la guild ${guild.name} !`);
    bdd[guild.id] = {}
    bdd[guild.id]["Nom"] = guild.name
    bdd[guild.id]["id"] = chan.id
    Savebdd();
  })
});


const scheduledMessage = new cron.CronJob('00 40 22 * * *', () => {    
  const guild = bot.guilds.cache.get(guild.id);
  const channel = bot.channels.cache.get(bdd[guild.id]);
  channel.send('test');
  });
  scheduledMessage.start()
keen narwhal
dim sage
slim anvil
#

ce que tu dois faire ?

dim sage
slim anvil
#

je viens de le faire

#

de façon rapide donc on peut l'améliorer grave, mais du coup tu dois dans ta fonction écrire le code qu'on t'indique sur la gauche

#

de manière rapide c'est des conditions tout simplement

#

ou tu viens créer, ajouter ou supprimer dans ta collection record

dim sage
keen narwhal
#

Bonjour !

ionic swan
keen narwhal
#

je voudrai faire une commande qui permet de désactivé / activé les logs
les logs de certaine action comme ban, kick, role crée, message dellete, message edit ect

#

pouvez vous m'aider ?

#

la structure de la commande je l'ai mais je voudrai savoir le code avec explication si possible

dim sage
slim anvil
#

tu as quoi actuellement

#

@dim sage

dim sage
#
var recordCollection = {
  2548: {
    albumTitle: 'Slippery When Wet',
    artist: 'Bon Jovi',
    tracks: ['Let It Rock', 'You Give Love a Bad Name']
  },
  2468: {
    albumTitle: '1999',
    artist: 'Prince',
    tracks: ['1999', 'Little Red Corvette']
  },
  1245: {
    artist: 'Robert Palmer',
    tracks: []
  },
  5439: {
    albumTitle: 'ABBA Gold'
  }
};

// Only change code below this line
function updateRecords(records, id, prop, value) {
  if () 
  }
  return records;
}

updateRecords(recordCollection, 5439, 'artist', 'ABBA'); ```
slim anvil
#

ah oui tu as rien quoi kappo

dim sage
#

Aussi je comprend rien x1000

#

Un anglais a essayé de m'expliquer et j'ai rien capté

slim anvil
#

Mais tu as eu des exercices avant non ?

dim sage
#

Yes

#

Mais là premier exercice où je bloquee

slim anvil
#

En gros tu dois créer ton code pour répondre aux attentes de tes tests unitaires, donc c'est pour ça que tu dois bien suivre la consigne

#

If prop isn't tracks and value isn't an empty string, update or set that album's prop to value.

dim sage
#

Bah ouais mais ça ça veut rien dire par exemple : Si propn'est pas trackset valuen'est pas une chaîne vide, mettez à jour ou définissez cet album propsur value.

slim anvil
#

qu'est ce que tu comprends pas là dedans

#

je vais te l'expliquer plus simplement

dim sage
#

👌

slim anvil
#

SI prop n'est pas égale à tracks et que value éxiste, alors tu viens attribuer la prop à ton records en question (tu reçois la bonne clé dans id)

#

Donc pour t'aider jusqu'au bout sur celui-ci, ça te donnerait globalement

#
if (prop !== 'tracks' && value) { // je check si prop n'est pas égale à la string "tracks" et que valeur existe bien, tu peux aussi venir tester directement que value !== ''
   records[id][prop] = value
    // sur cette ligne le rendu est donc: records.5439.artist = value (ca pourrait etre aussi albumTitle du coup à la place de artist
}
dim sage
#

Waww merci beaucoup !!

slim anvil
#

et donc ensuite tu suis cette logique pour le reste

dim sage
#

🙏

stoic prism
#

Bonjour a tous !
Je possède un serveur a 700 membres et j'aimerais créer une fonction de database sur mon bot discord. En gros, associer telle donnée a telle personne. J'ai pensé a me tourner vers MongoDb, mais l'offre gratuite ne propose que 512mo. Pensez vous que c'est assez ? Sinon, quelle alternatives (gratuites de préférences) me proposez vous ?

keen narwhal
#

Bonjour, voici ce que me reply ma console quand je start mon bot.

#

ça ne me l'avais jamais fait au part avant.

slim anvil
#

Et si c’est pas assez pardon tu peux juste l’avoir en local

#

Les 512 c’est car tu veux passer par leur atlas

#

mais ça suffit sinon les 512 mo(dsl oubliez d’envoyer la suite)

ionic swan
#

Hey, J'ai actuellement un problème, Mon bot est censé envoyer un message a une heure précise, j'ai donc décider de faire en sorte qu'on puisse l'ajouter un d'autre serveur, le problème étant que j'arrive pas a faire en sorte que le message soit envoyer dans le channel avec l'id stocker dans la bdd (l'id est bien stocker)

bot.on("guildCreate", guild => {
  guild.channels.create('drop-time', { 
    permissionOverwrites: [
      {
          id: guild.roles.everyone,
          allow: ["VIEW_CHANNEL"]
      },
      {
        id: guild.roles.everyone,
        deny: ["SEND_MESSAGES"]
      }
  ],
    type: 'text' })
  .then(chan => {
    console.log(`Le  bot a été ajouté à la guild ${guild.name} !`);
    bdd[guild.id] = {}
    bdd[guild.id]["Nom"] = guild.name
    bdd[guild.id]["id"] = chan.id
    Savebdd();
  })
});

bot.on("guildCreate", guild => {
const scheduledMessage = new cron.CronJob('00 40 22 * * *', () => {    
  const guild = bot.guilds.cache.get(guild.id);
  const channel = bot.channels.cache.get(bdd[guild.id]);
  channel.send('test');
  });
  scheduledMessage.start()
});

stoic prism
ionic swan
bold sparrow
#

L'erreur viendrait soit du Cron, soit du channel qui n'est pas trouvé

#

Essaye de faire des tests pour savoir lequel est deffectueux

ionic swan
bold sparrow
#

Il a des jambes ton code ?

#

Wow

ionic swan
#

😂

bold sparrow
#

Sans ta bdd ça fonctionne donc

ionic swan
#

yep

#
 const scheduledMessage1 = new cron.CronJob('00 30 10 * * *', () => {    
   const guild = bot.guilds.cache.get("869014508742533170");
   const channel = bot.channels.cache.get("871058035148218428");
   channel.send('message');
   });
#

comme ça, sa fonctionne bien

bold sparrow
#

Ce que j'aimerais c'est que tu fasse un console log de bdd[guild.id] avant de def channel

#

Egalement un console log de channel après avoir initié channel

ionic swan
#

Sa return rien

bold sparrow
#

Je connais pas ton système de bdd mais c'est normal d'avoir bdd[guild.id] ? Il représente quoi

#

Je vois juste qu'il représente un objet

ionic swan
#
{
    "870340639353634909": {
        "Nom": "MisTik Bot",
        "id": "875188913340289064"
    }
}```
bold sparrow
ionic swan
#

la bdd est comme ça niveau js :

    bdd[guild.id] = {}
    bdd[guild.id]["Nom"] = guild.name
    bdd[guild.id]["id"] = chan.id
    Savebdd();```
bold sparrow
#

const channel = bot.channels.cache.get(bdd[guild.id]["id"]);

#

Essaye ça

ionic swan
#

dans la logique j'enleve sa :
const guild = bot.guilds.cache.get(bdd[guild.id]);

bold sparrow
#

D'accord marche po mais j'aurais préféré un peu plus de détails

ionic swan
#

Aucune erreur, et return rien niveau console.log

bold sparrow
#

Dans la logique des choses ça devrait marcher

#

Déjà je sais même pas pourquoi tu as un const guild

ionic swan
#

Oui c'est sa que je comprend pas

bold sparrow
#

Il te sert à quoi

ionic swan
#

a rien la mdrr, pour sa que je les enlevers

bold sparrow
#

Et en plus de ça

bold sparrow
#

Est différent de ton test sans la bdd

#

Rien que là y'a un problème

ionic swan
#

"id" = id channel
Et le premiere id : "870340639353634909": { } c'est du serveur

bold sparrow
#

Hein

ionic swan
#

Je vais manger, je renvoie un message après 😉

bold sparrow
#

Envoie moi les infos de ta bdd avec l'id correspondant au salon où envoyer le message

#

Encore une fois, je vois un id différent

#

Soit j'ai pas compris ce que tu m'as montré, soit tu me comprends pas

slim anvil
#

"870340639353634909": { === id guild
"Nom": "MisTik Bot",
"id": "875188913340289064" === id du channel
}

#

si j'ai bien compris

ionic swan
#

Yep c’est sa

bold sparrow
#

875188913340289064 !== 871058035148218428

ancient sonnetBOT
#
Citation de MisTik9871 posté dans #javascript

Clique sur [📝](#javascript-typescript message) pour accéder au message
QuoteS```js
const scheduledMessage1 = new cron.CronJob('00 30 10 * * *', () => {
const guild = bot.guilds.cache.get("869014508742533170");
const channel = bot.channels.cache.get("871058035148218428");
channel.send('message');
});

slim anvil
#

bot.channels.cache.get(bdd[guild.id]) c'est juste ici ou il manque le .id

bold sparrow
#

Il a enregistré quoi dans sa bdd alors

#

Puisqu'il a une valeur

#

Mais qui correspond à quoi ptdr

slim anvil
ancient sonnetBOT
#
Citation de Enzo0001 posté dans #javascript

Clique sur [📝](#javascript-typescript message) pour accéder au message
QuoteS"870340639353634909": { === id guild
"Nom": "MisTik Bot",
"id": "875188913340289064" === id du channel
}QuoteE

slim anvil
#

la clé = l'id de la guild

#

et le id = le channel id qu'il veut cibler dans la guild

bold sparrow
#

ui mais dans son test sans la bdd, il a mis un id de channel différent

slim anvil
#

Ah oui ça je sais pas

bold sparrow
#

que l'id dans sa bdd

ionic swan
#

Oui, j’avais test dans un Channel que j’avais sup

slim anvil
#

Il ferait mieux de faire des checks déjà de toute façon

bold sparrow
slim anvil
#
bot.on("guildCreate", guild => {
const scheduledMessage = new cron.CronJob('00 40 22 * * *', () => {    
  const guild = bot.guilds.cache.get(guild.id);
  const channel = bot.channels.cache.get(bdd[guild.id]);
  channel.send('test');
  });
  scheduledMessage.start()
});
bold sparrow
#

Plutôt que test dans un autre

slim anvil
#

déjà le fait d'avoir 2 fois guild c'est tendancieux,
puis ton premier guild ne sert à rien finalement

bold sparrow
#

Il l'avait enlevé son guild

slim anvil
#

Et c'est toujours bon de faire un
if (!channel) return ....

#

histoire que le channel.send ne pète pas si ton channel n'existe pas

bold sparrow
#

Surtout que son channel.send n'envoyait aucune erreur askip

slim anvil
#

Et tout à l'heure tu disais que aucun log ne passait, si tu en met un dès le début, il s'affiche ?

#

car sinon ton cron fonctionne juste pas

#

Et quel intérêt de lancer ton cron dans l'event de guild Create aussi je comprend pas

#

Si tu redemarres ton bot, si tu as plus de guildCreate ton cron sera off

bold sparrow
#

Je pense qu'il y a une mauvaise compréhension de son code

slim anvil
#

de son côté surtout

bold sparrow
#

Oui.

#

Le fameux " ça passe si j'le mets ici "

slim anvil
#

Si il fait des tests de cron, sans qu'il y ai d'event guildCreate

#

c'est sur que tu auras aucun résultat MisTik

bold sparrow
#

Mets le dans un event ready

slim anvil
#

Tu devrais l'init au démarrage de ton bot, puis juste venir boucler sur ton json

#

et basta

bold sparrow
#

Un event on, pas once

slim anvil
#

Il marche car ton guildCreate est trigger

#

Mais si tu restart sans déclencher cet event aucun cron n'est déclenché, pourquoi tu fais pas juste
event guildCreate => ajout de la guild dans ta "bdd"

déclencher le cron au démarrage du process (ou du bot), et juste venir boucler sur ta bdd

#

Car là de toute façon c'est pas bon, sois tu vas:
cancelled tout tes crons au moindre démarrage, donc terminé pour ceux qui ont déjà le bot par exemple
Sois imaginons qu'il ne restart jamais, tu vas juste avoir une multitude de tache complètement identique

ionic swan
#

Okey, je vois sa après merci 😉

cyan kernel
#

bonjour j'aimerais trouver un develloper react-native (typescript) pour m'aider plz

floral bolt
#

Salut je cherche a trouver la parti d'une adresse quand j'arrive sur un site avec js ?

#

la partie code exactement

hazy mirage
#

Yo !
Je pense que c’est ce que tu souhaites @floral bolt

const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('code');```
floral bolt
#

merci 🙂 !

solemn forum
#

Salut, quelqu'un pourrait m'aiguiller a quoi sert le .vue ? Qu'elle est la différence entre le html important le vuejs et ce fameux .vue ?

bold sparrow
#

C'est un mélange de Angular et React

#

Permet d'avoir un UI réactif et en même temps organisé/stable

solemn forum
#

car je ne trouve rien sur internet par rapport à cela

magic scaffold
#

J'ai un problème avec discord-oauth2

En gros voici mon code :

  app = express()

  client = new discord.Client({ intents: [discord.Intents.FLAGS.GUILDS, discord.Intents.FLAGS.GUILD_MESSAGES, discord.Intents.FLAGS.GUILD_MEMBERS] })
  client.prefix = "!"

    let oauthClient = new DiscordOauth2({
            clientId: clientID,
            clientSecret: clientSecret,
            redirectUri: "http://localhost:8080/login/",
            scope: ["identify", "guilds"]
        });

      .oauthClient = oauthClient


        // view engine setup
       app.set('views', path.join(__dirname, 'views'));
       app.set('view engine', 'ejs');
       app.use(express.static(path.join(__dirname, 'public')));
       

        const PORT = 8080;

        router = express.Router();

        router.get('/', function (request, response) {
            let url = oauthClient.generateAuthUrl({
                scope: ["identify", "guilds"]
            })
            response.render('index', { title: 'Welcome!', url: url});
        });

        router.get('/login/', async (req, res) => {
            let code = req.query.code;
            if (code == undefined) 
            {
                res.send("OAuth code is undefined")
            }
            else {
                oauthClient.getUser(code).then(user => {
                    res.render('user', {
                        name: user.username,
                         id: user.id
                    })
                })
                 

                
            }
        })

        router.get('/')

        app.use('/', router);

Et en gros tout marche bien sauf que quand je valide accéder a ton profil, ... ca me retourne cette erreur :

node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^
DiscordHTTPError: 401 Unauthorized on GET /api/v7/users/@me
boreal edge
#

L'action que tu ne fais n'est pas autorisé

#

Tu n'as pas le droit de faire cette action sur l'api

bold sparrow
#

Ou la 8

keen narwhal
#

Look ✌️

magic scaffold
#

ha okok

#

La v8 et v9 ne marchent pas non plus


node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

DiscordHTTPError: 401 Unauthorized on GET /api/v9/users/@me
    at OAuth.request (C:\Users\Liam\Desktop\discord-web-bot\node_modules\discord-oauth2\lib\eris\rest\RequestHandler.js:85:9)
    at OAuth.getUser (C:\Users\Liam\Desktop\discord-web-bot\node_modules\discord-oauth2\lib\oauth.js:114:15)
    at C:\Users\Liam\Desktop\discord-web-bot\code.js:50:29
    at Layer.handle [as handle_request] (C:\Users\Liam\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Liam\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\Liam\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\Liam\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Liam\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\Liam\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\Liam\node_modules\express\lib\router\index.js:275:10)
PS C:\Users\Liam\Desktop\discord-web-bot> node index.js


#
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^
DiscordHTTPError: 401 Unauthorized on GET /api/v8/users/@me
    at OAuth.request (C:\Users\Liam\Desktop\discord-web-bot\node_modules\discord-oauth2\lib\eris\rest\RequestHandler.js:85:9)
    at OAuth.getUser (C:\Users\Liam\Desktop\discord-web-bot\node_modules\discord-oauth2\lib\oauth.js:114:15)
    at C:\Users\Liam\Desktop\discord-web-bot\code.js:50:29
    at Layer.handle [as handle_request] (C:\Users\Liam\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Liam\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\Liam\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\Liam\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Liam\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\Liam\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\Liam\node_modules\express\lib\router\index.js:275:10)
bold sparrow
#

Est-ce que t’as les bons scopes

flint eagle
#

Salut, je viens d'essayer de faire connecté mon bot mais toujours marche pas malgré j'ai tout suivi dans le net , j'ai fait ça :


const client = new Discord.Client();  // Création du bot

client.on('ready', () => {
    console.log(`Je suis prêt !`); // On affiche un message de log dans la console (ligne de commande), lorsque le bot est démarré
});

client.on('error', console.error); // Afficher les erreurs

// Lancement du bot, avec le token spécifié (que vous avez généré précédemment)
client.login('le token');```
#

il me dit ça dans terminal, je sais pas où est le prob

fickle brook
#

Je m'y connais pas DUTOUT en discord.js mais tu peux essayer de mettre import discord js au tour début de ton code

flint eagle
#

ça marche pas

sharp grail
#

Hey @flint eagle tu es en v13 de discord js et tu as oublié de spécifier les intents du client

flint eagle
#

comment ça ?

sharp grail
#

Tu dois donc les spécifier dans le client, et activer les gateaway intents sur le discord développer portal sur la page de ton bot pour certains

magic scaffold
magic scaffold
sharp grail
#

Oui, après avec ces intents tu n'auras pas accès à tout

magic scaffold
#

oui mais c'est ceux de base

flint eagle
#

ok

#

merci

junior echo
#

@flint eagle on est d'accord que pour le token t'as mis un vrai token et pas juste "le token"

flint eagle
junior echo
#

Dac

flint eagle
sharp grail
flint eagle
sharp grail
#

C'est que tu as place l'importation du module Discord avant la définition du client

#

Avant de faire un bot c'est mieux de connaitre les bases du langage 👀

flint eagle
sharp grail
#

Peut-être qu'il y a des tutos sur le site de gca mais je suis pas sur. Sinon cherche sur youtube

flint eagle
#

ok
merci

magic scaffold
bold sparrow
sharp grail
#

Oui

flint eagle
flint eagle
bold sparrow
#

Regarde la doc Discord.js actuelle

#

Normalement dans la page d’accueil ils doivent montrer les intents

#

Je t’aurais bien dit comment faire mais je suis sur portable lol

sharp grail
#
flint eagle
#

Ok
Merci

oak turret
#

v13 < v12 && commando >>

floral bolt
#

yo quelqun peut m'aider avec jquery ?

hazy mirage
floral bolt
#

ouais ca va toi !

hazy mirage
#

qu'est-ce que tu veux dcp ? 👀

floral bolt
#

je veux cacher un items append

#

en gros j'ai un input quand je met des trucs il y a un autojsaisplusquoi

#

et du coup j'ai fait un .append pour afficher le resultat

#

mais genre si je tape trop je me retrouve avec 150 divs ...

hazy mirage
#

bah en fait

#

au moment ou tu append

#

tu devrais clear tout ce qui a été append avant

#

clear: $("item").html("");

append: $("item") ....;

floral bolt
#

ah ouais

#

merci 🙂

#

t tro for toua

keen narwhal
#

Bonjour, j'aurais besoin d'aide s'il vous plait, j'utilise Visual Studio Code sous Linux mais j'ai cette erreur quand j'essaye de lancé mon bot :

    const token = this.client.token ?? this.client.accessToken;
                                     ^

SyntaxError: Unexpected token '?'
slim anvil
#

quelle version de nodejs ?

#

car si il le reconnait pas c'est que tu es trop bas

#

je crois que c'est dans la 14 que c'est natif

keen narwhal
#

c'est ça le problème ?

tight lodge
#

Très probable.

slim anvil
#

Oui du coup

keen narwhal
#

v16 c'est bon ?

slim anvil
#

Oui ce sera bon

keen narwhal
#

nodejs -v 16.6.2

slim anvil
#

à voir si tout tes packages sont compatibles mais normalement oui

keen narwhal
#

c'est bon ?

slim anvil
#

logiquement ui

keen narwhal
#

nop

#

ça fonctionne pas

slim anvil
#

🤔 tu l'as bien restart derrière ?

keen narwhal
#

restart vsc ?

slim anvil
#

Sur le meme terminal qui run ton instance node

#

Non juste le bot

#

mais est-ce que tu l'as bien changé ta version sur le meme terminal que ou tu nodejs .

#

Car pas sur que ca te la change en default partout

keen narwhal
#

Comment ça ?

slim anvil
#

tu utilises nvm pour changer de version ?

keen narwhal
#

J'ai rien changer encore depuis tout ta l'heure là

slim anvil
#

Non mais pour changer de version node tu utilises nvm ou tu l'as juste update ?

#

nvm use 16.2.2 par exemple

keen narwhal
#
x@penguin:~$ nvm install node
Downloading and installing node v16.6.2...
Downloading https://nodejs.org/dist/v16.6.2/node-v16.6.2-linux-x64.tar.xz...
##################################################################################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.6.2 (npm v7.20.3)
slim anvil
#

okay donc tu utilises bien nvm

#

Donc ma question c'est si tu ouvres un nouveau terminal et que tu fais node -v

#

est-ce qu'elle est bien a 16 ou pas ? voir si il l'a mise par défaut

keen narwhal
#

v13.14.0

slim anvil
#

ok donc fait un

#

nvm alias default 16.6.2

#

et maintenant a chaque ouverture de terminal il sera par défaut en 16.6.2

#

et relance juste le terminal de ton vscode

#

et retente un node -v voir si c'est bien la 16.6.2

keen narwhal
#

dans visual studio code je suis encore en v13

slim anvil
#

tu as bien relancé le terminal ?

keen narwhal
#

Oui, je l'ai fermer et réouvert

#

je relance vsc

#

ça fonctionne je crois

slim anvil
#

top

keen narwhal
#

` throw new TypeError('CLIENT_MISSING_INTENTS');
^

TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.`

sharp grail
keen narwhal
sharp grail
#

C'est normal, alors

#

par contre

#

sur la doc de discordjsv13

#

il indique qu'il faut avoir minimum nodev16.6

keen narwhal
#

je l'ai

sharp grail
# keen narwhal Oui

Du coup, à partir de la v13 tu es obligé de mettre les intents du client 👀

sharp grail
keen narwhal
#

c'est quoi ce bordel encore 👀

sharp grail
#

avant ils étaient optionnels

keen narwhal
#

c'est bon je suis passer en v12 👀

sharp grail
#

en gros, ça te permet (si je dis pas de bêtises), d'accéder aux events

#

donc chaque intent te permet d'accéder à certains events

#

et tu dois spécifier dans le client ceux dont tu as besoin

sharp grail
keen narwhal
#

Ok ^^

#

Tu sais comment faire pour récupérer un message après que le bot ai envoyé un message dans le channel pour définir la raison close d'un ticket ?
Code de test https://sourceb.in/s7ZJW7flRt

sharp grail
keen narwhal
#

awaitMessage c'est pour un message spécifique non ?

sharp grail
#

Euh awaitMessages c'est juste que ça marche avec les promesses

keen narwhal
#
const filter = m => m.content
const collector = interaction.channel.createMessageCollector({ filter, max: 1, time: 15000 });
#

comme ça ?

sharp grail
#

oui

#

ensuite tu fais

collector.on('collect', m => console.log(`Collected ${m.content}`));
collector.on('end', collected => console.log(`Collected ${collected.size} items`));
#

après c'est juste la doc ça x)

sharp grail
#

jdis des bêtises

#

je vais prendre la doc pour pas dire des bêtises

#

voilà

#

ça sera mieux 🤔

keen narwhal
#
        if(button.id === "ticket_close_raison_oui"){
            button.reply.send(client.config.noverified+' Entrer votre raison de fermeture.')

            const filter = m => m.content
            const collector = interaction.channel.createMessageCollector({ filter, max: 1, time: 15000 });
            collector.on('end', collected => console.log(`Collected ${collected}`));

bold sparrow
#

J'ai un petit soucis avec le chargement de mes classes, quand je console log le résultat du loader, j'ai juste js nomClasse {} // Exemple: Ping {}
J'arrive pas à accéder aux propriétés, est-ce que ça peut être due au fait que j'implémente une interface et non étendre ?

sharp grail
#

hmm en fait avec end tu vas attendre la fin du timer il me semble; donc utilise plus

 if(button.id === "ticket_close_raison_oui"){
            button.reply.send(client.config.noverified+' Entrer votre raison de fermeture.')

            const filter = m => m.author.id === button.user.id
            const collector = interaction.channel.createMessageCollector({ filter, max: 1, time: 15000 });
            collector.on('collect', m => console.log(`${m.content}`));
#

et pour le filter à la place du m.content j'ai mis que seul la personne qui a cliqué sur le bouton pourra mettre une raison

keen narwhal
#

`if (collect && (await this.filter(...args, this.collected))) {
^

TypeError: Function.prototype.apply was called on #<Object>, which is a object and not a function`

bold sparrow
#

Tu fais un callback sur un objet.

keen narwhal
#

Comment ça ?

#

@bold sparrow

sharp grail
keen narwhal
#

C'est celui que tu m'as envoyé

sharp grail
#

euh

#

je viens de me rendre compte de quelque chose

#

c'est pas button.customId au lieu de button.id ?

bold sparrow
#

Exact

desert riverBOT
sharp grail
#

ah je savais même pas que cette commande existait

keen narwhal
#

Non, j'utilise discord-buttons

sharp grail
#

ah mais tu es en v12

bold sparrow
#

mdrrrrrrrrr

#

J'pensais que t'étais en v13 aussi

keen narwhal
#

non

bold sparrow
#

Passe en v13 x)

sharp grail
#

ah bah logique

keen narwhal
#

Bah pourquoi ?

sharp grail
#

@keen narwhal à la place de

            const collector = interaction.channel.createMessageCollector({ filter, max: 1, time: 15000 });

mets

const collector = interaction.channel.createMessageCollector( filter, { max: 1, time: 15000 });
keen narwhal
#

Ah c'est bon merci 🙂

sharp grail
#

et puis c'est mieux que d'utiliser des packages en plus 🤔

keen narwhal
#

C'est vrai, mais je préfère rester en v12 pour l'instant

sharp grail
sharp grail
keen narwhal
#

Du coup, je doit mettre le reste dans mon code dans le collector.on pour garder le m.content ?

sharp grail
#

oui

coarse trench
#

Bonjour, j'essaye de faire un bout de code pour que le bot me donne une invite de tous les guilds sur lequel il est, mais je n'y arrive pas car il créé 5 invites, puis fait une pause, refait 5/6 invites etc

#

Donc ça marche pas

sharp grail
coarse trench
sharp grail
#

tu ne peux pas :/

#

c'est du à discord

coarse trench
#

Je connais bien un bot qui le fait pourtant...

sharp grail
#

je ne connais pas de moyen de contourner ces limitations, peut-être que quelqu'un d'autre pourra t'aider

coarse trench
#

D'acc

keen narwhal
#

Holaaaaa

#

Une personne peux m'expliquer en gros se qui a modifié pour le passage de v12 à v13

#

Mercii

dire latch
#

Plein de truc merdique @keen narwhal mdr

keen narwhal
#

Ha

#

Je suppose que les gens font payer ?

#

Pour le faire

dire latch
#

Ba nan, pourquoi ?

keen narwhal
#

Je sais pas, tu sais le faire toi ?

dire latch
#

Jamais testé

keen narwhal
#

Ha x)

dire latch
#

😉

sharp grail
hardy glacier
#

Et le serveur discord aussi

#

Rohhhh

keen narwhal
#

X)

hardy glacier
#

Relou le bot

keen narwhal
#

XD

desert riverBOT
sharp grail
#

ça n'a pas marché

hardy glacier
#

🤔🤔

desert riverBOT
sharp grail
#

ah voilà

keen narwhal
#

Il disent se qu'on doit modif ?

sharp grail
keen narwhal
#

Hmm

#

Merci

fallow crown
#

Salut, je suis entrain de programmer un bot discord en js et je rencontre un probleme : j'ai un fichier bdd.json qui est ma base de données et je veux y stocker l'id d'un role. Dans mon bot.js j'appelle mon fichier mais ca ne marche pas, quelqu'un pourrait m'aider. Je met le code dans 2 secondes. Merci

blazing wadi
#

Ouep

#

Code de bot.js et bdd.json

fallow crown
#

Ma bdd:```JSON
{
"841005648946921503": {
"warn": {},
"AutoRole": "876889027888959488"
}
}

La partie du code en js:```JS
client.on("guildMemberAdd", async member => {                
//Auto role
  member.roles.add(bdd[message.guild.id]["AutoRole"])
  
})
#

voila

fallow crown
bold sparrow
tame kindle
#

C'est pas la qu'il doit appeller so' fichier

#

Mais dans son index ou fichier de commande

fallow crown
#

Il est au dessus

#

J'utilise déjà bdd.Json pour les warn et ça fonctionne bien

bold sparrow
bold sparrow
sharp grail
#

tu veux juste lui ajouter une id

#

tu dois d'abord get le rôle

#

tu peux faire

#
let role = member.guild.roles.cache.get(bdd[message.guild.id]["AutoRole"]);
// get le rôle
member.roles.add(role);
// ajoute le rôle au membre

ou

member.guild.roles.fetch(bdd[message.guild.id]["AutoRole"])
.then(r => member.roles.add(r))
.catch(e => 
// une erreur est renvoyé en cas de problème
);
// fetch le rôle
// ajoute le rôle au membre
fallow crown
#

Ok merci

fallow crown
sharp grail
fallow crown
#

Je suis débile 😂

#

Oui effectivement

sharp grail
sharp grail
keen narwhal
#

Bonjour, j'essaye de faire une petite commande simple mais DiscordJS ne peux pas m'envoyer le message alors que pourtant la requête passe bien

DiscordAPIError: Cannot send an empty message

#

Des idées ?

fallow crown
#

Tu peux mettre tout le code stp

#

Et l'erreur si il y en a une stp

sharp grail
#

pour être honnête je ne comprends pas ce que tu essayes de faire avec ton url

#

surtout qu'au final le ${text}, n'est pas rempli, donc 🤔
De plus, es tu sur que la propriété message de resp existe ?

#

je te conseille de faire un console.log de resp

keen narwhal
#
{
  message: 'https://nekobot.xyz/imagegen/9/9/0/8aab16299df6c5feefdf450e08324.png',
  status: 200,
  success: true,
  version: '2020082001'
}
sharp grail
#

mmh

#

t'es en v13 ?

keen narwhal
#

Ui

sharp grail
#

ah bah logique

keen narwhal
#

?

sharp grail
#

là t'essayes d'envoyer un content

keen narwhal
#

Je connais pas trop la v13 c:

sharp grail
#

je t'invite à regarder les messagesoptions

#

👀

#

tu dois mettre

message.channel.send({ files: MessageAttach })
keen narwhal
#

Oh

sharp grail
#

excuse moi

#

x))

#

enfin ton messageattachment

keen narwhal
#

J'avais deviné ^^

#

Et si jamais c'été un embed remplit d'info ? ça aurai été quoi ?

sharp grail
#

{ embeds: [] }

#

et à l’intérieur tu mets tes embeds

sharp grail
keen narwhal
#

Donc

let embed1 = . . . 
let emebed2 = . . .

message.channel.send({embed: [embed1] [embed2]})

?

keen narwhal
sharp grail
#

non, c'est un array, tu mets [ embed1, embed2]

#

embeds avec un s d'ailleurs

#

👀

sharp grail
keen narwhal
#

Ah ok ok

#

Par contre j'ai une erreur

#

** this.files = await Promise.all(this.options.files?.map(file => this.constructor.resolveFile(file)) ?? []);
^

TypeError: this.options.files?.map is not a function
**

#
        return message.channel.send({ files: MessageAttach });

sharp grail
#

mmh

#

oups

#

erreur de ma part

sharp grail
#

logik en même temps

keen narwhal
#

J'y et pensé

sharp grail
#

tu dois pouvoir mettre plusieurs files

keen narwhal
#

Je viens de le mettre en []

sharp grail
dire latch
#

V12 sinon 😂

sharp grail
dire latch
#

Pas du tout

sharp grail
#

de toute façon faudra bien update un jour

sharp grail
#

mais qui sont je trouve finalement logique

dire latch
#

🤷‍♀️

keen narwhal
sharp grail
keen narwhal
#

c:

sharp grail
#

c'est sur que si on a appris avec la v12 difficile de changer

keen narwhal
#

J'ai commencé 1 semaine avec la v12

sharp grail
#

mais ça vient rapidement, enfin je trouve

keen narwhal
#

Bah faut avoir une bonne doc

dire latch
#

La v13, c'est chiant

sharp grail
#

en plus t'as le guide avec

keen narwhal
#

Ouais j'ai vu

sharp grail
#

que demander de plus

keen narwhal
#

c:

sharp grail
sharp grail
#

tu vas un peu vite en besogne

keen narwhal
#

Avec 5x plus de truc chiant et compliqué

#

et une doc à chier comme DiscordPY

dire latch
#

Ba ils forcent à utiliser les intents, slash commands et tout leur merde

sharp grail
#

les intents tu pouvais les utiliser

#

mais c'était optionnel

dire latch
#

Sauf si tu as un bot certifié

sharp grail
#

tu peux continuer à use un handler normal

dire latch
#

Le rapport ?

#

Aucun

sharp grail
#

bah tu dis qu'ils forcent

dire latch
#

Pour qu'on les utilisent oui

#

Esce que j'ai dis qu'on était obligé d'utiliser que ça ? Non

sharp grail
#

c'est pas nécessairement du à la v13

#

et si tu parles du nouvel gateaway intent qu'ils comptent rajouter pour accéder au message content ça sera pour tout (pas que js), et c'est pour soulager l'api discord donc

#

il faut bien faire des concessions

dire latch
#

Pour les bots vérifié ouais

#

Mais à quoi sa sert de faire ça, à rien

#

Tu regardes le ping de l'api actuellement, c'est pas avec ça que sa va changer

sharp grail
dire latch
#

Ba c'est pas avec ça que sa va changer mdr

#

La plupart des bots vont y avoir accès

sharp grail
#

oui, mais les gros bots c'est possible qu'ils se voient refuser cet accès

dire latch
#

Je ne pense pas

sharp grail
#

je ne pense pas aussi, mais je ne vois pas d'autres solutions, car effectivement sinon comme tu dis, quelle utilité 🤔

dire latch
#

Ba à faire chier

#

Déjà que les intents actuel faisais chier le monde

sharp grail
#

je suis pas sur que ce soit vraiment le but de discord 🤔

dire latch
#

Là, encore plus

sharp grail
dire latch
#

Ba qu'ils améliorent leur api 🤷‍♀️

sharp grail
#

hum, je pense qu'ils essayent de l'améliorer

dire latch
#

A voir

keen narwhal
#

les gars mon bot me sort un truc chelou

#

il me sort que discord.js n'est pas trouvé

sharp grail
#

sueur

ashen rapids
#

T'as pas fait de npm install à mon avis

#

Car t'as pas le dossier node_modules

keen narwhal
#

je l'ai fait :/

#

wtf

#

merci, je test sa

sharp grail
#

;_;

keen narwhal
#

la vie j'ai fait le npm instal donc je comprend r xd

pseudo hollow
#

Dans le bon dossier :p ?

keen narwhal
#

il est entrain de le refaire

keen narwhal
dire latch
#

@keen narwhalGood ?

keen narwhal
#

c'est entrain de s'instaler

dire latch
#

Ok

dire latch
keen narwhal
#

nan

#

même pas

#

il m'envoi des erreur du genre

dire latch
#

Du genre ?

keen narwhal
#

node index.js
E:\Discord-Moderation-Bot-main\node_modules\bindings\bindings.js:135
throw err;
^

Error: Could not locate the bindings file. Tried:
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\out\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\out\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\default\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\compiled\15.5.0\win32\x64\better_sqlite3.node

#

et bien plus de ligne

dire latch
#

better-sqlite3

#

C'est ça le soucis

keen narwhal
#

oui, je vois bien que c'est sa le problème mais, j'ai regardé je crois que c'est un module mais je suis pas sur

dire latch
#

Yep, c'est un module

keen narwhal
#

faut que je l'instale ?

#

sa te derange que tu me donne la ligne a mettre dans ce style ?
"discord.js": "^12.5.3",

dire latch
#

euh

#

npm i better-sqlite3 ?

keen narwhal
#

oui déso

#

PS E:\Discord-Moderation-Bot-main> npm i better-sqlite3

up to date, audited 324 packages in 14s
38 packages are looking for funding
run npm fund for details

found 0 vulnerabilities
PS E:\Discord-Moderation-Bot-main> node index.js
E:\Discord-Moderation-Bot-main\node_modules\bindings\bindings.js:135
throw err;
^

Error: Could not locate the bindings file. Tried:
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\out\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\Debug\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\out\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\Release\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\build\default\better_sqlite3.node
→ E:\Discord-Moderation-Bot-main\node_modules\better-sqlite3\compiled\15.5.0\win32\x64\better_sqlite3.node

#

j'ai la meme erreur

dire latch
#

Tu utilises sqlite ?

keen narwhal
#

c'est un open source que j'essaye de démarer

dire latch
#

Montre les modules

keen narwhal
#

k

dire latch
#

Ou le github ?

keen narwhal
#

gothub att

#

github

dire latch
#

Ah oui, quick.db

keen narwhal
#

enfaite,e je souhaite récup la basse avec des modif

#

mais j'arrive même pas a le on xd

dire latch
#

Je vais test

#

Moi, sa fonctionne @keen narwhal

keen narwhal
#

wtf

dire latch
keen narwhal
#

jvais regarder

dire latch
#

Tu as mis à jour node ?

keen narwhal
#

eu, nop

dire latch
#

Et installer le windows build jsp trop quoi

#

Ba faut le faire 🙂

keen narwhal
#

c'est quoi sa

dire latch
#

Ba quand tu installes node, tu peut cocher des trucs

keen narwhal
#

on le met a jour sur le site

#

ou via l'appli$

dire latch
#

Sur leur site

keen narwhal
#

k

#

merci

dire latch
#

Je suis en V14

keen narwhal
#

14

#

17

#

5

#

lts

dire latch
#

Yep

keen narwhal
#

oki

dire latch
#

Oublie pas les builds jsp trop quoi aussi 🙂

keen narwhal
#

je sais pas le mettre à jour

dire latch
#

Ah bon ?

keen narwhal
#

yes je vais restest

keen narwhal
dire latch
#

AH

keen narwhal
#

y'a pas une cmd pour le mettre a jour direct dans l'apli

dire latch
#

Euh sûrement

queen quiver
#

Hello !
Je débute et m'exerce sur la création d'un menu accordéon et une fenêtre popup à l'aide des flexbox.

Mon objectif est de faire apparaître le popup centré sur ma page (cf photo), lors du clic sur le bouton, qu'il soit superposé sur mon menu.

J'ai essayé un script pour le popup, mais étrangement depuis mon éditeur de code il ne se passe rien, je n'aperçoit même pas le popup. Néanmoins sur l'éditeur JSFiddle le popup apparait mais tout à gauche et rétréci. 😕
Je pense qu'il y a des erreurs au niveau du CSS du popup mais je sèche.
Je vous partage mon code si quelqu'un peut m'éclairer, je suis toute ouie ! :
https://jsfiddle.net/0jetuwkb/2/

Merci par avance et bon début de semaine ! 🙂

twin bane
#

Bonsoir ! j'ai un probleme avec mon code JS pour mon bot discord ...voici le code et l'erreur

le code :

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

module.exports = {
  name: "stats",
  category: "Infos",
  description: "stats important du serveur",
  emoji: "👥",

  run: async (client, message, args) => {
    if(message.author.bot) return;
      message.delete();

      const member = message.guild.members.cache
      const onlines = member.filter(u => u.presence.status === 'online').size
      const dnd = member.filter(u => u.presence.status === 'dnd').size
      const idle = member.filter(u => u.presence.status === 'idle').size
      const offline = member.filter(u => u.presence.status === 'offline').size 
      const stats = new discord.MessageEmbed()
        .setColor('#2f3136')
        //.setTitle('Stats !')
        .addField(`⭐ Nitro boost`, `\`Niveau\` [»](https://google.com) **${message.guild.premiumTier}**\n\`Nbr de boost\` [»](https://google.com) **${message.guild.premiumSubscriptionCount}**`)
        .addField(`👥 Membres » ${message.guild.memberCount}
        `, `> 🟢 En ligne [»](https://google.com) **${onlines}**
        > 🔴 Ne pas déranger [»](https://google.com) **${dnd}**
        > 🟡Inactif [»](https://google.com) **${idle}**
        > ⚫ Hors ligne [»](https://google.com) **${offline}**
        ────────────
        **${message.guild.members.cache.filter(member => !member.user.bot).size}** Humains [»](https://google.com) **${message.guild.members.cache.filter(member => member.user.bot).size}** Robots`)
        .setFooter(`demandé par ${message.author.username}`,message.author.avatarURL())
        .setTimestamp()
            
        message.channel.send(stats);
    }
};

et voici l'erreur :

const onlines = member.filter(u => u.presence.status === 'online').size
                                                    ^

TypeError: Cannot read property 'status' of null
    at C:\Users\ProMr\OneDrive\Bureau\blud\v2\commands\info\stats.js:14:53
    at Map.filter (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\node_modules\@discordjs\collection\dist\index.js:159:17)
    at Object.run (C:\Users\ProMr\OneDrive\Bureau\blud\v2\commands\info\stats.js:14:30)
    at Client.<anonymous> (C:\Users\ProMr\OneDrive\Bureau\blud\v2\events\message.js:15:24)
    at Client.emit (node:events:394:28)
    at MessageCreateAction.handle (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:345:31)
    at WebSocketShard.onPacket (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:443:22)
    at WebSocketShard.onMessage (C:\Users\ProMr\OneDrive\Bureau\blud\v2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10)

merci d'avance pour l'aide !

sharp grail
#

en version 13 de discordjs

#

ils ont changés les status

twin bane
sharp grail
#

cependant

#

je crois pas que ton problème viennent de là d'abord

#

car u.presence est nul

twin bane
#

mhh c'est possible ... car quand je fesais mes test j'etait deja en DJS 13 maiss c'etait juste sur mon Index... la je l'es mis dans mes dossier commands biern ranger et ca ne marche plus...

#

et je ne sais pas pourquoi il me le rend nul ...

sharp grail
#

essaye de console log member

twin bane
bold sparrow
#

div-popup

bold sparrow
#

Effectivement, console log member serait la meilleure idée, car member ici a l'air de return une connerie

#

Ce que je comprends pas, c'est que tu déclares Discord et ici tu fais const stats = new discord.MessageEmbed()

#

Soit Discord, soit discord

#

Et le mieux serait de déclarer des éléments déstructurés.

#
const { MessageEmbed } = require("discord.js") ```
Pour la classe messageembed.
sharp grail
bold sparrow
#

Avec Discord en générique, ça fait tout charger.

sharp grail
#

Pas faux ça paraît logique 🤔

bold sparrow
#

Pour être plus explicite sur ma logique, en typescript, quand tu charges un " générique " tu fais js import * as Discord ...

#

La version ES6 est beaucoup plus explicite sur ce qu'il fait en déclarant Discord plutôt que les composants

#

Charger tout en tant que Discord donc les requêtes vers l'api > >

keen narwhal
#

Bonsoir, j'ai une petite question, qu'elle qu'un aurai un bon example bien expliqué pour l'api Axios ?

jovial turret
#

Salut, je voudrais savoir comment je pourrais appeler un bot discord depuis l'extérieur

#

un peu comme une api

#

je ne trouve que des appel d'api depuis node js, mais rien d'externe

#

parce que l'appli nodejs est hébergée avec son propre port, donc on devrait pouvoir l'appeler :p

slim anvil
jovial turret
#

nan je sais

#

mais le truc c'est que j'ai besoin de récupérer des informations du discord (comme le nom de certains cannaux par exemple), mais je n'ai pas réussi à trouver une api qui me permet de le faire directement en php

slim anvil
#

Bah l'api de discord quoi

jovial turret
#

je n'arrête pas de tomber sur discordPHP

slim anvil
#

tout simplement ?

jovial turret
#

bah justement je n'arrive pas à la trouver x)

#

je cherche depuis hier mais rien, que de l'oAuth2

#

mon google est cassé, il croit que je veux faire un bot en php skype_facepalm

slim anvil
jovial turret
#

aaaah merci!

#

ptn pk il ne m'a pas sorti ça oiseau_pas_content

slim anvil
jovial turret
#

ouai mais faut savoir où chercher dedans :p

#

moi je cherchais avec ces termes là

#

ça me rendais ouf

sharp grail
timid loom
sharp grail
fallow crown
#

il dit que message n'est pas définit car on est dans un client.on("guildMemberAdd", async member => {

#

et bah il n'y a pas message

#

c'est bon probleme résolut dsl

#

Je voudrais faire pareil mais la vraiment aucune idée de comment faire.
Le code: ```JS
//Stats
client.on('ready', () => {
//ID du channel
const channelId = '876098994919583794';

const updateMembers = (guild) => {
const channel = guild.channels.cache.get(channelId);
channel.setName(Members: ${guild.memberCount.toLocaleString()});
}

client.on('guildMemberAdd', (member) => updateMembers(member.guild));
client.on('guildMemberRemove', (member) => updateMembers(member.guild));
//ID du serv
const guild = client.guilds.cache.get('841005648946921503');
updateMembers(guild);
})

je voudrais faire pareil avec ma bdd.json
#

quelqu'un pourrait m'aider?

sharp grail
#

qu'est ce que tu veux faire concrètement

#

et ça marche de mettre ses events dans son event ready ?

#
  • tu peux juste faire un
client.channels.cache.get(channelId)
#

pour get le channel

fallow crown
#

en gros j'ai une base de données qui s'appelle bdd.json, elle est appelé plus haut. je veux que dans ma bdd je met tous les id que j'ai pour ensuite les appelé

#

je mets le code dans 2s

sharp grail
#

tu veux mettre l'id du channel ?

fallow crown
#

yes et de la guild

#

Mon bot.js: ```JS
//MemberCount
client.on('ready', () => {
//ID du channel
const channelId = '876098994919583794';

const updateMembers = (guild) => {
const channel = guild.channels.cache.get(channelId);
channel.setName(Members: ${guild.memberCount.toLocaleString()});
}

client.on('guildMemberAdd', (member) => updateMembers(member.guild));
client.on('guildMemberRemove', (member) => updateMembers(member.guild));
//ID du serv
const guild = client.guilds.cache.get('841005648946921503');
updateMembers(guild);
})Mon bdd.json :JSON
{
"841005648946921503": {
"warn": {},
"AutoRole": "876889027888959488",
"MuteRole": "875809176599789609",
"MemberCount": "876098994919583794",
"Admin": "875804307449073776"
}

}``` j'ai commencé dans le bdd.json

#

avec l'id de MemberCount

sharp grail
#

donc,

// Event ready
client.on('ready', () => {

   // modifier le nom du salon en fonction du nombre de membres

  const updateMembers = (guild) => {
    // obtenir le channelId en fonction de l'id de la guild
    const channelId = bdd[guild.id].MemberCount;

    // get le salon
    const channel = guild.channels.cache.get(channelId).catch(e => return console.log(`Erreur : ${e}`));

    // set le nom dusalon
    channel.setName(`Members: ${guild.memberCount.toLocaleString()}`).catch(e => return console.log(`Erreur : ${e}`));

  }

   // event lorsqu'un membre rejoint le serveur 
  client.on('guildMemberAdd', (member) => updateMembers(member.guild));

   // event lorsqu'un membre quitte le serveur
  client.on('guildMemberRemove', (member) => updateMembers(member.guild));
                                                              //ID du serv
  const guild = client.guilds.cache.get('841005648946921503');
  updateMembers(guild);
})

Au niveau de modifier de l'event ready global, pour get la guild, vu que tu n'as accès que au client, tu peux faire un client.guilds.first() mais dans ce cas ton bot ne doit être que dans un seul serveur sinon tu gardes ça comme ça où tu fais un truc global pour chaque guild

#

j'ai ajouté deux catach et deux return en cas d'erreur

#

Cependant, il n'y a pas de vérification sur si bdd[guild.id].MemberCount existe

fallow crown
#

mais il faut aussi changer l'id du serv car le bot var ere sur plusieur serv ?

sharp grail
#

c'est-à-dire ?

fallow crown
#

mais merci deja

sharp grail
fallow crown
#

oui

#

il devrait etre recup dans la bdd

#

pour que ça fonctionne sur plusieur serv

sharp grail
#

pour récupérer les guilds sur lequel ton bot est présent tu peux utiliser client.guilds 👀

desert riverBOT
sharp grail
#

je te laisse consulter la documentation à ce sujet ^^

fallow crown
#

ok merci

#

donc au lieu c'écrire l'id j'écrit client.guilds?

sharp grail
#

non 🤔

fallow crown
#

?

#

j'ai pas compris ou il faut le mettre le client.guils

sharp grail
#

client.guilds te permet d'accéder à toutes les guilds

#

où ton bot est

fallow crown
#

oui mais je le met ou c'est ça que je n'ai pas compris

#

😆

sharp grail
#

concrètement tu ne peux pas utiliser juste client.guilds

#

c'est pour ça que la doc pourra t'aider, car je pense que c'est mieux que tu comprennes par toi même

fallow crown
#

okok merci

bold sparrow
#

Quelqu'un ici utilise Gulp ?

#

Mon watcher ne fonctionne pas

#

Il run une fois au démarrage après plus rien

jovial turret
#

Je reviens vite fait sur mon problème, on ne peut pas appeler l'API discord depuis le navigateur

cyan iron
#

J'ai dit " Comment ça ? " mais mes messages se font supprimer

#

@queen ocean normal ?