#javascript-typescript
1 messages · Page 84 of 1
Bah si
Puis les commandes marchent encore nan ? Enfin t'es pas obligé de faire des slash commandes ou pas le choix ?
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. .
Dacc je verrais si je peux passer avec des slash commandes même si je trouve pas ça forcement super pratique sur tous les points
Hey, j'ai un petit soucis, j'ai mon ndd (https://shadow-bot.com) mais il me redirige pas sur mon site
Mon site je le fais avec un fichier .js
Si jamais vous serez le soucis ou des solutions 😅
Tu sembles avoir un soucis avec ton certifat SSL. T'es sous quel serveur web ?
T'as bien un serveur web dans tous les cas
@ashen rapids
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.
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
Je pars me renseigner 👍
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
@keen narwhal utilise un timestamp ou UnixTime
je vois pas le soucis avec Date.now() ? Plutot avec le stockage fichier json je pense
car Date.now() c'est une "mesure" unix en milli seconde 🤔
@ashen rapids?
Si quelqu'un a une solution pour moi
Ça doit être lié à Clousflare, ça m'arrivais souvent
Comment le régler ?
Yep, actuellement je fais toutes les conversions nécessaires
@hardy glacier ? 🤔
Ben quoi ? 😂
Pourquoi ta réaction ? mdrr
Jcp 😅 mais tu as regardé sur internet pour ton pb ?
-__-
Ouah, quel aide extraordinaire
@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 ^^'
Toi tu as ajouté une exception donc ça fonctionne sauf que pour tout le reste du monde ton certificat n'est pas valide
Ba non 🤔
j'ai vérifié c'est une erreur qui n'est pas si rare que ça
a j'ai pas la même erreur moi :/
Ouais c'est parce-que c'est firefox mobile là
L'erreur sera différente en fonction du navigateur
j'ai la même quand je suis sur Chrome ou sur Internet Explorer perso
Tu as dû modifié ton fichier hosts
Sur ?
C:/Windows/system32/etc/hosts
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
Non, héberger sur le vps
Donc c'est la propagation
Ça fait longtemps que tu as changé les dns de ton domaine?
J'utilise express pour le site
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
Et sur cloudfare tu as bien redirigé vers l'ip de ton vps?
Ok maintenant pour le certificat ssl tu utilises quoi?
Cloudflare
Et c'est cloudfare qui envoie la clé publique aux utilisateurs qui essaient d'accéder à ton site ou c'est ton vps?
Très bonne question 🤔
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
Ok
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
La galère tout ça mdrr
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
Tu as utilisé certbot là non?
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?
Euh, c'est ou ? Mdr
Tu as fait quoi comme commande ?
Jt'avou que j'ai mis juste Y
certbot certonly ou juste certbot?
certbot certonly --manual
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
Oui, mon site
Il faut que tu stop le service apache le temps de générer le certificat
Ensuite tu pourras le relancer
Tu peux relancer apache
Ton certificat a été généré
Dans /etc/letsencrypt/live/shadow-bot.com/
C'était pas apache, c'est mon site qui est sur le port 80 🙂
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
C'est pas dans le dossier archives
C'est dans live
/etc/letsencrypt/live/shadow-bot.com/
Oui, c'est pareil
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);
Régler @red torrent
Fallait remettre en proxied
Et dans SSL/TLS, mettre en flexible
Hey, quelqu'un qui saurait faire un paiement automatique avec paypal ?
Regarde sur internet API PayPal, normalement la Doc est très fourni
@dire latch
derien
On peut plus préparer la save d'un document avec mongoose fait chier ...
?
Bonjours j'aimerais diminuée le circle mais je ne trouve pas la ligne cx,cy,r dans mon CSS
J'aimerais aussi modifié les icons
Je me disais c’est bizzare c’est pas du JavaScript 😂
@keen narwhalCode + erreur ?
casse tête x)
Haha
Il y a un pb dans ton json... Soit il est mal créé soit il est mal fini...
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 
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) 🤔
Hey ! Tu peux essayer de faire quelque chose avec la methode javascript toLocaleDateString() ou toLocaleString()
Après il y a moment (le module) @keen narwhal
Hey, L'api est utiliser par pas mal de joueur, donc je doute après a voir.
Faut savoir que l'erreur c'est rajouter en même temps que l'ajout du proxy.
Sans proxy le bot fonctionne bien :/
Comment sa ?
C'est du vanilla ?
Hey, je doit le mettre ou dans le code ? Pour que sa se prenne en compte
C'est donc du à l'ajout du proxy, tu devras régler le problème par toi-même
Je pense
(Aide utile :D)
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
Tu peux te renseigner sur l'utilité de ces méthodes, mais c'est assez simple finalement
C'est un module à installer :/
Alors que tu peux use que du natif et le module discordjs logik mdr
Mais ça règle pas ton problème c'est celui à Lulthy

