#javascript-typescript

1 messages · Page 26 of 1

torn fog
#

Il faut aussi modifier le compiler React pour lui dire que le projet est en Typescript

left relic
#

et typescript fonctionne, c'est juste l'utilisation de MongoDB avec l'importation depuis un fichier TypeScript qui fonctionne pas

torn fog
left relic
torn fog
#

@left relic Bah là jsp du coup

left relic
#

@torn fog bon bah ce fut rapide, c'est quand je fais javascript import { MongoClient, ServerApiVersion } from 'mongodb'; que ça plante

misty parcel
#

Salut @slim anvil merci beaucoup de m'avoir parler de pinia, ça m'a complètement sauver la vie ! J'ai fais tout ce que je voulais faire avec et c'est super pratique comme tu l'avais dis !

Je suis à la toute dernière, mais étape ou je bloque :

Quand l'utilisateur valide le formulaire d'inscription, un mail est envoyé à la personne pour confirmer son inscription

#

Donc ça me force à quitter le page pour aller sur une nouvelle page, mais le soucis c'est qu'à cause de ça, le store se vide

#

De base je voulais faire une requête comme ça :

const { error } = await db.from('users').update({is_registered: true}).eq('email', emails.value);
#

Mais le problème c'est que du coup emails.value est undefined

#

Est ce que y'a un moyen de garder la value dans un store même en quittant et revenant sur le site ? think

slim anvil
#

Oui ça s’appelle du persistent store c’est à toi de le mettre en place via ton local storage ou autre

misty parcel
#

ah euh

slim anvil
#

alors oui et non tu dois intégrer ton propre système à ton store en gros

misty parcel
slim anvil
#

tu vas juste venir checker si tu as un storage et si oui tu set un default value

slim anvil
#

oui, peut être qu’il a intégré un persistent depuis donc encore plus facile

#

pas utilisé depuis facilement 2 ans et +

misty parcel
#

Alors la je suis un peu perdu

slim anvil
#

deja pour sauvegarder tes values, sois tu watch sois tu subscribe

misty parcel
slim anvil
#

lis la doc

#

c'est ecrit

misty parcel
#

ok

left relic
#

Est-ce vous savez pourquoi quand je fais "ts-node src/mongo_import" ça exécute mon fichier "mongo_import.ts" sans prendre en compte les modifications que j'ai fait dessus (et que j'ai enregistré) ? J'ai recharché VsCode, le terminal et j'ai toujours le même problème

#

et j'ai essayé de renommé mon fichier mais ça fonctionne plus du tout dans ce cas

misty parcel
#

omg j'ai reussi

#

Merci infiniment @slim anvil, je te dédicacerai dans mon livre

#

🙏

misty parcel
#

hey @queen ocean comment vas tu ? Je sais que tu utilises Sapphire depuis un petit moment, je viens de m'y mettre y'a 1h et j'aimerais savoir comment faire des options à une slash command, je comprends pas trop comment faire avec ça : options: ['size'] (je me suis pencher sur la doc)

#

De plus y'a absolument rien en tutoriel sur Sapphrire sur Ytb, triste tout ça

misty parcel
#

oubli de précision de ma part my bad

queen ocean
#

Ta utilisé la function registerApplicationCommands pour créer la slash commande déjà ?

queen ocean
misty parcel
#
import { Command } from '@sapphire/framework';

export class PingCommand extends Command {
  public constructor(context: Command.Context, options: Command.Options) {
    super(context, {
      ...options,
      name: 'ping',
      aliases: ['pong'],
      description: 'ping pong',
      
    });
  }
}
#

J'ai naïvement voulu faire options: [{...}] x)

queen ocean
misty parcel
queen ocean
#

dans l'index ???

#

nan tu dois faire ca pour chaque slash command

misty parcel
#

🤷‍♂️

#

aaaaa

#

Ah oui ok je vois

#

Non mais je savais hein

#

ça à l'air pas mal quand même

#

Euh juste @queen ocean Le this.description correspond à ça M :

queen ocean
keen narwhal
#

Bonsoir wavey
Quand je lance mon code en local tout marche mais une fois que je l'hébergé sur PufferPanel (un panel comme Ptérodactyle) j'ai une erreur et je ne sais pas comment la régler quelqu'un peut m'aider ?

const DiscordRPC = require('discord-rpc');
const config = require('../config.json');

const clientId = config.clientId;

DiscordRPC.register(clientId);

const rpc = new DiscordRPC.Client({ transport: 'ipc' });

rpc.on('ready', () => {
    console.log('Connecté au client RPC Discord!');

    rpc.setActivity({
        details: config.details,
        state: config.state,
        largeImageKey: config.largeImageKey,
        //largeImageText: config.largeImageText,
        //smallImageKey: config.smallImageKey,
        //smallImageText: config.smallImageText,
        startTimestamp: new Date(),
        instance: config.instance,
        buttons: [
            {
                label: config.buttons[0].label,
                url: config.buttons[0].url,
            },
        ],
    });
});

rpc.login({ clientId }).catch(console.error);

Erreur :

Error: Could not connect
    at Socket.onerror (/var/lib/pufferpanel/servers/60ecc723/node_modules/discord-rpc/src/transports/ipc.js:32:16)
    at Object.onceWrapper (node:events:629:26)
    at Socket.emit (node:events:514:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
left relic
#

Bonsoir, est-ce que quelqu'un aurait un exemple de petit projet react qui utilise mongoose ? J'aimerais juste avoir un exemple fonctionnel pour mettre/récupérer des données dans ma bdd MongoDB avec mongoose

torn fog
glass cargo
keen narwhal
frank stone
#

Heyyy 🙂 J'essaie d'utiliser la librairie moveable, ce qui fonctionne bien, néanmoins quand j'essaie de lui mettre une limite (un container, dans lequel l'objet peut être utilisé et pas sur toute la page), déjà ça ne change rien je peux le mettre ou je veux et en plus il freeze des fois et bloque à certains endroits randoms ...

On est d'accord que c'est cette option que je dois utiliser ?

#

Et spécifier le div dans lequel je veux travailler ?

echo trout
#

Salut j'ai ça comme problème dans ma console de mon bot discord qui peux m'aider

#

DiscordAPIError[50035]: Invalid Form Body application_id[NUMBER_TYPE_COERCE]: Value "undefined" is not snowflake. at handleErrors (/home/container/node_modules/@discordjs/rest/dist/index.js:640:13) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async SequentialHandler.runRequest (/home/container/node_modules/@discordjs/rest/dist/index.js:1021:23) at async SequentialHandler.queueRequest (/home/container/node_modules/@discordjs/rest/dist/index.js:862:14) at async REST.request (/home/container/node_modules/@discordjs/rest/dist/index.js:1387:22) at async /home/container/main.js:53:16 { requestBody: { files: undefined, json: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object] ] }, rawError: { message: 'Invalid Form Body', code: 50035, errors: { application_id: [Object] } }, code: 50035, status: 400, method: 'PUT', url: 'https://discord.com/api/v10/applications/undefined/commands' }

#

Svp urgent

hazy mirage
keen narwhal
keen narwhal
#

?

keen narwhal
#

@queen ocean tu t’y connais en js

keen narwhal
#

Car pourtant je précisais bien correctement le bot de mon côté

queen ocean
#

Sans code on pourras pas t'aider :/

keen narwhal
#

J’le mettrais ce soir alors :/

echo trout
#

const fs = require('node:fs');
const path = require('node:path');
const { REST, Routes } = require('discord.js');
const { Client, Collection, Events, IntentsBitField } = require('discord.js');
const { Player } = require('discord-player');
require('dotenv').config();

const intents = new IntentsBitField(3276799)
const client = new Client({ intents })
client.commands = new Collection();
client.player = new Player(client, {
leaveOnEnd: true,
leaveOnEmpty: true,
initialVolume: 60,
ytdlOptions: {
quality: "highestaudio",
highWaterMark: 1 << 25
},
})

const commands = [];
// Grab all the command files from the commands directory you created earlier
const foldersPath = path.join(__dirname, 'commands');
const commandFolders = fs.readdirSync(foldersPath);

for (const folder of commandFolders) {
// Grab all the command files from the commands directory you created earlier
const commandsPath = path.join(foldersPath, folder);
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
// Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
for (const file of commandFiles) {
const filePath = path.join(commandsPath, file);
const command = require(filePath);
if ('data' in command && 'execute' in command) {
client.commands.set(command.data.name, command);
commands.push(command.data.toJSON());
} else {
console.log([WARNING] The command at ${filePath} is missing a required "data" or "execute" property.);
}
}
}

// Construct and prepare an instance of the REST module
const rest = new REST().setToken(process.env.TOKEN);

// and deploy your commands!
(async () => {
try {

    console.log(`Started refreshing ${commands.length} application (/) commands.`);

    // The put method is used to fully refresh all commands in the guild with the current set
    const data = await rest.put(
        Routes.applicationCommands(process.env.clientId),
        { body: commands },
    );

    console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
    // And of course, make sure you catch and log any errors!
    console.error(error);
}

})();

const eventsPath = path.join(__dirname, 'events');
const eventFiles = fs.readdirSync(eventsPath).filter(file => file.endsWith('.js'));

for (const file of eventFiles) {
const filePath = path.join(eventsPath, file);
const event = require(filePath);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args));
} else {
client.on(event.name, (...args) => event.execute(...args));
}
}

client.login(process.env.TOKEN);

/*
process.on("unhandledRejection", (reason, p) => {
console.log(" [AntiCrash] :: Unhandled Rejection/Catch");
console.log(reason, p);
});
process.on("uncaughtException", (err, origin) => {
console.log(" [AntiCrash] :: Uncaught Exception/Catch");
console.log(err, origin);
});
process.on("uncaughtExceptionMonitor", (err, origin) => {
console.log(" [AntiCrash] :: Uncaught Exception/Catch (MONITOR)");
console.log(err, origin);
});
process.on("multipleResolves", (type, promise, reason) => {
console.log(" [AntiCrash] :: Multiple Resolves");
console.log(type, promise, reason);
});
*/

queen ocean
#

Envoie en code block stp

ancient sonnetBOT
#
❓ Obtenir de l'aide

Tu as besoin d'informations ? Tu es au bon endroit !
Consulte la liste des sujets pour en savoir plus sur Creators Area.

💻 Comment on envoie du code ? 💻

Pour envoyer du code sur Discord c'est très simple !
||Il vous faut d'abord du code... Et deux cubes de Kubor ! bongoTap||

En vrai, il faut utiliser les blocs de code de Discord :
Pour cela entoure ton code de ceci : ```

Par exemple :
```js
console.log("Salut Creators Area !")
```

Le résultat sera le suivant :

console.log("Salut Creators Area !")
```*Si tu es sur téléphone, tu ne verras pas le bloc de code*

> *TIPS: Si ton code est trop long, tu peux le coller sur [pastebin.com](https://pastebin.com/) et envoyer le lien par message.*
echo trout
#
const fs = require('node:fs');
const path = require('node:path');
const { REST, Routes } = require('discord.js');
const { Client, Collection, Events, IntentsBitField } = require('discord.js');
const { Player }  = require('discord-player');
require('dotenv').config();

const intents = new IntentsBitField(3276799)
const client = new Client({ intents })
client.commands = new Collection();
client.player = new Player(client, {
    leaveOnEnd: true,
    leaveOnEmpty: true,
    initialVolume: 60,
    ytdlOptions: {
      quality: "highestaudio",
      highWaterMark: 1 << 25
    },
  })

const commands = [];
// Grab all the command files from the commands directory you created earlier
const foldersPath = path.join(__dirname, 'commands');
const commandFolders = fs.readdirSync(foldersPath);

for (const folder of commandFolders) {
    // Grab all the command files from the commands directory you created earlier
    const commandsPath = path.join(foldersPath, folder);
    const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
    // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
    for (const file of commandFiles) {
        const filePath = path.join(commandsPath, file);
        const command = require(filePath);
        if ('data' in command && 'execute' in command) {
            client.commands.set(command.data.name, command);
            commands.push(command.data.toJSON());
        } else {
            console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
        }
    }
}

// Construct and prepare an instance of the REST module
const rest = new REST().setToken(process.env.TOKEN);

// and deploy your commands!
(async () => {
    try {

        console.log(`Started refreshing ${commands.length} application (/) commands.`);

        // The put method is used to fully refresh all commands in the guild with the current set
        const data = await rest.put(
            Routes.applicationCommands(process.env.clientId),
            { body: commands },
        );

        console.log(`Successfully reloaded ${data.length} application (/) commands.`);
    } catch (error) {
        // And of course, make sure you catch and log any errors!
        console.error(error);
    }
})();


const eventsPath = path.join(__dirname, 'events');
const eventFiles = fs.readdirSync(eventsPath).filter(file => file.endsWith('.js'));

for (const file of eventFiles) {
    const filePath = path.join(eventsPath, file);
    const event = require(filePath);
    if (event.once) {
        client.once(event.name, (...args) => event.execute(...args));
    } else {
        client.on(event.name, (...args) => event.execute(...args));
    }
}

client.login(process.env.TOKEN);

/*
process.on("unhandledRejection", (reason, p) => {
    console.log(" [AntiCrash] :: Unhandled Rejection/Catch");
    console.log(reason, p);
  });
  process.on("uncaughtException", (err, origin) => {
    console.log(" [AntiCrash] :: Uncaught Exception/Catch");
    console.log(err, origin);
  });
  process.on("uncaughtExceptionMonitor", (err, origin) => {
    console.log(" [AntiCrash] :: Uncaught Exception/Catch (MONITOR)");
    console.log(err, origin);
  });
  process.on("multipleResolves", (type, promise, reason) => {
    console.log(" [AntiCrash] :: Multiple Resolves");
    console.log(type, promise, reason);
  });
  */
#

Voila

queen ocean
echo trout
#

Oui

queen ocean
neon yoke
neon yoke
#

Sa m'as ghostping 👀

echo trout
neon yoke
echo trout
neon yoke
hazy mirage
echo trout
true grove
grave bronze
#

Bonjour, je viens de me lancer dans l'apprentissage de Sequelize et j'ai cette erreur que je ne comprend pas : code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlState: '28000', sqlMessage: "Access denied for user ''@'localhost' (using password: YES)", sql: undefined }, original: Error: Access denied for user ''@'localhost' (using password: YES) Sauriez vous à quoi elle est dûe ? Merci d'avance pour votre réponse.