En fait c'était une solution après tu fais ce qui te plaît
C'est trois ligne de code pour mettre ta date en Francais 
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 !
Le plus simple, qui prend le moin de ressources
Le natif
:/
Je sens que je vais foiré
Je vais essayer, et je reviens vers toi
Dacc

.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").toLocaleDateString()}`, true)```
@keen narwhalEnlève le .toLocaleDateString() ?
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
Tu a lus le reste de la conv ^^
Hmm, merci ^^
Vite fais mais je pense que tu peut l'enlever
J'enlève donc le string
Yes
Oki
Je re
:/
.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").toLocaleDate()}`, true)```
Oui, mais pour qu'il fasse se que j'ai demandé en haut ?
c’est quoi que t’as demandé
Qu'il mette la date en format française
c’est ton timezone ça
Ben non, j'ai enlevé le string
Nan, on t'as dis d'enlevé le tout mdr
.locale()
Tu sais comment le mettre en place ? Et m'expliquer ^^' si possible
FR yep
sûrement que tu import le locale aussi en question
.addField('🕒 __Sur le serveur depuis__ ',`${moment(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss").local(FR)}`, true) ```
Donc import ‘moment/locale/fr’ après l’import de ton moment
locale
Et non
Fais en un global tout en haut
moment.locale("FR");
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
Oula, donc je fait sa en haut, la ou y'a les const
oui par exemple
D'accord, je reviens pour voir si sa fonctionne
Oui
Merci beaucoup les gars 💪
Np 🙂
Bizarre qu'il mette pas le 9 avant x)
Ouais
On n'est d'accord que d = days m = month Y = Year
?
Car le module est fais comme ça 🤷♀️
X)
DD DDDD
Sa serai parfait
puis le reste
Ha d'accord
Do dddd, MMMM YYYY, HH:mm:ss
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
oki en fonction de ce que tu veux quoi
Avec cette ligne
Mmmmh
Hey, Qui sait comment recuperer la latence de son proxy en MS ?
Yep je pense ^^
Je te donne sa
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);```
Yes, je te redit sa, Merci 😉
Pas de quoi 
Pour le coup, c'est pas sa ^^
Le temps de réponse de ton bot ?
Yep
Tu dois faire la différence entre le temps actuel et le createdTimestamp du message
message - date actuel
Je check sa demain, faut déjà que je trouve comment je pourrai installer ce foutu proxy :/
De quel proxy tu parles ?
Juste rajouter un proxy avec le fetch pour spam l’api on va dire, et avoir une meilleure rapidité, mais j’y arrive po
Spam l'api sert à rien @ionic swan
y a un rateLimit tout de façon
Yep
Documentation suggestion from @bold sparrow:
:_: InviteStageInstance (extends Base)
Represents the data about a public StageInstance in an Invite.
Ah yes
🤔
J’ai fail
Je vois ça mdr
Tu as réussi @keen narwhal ?
Tu a pas vus mes message :/
@blazing wadi
Si une personne et calé sur le sujet du fils actuel je suis preneur
Non sorry
J’arrive
@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
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 ?
en gros oui c'est ça
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()
Est ce que tu as une erreur s’il te plaît ?
Bonjour à tous ! Je ne comprend pas l'exercice ci-dessous : Merci à ceux qui pourraient m'éclaircir là dessus.
tu comprends pas quoi exactement
ce que tu dois faire ?
Yeep
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
Je vais essayer, je te dis si je bloque, c'est pas l'exercice le plus facile de la formation 😓
Bonjour !
Nope aucune
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
J'ai cherché, mais j'arrive vraiment pas ...
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'); ```
ah oui tu as rien quoi 
Mais tu as eu des exercices avant non ?
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.
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.
👌
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
}
Waww merci beaucoup !!
et donc ensuite tu suis cette logique pour le reste
🙏
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 ?
Bonjour, voici ce que me reply ma console quand je start mon bot.
ça ne me l'avais jamais fait au part avant.
Oui c’est assez
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)
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()
});
D'accord merci beaucoup !
Une erreur ?
nope
L'erreur viendrait soit du Cron, soit du channel qui n'est pas trouvé
Essaye de faire des tests pour savoir lequel est deffectueux
sans le truc bdd, le code marche
😂
Sans ta bdd ça fonctionne donc
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
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
Sa return rien
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
{
"870340639353634909": {
"Nom": "MisTik Bot",
"id": "875188913340289064"
}
}```
la bdd est comme ça niveau js :
bdd[guild.id] = {}
bdd[guild.id]["Nom"] = guild.name
bdd[guild.id]["id"] = chan.id
Savebdd();```
marche po
D'accord marche po mais j'aurais préféré un peu plus de détails
Aucune erreur, et return rien niveau console.log
Dans la logique des choses ça devrait marcher
Déjà je sais même pas pourquoi tu as un const guild
Oui c'est sa que je comprend pas
Il te sert à quoi
a rien la mdrr, pour sa que je les enlevers
Et en plus de ça
l'id sur
Est différent de ton test sans la bdd
Rien que là y'a un problème
"id" = id channel
Et le premiere id : "870340639353634909": { } c'est du serveur
Hein
Je vais manger, je renvoie un message après 😉
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

"870340639353634909": { === id guild
"Nom": "MisTik Bot",
"id": "875188913340289064" === id du channel
}
si j'ai bien compris
Yep c’est sa
Clique sur [📝](#javascript-typescript message) pour accéder au message
```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');
});
Il a enregistré quoi dans sa bdd alors
Puisqu'il a une valeur
Mais qui correspond à quoi ptdr
Clique sur [📝](#javascript-typescript message) pour accéder au message
"870340639353634909": { === id guild
"Nom": "MisTik Bot",
"id": "875188913340289064" === id du channel
}
ui mais dans son test sans la bdd, il a mis un id de channel différent
Ah oui ça je sais pas
que l'id dans sa bdd
Oui, j’avais test dans un Channel que j’avais sup
Il ferait mieux de faire des checks déjà de toute façon
Autant tester avec le bon id
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()
});
Plutôt que test dans un autre
déjà le fait d'avoir 2 fois guild c'est tendancieux,
puis ton premier guild ne sert à rien finalement
Il l'avait enlevé son guild
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
Surtout que son channel.send n'envoyait aucune erreur askip
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
Je pense qu'il y a une mauvaise compréhension de son code
de son côté surtout
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
Mets le dans un event ready
Tu devrais l'init au démarrage de ton bot, puis juste venir boucler sur ton json
et basta
Un event on, pas once
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
Okey, je vois sa après merci 😉
bonjour j'aimerais trouver un develloper react-native (typescript) pour m'aider plz
Salut je cherche a trouver la parti d'une adresse quand j'arrive sur un site avec js ?
la partie code exactement
Yo !
Je pense que c’est ce que tu souhaites @floral bolt
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('code');```
merci 🙂 !
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 ?
Vue est un framework de JS pour le frontEnd, il te permet d'utiliser la puissance du JS dans du balisage
C'est un mélange de Angular et React
Permet d'avoir un UI réactif et en même temps organisé/stable
Oui je l'utilise, mais j'aimerai savoir à quoi sert le .vue comparé à l'implantation de vuejs dans l'html
car je ne trouve rien sur internet par rapport à cela
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
L'action que tu ne fais n'est pas autorisé
Tu n'as pas le droit de faire cette action sur l'api
L'API actuelle est la v9
Ou la 8
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)
Est-ce que t’as les bons scopes
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
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
ça marche pas
Hey @flint eagle tu es en v13 de discord js et tu as oublié de spécifier les intents du client
comment ça ?
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
Il faut des intents dans la nouvelle version de discord xD : client = new Discord.Client({ intents: [discord.Intents.FLAGS.GUILDS, discord.Intents.FLAGS.GUILD_MESSAGES, discord.Intents.FLAGS.GUILD_MEMBERS] })
yep
Oui, après avec ces intents tu n'auras pas accès à tout
oui mais c'est ceux de base
@flint eagle on est d'accord que pour le token t'as mis un vrai token et pas juste "le token"
ouais j'ai mis le vrai token du bot developper portal
Dac
je trouve pas comment les activer
Utilise ceux-là pour commencer ⏏️
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 👀
t'as bon un site web ?
Peut-être qu'il y a des tutos sur le site de gca mais je suis pas sur. Sinon cherche sur youtube
ok
merci
envoit ton code je vais essayer de le remettre en ordre xD
Pour être plus précis avant les intents étaient optionnelles, maintenant c’est obligatoire si tu veux travailler avec DJS
Oui
@magic scaffold en effet mon code contient que ça
je veux que le bot marche qui si ça marche je serais comment continuer après
Ah ouais, je viens de commencer après la maj
Ton tuto est légèrement ancien maintenant
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
Ok
Merci
v13 < v12 && commando >>
yo quelqun peut m'aider avec jquery ?