timid loom
#

t'as pas mis d'utilisateur pour ta db

grave bronze
wary urchin
#
fs.readdirSync("./src/handlers").forEach((handler) => {
    require(`./handlers/${handler}`)(client);
});```
#

Quelqu'un sait comment je pourrais réécrire ça en ESModules?

#

Il me semble que déjà, je dois changer le require en import.

#
fs.readdirSync("./src/handlers").forEach((handler) => {
    import(`./handlers/${handler}`)(client);
});```
#

Ensuite, je pense que (handler) et (client) ne peuvent pas être utilisés en ESModules mais je ne sais pas par quoi les changer.

cyan iron
#

Oublie pas ton .default si tu export default

#

Ça va prendre la classe par défaut de ton fichier

novel valve
#

Salut ici
J'ai un petit soucis avec mon cmd
dès que je fais node index ça close le cmd sans mettre d'erreur

De base c'est un truc pour on un bot discord de musique mais ça veut pas marcher
ça marchait puis ça a arrêté de marcher
quelqu'un peut m'aider ?

dense crown
#

met dans le terminal de vs code au pire

copper pagoda
#

En gros pour plus d'explication j'utilise un res.redirect et après un res.send mais j'aimerai à la fin de mon code faire un res.cookie

#
const path = require('path');
require("dotenv").config({ path: path.join(__dirname, '.env')});
const express = require('express');
const router = express.Router();
const axios = require("axios");
const { MongoClient } = require('mongodb');
const mongoClient = new MongoClient(process.env.MONGODB_CALENDAR);
const {sign} = require("jsonwebtoken");

router.get('/', async function(req, res, next) {
  if(!req.query.code) return res.redirect(process.env.DISCORD)

  res.sendFile(path.join(__dirname + '/projet/index.html'));
  const {code} = req.query;
  const params = new URLSearchParams({
    client_id: process.env.DISCORD_CLIENT_ID,
    client_secret: process.env.DISCORD_CLIENT_SECRET,
    grant_type: "authorization_code",
    code,
    redirect_uri: process.env.DISCORD_REDIRECT_URI
  })

  const headers = {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept-Encoding": "application/x-www-form-urlencoded"
  };

  try {
    const response = await axios.post("https://discord.com/api/oauth2/token",params, {headers});

    console.log(response);
    if(!response) return res.redirect(process.env.DISCORD)

    const userResponse = await axios.get("https://discord.com/api/users/@me", {
      headers: {
        Authorization: `Bearer ${response.data.access_token}`,
        ...headers
      }
    });
  
    const {id, username} = userResponse.data;
    if(!id) return res.redirect(process.env.DISCORD)
    
    console.log(userResponse.data);
    await mongoClient.connect();
    const db = mongoClient.db("killerjumperbot");
    const collection = db.collection("calendrier");
    const filteredDocs = await collection.find({ userId: id }).toArray();
  
    if(filteredDocs[0]){
      await collection.updateOne({ userId: id }, {
        $set: {
          username: username
        }
      });
    }
    else {
      await collection.insertMany([{userId: id, username: username}]);
    }
  
    const token = await sign({sub: id}, process.env.JWT_SECRET, {
      expiresIn: "7d"
    });
  
    res.cookie('token', token).send('cookie set');
    res.redirect("https://www.killerjumper.fr/projet/");
  } catch(err){
    console.log(err);
    res.redirect(400, "https://www.killerjumper.fr/projet/",{Error:'block'});
  }
});

module.exports = router;
#

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

#

Réglé 😉

copper pagoda
#

Bonsoir, je rencontre un nouveau problème.

En faites j'aimerai faire un système de connexion avec Discord donc Oauth2, je l'ai fini mais j'arrive pas à passer de ce que j'ai fait en js à html.

En gros, j'ai un fichier qui vérifie si la personne a un code dans le l'adresse url.
J'ai voulu faire un système de token en cookie pour mémoriser les données sur 7 jours. Mais je rencontre un problème à cet endroit.
J'ai réussi à créer le cookie et à la récupérer mais une fois avoir récupérer le cookie, j'ai accès à mon userId mais comment rentrer dans ma base de donnée mongo DB tout en étant sécurisé et en même temps dans un fichier html. je n'arrive pas à trouver de solution à cela.

Merci de votre aide.

void coyote
#

Salut ! Je me posais la question de comment on peut faire ce genre de chose ? (C'est juste un exemple mais je voudrait bien pouvoir crée ce gerne de catégorie avec mes commandes slash).
PS : Je sais crée une commande slash classique mais pas avec une catégorie comme target / amount etc...

desert riverBOT
jovial turret
#

Salut ! Je suis supra nul en node JS, et pour l'école je dois faire un projet qui combine

  • Vue.JS (avec Vite)
  • Typescript
  • Express

J'ai passé toute la matinée à chercher des tutos pour savoir comment faire, mais ça me rend fou ! Il y a 3000 différentes manière de faire la même chose, et les tutos semblent tous se contredire ! Un coup c'est le front qui est en Typescript, un coup c'est le back, mais jamais tout... suefort
Est-ce que quelqu'un aurait un tutoriel qui répondrait à mon besoin ? Ou un projet template sur lequel je pourrais travailler ?

Je connais un peu TS, je développe les scripts de mon site avec, mais c'est sur Laravel (c'est donc bcp plus simple). En cours on a simplement vu comment faire un site avec express, mais très rapidement.

Merci d'avance pour votre aide !

floral bolt
#

Et pour express n’importe quel tuto de 2010 sera bien 🙂

jovial turret
#

oui mais il n'y avait pas que ça

#

j'ai fusionné un ancien tp avec le projet vite et c'est bon x)

spice grail
# jovial turret Salut ! Je suis supra nul en node JS, et pour l'école je dois faire un projet qu...

Pour la prochaine fois tu as juste à chercher sur internet quel frame work fait quoi. La dans ton cas (bon je connais pas vuejs) mais en ayant cherché j'ai vu que c'était utilisé pour le front. Dans la majeure partie des cas express est utilisé pour le back, et ensuite tu découpe ton projet avec ce que tu dois faire.
et typescript c'est juste du js typé compatible avec a peu près tout (vuejs je ne sais pas mais je suppose que oui).
Donc tu vois pas si compliqué que ça

jovial turret
#

c'est facile à dire quand tu sais comment utiliser node js et son environement

#

ça n'est pas la même chose quand t'es dev php et que le js que tu fais est cantonné aux balises scripts (même si c'est de moins en moins le cas) :3

spice grail
jovial turret
#

Ok snox KaPOP

floral bolt
#

😄

grave bronze
#

Bonjour, je viens de me lancer dans l'apprentissage de Sequelize et j'ai cette erreur que je ne comprend pas : code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlState: '28000', sqlMessage: "Access denied for user ''@'localhost' (using password: YES)", sql: undefined }, original: Error: Access denied for user ''@'localhost' (using password: YES) Sauriez vous à quoi elle est dûe ? Merci d'avance pour votre réponse.

#

Mon utilisateur est bien renseigné

#

C'est au moment d'acceder aux données que ça me pose problème

torn fog
grave bronze
#

Pourtant le mot de passe est bon

torn fog
#

La ça essayé de se connecter avec un utilisateur vide

#

Donc ""

grave bronze
#

Tu sais comment régler le problème ?

torn fog
grave bronze
#
const sequelize = new Sequelize(config.database, config.username, config.password, {
  host: 'localhost',
  dialect: 'mysql',
  port: 3306
});
``` Ca c'est la connexion
#

Toutes les infos sont bonnes

#
const news = await News.findAll();
``` La je récupère les news
#
import { Sequelize, DataTypes } from 'sequelize';

const sequelize = new Sequelize('mysql::memory:')

// Modèles
export const News = sequelize.define('news', {
    title: {
        type: DataTypes.STRING,
        allowNull: false,
    },
    content: {
        type: DataTypes.TEXT,
        allowNull: false,
    },
});
``` Qui correspondent à ca
torn fog
#

Je parie qu'il est vide

grave bronze
#

Ok

#

Non c'est bon

#

Et tout est bon

torn fog
#

Car là c'est juste la variable qui contient les infos de connexion

grave bronze
#
sequelize
  .authenticate()
``` Là
#

Je comprend rien à cette erreur

#

Ca fait un mois que j'essaie

torn fog
#

Met bien une promise pour la gestion d'erreur etc

grave bronze
#

Un .then ?

#

Et la récupération se fait dans un try/catch

#

Je regarde ton tuto merci

torn fog
#

@grave bronze et du coup ça a marché ?

grave bronze
#

Il faut que je regarde un peu plus en détail

#

J’avais pas le temps hier

#

Mais de ce que j’ai vu ça ressemble vachement à ce que j’ai fait

plush lava
#

Coucou, j'aimerais avoir votre avis sur le meilleur affichage et la meilleure utilisation ;

En gros j'ai un bot Discord qui check toutes les 30s si le serveur de jeu est en ligne (grâce à gamedig). Si ce n'est pas le cas ou qu'il ne trouve pas le serveur ça renvoie une erreur (via catch()). J'aimerais savoir si pour vous c'est une erreur ou un simple avertissement, sachant que c'est la fonction principale du bot mais que cela ne lui empêche pas d'executer le reste du code, c'est juste l'API qui renvoie aucune données en gros.

TL;DR : Vous préférez au niveau de l'affichage :

  1. Message d'erreur (en rouge)
  2. Message d'avertissement (en jaune)

(Debug est juste un test il n'est pas affiché par défaut)

cyan iron
#

Le mieux serait de pouvoir différencier le timeout d'une erreur
Mais dans tous les cas pour moi il faut le mettre en rouge, c'est une erreur

timid loom
#

une erreur cause pas toujours un crash donc je suis d'accord avec wailrone

plush lava
# cyan iron Le mieux serait de pouvoir différencier le timeout d'une erreur Mais dans tous ...

Je souhaite garder un truc simple à faire et surtout à lire dans le code source. J'essaye d'utiliser un style général pour l'affichage des logs dans la console pour éviter de trop surcharger. Je voulais juste savoir si c'était une erreur ou un avertissement.

Je tiens à préciser qu'en effet, lorsque cette erreur apparait le reste de la fonction n'est pas executé (c'est à dire l'envoi du message dans le salon). Cependant le reste du code indépendant de la fonction continue.

D'ailleurs j'ai fait des fonctions pour chaque type de logs pour appliquer le style correspondant, tu en pense quoi ? Est-ce que c'est une bonne pratique ?

cyan iron
# plush lava Je souhaite garder un truc simple à faire et surtout à lire dans le code source....

Pour moi c'est une erreur, que le code crash ou pas, donc tu devrais partir sur une ErrorLog
Et sinon les fonctions oui bien sûr c'est une bonne pratique pour uniformiser tes logs c'est le mieux à faire
Après pour moi il manque des choses dans tes logs ( Date, fichier, ligne )
D'après ce que je vois c'est du JS, mais si c'est du Typescript, il vaudrait mieux faire une enum pour les différents niveaux de logs

plush lava
cyan iron
#

Okay, et hésite pas à faire des fichiers de log aussi

#

Sépare les fatal / error du reste

#

Fin c'est ce que je te conseille en tout cas, ça permet de mieux s'y retrouver

plush lava
#

Tu veux dire séparer les fonctions de logs dans un autre fichier ?

#

du style functions.js ou logger.js ?

cyan iron
#

Non non ! Mettre des logs dans un fichier log

plush lava
#

Ah mettre la sortie des logs dans un fichier ?

cyan iron
#

Moi perso je les trie par dates

plush lava
#

Ah oui d'accord

cyan iron
#

Bon c'est une petite app donc voilà

plush lava
#

Là c'est juste un bot de test pour l'instant, je voulais le mettre en open source une fois que je l'aurais retapé mais oui pourquoi pas

#

Après c'est juste un petit bot donc je sais pas si ça sert 🤔 Peut-être je l'inclurais dans le mode debug (qui est une valeur dans config.json)

cyan iron
#

A la limite garde les erreurs dans un fichier et ça suffit

#

Après si t'utilise pm2 il le fait tout seul KaPOP

plush lava
#

La dernière fois que j'ai entendu parler d'un bot qui gardait toutes les logs ça a fini à faire un fichier de log qui faisait plusieurs GO 👀

cyan iron
#

Ah et j'avais pas vu pardon, pour les erreurs fait un console.error

cyan iron
#

Faut faire plusieurs fichiers comme ça tu peux mettre une limite

#

Au bout de 100 fichiers ça supprime les plus anciens par exemple, tu vois ? Sinon ton serveur se suicide LULW

plush lava
#

Oui je me doute bien, mais comme je t'ai dit je vois pas trop l'intérêt là pour un bot qui fonctionne uniquement sur un seul fichier index 🥲

plush lava
#

entre console log et error?

cyan iron
#

Alors sur du web ça met une erreur dans la console ( genre comme ça )

#

Et pour une application Nodejs c'est surtout pour mieux gérer tes erreurs niveau logs toujours pareil

#

Si t'utilise pm2 par exemple il va différencier les deux il me semble 👀
Mais c'est plus une bonne pratique qu'autre chose

#

Tout est dit

plush lava
#

Ok je vois merci !

misty parcel
#

@queen ocean Bon j'ai bien avancer sur sapphire c'est assez cool ce machin mais juste, comment on fait pour gérer les intéractions avec des menus/boutons/modals ? Faut créer un dossier interaction comme avec sheweny ou bien ?

#

🙂

queen ocean
# misty parcel <@177171200177340417> Bon j'ai bien avancer sur sapphire c'est assez cool ce mac...

Yep tu dois créer un dossier interaction-handlers au même niveau que ton fichier où tu as créé le client donc si tu créé le client dans src/index.js alors tu dois créer le dossier src/interaction-handlers

Dedans tu peux créer des sous-dossier genre modals, buttons etc si tu veux mais attention tous les fichier du dossier interaction-handlers doivent avoir des noms différents même si ils sont dans 2 sous-dossier différents

#

Si tu veux renommer le dossier interaction-handlers en interactions :

const { getRootData } = require('@sapphire/pieces')
client.stores.get('interaction-handlers').registerPath(join(getRootData().root, 'interactions'))
queen ocean
#

Oui KaPOP

misty parcel
#

ok

#

ok Zaros

wheat furnace
#

Emoji de riche ça

glass cargo
#

C'est l'argent de CA qui lui paye kapp

misty parcel
#

:sad:

harsh snow
#

Bonjour, j'aimerai savoir comment faire message context menu (voir photo) j'ai suivi un tuto mais cela ne s'affiche pas.

keen narwhal
harsh snow
#

mais rien pas d'erreur, ni le context menu

visual sequoia
rancid willow
#

Bonjour, comment puis je m'y prendre pour mettre un rôle à tout mon serveur grâce à une commande ? je ne sais pas quelle syntaxe utiliser :)

violet knot
#

Loop sur tout les membres et tu leur donne le role

woven cosmos
#

Bonjour

#

Je me demandais a propos de mon site en react

#

Esque si j'ai un setInterval qui tourne constamment avec 1ms d'intervalle, mais qui ne fais que vérifier un if sans rien faire, esque ça impacte les performances

cyan iron
#

Toutes les 1ms ?? Tu fais quoi pour avoir besoin de vérifier tous les 1ms ?

#

Dans tous les cas à mon avis c'est une erreur de conception suefort
Mais oui il y aura un impact dans tous les cas, minime ou pas ça dépend de ce que tu vérifies

woven cosmos
#

Je vérifie si une véritable est true ou false

cyan iron
woven cosmos
#

enft

#

verifieFirst a besoin d'un autre composant react mais celui se charge après celui de mon script

#

donc il marche pas tant que l'autre n'est pas chargé

#

quand il marche la variable yaUnpremerChap devient true

#

mais ça affecte l'affichage du site donc je veux que ça marche le plus vite possible pour pas qu'on vois un truc pop d'un coups

cyan iron
#

Bon je ne connais pas ton projet et je n'ai jamais utilisé React mais je te conseille de régler ton problème plutôt que de le contourner avec un setInterval KaPOP
Tu peux soit faire en sorte de charger le composant au bon moment, soit faire en sorte d'envoyer une info à ton composant via par exemple un EventEmitter ( angular, je connais pas l'équivalent avec react )

SInon si t'as la flemme, fait au moins en sorte d'arrêter ton setInterval une fois que la condition est validée

#

Avec clearInterval()

woven cosmos
#

👍

spice grail
# woven cosmos 👍

qu'est-ce que tu veux vérifier toute les 1ms ? Wailrone dit vrai, si tu as tjr le soucis dis moi ^^

plain raven
#

Bonjour, j'espère que vous allez bien je viens ici pour demander de l'aide, je suis entrain de créer une sorte de bot indépendant qui quand on lui donne un fichier html il annalyse le code et recupère tout le contenu des balises script, ayant pas la capacité j'ai demandé à ChatGPT mais ça a pas l'air de fonctionner :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Analyseur de Code JavaScript</title>
</head>
<body>

    <h1>Analyseur de Code JavaScript</h1>

    <input type="file" id="fileInput" accept=".html" />
    <button onclick="analyserCode()">Analyser le Code</button>

    <div id="resultat"></div>

    <script>
        function analyserCode() {
            var fileInput = document.getElementById('fileInput');
            var resultatDiv = document.getElementById('resultat');

            var file = fileInput.files[0];

            if (file) {
                var reader = new FileReader();

                reader.onload = function(e) {
                    var contenuFichier = e.target.result;
                    var analyse = extraireContenuScript(contenuFichier);
                    resultatDiv.innerHTML = '<h2>Contenu des balises script :</h2>' + analyse.join('<br>');
                };

                reader.readAsText(file);
            } else {
                resultatDiv.innerHTML = '<p>Veuillez sélectionner un fichier HTML.</p>';
            }
        }

        function extraireContenuScript(html) {
            var regex = /<script\b[^>]*>([\s\S]*?)<\/script>/g;
            var resultats = [];
            var match;

            while ((match = regex.exec(html)) !== null) {
                resultats.push(match[1].replace(/\s+/g, ' ')); // Supprime les retours à la ligne et espaces multiples
            }

            return resultats;
        }
    </script>

</body>
</html>
keen narwhal
#

voir si le fichier est correctement selectionné

#

J'ai essayé de mon côté ça fonctionne plutôt pas mal

still jewel
#

Coucou tout le monde,

Je suis passé du package discord.js 12.5.1 au 14.14.1

Je n'ai pas d'erreur, mais mon code ne fonctionne plus du tout 🥨

Est-ce que, mis a pars la doc, il y aurait un moyen de verifié le why du pourquoi le code ne fonctionne po ?

#

ainsi que la console

Logged in as 7Time#4078!
index.js:40
CheckAndAssignRole fonctionne
index.js:176
Role assignment check completed.
index.js:58
SendLogsMessage fonctionne

still jewel
#

J'ai remarqué que a partir de client.on(presenceupdate), il ne passe pas

spice grail
still jewel
#

AHhaha effectivement, j'ai peut etre un peu forcé le truc...

Regarde ce que tu peux faire, dans le pire des cas je run mon bot en 1.12 en attendant et je consturit un nouveau en 14.14.1 tout en me jettant par la fenêtre

spice grail
still jewel
#

Thanks ^^

spice grail
#

(sans le token évidemment)

spice grail
still jewel
#

{
"prefix": "!",
"roleId": "1178671019876167742",
"message": "Pour pas me faire retimeout",
"logs": "1178841062471647254",
"specialMessageChannel": "1178841062471647254",
"TOKEN": "Sans le token",
"allowedUser": "1144291056444260412"
}

spice grail
#

thx

still jewel
#

Vu que je suis une brêle, j'avais mis le lien d'invitation

spice grail
#

il fonctionne:
Logged in as ...
CheckAndAssignRole fonctionne
CheckAndAssignRole fonctionne
CheckAndAssignRole fonctionne
CheckAndAssignRole fonctionne
Role assignment check completed.
Le salon de logs n'existe pas.
PresenceUpdate fonctionne

still jewel
spice grail
#

il y avait quoi d'autres ?

#

à vérifier

still jewel
#

Le client.on message

et le

Sendmessagelog

spice grail
#

ok ok

still jewel
#

J'ai essayé de mettre le status,

j'ai eu ça dans la console

joana_15_ - Ancien statut: dnd, Nouveau statut: dnd
index.js:92
Statut trouvé: Oui
index.js:95
Statut trouvé. Ajout du rôle...
index.js:98
CheckAndAssignRole fonctionne
index.js:180
PresenceUpdate fonctionne

mais je n'ai pas reçu le role et le message ne c'était pas envoyé dans le discord

spice grail
#

C'est good

#

pardon j'ai eu une réu, bref le soucis étant le channel

#

si tu ne met pas une guild il ne va pas reconnaitre le channel

still jewel
spice grail
#
    const guildId = 'xx';
    const logsChannelId = 'xx';

    const guild = client.guilds.cache.get(guildId);
    const logsChannel = guild.channels.cache.get(logsChannelId);

    if (!logsChannel) {
        console.error("Le salon de logs n'existe pas.");
        return;
    }
#

Pour récupéré le channel je suis passé par la guild et là ça fonctionne sans soucis

#

(le code que j'ai envoyé c'est pour expliquer hein, y'a moyen de faire bien plus propre que ça, je tiens à préciser)

spice grail
still jewel
#

en gros, si je met xx en statut, c'est censé envoyé un message + me mettre un role

spice grail
#

euuuh par tes id pardon

#

celui de ta guild et de ton channel

still jewel
#

oki olki je vois, je vais test tout ça

#

thanksss

spice grail
#

np, tu avais d'autres soucis ?

still jewel
#

pas pour le moment

spice grail
tacit smelt
#

Bonjour/Bonsoir, je suis actuellement sur un projet qui consiste à créer une carte du monde avec leaflet le tout sur electronjs. Cette carte est composée de toutes les provinces du monde avec un geojson. Maintenant ce n'est pas très beau puisque cela fait énormément de frontières (en plus de ne pas être opti). Ce que je voudrais faire c'est plutot que d'afficher toutes les frontieres de chaque provinces, afficher uniquement les frontières entre les pays. Chaque provinces dans le json possède une propriété avec l'iso du pays (par exemple "FRA" pour la France etc.). Et grâce à ça, je souhaite créer une frontière entre toutes les provinces qui ne possèdent pas le même iso. Par exemple si une province avec l'iso FRA et une autre collée à celle-ci possédant DEU comme iso, une ligne doit être tracée. Et pour cela je teste les voisins de chaque provinces pour détecter des collisions et déterminer les points de contacts (et ainsi tracer des lignes à partir des coordonnées récoltées. Cependant ça marche à moitié, seul quelques frontières sont dessinées + des problèmes de traçages (plusieurs traits sur un etc). Auriez-vous une idée de pourquoi ça fait ça ? Merci d'avance
https://pastebin.com/dK81Xah9
Résultat que j'obtiens :

copper pagoda
#

Bonsoir, j'ai un problème avec mon site.

J'ai fait un calendrier de l'avent et en faites quelques personnes sur Apple ont un bug. Ils peuvent ouvrir certaines cases en avance. Je ne comprends pas trop pourquoi, ce bug persiste que sur une plateforme.

oak turret
#

Explique nous plus précisément avec ton code

copper pagoda
#

Je suis en train de voir pour le résoudre j'ai situé d'où vient le problème.

grave lily
#

comment voir qu'un client a fermer l'onglet de ton site en js

glass cargo
glass cargo
#

WebSocket

grave lily
#

ok mrc

keen narwhal
#

Bonsoir, j'essaye de faire un systeme qui give de la monnaie virtuelle si l'user répond à un message spécifiqiue, mais j'arrive à get que le mesesage envoyer par l'utilisateur

#

j'ai essaye de fetch mais egalement il fetch que le message envoyer par l'user et pas le contenu du message répondu

#

il existe un moyen ou pas du tout ?

queen ocean
#

@keen narwhal tu utilises discordjs ?

queen ocean
spiral cave
#

Hello !
Je rencontre un petit soucis avec une interaction (Context Menu)
J'utilise le framework SapphireJS et je dev en CommonJS. Et je suis également débutant dans ce langage.
Dans le but d'un apprentissage, je suis entrain de créer un bot discord qui peut créer des salons (Publique et privé). Sauf que lorsque j'essaie de faire une commande (Avec un context menu, càd que lorsque je fais clique droit sur un joueur), le interaction.member.voice.channel me renvoie null hors que je suis dans le salon vocal 🤔 .
Si vous avez besoin de code, dites moi quelle partie, il y a aucun problème 😉

#

Le code de mon interaction (pour ajouter un membre au Salon Privé)

const { Command } = require('@sapphire/framework')
const { ApplicationCommandType, PermissionFlagsBits } = require('discord.js');

module.exports = class addUserToPrivate extends Command {
    constructor(ctx, options) {
        super(ctx, {
            ...options,
            description: "Ajouter au S.P",
        });
    }

    registerApplicationCommands(registry) {
        registry.registerContextMenuCommand((builder) =>
            builder
                .setName(this.description)
                .setType(ApplicationCommandType.User)
        );
    }

   contextMenuRun(interaction) {
        const voiceChannel = interaction.member.voice.channel
        console.log(voiceChannel) // Me renvoie null
    }
}
queen ocean
spiral cave
#

Hey mec comment tu vas ? ça va ou quoi ? Moi je vais bien

#

|| Le boulet que je suis ||

queen ocean
spiral cave
#

Azy on va work mec

little oracle
#

" J'espère avoir été clair* "

uncut robin
cobalt oyster
uncut robin
cobalt oyster
long pumice
#

Bonjour à tous ! Je suis un nouveau développeur et je me suis lancé sur Vue.js et je ne comprend pas certaines choses, quelqu'un pourrait-il m'aider ?

long pumice
queen ocean
long pumice
#

Aie très bien, mes components ne fonctionnent plus et j'ai le message d'erreur suivant "[Vue warn]: Failed to resolve component: Header
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
at <App>" J'ai pourtant suivi la doc jusqu'ici

keen narwhal
#

Sans code on peut pas t'aider 😉 @long pumice

#

Mais en gros vérifie que ton Header tu l'as bien import etc

#

Que ta pas fait d'erreurs d'orthographes aussi ça peut aider

long pumice
spiral cave
#

Salut ! Je me demandais, quel est le flag ou comment se nomme cette permission lorsque je veux permissionOverwrites sur un voiceChannel : (DiscordJS)

spiral cave
#

Merci, j'avais mis ça mais ça n'avait pas fonctionné 🤔 ptete que j'avais pas refresh (là c'est bon)