ouais ca va toi !
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 ...
bah en fait
au moment ou tu append
tu devrais clear tout ce qui a été append avant
clear: $("item").html("");
append: $("item") ....;
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 '?'
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
yep
Très probable.
Oui du coup
v16 c'est bon ?
Oui ce sera bon
nodejs -v 16.6.2
à voir si tout tes packages sont compatibles mais normalement oui
c'est bon ?
logiquement ui
🤔 tu l'as bien restart derrière ?
restart vsc ?
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
Comment ça ?
tu utilises nvm pour changer de version ?
J'ai rien changer encore depuis tout ta l'heure là
Non mais pour changer de version node tu utilises nvm ou tu l'as juste update ?
nvm use 16.2.2 par exemple
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)
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
v13.14.0
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
dans visual studio code je suis encore en v13
tu as bien relancé le terminal ?
top
` throw new TypeError('CLIENT_MISSING_INTENTS');
^
TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.`
hey, tu es en v13 e discordjs ?
Oui
C'est normal, alors
par contre
sur la doc de discordjsv13
il indique qu'il faut avoir minimum nodev16.6
je l'ai
Du coup, à partir de la v13 tu es obligé de mettre les intents du client 👀
ah oui pardon j'ai mal lu
c'est quoi ce bordel encore 👀
avant ils étaient optionnels
c'est bon je suis passer en v12 👀
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
ah x), y a pas mal de changements v12/v13
la liste des intents : https://discord.com/developers/docs/topics/gateway#list-of-intents
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
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
awaitMessages ou CreateMessageCollector
awaitMessage c'est pour un message spécifique non ?
Euh awaitMessages c'est juste que ça marche avec les promesses
const filter = m => m.content
const collector = interaction.channel.createMessageCollector({ filter, max: 1, time: 15000 });
comme ça ?
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)
ah non en plus ptdrr
jdis des bêtises
je vais prendre la doc pour pas dire des bêtises
voilà
ça sera mieux 🤔
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}`));
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 ?
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
`if (collect && (await this.filter(...args, this.collected))) {
^
TypeError: Function.prototype.apply was called on #<Object>, which is a object and not a function`
Tu fais un callback sur un objet.
est-ce possible d'avoir ton nouveau code ?
C'est celui que tu m'as envoyé
euh
je viens de me rendre compte de quelque chose
c'est pas button.customId au lieu de button.id ?
Exact
:_: MessageButton#customId
A unique string to be sent in the interaction when clicked
ah je savais même pas que cette commande existait
Non, j'utilise discord-buttons
ah mais tu es en v12
non
Passe en v13 x)
ah bah logique
Bah pourquoi ?
@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 });
Ah c'est bon merci 🙂
hmm car tu devras update à un moment
et puis c'est mieux que d'utiliser des packages en plus 🤔
C'est vrai, mais je préfère rester en v12 pour l'instant
nickel 👀
dacc, c'est ton choix de toute façon
Du coup, je doit mettre le reste dans mon code dans le collector.on pour garder le m.content ?
oui
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
c'est sans doute du aux limitations de discord
Oui je m'en doutais mais comment y remédier ?
Je connais bien un bot qui le fait pourtant...
je ne connais pas de moyen de contourner ces limitations, peut-être que quelqu'un d'autre pourra t'aider
D'acc
Holaaaaa
Une personne peux m'expliquer en gros se qui a modifié pour le passage de v12 à v13
Mercii
Plein de truc merdique @keen narwhal mdr
Ba nan, pourquoi ?
Je sais pas, tu sais le faire toi ?
Jamais testé
Ha x)
😉
y a le guide !
X)
Relou le bot
XD
:_: discordjs.guide results:
• Additional Information: Changes and deletions
• Additional Information: Changes and deletions - ActivityType
• Additional Information: Changes and deletions - APIMessage
ça n'a pas marché
🤔🤔
:_: discordjs.guide results:
• Additional Information: Updating from v12 to v13
• Additional Information: Before you start
• Additional Information: API version
ah voilà
Il disent se qu'on doit modif ?
ils indiquent tous les changements de la v12 à la v13 donc oui
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
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
alors?
Il est appelé ou ton fichier la ?
C'est pas la qu'il doit appeller so' fichier
Mais dans son index ou fichier de commande
J'peux pas le savoir
Là où tu l'as appelé, pas le code
c'est normal 👀
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
Ok merci
Juste on est d'accord je le met dans un client.on ('message', message => {})
mais ce n'est pas quand un membre arrive dans le serveur ?