slender meadow
#

Bonjour tout le monde, j'ai une petite question à propos de React et NextJS. Actuellement, je commence tout juste React et j'entends beaucoup parler qu'il faut apprendre un framework à côté tel que NextJS ou Remix. Et comme j'ai un gros projet sur React qui commence très bientôt, vous me conseillez de créer ce projet sur Next quitte à faire que du React pour l'instant ? Ou Créer le projet sur React seulement et le migrer plus tard sur Next quand j'aurais les compétences ? Merci 🙂

floral bolt
#

Va direct sur next, ça reste énormément similaire à React

slender meadow
floral bolt
slender meadow
floral bolt
#

enfaite apres ca marche comme ca ```js
// next.config.js
module.exports = {
exportPathMap: async function () {
return {
'/': { page: '/' },
'/about': { page: '/about' },
// ... Ajoute d'autres pages ici
};
},
};


C'est long a faire et t'es pas sur que ca marche bien
wary urchin
misty parcel
#

Tu en connais qui peuvent héberger du Node ?

slender meadow
slender meadow
#

Et désolé si je réponds tard je n’avais pas vu le message 🙂

wary urchin
misty parcel
keen narwhal
#

Je te conseil aussi je suis chez eux depuis quelques années et j'adore

misty parcel
#

Ok

floral bolt
#

Si vous prenez un vos je vous conseil coolify

#

Un truc que tu install sur ton vps pour gérer t’es projets

plucky raven
#

Quelle un peux m'aider à faire sa stp

glass cargo
mystic spruce
#

quelqun ses Ou pas

#

si ya quelqun qui ses svp

sinful flicker
#

Bot.commands n’existe pas

mystic spruce
#

Ces quoi alors

glass cargo
# plucky raven

Clear ton cache, ca c’est l’ancienne version du site ^^

cyan iron
#

J'aime bien leur nouvelle doc

normal lichen
#

Bonjour, je fait un projet qui a un fron en next ts et un back en nest, j'aimerais faire une auth par discord, j'ai créer mes routes et autres, lorsque je fait localhost:9000/auth/callback j'arrive sur la page de connexion avec discord, mais lorsque depuis mon projet next (localhost:3000) je clique sur le bouton connexion avec discord, la console me dit

localhost/:1 Access to fetch at 'https://discord.com/oauth2/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2Fauth%2Fcallback&scope=identify%20email&client_id=1184073182068609044' (redirected from 'http://localhost:9000/auth/callback') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

j'ai ce code pour mon fetch coté front

export default function Home() {
    const [isLoading, setIsLoading] = useState(false);

    const handleLogin = async () => {
        setIsLoading(true);
        try {
            // Effectuer une requête POST vers votre backend Nest.js pour démarrer le processus d'authentification
            const response = await fetch('http://localhost:9000/auth/callback', {
                method: 'GET', // Pour inclure les cookies lors de la requête
                mode: 'cors',
                credentials: 'include',
            });

            // Rediriger l'utilisateur vers l'URL d'authentification Discord
            console.log(await response);
            // window.location.href = await response.json().redirectUrl;
        } catch (error) {
            console.error('Erreur lors de l\'authentification', error);
        } finally {
            setIsLoading(false);
        }
    };

    return (
        <div>
            {isLoading ? (
                <p>Chargement en cours...</p>
            ) : (
                <button onClick={handleLogin}>Se connecter avec Discord</button>
            )}
        </div>
    );
};

et ce code coté back dans le main.ts

async function bootstrap() {
    const app = await NestFactory.create(AppModule);

    app.use(cors({
        origin: 'http://localhost:3000', // Remplacez cela par l'URL de votre frontend
        credentials: true,
    }));

    await app.listen(9000);
}

Le soucis vien de cors mais je ne comprend pas quoi exactement 😅

plucky raven
normal lichen
plucky raven
normal lichen
#

ok et tu veut faire quoi dans ces events ?

plucky raven
normal lichen
#

montre ton code

plucky raven
normal lichen
#

ah et ta même pas essayer de faire un code ?

#

le problème c'est que sans connaitre la structure de ton bot et la gestion des interaction je peut pas trop t'aider :/

plucky raven
#

Avec un basse de mon bot tu pourras m'aider ou pas

normal lichen
#

oui

#

mais apres le principe n'est pas qu'on fassent le travail a ta place, plutot qu'on t'aide lorsque tu a un soucis

plucky raven
glass cargo
lucid meadow
#

salut quelqu'un pourrai m'aidez a déployer un projet adonis ?

glass cargo
lucid meadow
glass cargo
#

Ok ok 👍

fierce plank
#

Bonsoir, quelqu'un saurait me dire comment recuperer les cookies du client avec react car j'utilise universal-cookieet quand je les logs ils sont null alors que j ai bien une valeur de presente dans mes cookies j ai essayé avec safari et chrome j ai exactement le meme probleme

#

voila la methode que j'utilise pour les recuperer

#
const cookies = new Cookies();
console.log(cookies.get('token'))
#

Ou si vous connaissais un autre moyen de verifier que la personne est bien login en oauth, et donc de bloquer les routes react si il ne l'es pas

floral bolt
#

Y’a jscookie c’est mieux je penses

fierce plank
keen narwhal
#

Ta bien set ton cookie etc?

keen narwhal
fierce plank
#

mais t inquiete je vais faire autrement

normal lichen
#

hello je suis entrain de realiser un projet en next avec un back nest, et j'aimerais faire une connexion via discord, j'ai créer mes controller et ma logique coté back (lorsque je tape l'url de mon back qui est localhost:9000/auth/callback j'arrive sur la page de connexion via discord et tout fonctionne), j'essaye de fetch mon back depuis mon front mais cors me dit :

Access to fetch at 'https://discord.com/oauth2/authorize?...' (redirected from 'http://localhost:9000/auth/callback') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled

Savez vous si il est possible de faire comme j'essaye en mettant la logique de connexion coté nest ou si je doit mettre directement l'auth discord dans le projet next ? Cela m'arrangerais beaucoup d'avoir la logique de connexion coté back

merci beaucoup

keen narwhal
# normal lichen hello je suis entrain de realiser un projet en next avec un back nest, et j'aime...
normal lichen
#

le problème étant que tout mes autres appels fonctionne, la connexion discord est vraiment le seul qui passe pas 😅

#

j'ai bien authoriser les credentials et autre dans ma requete

keen narwhal
#

tu as bien inclus les entêtes cors ?

normal lichen
#

c'est a dire ?

keen narwhal
#

tu as bien import cors ?

normal lichen
#

de mon coté back j'ai bien authoriser les appels depuis mon domaine

#

oui et config pour autorise rles appels depuis mon projets next

keen narwhal
#

Fait voir

#

ce sera plus simple avec le code

normal lichen
#
    app.use(cors({
        origin: 'http://localhost:3000',
        credentials: true,
    }));
keen narwhal
#

Essaye de regarder sur la doc de discord peut-être qu'ils précisent certaines choses. ça peut être vachement stricte

normal lichen
#

je vais regarder

#

je sais que discord est stricte niveau authorization de domaine, je pense que cela peut venir de la car j'autorise le port 9000 mais aps le port 3000, de plus dans le network ma requete passe bien en status 200

#

mais dans le header Access-Control-Allow-Origin est null

Merci je vais regarder coté discord

keen narwhal
#

Est-ce le cas pour toi ?

normal lichen
#

bah du coup je dirais que non

#

car mon appel part de next est envoyer est traiter par nest qui demande a discord la connexion

#

je pense que sa vien du fait que sa rout par nest qui pose problèmes, je vais essayer de mettre directement dans next l'auth, merci beaucoup

keen narwhal
#

C'est possible que tu puisses pas passer par nest

#

tu devrais essayer de passer par ton front end pour le coup

normal lichen
#

yes c'est ce que je vais voir, merci beaucoup ^^

keen narwhal
normal lichen
#

yes, j'ai jamais fait en next alors je t'avoue sa va peut etre me prendre un peu de temps je suis entrain de regarder un peu des exemple sur git et autre x)

keen narwhal
#

J'ai regardé vite fais

#

ça passe avec next-auth et tu fais tes configurations next-auth etc

normal lichen
#

on est d'accord sur les ancienne version de next le _app.tsx c'est désormais layout.tsx non ?

#

j'ai pas connu le next d'avant mdrr

keen narwhal
#

Non ça reste toujours le _app.tsx j'crois bien hein

#

après j'crois j'viens de m'informer le layout est mieux

#

Sincèrement, c'est une question auquelle je ne serais pas répondre ^^

normal lichen
#

yes xD

#

je vais chercher mdrrr, j'ai jamais fait sa me permettra d'apprendre x)

feral oyster
#

Bonjour j'aurais une question par rapport a ping des membre dans un modal es que c'est possible avec disocrd js?

normal lichen
#

Hello, vous savez comment on peut update les permissions d’un channel en discord.js ? J’aimerais faire une commande de /add pour ajouter une personne a un ticket, le soucis étant que avec permissionOverwrite sa ecrase les anciennes permissions pour mettre les nouvelles, et j’ai pas forcément envie de passer par une base de données alors je voulais savoir si vous avez une autre alternative 😅

queen ocean
normal lichen
#

D'accord merci je suis trop con j'avais pas vue, j'utiliser juste permissionOverwrite je savais pas qu'on pouvais mettre autre chose apres mdrr 😅

sand mountain
#

Bonsoir comment je dois faire pour return en entier mon string avec une fonction asynchrone?

#

ça me retourne ""

sand mountain
#

ok merci j'ai déjà trouver une alternative

void coyote
# sand mountain ça me retourne ""

Tu met return après ton string. Mais return arrête le code tu es conscient ?
A la position actuelle ça fonctionne pas car ton return est trop loin.
C’est comme si tu es sur une autoroute au km nº100 et qu’il a un panneau au km nº120 pour te dire qu’au km nº100 il y a des travaux, du coup ça crée une « erreur » puisque bah du coup, tu es trop loin.
||Je dis « erreur » car la il doit pas en avoir puisque ton code en soit est bon.||

woven cosmos
#

yoo bonjour

#

ici j'ai deux event listener qui appelle une certaine fonction

#

le problème c'est que dans le cas de l'event click, la fonction s'envoi et se déroule sans problème, alors que dans le cas de l'event touche du clavier, l'event s'envoi, la fonction a bien lieu, j'ai aucune erreur, mais ça ne fait pas ce qu'elle est sensé faire

#

j'aimerais savoir si vous avez une piste

#

car moi j'en ai pas

#

(le click n'est pas un event listener, oui, mais ducoups qu'est ce que ça cause comme prblm quand j'appelle ma fonction previousImage en eventlistener?)

pure tiger
# woven cosmos ici j'ai deux event listener qui appelle une certaine fonction

la déclaration de tes fonctions ne sont pas logique
tu devrais plutot les déclarer avec const <name> = () => {...}
ici du let ça n'a pas de sens surtout que tu ne devrais pas re déclarer tes fonctions derrières

ensuite ton let lecteur il devrait prendre la valeur retourné par ta fonction ou directement ton selecteur et il devrait être en const a priori

enfin tu appelle ou handleKeysHandler ?

#

pour les events

#

lis ça aussi pour comprendre les scoop d'une fonction : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions

(ensuite regarde les scoop de let,var,const)

MDN Web Docs

Generally speaking, a function is a "subprogram" that can be called by code external (or internal, in the case of recursion) to the function. Like the program itself, a function is composed of a sequence of statements called the function body. Values can be passed to a function as parameters, and the function will return a value.

woven cosmos
#

ok

#

j'ai changé la syntaxe comme tu l'a dis

#

mmh

#

j'ai pas encore lu toute la docu que t'a envoyé

#

'fin, tout marche mais

#

pourquoi ya une difference de comportement entre les deux fonction nextImage ??

#

alors qu'elles viennent du même endroit

#

comment ça se peut

woven cosmos
#

au final je suis passé par un onkeydown sur ma div plutot qu'un eventlistener et ça marche

#

jsp quelle était le prblm mais bon

sand mountain
void coyote
lucid meadow
#

salut tout le monde j'avais une petite question quand faire un serveur component ou client components ?

pure tiger
autumn tendon
#

Bonjour ! J'ai un problème avec mon code discordjs (v14)

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('send-leaks')
        .setDescription('Envoyer votre leak !')
        .addStringOption(option =>
            option.setName('type')
                .setDescription(`Le type de votre leak ("battle pass, nouveau mode de jeu.")`))
        // Option
        .addStringOption(option =>
            option.setName('date')
                .setDescription('La date de sortie de votre leak.')),
    async execute(interaction) {
        await interaction.reply({ content: ':incoming_envelope: Votre leak a bien été envoyé.', ephemeral: true });
        const recu = client.channels.cache.get('1186379582438396035');

        // Utilisez interaction.options.getString("type")() pour obtenir la valeur réelle
        let type = interaction.options.getString("type")();
        let date = interaction.options.getString("date")();

        const leak_embed = new EmbedBuilder()
            .setColor('Green')
            .setTitle(":bell: **Nouveau leak reçu** :bell:")
            .addFields(
                { name: ':question: Type du leak :', value: `\`${type}\`` },
                { name: ':clock1: Date de sortie du leak', value: `\`${date}\`` }
            )

        recu.send({ embeds: [leak_embed] });
    },
};
#