pas de soucis 👀
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 ?
c'est que tu essayes d'envoyer un message vide
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
Je suis sur qu'il existe, j'ai déjà fait un console.log
{
message: 'https://nekobot.xyz/imagegen/9/9/0/8aab16299df6c5feefdf450e08324.png',
status: 200,
success: true,
version: '2020082001'
}
Ui
ah bah logique
?
là t'essayes d'envoyer un content
Je connais pas trop la v13 c:
je t'invite à regarder les messagesoptions
👀
tu dois mettre
message.channel.send({ files: MessageAttach })
Oh
enfin non
pardo
mdr
tu dois mettre messageAttach
excuse moi
x))
enfin ton messageattachment
mais du coup ceci t'aidera 👀
Donc
let embed1 = . . .
let emebed2 = . . .
message.channel.send({embed: [embed1] [embed2]})
?
J'irai check à l'ocasion
dacc
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 });
c'est aussi un array ^^'
logik en même temps
J'y et pensé
tu dois pouvoir mettre plusieurs files
Je viens de le mettre en []
et ça marche ?
V12 sinon 😂
v13 mieux je trouve
Pas du tout
de toute façon faudra bien update un jour
en soi ça enlève des raccourcis et modifie quelques trucs
mais qui sont je trouve finalement logique
🤷♀️
ui c: mais n'empêche que la v13 me fait galérer à mort comparait à la v12
aaaah baaaah on finit par s'y faire
c:
c'est sur que si on a appris avec la v12 difficile de changer
J'ai commencé 1 semaine avec la v12
mais ça vient rapidement, enfin je trouve
Bah faut avoir une bonne doc
La v13, c'est chiant
la doc est vraiment bonne par contre
en plus t'as le guide avec
Ouais j'ai vu
que demander de plus
mouais nan, c'est dur à comprendre au début j'avoue mais on s'y fait vite
Ba ils forcent à utiliser les intents, slash commands et tout leur merde
Sauf si tu as un bot certifié
et les slash commandes non
tu peux continuer à use un handler normal
bah tu dis qu'ils forcent
Pour qu'on les utilisent oui
Esce que j'ai dis qu'on était obligé d'utiliser que ça ? Non
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
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
parfois elle galère un peu, elle a tendance à déconnecter certains bots régulièrement
oui, mais les gros bots c'est possible qu'ils se voient refuser cet accès
Je ne pense pas
je ne pense pas aussi, mais je ne vois pas d'autres solutions, car effectivement sinon comme tu dis, quelle utilité 🤔
je suis pas sur que ce soit vraiment le but de discord 🤔
Là, encore plus
tu mets all, même si c'est pas ouf car ils essayent de réduire le nombre d'events trigger pour soulager l'api
Ba qu'ils améliorent leur api 🤷♀️
hum, je pense qu'ils essayent de l'améliorer
A voir
les gars mon bot me sort un truc chelou
il me sort que discord.js n'est pas trouvé