et seulement quand j'éxécute

#

la commande

#

ça me met cet erreur :

#
ReferenceError: client is not defined
    at Object.execute (c:\Users\Andsley\Desktop\AndsleyLeaks\commands\utility\send-leaks.js:16:16)
    at process.processTicksAndRejections (c:\Users\Andsley\Desktop\AndsleyLeaks\lib\internal\process\task_queues.js:95:5)
    at async Object.execute (C:\Users\Andsley\Desktop\AndsleyLeaks\events\interactionCreate.js:16:4) {stack: 'ReferenceError: client is not defined
    at …ndsleyLeaks\events\interactionCreate.js:16:4)', message: 'client is not defined'}


#

J'ai bien compris l'erreur

#

mais je ne comprends pas ou définir client

queen ocean
autumn tendon
#

j'essaye

#

donc si j'ai bien compris.. je change mon code en ça ?

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('send-leaks')
        .setDescription('Envoyer votre leak !')
        .addStringOption(option =>
            option.setName('type')
                .setDescription(`Le type de votre leak ("battle pass, nouveau mode de jeu.")`))
        // Option
        .addStringOption(option =>
            option.setName('date')
                .setDescription('La date de sortie de votre leak.')),
    async execute(interaction) {
        await interaction.reply({ content: ':incoming_envelope: Votre leak a bien été envoyé.', ephemeral: true });
        const recu = interaction.client.channels.cache.get('1186379582438396035');

        
        let type = interaction.client.options.getString("type")();
        let date = interaction.client.options.getString("date")();

        const leak_embed = new EmbedBuilder()
            .setColor('Green')
            .setTitle(":bell: **Nouveau leak reçu** :bell:")
            .addFields(
                { name: ':question: Type du leak :', value: `\`${type}\`` },
                { name: ':clock1: Date de sortie du leak', value: `\`${date}\`` }
            )

        recu.send({ embeds: [leak_embed] });
    },
};
queen ocean
autumn tendon
#

bah si, mais tu m'a dis de changer en interaction.client

queen ocean
#

En gros tu dois juste changer client en interaction.client

#

le reste pas besoin de modif

autumn tendon
#

donc c'est bon ce que j'ai fais

#

j'ai changé

#

client

#

en interaction.client

#

j'ai mis ça

#

et j'ai une autre erreur

#
TypeError: Cannot read properties of undefined (reading 'getString')
    at Object.execute (c:\Users\Andsley\Desktop\AndsleyLeaks\commands\utility\send-leaks.js:19:40)
    at process.processTicksAndRejections (c:\Users\Andsley\Desktop\AndsleyLeaks\lib\internal\process\task_queues.js:95:5)
    at async Object.execute (C:\Users\Andsley\Desktop\AndsleyLeaks\events\interactionCreate.js:16:4) {stack: 'TypeError: Cannot read properties of undefine…ndsleyLeaks\events\interactionCreate.js:16:4)', message: 'Cannot read properties of undefined (reading 'getString')'}

queen ocean
#

renvoie tout ton code modifié

autumn tendon
#
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('send-leaks')
        .setDescription('Envoyer votre leak !')
        .addStringOption(option =>
            option.setName('type')
                .setDescription(`Le type de votre leak ("battle pass, nouveau mode de jeu.")`))
        // Option
        .addStringOption(option =>
            option.setName('date')
                .setDescription('La date de sortie de votre leak.')),
    async execute(interaction) {
        await interaction.reply({ content: ':incoming_envelope: Votre leak a bien été envoyé.', ephemeral: true });
        const recu = interaction.client.channels.cache.get('1186379582438396035');

        
        let type = interaction.client.option.getString("type")();
        let date = interaction.client.option.getString("date")();

        const leak_embed = new EmbedBuilder()
            .setColor('Green')
            .setTitle(":bell: **Nouveau leak reçu** :bell:")
            .addFields(
                { name: ':question: Type du leak :', value: `\`${type}\`` },
                { name: ':clock1: Date de sortie du leak', value: `\`${date}\`` }
            )

        recu.send({ embeds: [leak_embed] });
    },
};
queen ocean
#

Ta pas lu ce que je t'ai dit

autumn tendon
#

mais si

queen ocean
#

Non

#

mais bref

#

remplace interaction.client.option par interaction.option

autumn tendon
#

je fais

#
TypeError: Cannot read properties of undefined (reading 'getString')
    at Object.execute (c:\Users\Andsley\Desktop\AndsleyLeaks\commands\utility\send-leaks.js:19:33)
    at process.processTicksAndRejections (c:\Users\Andsley\Desktop\AndsleyLeaks\lib\internal\process\task_queues.js:95:5)
    at async Object.execute (C:\Users\Andsley\Desktop\AndsleyLeaks\events\interactionCreate.js:16:4) {stack: 'TypeError: Cannot read properties of undefine…ndsleyLeaks\events\interactionCreate.js:16:4)', message: 'Cannot read properties of undefined (reading 'getString')'}


queen ocean
#

🤔

autumn tendon
#

ta une idée

#

?

pure tiger
autumn tendon
#

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('send-leaks')
        .setDescription('Envoyer votre leak !')
        .addStringOption(option =>
            option.setName('type')
                .setDescription(`Le type de votre leak ("battle pass, nouveau mode de jeu.")`))
        // Option
        .addStringOption(option =>
            option.setName('date')
                .setDescription('La date de sortie de votre leak.')),
    async execute(interaction) {
        await interaction.reply({ content: ':incoming_envelope: Votre leak a bien été envoyé.', ephemeral: true });
        const recu = interaction.client.channels.cache.get('1186379582438396035');

        
        let type = interaction.option.getString("type");
        let date = interaction.option.getString("date");

        const leak_embed = new EmbedBuilder()
            .setColor('Green')
            .setTitle(":bell: **Nouveau leak reçu** :bell:")
            .addFields(
                { name: ':question: Type du leak :', value: `\`${type}\`` },
                { name: ':clock1: Date de sortie du leak', value: `\`${date}\`` }
            )

        recu.send({ embeds: [leak_embed] });
    },
};
#

voilà 😄

barren glacier
#

interaction.options et non interaction.option

#

🦔

autumn tendon
#

jtm

#

merci mon reuf

barren glacier
#

Y'a pas de quoi

autumn tendon
#

bonne soirée

#

🙂

barren glacier
#

Bonne soirée !

pure tiger
#

C'est moi avec mes jumelles en train de surveiller le prochain qui va mettre son code avec un var ou un function

barren glacier
pure tiger
#

Je suis tilté j'ai besoin de bol

barren glacier
#

(Zaros on te voit)

pure tiger
barren glacier
mortal tinsel
#

salut, j'ai un probleme avec des affichages et non affichage si j'ose dire de div.

j'aimerai enfaite faire en sorte que quand j'appuie sur le lien il m'affiche la div et quand je clique sur fermer il la ferme mais ici ca m'affiche bien la div mais ne veux plus me la refermé



document.addEventListener("DOMContentLoaded", function () {
    // Récupérer les liens avec la classe "name"
    const links = document.querySelectorAll(".name");
    
    // Récupérer le lien pour fermer la div "mid"
    const lienFermerMid = document.querySelector(".fermer");
    // Récupérer la div "mid"
    const divMid = document.querySelector(".popup");
    
    
    // Ajouter un gestionnaire d'événement à chaque lien avec la classe "name"
    links.forEach(function (link) {
        link.addEventListener("click", function (event) {
            event.preventDefault();
            
            // Appliquer les styles à la div "mid"
            divMid.style.transform = "scale(1) translate(-50%, -50%)";
            
            // Retirer la classe "tournaments-details-hidden" pour afficher la div "mid"
            divMid.classList.remove("tournaments-details-hidden");
        });
    });
    
    // Ajouter un gestionnaire d'événement au lien "fermer"
    lienFermerMid.addEventListener("click", function (event) {
        event.preventDefault();
        console.log(divMid);

        // Appliquer les styles à la div "mid" pour la fermer
        divMid.style.transform = "scale(0) translate(-50%, -50%)";

        // Ajouter la classe "tournaments-details-hidden" pour masquer la div "mid"
        divMid.classList.add("tournaments-details-hidden");
    });
});

php/html

<a href="/tournaments/register/<?= $tournament->id ?>" class="name">S'inscrire au tournois</a>

                    <div class="tournaments-details-register tournaments-details-hidden popup" <?php
                    if (has_flash('error_create') || has_flash('error_join')) {
                        ?>
                            style="transform: scale(1) translate(-50%, -50%);" <?php
                    }

                    ?>>

                    <a href="#" style="margin-left: calc(100% - 20px); transform: translateX(-100%);margin-top: 10px;position: absolute;" class="fermer">X</a>

                        <div>

......
keen narwhal
mortal tinsel
keen narwhal
#

tournaments-details-hidden

mortal tinsel
#


.tournaments-details-register {
    width: 90%;
    height: 90vh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-image: linear-gradient(to bottom right, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 30%, rgb(0, 87, 100) 100%);
    ;
    border-radius: 30px;
    box-shadow: rgb(64, 64, 64) 0px 0px 40px;
    transition: 0.3s;
}

.tournaments-details-register iframe {
    width: 100%;
    height: 100%;
    border: none;
}

.tournaments-details-hidden {
    transform: scale(0) translate(-50%, -50%);
}

```(le prob c'est que quand j'appuie sur fermer il ne se remet plus aussi)
keen narwhal
#

dans ton js met un console.log() aussi

#

voir si tout ce passe bien

mortal tinsel
#
document.addEventListener("DOMContentLoaded", function () {
    // Récupérer les liens avec la classe "name"
    const links = document.querySelectorAll(".name");
    
    // Récupérer le lien pour fermer la div "mid"
    const lienFermerMid = document.querySelector(".fermer");
    // Récupérer la div "mid"
    const divMid = document.querySelector(".popup");
    
    console.log("1");
    
    // Ajouter un gestionnaire d'événement à chaque lien avec la classe "name"
    links.forEach(function (link) {
        link.addEventListener("click", function (event) {
            event.preventDefault();
            console.log("2");
            
            // Appliquer les styles à la div "mid"
            divMid.style.transform = "scale(1) translate(-50%, -50%)";
            
            // Retirer la classe "tournaments-details-hidden" pour afficher la div "mid"
            divMid.classList.remove("tournaments-details-hidden");
        });
    });
    
    // Ajouter un gestionnaire d'événement au lien "fermer"
    lienFermerMid.addEventListener("click", function (event) {
        event.preventDefault();
        console.log("3");

        // Appliquer les styles à la div "mid" pour la fermer
        divMid.style.transform = "scale(0) translate(-50%, -50%)";

        // Ajouter la classe "tournaments-details-hidden" pour masquer la div "mid"
        divMid.classList.add("tournaments-details-hidden");
    });
});
keen narwhal
#

T'a pas d'erreurs ?

#

dans ton css enlève le scale(0) voir

mortal tinsel
keen narwhal
#

dans ta console navigateur ta rien ?

mortal tinsel
keen narwhal
#

console.log(lienFermerMid); ou tu sélectionnes ton élément

keen narwhal
#

ça t'affiche ça avec le console log ?

mortal tinsel
#

et quand je clique sur le bouton

keen narwhal
#

ça veut dire que c'est bon dcp

mortal tinsel
#

?

#

ben non

#

quand j'afifche

#

ca ca marche

#

mais pour fermer

#

la ca marche pas

keen narwhal
#

Oui mais le .fermer est bien sélectionné

#

c'est ce que je veux dire

mortal tinsel
#

mais quand je clique dessus rien ne se passe

keen narwhal
#

console.log("Clic sur fermer détecté"); la ligne juste en dessous de ton lienFermerMid.addEventListener

keen narwhal
#

Donc on sait que c'est ici dcp

#

Je réfléchis

mortal tinsel
#

ok ok

#

merci ^^

keen narwhal
#

Vérifie si y'a pas un pb de positionnement des trucs comme ça déjà

mortal tinsel
keen narwhal
#

T'a raison

mortal tinsel
#

^^

keen narwhal
#

tes z-index sont corrects ?

mortal tinsel
#

il devrais pas etre mauvais car y en a pas pour cette endroit normalement

keen narwhal
#

Tu as pas d'autres scripts qui peuvent interférer avec lui ?

mortal tinsel
# keen narwhal Tu as pas d'autres scripts qui peuvent interférer avec lui ?

possible mais je pense pas

voici tout la page du scrpit



function showUser() {
    var userSection = document.getElementById("userSection");
    if (userSection.style.display === "none") {
        userSection.style.display = "block";
    } else {
        userSection.style.display = "none";
    }
}



function hiddenInfo() {

    const divMid2 = document.querySelector(".popup2");

    divMid2.style.transform = "scale(0)";

    divMid2.classList.add("tournaments-details-hidden");
}











document.addEventListener("DOMContentLoaded", function () {
    // Récupérer tous les éléments avec la classe "elementclick"
    const links = document.querySelectorAll(".elementclick");
    
    // Ajouter un gestionnaire d'événement à chaque élément avec la classe "elementclick"
    links.forEach(function (link) {
        link.addEventListener("click", function (event) {
            event.preventDefault();
            
            // Extraire l'ID de l'élément "elementclick" cliqué
            const elementId = link.id; // Supposons que l'ID soit de la forme "elementclick0", "elementclick1", etc.

            console.log(elementId);

            // Construire le sélecteur pour l'élément "elementcache" correspondant
            const cacheElementSelector = `.elementcache${elementId}`;

            // Récupérer l'élément "elementcache" correspondant
            const cacheElement = document.querySelector(cacheElementSelector);

            // Vérifier si l'élément "elementcache" est actuellement visible ou caché
            const isVisible = cacheElement.classList.contains("tournaments-team-visible");

            // Si l'élément "elementcache" est visible, le masquer ; sinon, l'afficher
            if (isVisible) {
                cacheElement.classList.remove("tournaments-team-visible");
            } else {
                cacheElement.classList.add("tournaments-team-visible");
            }
        });
    });
});












document.addEventListener("DOMContentLoaded", function () {
    // Récupérer les liens avec la classe "name"
    const links = document.querySelectorAll(".name");
    
    // Récupérer le lien pour fermer la div "mid"
    const lienFermerMid = document.querySelector(".fermer");
    // Récupérer la div "mid"
    const divMid = document.querySelector(".popup");
    
    console.log("1");
    console.log(lienFermerMid);
    
    // Ajouter un gestionnaire d'événement à chaque lien avec la classe "name"
    links.forEach(function (link) {
        link.addEventListener("click", function (event) {
            event.preventDefault();
            console.log("2");
            
            // Appliquer les styles à la div "mid"
            divMid.style.transform = "scale(1) translate(-50%, -50%)";
            
            // Retirer la classe "tournaments-details-hidden" pour afficher la div "mid"
            divMid.classList.remove("tournaments-details-hidden");
        });
    });
    
    // Ajouter un gestionnaire d'événement au lien "fermer"
    lienFermerMid.addEventListener("click", function (event) {
        console.log("Clic sur fermer détecté");
        event.preventDefault();
        console.log("3");

        // Appliquer les styles à la div "mid" pour la fermer
        divMid.style.transform = "scale(0) translate(-50%, -50%)";

        // Ajouter la classe "tournaments-details-hidden" pour masquer la div "mid"
        divMid.classList.add("tournaments-details-hidden");
    });
});

keen narwhal
#

appele tes showUser() ou hiddenInfo() directement depuis la console du navigateur pour voir si elles exécutent les actions correctement

#

PS : n'utilise pas var et function 😉

mortal tinsel
#

elle me l'on proposé

#

mais apres jpp dire qu'elle fonctinne ldr

oak turret
#

hello c’est quoi les soucis ?

keen narwhal
#

" j'aimerai enfaite faire en sorte que quand j'appuie sur le lien il m'affiche la div et quand je clique sur fermer il la ferme mais ici ca m'affiche bien la div mais ne veux plus me la refermé "

#

J'me dis qu'il y'a un truc qui interfère, mais quoi

oak turret
#

k, si t’as moyen de me donner le code actuel, je te file un codepen demain du fix, si j’oublie pas

mortal tinsel
oak turret
#

je te fais ça demain matin quand je serai au bureau

keen narwhal
#

Yep je pense ce sera mieux à 1h30 du matin perso j'suis plus qu'inapte je me tord la tête plus qu'autre chose xd

keen narwhal
#

mais

#

Function et var faut oublier par rapport aux scoops

#

const et let à la place

mortal tinsel
#

k

#

du coup a demain

#

et je croise des doight mdr

keen narwhal
#

Tkt c'est Lartaxx 😉

mortal tinsel
#

mdr ok ok

#

je coco pas

keen narwhal
#

Il va trouver le problème il est bien bien bien plus compétent que moi et de loin xd

mortal tinsel
#

ok ok

#

ben demain bn

keen narwhal
#

Bonne nuit et j'espère que tu auras ton bonheur demain ! x)

mortal tinsel
#

de meme

#

j'aurai sans doute d'autre demande par apres

#

mais la je vais dodo

#

a une prochaien

oak turret
#

yop, je vais commencer à look ton soucis

mortal tinsel
#

et ca fon,ctionne

#

mais merci quand meme

#

par contre j'aurai sans doute d'autre question un peu plus tard

oak turret
#

ok ça marche

mortal tinsel
#

car si c'est le cas alors oui j'aurai besoin de toi bientot mdr

oak turret
#

c'est mon boulot donc dis moi

mortal tinsel
#

si cela te derange pas

oak turret
#

oui vas-y

#

dans #php

mortal tinsel
pure tiger
mortal tinsel
#

prevenir*

keen narwhal
mortal tinsel
meager prism
#

Prend exemple sur Merlin

golden yew
#

React-js + tailwind

let couleur = "#FFFFFF"

        let isPath = useLocation().pathname === '/earth'; //Check si le chemin est /earth

        let classColor = isPath ? `fill-[${couleur}] hover:fill-[${couleur}]` : `fill-[#000000] hover:fill-[${couleur}]`;

        console.log("chemin : " + isPath)
        console.log("couleur : " + classColor)


        return (
                <svg
                        id='earth-btn'
                        className={classColor}```
Voila le code d'un icone svg de la terre qui se trouve dans une barre de navigation, qui doit devenire blanc si on passe la souris dessu, ou si le chemin est /earth

Sauf que je ne comprend vraiment rien... un coup sa marche, je relance mon serveur et sa ne marche plus, j'ai l'impression que c'est principalement le hover qui ne fonctionne pas tout le temps.
Des foix je change la couleur et sa remarche comme par magie etc... alors que dans mon console log j'ai bien les information voulut, avec les bonne couleur a la place des variable

Et sourtous, si je remplace les variable par des couleur statique (directement #FFFFFF) sa marche tres bien, du coup je presume que sa doit venire d'une particularité de react en therme de fonctionnement

Merci d'avance 🙂
floral bolt
golden yew
floral bolt
#

Ça mettra à jour ton composants à chaque changement d’état de ton site

#

Donc changement de lien ect

golden yew
#

en plus j'utilise des link donc sa ne recharge pas la page...

golden yew
floral bolt
#

Regarde comment marche le useeffect

golden yew
#

est-ce que tu pensse que sa pourait marcher

#

c'est que sa m'etonne enormement, meme si je recharge la page a la main cela ne change rien, et pourtant mes element sons bien stylisé

floral bolt
#

Oui

#

Peut être que la classe n’est pas généré par tailwind (c’est possible)

golden yew
#

du fait que j'utilise des variable ?

mystic spruce
#

quelqun peut maider

#

svp

grave bronze
#

C’est assez simple à comprendre ApplicationCommands n’existe pas

keen narwhal
#

Bonjour ^^

#

Petit soucis avec ma src je l’ai transféré à mon nouveau vps et depuis plein de soucis au niveau des nodes modules

#
root@VM7247117:/home/vshell/Mint# node app.js
/home/vshell/Mint/node_modules/mongoose/lib/helpers/model/applyHooks.js:29
const alreadyHookedFunctions = new Set(applyHooks.middlewareFunctions.flatMap(fn => ([fn, `$__${fn}`])));
                                                                      ^

TypeError: applyHooks.middlewareFunctions.flatMap is not a function
    at Object.<anonymous> (/home/vshell/Mint/node_modules/mongoose/lib/helpers/model/applyHooks.js:29:71)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/home/vshell/Mint/node_modules/mongoose/lib/schema.js:31:23)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
#

Voilà la petite erreur bien chiante

#

🙂

queen ocean
keen narwhal
#

Ah oui c’est vrai

#

J’utilisais node 18.16

keen narwhal
mystic spruce
#

et ces possible quelqun me donne les code

#

svp je comprend pas pq sa marche pas

queen ocean
mystic spruce
#

non je les fais 4fois et sa marche pas

mystic spruce
queen ocean
#

Soit tu recopies le tuto correctement soit tu devras trouver un dev (surement payant) pour faire le bot a ta place

mystic spruce
#

non mon but a moi ses daprendre

#

ses pas pour un serveur

queen ocean
#

Du coup recommence le tuto et trouve ton erreur 👌

mystic spruce
#

jen ais pas frero

proper loom
mystic spruce
#

Car ya ecrit javascript

queen ocean
mystic spruce
#

derreur

queen ocean
#

bah tu as besoin d'aide pour quoi si tu as pas d'erreur ? Harold

mystic spruce
#

non engros jai pas mal ecrit un truc

proper loom
mystic spruce
#

ah att

proper loom
mystic spruce
barren glacier
#

T'exportes une méthode (function) dans ton loadSlashCommands ?

#

T'aurais moyen d'envoyer ton loadSlashCommand en entier ici (formaté de préf)

mystic spruce
#

const discord = require("discord.js")
const { REST } = require('@discordjs/rest')
const { ROUTES } = require("discord.js")

module.exports = async bot => {

let commands = [];

bot.commands.forEach(async command => {

    let slashcommand = new discord.SlashCommandBuilder()
    .setName(command.name)
    .setDescription(command.description)
    .setDMPermission(command.dm)
    .setDefaultMemberPermissions(command.permission ==="Aucune" ? null: command.permission)

    if (command.options?.length >= 1) {
        for(let i =0; i < command.options.length; i++) {
            slashcommand[`add${command.option[i].type.slice(0, 1).TolowerCase() + command.options[i].type.slice(1, command.options[i].type.length)}Option`](option => option.setName(command.options[i].name).setDescription(command.options[i].description).setRequired(command.options[i].required))
        }
    }

    await commands.push(slashcommand)
})

const rest = new REST({ version: '10' }).setToken(bot.token)

await rest.put(ROUTES.applicationCommands(bot.user.id),  {body: commands})
console.log("les slashcommands ont bien été enregistrées")

}

barren glacier
#

toLowerCase()

#

Je continue à lire ton code, bouge pas

mystic spruce
#

tolowercase il a quoi

#

je les mal ecrit

barren glacier
#

Regarde le screen (correspondant à ton code) et regarde ce que j'ai envoyé

mystic spruce
#

ta envoyer quoi tolower case

barren glacier
#

Regarde les deux, celui en bas avec le T majuscule c'est ton code

#

En haut c'est la bonne

mystic spruce
#

toujour lerreur

barren glacier
#

Ton code ?

mystic spruce
barren glacier
#

Du ready.js, envoie-le moi en code formaté

#

si tu sais pas faire :

mystic spruce
#

comme je fais

barren glacier
#

tu fais trois ` comme ça

#

tu met js en minuscule et ton code

#

voici un screenshot d'exemple :

#

Tu met ton code dans la partie où j'ai mis "code"

mystic spruce
#

const discord = require("discord.js")

module.exports = async bot => {

   await loadSlashCommands(bot)

console.log(`${bot.user.tag} est bien connecté !`)

}

barren glacier
#

Bah là du coup t'essaie d'appeler une fonction que t'as pas défini

#

👀

mystic spruce
#

bah jai suis le tuto mes ducoup tu sais le faire

barren glacier
#

Tu as suivi le tuto de "Mad Rage" ?

mystic spruce
#

yes

wary urchin
barren glacier
#

Tu feras gaffe à bien écrire comme lui

#

Ok oui non, c'est pas le load ça

mystic spruce
#

je suis une merde

barren glacier
#

Non mais pas besoin pour ton loader c'est bon

wary urchin
mystic spruce
#

toujour L' Erreur Parcontre

barren glacier
#

J'avais pas vu ça

#

😂

wary urchin
#

haha

barren glacier
#

Bon déjà le console.log ça va pas

#

🦔

mystic spruce
#

le bot .user .tag

#

ces sa

barren glacier
#

c'était bon

wary urchin
barren glacier
#

erreur de ma part en regardant son tuto

mystic spruce
#

je garde bot

barren glacier
#

Tu appeles une fonction non défini plus haut là

#

Tu la récupère de nul part

mystic spruce
#

et ducoup je dois faire quoi pour la definir

barren glacier
#

Ce qui est fait dans le tuto de "Mad Rage"

mystic spruce
#

ce que je fais plus de 4fois

barren glacier
#

Tu recopies avec ton clavier et tes doigts

#

Ensuite tu redémarre et tu screen les potentiels erreurs

wary urchin
#

ptdrrrr

#

Il regarde la vidéo à moitié, ça me tue.

barren glacier
#

Il a regardé 12 frames il en a eu marre faut croire

mystic spruce
barren glacier
#

Tu peux montrer l'erreur en rouge 🔴

#

à droite

#

entièrement

#

stp

wary urchin
barren glacier
#

Et oui btw

mystic spruce
barren glacier
#

Ok ensuite

#

Je veux voir l'erreur en rouge

#

à droite

#

➡️

mystic spruce
wary urchin
#

Le message il fait 6 screens hahaha

barren glacier
#

Ok merci, t'aurais pu ouvrir le menu en bas à gauche pour l'avoir et la copié, fin bref

#

T'as redémarré le bot là ?

mystic spruce
#

jai compris sa veut me terminer

#

oui

barren glacier
#

Et t'as eu l'erreur dans la console qu'est apparu ?

mystic spruce
#

oui applicationCommands

wary urchin
#

tu as la vidéo et tu arrives à faire des erreurs en recopiant

barren glacier
#

C'est pas grave, il commence il y connait rien de base j'imagine

wary urchin
#

Oui et tant mieux qu'il rencontre ces erreurs

barren glacier
#

On va essayer de comprendre ensemble d'où vient le soucis

wary urchin
#

comme ça il pourra les régler tout seul la prochaine fois

barren glacier
#

Même si je suis fatigué

mystic spruce
#

je sais juste allumer un bot

barren glacier
#

😢

mystic spruce
barren glacier
#

Donc tu me déranges pas 😂

#

Bon tu pourrais voc ?

mystic spruce
#

yes jai pas mon micro parcontre je tentend

rustic siren
#

Hey, j'ai un petit soucis avec mon select menu
lorsque j'utilise mon option search ça fonctionne nickel il désélectionne mon option mais dès que c'est pour mon list ça ne fonctionne pas du tout
voici l'erreur complet
Error [InteractionNotReplied]: The reply to this interaction has not been sent or deferred.
at StringSelectMenuInteraction.editReply (D:\Bot_discord_v14\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:157:48)
at Object.run (D:\Bot_discord_v14\Src\Interactions\SelectMenus\menujeuxSelectmenu.js:213:31)
at Object.run (D:\Bot_discord_v14\Src\Events\InteractionCreate.js:15:73)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'InteractionNotReplied'
}

keen narwhal
#

slt y a t'il quelqu'un pour me help en vc

ashen rapids
#

Par curiosité ceux que bossent avec des bots Youtube
Vous utilisez quoi pour check les nouvelles vidéos d'une chaine ?

Je demande car j'ai l'impression que 4 ans après c'est toujours la galère.
Perso je suis sur PubSubHubbub mais très peu complet

#

Maybe @slim anvil qui a peut-être l'expérience Mee6 ?

queen ocean
ashen rapids
#

Ca fait 1h que j'essaie de cherche les infos sur leur UX nul 😂

glass cargo
#

Juste limité en nombre de requêtes 👀

#

Bon, je m’en suis juste servis pour utiliser la recherche x)