sueur
;_;
la vie j'ai fait le npm instal donc je comprend r xd
Dans le bon dossier :p ?
il est entrain de le refaire
oui, enfin normalement xd
@keen narwhalGood ?
c'est entrain de s'instaler
Ok
Si ta pas remis de message, c'est que c'est bon ? 🤔
Du genre ?
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
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
Yep, c'est un module
faut que je l'instale ?
sa te derange que tu me donne la ligne a mettre dans ce style ?
"discord.js": "^12.5.3",
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
c'est un open source que j'essaye de démarer
Montre les modules
k
Ou le github ?
gothub att
github
Ah oui, quick.db
enfaite,e je souhaite récup la basse avec des modif
mais j'arrive même pas a le on xd
wtf
jvais regarder
Tu as mis à jour node ?
eu, nop
c'est quoi sa
Ba quand tu installes node, tu peut cocher des trucs
Sur leur site
Je suis en V14
Yep
oki
Oublie pas les builds jsp trop quoi aussi 🙂
il me dit que node et deja instalé donc il ferme le setup
je sais pas le mettre à jour
Ah bon ?
yes je vais restest
AH
Euh sûrement
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 ! 🙂
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
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 !
bonsoir
en version 13 de discordjs
ils ont changés les status
... Ah... et par azzard vous ne savez pas comment faire la meme chose en DJS 13 ?
cependant
je crois pas que ton problème viennent de là d'abord
car u.presence est nul
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 ...
essaye de console log member
j'ai essayer en metant en annotation l'embed sans enlever tout les const online ext en console log member et sa me fait exactement la meme erreur ...
div-popup
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.
Qu'est ce que ça change concrètement au lieu de mettre discord ?
Et bien, pour les call vers l'API, c'est l'équivalent avec Boostrap de charger toute la librairie plutôt que les composants dont t'as besoin
Avec Discord en générique, ça fait tout charger.
Pas faux ça paraît logique 🤔
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 > >
Bonsoir, j'ai une petite question, qu'elle qu'un aurai un bon example bien expliqué pour l'api Axios ?
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
https://axios-http.com/docs/api_intro tiens tu as tout dessus
tu devrais pas utiliser ton process de bot comme une API
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
Bah l'api de discord quoi
je n'arrête pas de tomber sur discordPHP
tout simplement ?
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 
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

ouai mais faut savoir où chercher dedans :p
moi je cherchais avec ces termes là
ça me rendais ouf
Hey, j'ai essayé de faire quelque chose avec le guild.members.cache mais impossible d'accéder à la PresenceManager, vu qu'elle est vide. Donc j'ai trouvé message.guild.presences.cache et ça marche 👀 (qui permet donc d'accéder à la presencemanager)
bah fatalement si tu mets "php" il te sort des résultats liés au php
à la place du moteur j'aurais dit la même chose en fait

enft j'avais pas essayé est ça fonctionne pas
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?
bon
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
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
tu veux mettre l'id du channel ?
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
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
mais il faut aussi changer l'id du serv car le bot var ere sur plusieur serv ?
c'est-à-dire ?
mais merci deja
pour ça const guild = client.guilds.cache.get('841005648946921503');
?
pour récupérer les guilds sur lequel ton bot est présent tu peux utiliser client.guilds 👀
:_: GuildManager (extends CachedManager)
Manages API methods for Guilds and stores their cache.
je te laisse consulter la documentation à ce sujet ^^
non 🤔
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
okok merci
Quelqu'un ici utilise Gulp ?
Mon watcher ne fonctionne pas
Il run une fois au démarrage après plus rien
Je reviens vite fait sur mon problème, on ne peut pas appeler l'API discord depuis le navigateur


```js