#

Et leur doc est vraiment infernale 🤣

ocean bluff
#

ou passe par le site directement mais c'est plus chiant tu peux utiliser Selenium et tu vérifies juste la dernière balise de la chaine en question

unborn tangle
#

Salut le mec je me suis lancer dans un bot discord et la je voulez use les SlashCommand mais elle n'apparaise pas quand je veux les use voila la code :

module.exports = async (bot) => {
    
    let commands = [];

    bot.commands.forEach(async command => {
        
        let slashCommand = new Discord.SlashCommandBuilder()
        .setName(command.name)
        .setDescription(command.description)
        .setDMPermission(command.dm)
        .setDefaultMemberPermissions(command.permissions === "Aucune" ? null : command.permissions)

        if (command.options?.length >= 1) {
            for(let i = 0; i < command.options.length; i++) {
                slashCommand[`add${command.options[i].type.slice(0, 1).toLowerCase() + command.options[i].type.slice(1, command.options[i].type.length)}Option`](option => option.setName(command.options[i].name).setDescription(command.options[i].description).setRequired(command.options[i].description).setRequired(command.options[i].required))
            }
        }
        console.log(slashCommand)
        commands.push(slashCommand)
    })

    const rest = new REST({ version: '10' }).setToken(bot.token)
    
    await rest.put(Routes.applicationCommands(bot.user.id), { body: commands });

    console.log('Slash commands loaded!');
}```
#

Mes logs:

golden yew
#

salut @unborn tangle , alors j'avoue que je n'utilise pas du tout cette methode la pour crée mes slash command, j'aurais bien du male a t'aider sur se code la, mais je peut te partager comment je fait.

const shop = {
            "options":
                [
                    {
                        "choices": [
                            {
                                "name": "Atout",
                                "value": 0
                            },
                            {
                                "name": "Cosmétique",
                                "value": 1
                            }
                        ],

                        "type": 4,
                        "name": "type",
                        "description": "🌐 Sélectionnez le royaume concerné.",
                        "required": true
                    },
                    {
                    "type": 3,
                    "name": "ressource",
                    "description": "📦 Quelle ressource souhaite-t-iel acheter ?",
                    "required": true
                },
                ],
            "name": "shop",
            "description": "shop"
        }
        guild.commands.create(shop);

        client.login(secure.token);

alors oui se sons des json directement, mais franchement c'est plus facil a gere a mon avis.

#

3 string ; 4 integer ; 10 number ; 5 boolean ; 6 user et tien pour les "type" c'est simple, je me les suis mis dans mon code et sinon tu a chatgpt ou la docu

#

et si jamais pour suprimé toute tes command :
js guild.commands.fetch() .then(commands => { console.log("tout command supr") commands.forEach(command => command.delete()); }) .catch(error => { console.error("Une erreur s'est produite :", error); });

pure tiger
ashen rapids
queen ocean
ashen rapids
queen ocean
ashen rapids
#

Ça à l'air un peu chiant cette histoire. L'objectif c'est quand même de remplacer Pubsubhubbub qui est déjà chiant à utiliser. Donc au final, si c'est pour que ça soit aussi chiant, ou plus chiant ..

queen ocean
ashen rapids
#

Alors que Pubsub c'est quelques secondes mais chiant à maintenir + te donnent peu d'infos. Donc obligé de scrap

queen ocean
#

En étant externe au projet, avec ce que tu me dit la ca me semble évidant que le mieux à faire c'est quitter Pubsub et passer par youtube direct même si ce sera pas à la seconde près

#

Après tu peux techniquement te rapprocher de la seconde près si les vidéos sont posté à des heures +/- fix

pure tiger
#

et tu as pas besoin de search ?

pure tiger
ashen rapids
ashen rapids
pure tiger
pure tiger
ashen rapids
ashen rapids
#

Oui je vois ce que vous voulez dire

Mais finalement le seul avantage que ça apporte, c'est une donnée + structurée. Trop de désavantages par rapport à la méthode Pubsub

mighty falcon
#

j'ai definie le run ? nn

cerulean pond
mighty falcon
mighty falcon
queen ocean
#

a mon avis tu récup mal le nom de la command

mighty falcon
queen ocean
cerulean pond
# mighty falcon .

non là tu appelles la fonction run, tu l'as pas défini dans ce fichier

mighty falcon
queen ocean
mighty falcon
cerulean pond
mighty falcon
ocean bluff
#

@ashen rapids utilise sélénium au pire

ocean bluff
#

Enft non pourquoi tu veux utiliser la route search ton idée est pas ouf là

#

Dès que le nombre de vidéos changent, tu utilises la requête search pour avoir la vidéo.

#

Avec cette technique ta une limite de 100 chaînes environ et si tu veux vraiment le call le plus rapide tu peux gérer facilement 3 chaînes si il poste une vidéo par jour (si ça te convient pas tu utilises Sélénium où t'aura plus cette limite)

#

Théoriquement, si tu fais un appel par heure tu peux gérer 99 chaînes maximun, si tu fais un call par minute tu peux gérer maximum 85 chaines

ocean bluff
queen ocean
plush lava
#

Hello, j'ai un problème assez étrange avec Discord (discord.js, v14)

Mon bot rajoute un rôle via une commande (interaction) et pourtant le rôle ne s'ajoute pas à l'utilisateur mais est marqué dans les logs. Vous savez d'où ça pourrait venir ?

golden yew
plush lava
#

Quand mon pc sera chargé oui 🙏

golden yew
plush lava
#

bon finalement un autre problème vient de surgir : les commandes ne s'executent plus alors que j'ai pas modifié ma codebase, j'utilise la dernière version de sheweny et discord.js v14. Je n'avais pas ce problème pas plus tard que l'année dernière (Kappa)

#

Plus sérieusement, l'interaction de chaque commande est print dans la console alors que je n'ai pas fait de log pour ça?? Surtout je rappel que j'ai rien modif depuis cet aprem

golden yew
#

est-ce que tu pourait envoyer un screen de tes fichier pour comprendre comment tu les a construit et le contenu de celui/ceux en question ?

plush lava
#

J'ai résolu le problème entre temps, désolé de pas t'avoir répondu plus tôt. C'était un problème avec l'intégration de git qui ne synchronisait pas les fichiers et du coup certains prenait la place d'autres. D'où le fait que chaque commande étaient print, car c'était un fichier remplacé (un ancien fichier sur le repository)

queen ocean
#

oui

fierce plank
#

Bonsoir, je voudrais savoir j'ai un component header et je voudrais savoir comment je peux faire pour lui mettre un serversideprops avec nextJs voici mon code

#

en gros je souhaiterais pouvoir fetch mon api sauf que je ne sais pas comment faire dans un component
car de ce que j'ai vu on peut uniquement en mettre dans les pages
et le probleme est que mon component header et uniquement appelé dans mon layout donc je voudrais savoir si quelqu'un aurait un solution

Merci :)

prime leaf
#

Bonjour, je m'excuse de couper la demande précédente, mais je pense que mon problème est simple.
Alors voila, je ne m'y connais pas du tout en js pour le web et j'ai voulu faire une animation, j'ai cette partie la qui gère l'animation :
(envoyé apres, pas assez de place)
Le problème est que c'est très lent, sur firefox, ca passe mais sur chrome ca fonctionne au ralenti, j'ai essayer plusieurs codes comme calculer les positions directements en js et pas en css mais j'ai l'impression que le lag vient de la modification de style, or je ne vois pas comment faire autrement et j'ai vu des animations qui avaient l'air beaucoup plus complexes et qui fonctionne sur chrome sans lag.

#
setInterval(function () {
            for (let index in lights) {
                let light = lights[index]
                if (typeof light.elem == "undefined" || light.elem == null) {
                    light.elem = document.createElement("div")
                    light.elem.id = "light-" + light.id
                    light.elem.classList.add("light")
                    backgroundContainer.insertAdjacentElement("beforeend", light.elem)

                    light.prevElem = document.createElement("div")
                    light.prevElem.classList.add("prev-light-part")
                    light.elem.insertAdjacentElement("beforeend", light.prevElem)

                    light.currentElem = document.createElement("div")
                    light.currentElem.classList.add("current-light-part")
                    light.elem.insertAdjacentElement("beforeend", light.currentElem)
                }

                light.progress += 1
                if (light.progress > 100) {
                    light.prev = light.from;
                    light.from = light.target;
                    light.target = getNextNode(light.from, light.prev)
                    light.progress = 1

                    light.elem.style.setProperty("--bg--prev-i", light.prev.i)
                    light.elem.style.setProperty("--bg--prev-j", light.prev.j)
                    light.elem.style.setProperty("--bg--from-i", light.from.i)
                    light.elem.style.setProperty("--bg--from-j", light.from.j)
                    light.elem.style.setProperty("--bg--target-i", light.target.i)
                    light.elem.style.setProperty("--bg--target-j", light.target.j)
                }

                light.elem.style.setProperty("--bg--progress", light.progress)
            }
        }, 10)```
pure tiger
ashen rapids
ashen rapids
ocean bluff
#

et au moins c'est directement en raccord avec l'api youtube

ashen rapids
#

Yep probablement mais en attendant, j'avais déjà un code pour le système Pubsub de Youtube. Il me restait plus qu'à gérer les shorts. C'est chiant à config mais une fois que c'est fait, tu y touches plus

ocean bluff
#

après tu fais ce que tu veux les deux techniques se valent meme si, j'aurais pris sélénium pour alternative à l'api youtube

pure tiger
# ashen rapids Yep probablement mais en attendant, j'avais déjà un code pour le système Pubsub ...

ça ce tient après faut voir ce que tu priorise :

  • le côté opérationnel : avec pubsub tu pourras le mettre en place plus facilement et rapidement
  • la maintenabilité : avec l'API de Youtube et ou tu as plus besoin d'un tier

Après tu peux aussi correctement tout interfacer avec une API et des end point propres puis tu commence avec pubSub et une fois en prod quand tu as du temps tu repasse sur l'API de youtube

fierce plank
#

EBot Dashboard, fait totalement en TS avec NextJS et React un avis un conseil de choses a changer ? (side bar de demo avec tout mes components)

pure tiger
#

Alors en point 1 dans ton summary tu as deux fois quasi la meme couleur c'est normal ?

#

Sinon tu as aussi un problème de contraste

#

tu proposes de créer un compte a un compte (après si c'est la démo autant pour moi)

#

et décole peut être la pagination en bas pour une navigation plus simple

fierce plank
pure tiger
#

Sinon L'ui est propre j'en ai marre de ce violet mais c'est une question de gout personnel

fierce plank
pure tiger
#

et augmente la border bottom de ton Thead

fierce plank
#

Yess merci

#

Je change ca demain la dodo c est mon annif faut que je sois en forme

pure tiger
#

(j'en ai fait un peu trop je crois)

fierce plank
prime leaf
#

Bon anniversaire !!

fierce plank
#

Merci

glass cargo
#

bon annif :p

cobalt oyster
pure tiger
cobalt oyster
#

Super intéressante d’ailleurs

pseudo veldt
#

Hi guys, I need help creating JavaScript code for a game called Gota.io. Help me to make a script with which my second tab of this game will follow the mouse coordinates in the first tab. That is, I am sitting on the first tab but my player in the second tab can move around the mouse coordinates without going to the second tab. That is, move in the direction of the mouse without going to the second tab.

cyan thorn
#

Salut @prime leaf je viens de regarder ton codage est de que tu seraient disponible pour faire un appelle dans la journée pour que nous regardions tous cela

prime leaf
#

Salut, malheureusement je suis chez de la famille aujourd'hui donc je pourrais soit très tard ce soir soit demain si tu peux

plucky raven
#

Comment on crée un database-bot mongodb

glad fog
#

Bonjour, j'ai un problème avec une commande d'un bot discord, cette commande sert a sortir un classement avec 15 noms, un bouton "suivant" en dessous permet d'effacer le message et d'afficher un nouveau message avec la suite du classement 16 à 30, puis 31 à 45, et ceci jusqu'à la fin de la liste. Cette commande fonctionnait parfaitement jusqu'au 26 décembre mais depuis j'ai une erreur à chaque fois que je clique sur le bouton, le message s'efface bien mais la suite ne s'affiche plus et le bot crash, il n'y a eu aucun changement dans le code.

    at handleErrors (/home/container/node_modules/@discordjs/rest/src/lib/handlers/Shared.ts:148:10)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SequentialHandler.runRequest (/home/container/node_modules/@discordjs/rest/src/lib/handlers/SequentialHandler.ts:406:20)
    at async SequentialHandler.queueRequest (/home/container/node_modules/@discordjs/rest/src/lib/handlers/SequentialHandler.ts:168:11)
    at async _REST.request (/home/container/node_modules/@discordjs/rest/src/lib/REST.ts:211:20)
    at async GuildMessageManager.delete (/home/container/node_modules/discord.js/src/managers/MessageManager.js:266:5)
    at async Message.delete (/home/container/node_modules/discord.js/src/structures/Message.js:829:5)
    at async InteractionCollector.<anonymous> (/home/container/commands/utils/request.js:127:9) {
  requestBody: { files: undefined, json: undefined },
  rawError: { message: 'Unknown Message', code: 10008 },
  code: 10008,
  status: 404,
  method: 'DELETE',
  url: 'https://discord.com/api/v10/channels/ xxxx /messages/ xxxx '
}

si vous pouviez m'éclairer ou si vous avez besoin de plus de précision faites le moi savoir

plucky raven
glass cargo
#

Tu utilise atlas je suppose ?

#

Un tuto que j’avais fait y’a longtemps mais qui est encore d’actualité ^^

plucky raven
#

Merci

halcyon mesa
#

Salut j'essaye de faire revivre l'application jsplacement dont l'auteur a connu quelques mésaventures.
je code tout de mon côté, je ne récupère pas le code d'origine. vous pouvez télécharger mon application sur github.
bon weekend...
https://github.com/remib74/yaja-another-jsplacement-attempt

GitHub

generate diffuse and heightmap with js. Contribute to remib74/yaja-another-jsplacement-attempt development by creating an account on GitHub.

halcyon mesa
#

ça sert à générer des diffuse et height map pour du displacement dans blender par exemple

#

exemple

halcyon mesa
#

attention le script ne fonctionne que sous firefox pour le moment

floral bolt
#

C’est cool

halcyon mesa
#

merci le script est corrigé et fonctionne sous chrome, edge et firefox bon weekend

pure tiger
glad fog
#

Salut merci pour ta réponse, j'ai réussi à régler le problème, apparemment depuis la dernière mise à jour de discord.js il n'est plus possible de delete un message pour écrire la suite de mon classement dans un New embed, j'ai donc utilisé la fonction éditer et tout refonctionne.

grand kindle
#

salut, quelqu'un s'y connait en discord.js ?

grand kindle
# ocean bluff oui

salut, enfaite en ce moment j'apprends le javascript, et j'avoue que j'aimerai bien essayer de faire mon premier bot, la docu m'aide mais je la trouve pas assez précise dans les commentaires, aurais-tu d'autres sources s'il te plaît?

muted canopy
#

discordjs.guide

#

C'est une bible

ocean bluff
# grand kindle salut, enfaite en ce moment j'apprends le javascript, et j'avoue que j'aimerai b...

Parcours nos tutoriels de développement et de graphisme pour améliorer tes compétences.

MDN Web Docs

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

discord.js

discord.js is a powerful Node.js module that allows you to interact with the Discord API very easily. It takes a much more object-oriented approach than most other JS Discord libraries, making your bot's code significantly tidier and easier to comprehend.

#

n'utilise pas les vidéos c'est de la merde vu que 3/4 des personnes vont juste copier betement

grand kindle
ocean bluff
#

si tu ne comprends pas une partie souvent une recherche google suffit

grand kindle
ocean bluff
#

on est fait pour y répondre

grand kindle
#

merci

ocean bluff
#

tu peux très bien utiliser une autre librairie plus légere pour comprendre

#
Discord Developer Portal

Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

grand kindle
ocean bluff
grand kindle
#

discord.js c'est vraiment opti?

ocean bluff
#

en soit discord.js c'est très bien pour commencer mais c'est rempli

#

après tu peux commencer avec discord.js vu que t'aura plus de tuto pour ce module

ocean bluff
#

niveau vitesse c'est similaire les deux exécutent la même requête après en théorie un module plus leger sera + rapide vu que discord.js a pleins de conditions avant de faire la requete

glass cargo
glass cargo
#

Yep mais ça évite quand même pas mal de requêtes ^^

ocean bluff
glass cargo
#

Oui c’est sûr x)

ocean bluff
#

il fonctionne pareil que discord.js à un point different

#

c'est que tu peux le configurer

glass cargo
#

Chaipa, je viens de découvrir XD

ocean bluff
#

si tu veux que un event tu peux décider

grand kindle
ocean bluff
#

mais je ne suis pas le créateur

grand kindle
ocean bluff
ocean bluff
#

mais si tu debutes vraiment et ta besoin de tuto utilise discord.js

grand kindle
ocean bluff
#

commence avec djs puis switch

#

ou si tu le sens switch direct

grand kindle
#

et certaines choses sont basiques, mais juste je les oublies des fois

grand kindle
ocean bluff
#

la doc est complementaire en vrai

glad fog
#

j'ai utilisé interaction.editReply ca fonctionne nickel et c'est plus simple que ce que j'avais

grand kindle
ocean bluff
#

non

grand kindle
#

ah ouii

#

we scuse

grand kindle
ocean bluff
#

si il a des bons tutos pour faire quelque trucs

#

c'est complementaire

grand kindle
#

après ce que je trouve dommage c'est que parce exemple en tant que débutant, " instancier un bot " j'sais pas trop à quoi ça correspond exactement

grand kindle
glad fog
#

non sur un embed, j'ai 2 boutons pour passer d'une page a l'autre sur un classement

grand kindle
#

@ocean bluff t'en penses quoi du framework shaweny pour commencer ? notlikethis

ocean bluff
grand kindle
#

Je chercherai demain

muted canopy
#

avant de prendre celui d'un framework, ça fait comprendre pas mal de choses

muted canopy
grand kindle
hallow niche
#

Les bgs, je voudrais vos avis d'experts

#

Pour apprendre JS, est ce que les vidéos pakistanaises de 8h suffisent ou le mieux c de se prendre une petite formation (payante ou pas) ?

#

Et si vous avez des formation ou des créateurs de contenus à conseiller je PRENDS

acoustic hazel
#

et ça m'a suffit

hallow niche
#

Tu partages du contenu public sur ton GitHub? Si t'es d'accord je peux vérifier ?

acoustic hazel
acoustic hazel
hallow niche
acoustic hazel
#

Par exemple, rentrer des infos dans un json et les ressortir via 2 commandes

hallow niche
#

La j'ai fait un site en HTML/CSS par exemple. J'aimerais bien ajouter du JS parce que c'est pour mon PF et je veux le montrer pour trouver une alternance. À part des addEventListener jsp pas trop quoi faire

acoustic hazel
#

tu feras peut-être pas un truc clean mais ce sera fonctionnel pour l'utilisateur, et toi tu y gagnes de l'exp

hallow niche
#

Je pense qu'il me faut aussi un bon bagage technique, je débute mais y a des notions fondamentales qui m'échappent un peu

hallow niche
#

Je voulais faire un peu ça sur Fiverr, en mettant des prix dérisoire genre 0,50centimes le projet mais même comme ça c dur de trouver mdr

acoustic hazel
hallow niche
acoustic hazel
hallow niche
acoustic hazel
acoustic hazel
#

Nope

golden yew
#

je l'utilise principalement pour poser des question sur la theorie, comprendre mieux proceder, chercher la bonne fonction qui permet de faire ca, les bonne biblio etc.

hallow niche
golden yew
keen narwhal
#

J'ai la 4 et elle est vachement mieux personnellement

#

C'est plus détaillé et approfondi

#

Après pour de l'apprentissage pur je déconseille de le payer

#

Je l'utilise pour du texte souvent et d'autres idées ce qui m'aide énormément et un gain de temps énorme

#

Après ça reste dans les bases, à toi d'approfondir et si tu veux faire vérifier ton code quand il est avancé, comme il le dit lui-même, vaux mieux faire vérifier par un développeur expérimenté

#

Après @hallow niche pas obligé d'utiliser énormément de JS sur ton PF, à toi de ton côté de faire des petits projets des trucs comme ça en JS pour montrer ton niveau

hallow niche
hallow niche
hallow niche