{"id":20994494,"url":"https://github.com/fredericdrnl/lethal-compagnion","last_synced_at":"2026-05-02T17:32:11.598Z","repository":{"id":210198121,"uuid":"725981202","full_name":"Fredericdrnl/Lethal-Compagnion","owner":"Fredericdrnl","description":"Bot discord permettant de consulter des informations à propos des monstres sur lethal company","archived":false,"fork":false,"pushed_at":"2024-02-23T16:11:56.000Z","size":139,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T12:45:28.387Z","etag":null,"topics":["api","bdd","bot","discord","discord-bot","flask","lethal-company","lethal-company-discord","postgresql","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fredericdrnl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-01T09:27:45.000Z","updated_at":"2024-02-23T16:06:42.000Z","dependencies_parsed_at":"2024-02-16T10:24:21.053Z","dependency_job_id":"e240f87f-30bd-404b-88cb-bbf003426fdc","html_url":"https://github.com/Fredericdrnl/Lethal-Compagnion","commit_stats":null,"previous_names":["fredericdrnl/bot-discord","fredericdrnl/lethal-company-bot"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Fredericdrnl/Lethal-Compagnion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fredericdrnl%2FLethal-Compagnion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fredericdrnl%2FLethal-Compagnion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fredericdrnl%2FLethal-Compagnion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fredericdrnl%2FLethal-Compagnion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fredericdrnl","download_url":"https://codeload.github.com/Fredericdrnl/Lethal-Compagnion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fredericdrnl%2FLethal-Compagnion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274159338,"owners_count":25232633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","bdd","bot","discord","discord-bot","flask","lethal-company","lethal-company-discord","postgresql","python","python3"],"created_at":"2024-11-19T07:18:35.617Z","updated_at":"2026-05-02T17:32:11.542Z","avatar_url":"https://github.com/Fredericdrnl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp  align=\"center\"\u003e\n    \u003cimg src = \"https://imgs.search.brave.com/jDGyY8sdA9IxjuWF_geaKx-KLM-caxOKqkNuiDZJlIY/rs:fit:500:0:0/g:ce/aHR0cHM6Ly9pbWFn/ZS5qZXV4dmlkZW8u/Y29tL21lZGlhcy1z/bS8xNzAxMTAvMTcw/MTA5ODk3OC0yNzE1/LWphcXVldHRlLWF2/YW50LmpwZw\" title = \"lethal logo\" alt = \"lethal logo\"\u003e\n\u003cp\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/Fredericdrnl/lethal-company-bot\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/Fredericdrnl/lethal-company-bot\"\u003e\n\u003c/p\u003e\n\n\u003e **Auteurs :** [Frédéric DOURNEL](https://github.com/Fredericdrnl), [Benjamin FOURNIER](https://github.com/Tabooret), [Tom VALLART](https://github.com/Tom6213)\n\n# Développement du Bot Discord pour Lethal Company\n\n# **Sommaire 📃**\n\n- **1 Introduction**\n    - 1.1 Le thème choisi\n        - 1.1.1 Pourquoi ce sujet\n        - 1.1.2 L'origine des données\n    - 1.2 Travail en groupe \n    - 1.3 Prérequis\n- **2 Développement et Implémentation**\n    - 2.2 Planification du projet\n    - 2.3 Rencontres de problèmes\n- **3 Ressenti du Projet**\n    - 3.1 Dans l'ensemble\n        - 3.1.1 Ressenti de Benjamin\n        - 3.1.2 Ressenti de Frédéric\n        - 3.1.3 Ressenti de Tom\n- **4 Conclusion**\n- **5 Mode d'emploi**\n\n\n## 1 - Introduction\n\nCe rapport vise à documenter le développement du bot Discord pour Lethal Company ainsi que notre ressenti tout au long du projet. Notre objectif était de créer un bot Discord fonctionnel pour faciliter la gestion des tâches et optimiser les parties de Lethal Company\n\nLe but de ce Bot Discord est de référencer beaucoup d'information à propos des items, des monstres et des planètes du jeu. Nous avions comme contrainte de pouvoir conteneuriser les différentes parties de ce que fais le bot discord, c'est à dire l'API, la BDD et le bot discord.\n\nL'archive de notre code est disponible sur GitHub.\n\n### 1.1 - Le thème choisi\n\n#### 1.1.1 - Pourquoi ce sujet\n\nNous avons choisi de faire un bot Discord sur Lethal Company car il s'agit de deux choses que nous apprécions et utilisons. Ce bot Discord pourrait aussi être utilisé par d'autres personnes si des informations en jeu sont nécessaire rapidement \n\n### 1.1.2 - L'origine des données\n\nEn ce qui concerne les données, nous avons écrit à la main toutes les données qui y sont présentes en utilisant les différents wiki qui sont à notre disposition sur Internet.\nCes données que nous avons récupérées comme le nom des monstres, des objets, leur coût... à été organisé dans différents tuples afin d'alimenter la base de données de notre bot Discord\n\n## 1.2 - Travail en groupe\n\nPour ce projet, nous sommes en groupe de 3, Dournel Frédéric, Vallart Tom, Fournier Benjamin.\nNous avons utilisé différents types de communications et partage de données afin de rendre le projet à temps et fonctionnel comme Discord, GitHub, l'extension LiveShare de Visual Studio Code a été utilisé lors de la création de la base de données afin de la terminer au plus vite.\nNous avons beaucoup travaillé en présentiel lors des heures de travail prévu à cet effet.\nLors de ce projet chaque personne du groupe a pu effectuer une tâche \n\n### 1.3 - Prérequis\n\nPresque tout le projet à été codée en **Python**. Nous avons utilisée la bibliothèque **Discord.py** pour créer le bot, **Flask** pour créer les routes API, **Requests** pour créer des requêtes API et **Psycogs2** pour intéragir avec la base de donnée qui par ailleur est une BDD **Postgresql**.\n\n\u003e Toutes les bibliothèques utilisée sont référencées dans le fichier requirements.py avec les versions.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/python/python-original.svg\"width=\"110\" /\u003e\n    \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/postgresql/postgresql-original.svg\"width=\"110\"/\u003e\n\u003c/div\u003e\n\n\n## 2 - Développement et Implémentation\n\n### 2.1 - Planification du projet\n\nLe projet a débuté par une phase de planification détaillée, au cours de laquelle nous avons défini les fonctionnalités principales du bot, donner les différentes taches à chacun. Nous avons utilisé principalement Python et la bibliothèque Discord.py pour le développement, en nous assurant d'utiliser des pratiques de codage propres et d'optimiser les performances du bot.\n\n### 2.2 - Rencontres de problèmes\n\nLe processus de développement s'est globalement bien déroulé. Cependant, nous avons rencontré quelques obstacles techniques, notamment des problèmes de latence et des erreurs de connexion avec l'API pour connecter le bot à la BDD, le problème d'API venait principalement du manque de connaissance sur la création d'une API, ce fut notre première création d'API sur python, ces problèmes ont retardé notre progression.\nLe plus gros problème que nous avons rencontré est du côté de Docker, nous avons cherché pendant plusieurs heures, plusieurs jours pour que les conteneurs \"api\", \"bot\" et \"postgres\" communiquent entre eux. Il s'agissait d'un problème d'accès. Nous avons cherché longtemps cherché mais aucun succès suite à ces triste événements, nous décidions de ne pas les faire communiquer.\n\n## 3 - Ressenti du Projet\n\n### 3.1 - Dans l'ensemble\n\nLe projet que nous avons choisi, nous correspondait, il s'agissait pour nous de quelque chose que nous voulons réussir.\nLe manque de connaissance sur certaines méthodes concernant le développement du bot Discord ou l'utilisation de Docker a parfois ralenti notre travail mais au vu de notre projet nous voulons tout de même le terminer. \n\nNous avons également rencontré des problèmes imprévus qui ont mis à l'épreuve notre patience et nos compétences techniques. Les périodes où nous avons un problème que personne arrive à corriger pouvait mettre un certain frein à l'avancée du projet.\n\n#### 3.1.1 - Ressenti de Benjamin\n\nPersonnellement, le projet de base était un bot Discord quelque chose que je n'ai jamais fait, j'ai du apprendre 2,3 choses auprès de Frédéric qui connaissait un peu plus le sujet, j'ai appris plusieurs façon de travailler sur GitHub avec la création de branches et le suivi d'une convention de commit. Concernant la motivation, il s'agissait d'un jeu que j'ai joué et quelque chose qui pourrait être utile j'ai donc voulu réussir et terminer ce projet.\n\n#### 3.1.2 - Ressenti de Frédéric\n\nCe projet m'a beaucoup apporté. En effet, j'ai beaucoup apprit de part la gestion de projet sur GitHub qui était une première fois pour moi. L'utilisation des Issues était nouveau pour moi et j'ai eut des difficultés à partager les issues dans le Projects pour les premières. C'était également la première fois que j'implémentais une API sur python. J'ai trouvé l'utilisation de Flask et Requests facile à comprendre. La connexion de la BDD et l'interaction avec celle-ci était une chose que j'avais déjà fais auparavant en utilisant psycogs2. Il en ait de même pour la création de Bot discord que je connaissais déjà bien.\n\nPour conclure, Ce projet m'a beaucoup apporter en compétence de gestion d'équipe informatique mais également de compétence Technique.\n\n#### 3.1.3 - Ressenti de Tom\n\nN'ayant fait qu'un bot discord auparavant, avec des fonctionnalités basiques, ce projet était assez nouveau pour moi. J'ai un peu géré le routage puis je me suis concentré sur la BDD et la conteneurisation. Le mode de fonctionnement avec Github est quelque chose que je ne fais pas si souvent que ça et tout n'est pas encore tout à fait naturel et compréhensible pour moi. Cependant je trouve que ça rend le projet plus simple à gérer et ça nous permet de collaborer plus facilement.\n\n## 4 - Conclusion\n\nEn fin de compte, malgré les difficultés rencontrées, je suis fier du travail accompli sur le bot Discord pour Lethal Company. Nous avons réussi à livrer un produit **fonctionnel** et qui nous plaît à nous joueur de lethal company. Peut-être que ce bot sera utilisé par d'autres personnes si elle le souhaite avoir des détails rapidement en jeu\n\nBien sûr, il reste toujours des améliorations possibles et des fonctionnalités supplémentaires à envisager pour enrichir davantage le bot. \n\n## 5 - Mode d'emploi\n\nLe bot que nous avons développé s'utilise à partir de Discord, les commandes peuvent être entrée dans un channel de discussion.\nLe bot Discord permet avec une commande d'avoir les informations sur ce que l'on veut comme tous les monstres ou seulement un.\n\n\u003e Les paramètres sont les noms anglais et il y a des underscores au lieu des espaces.\n\n`- !helps ▶️ Afiiche toutes les commandes disponibles pour le bot discord.`\n\n-----\n`- !monsters ▶️ Montre tous les monstres avec une description.`\n\n`- !monster [MonsterName] ▶️ Affiche toutes les informations à propos d'un monstre passé en paramètre.`\u003cbr\u003e\n    `- Par exemple : !monster forest_keeper`\n    \u003cdiv align=\"center\"\u003e\n    \u003cimg src = \"https://imgs.search.brave.com/17C5XfA_3tgJcADNz_kq2SlhWNsfZpMaSu0aPEXk93I/rs:fit:500:0:0/g:ce/aHR0cHM6Ly93d3cu/cGNpbnZhc2lvbi5j/b20vd3AtY29udGVu/dC91cGxvYWRzLzIw/MjMvMTEvTGV0aGFs/LUNvbXBhbnktRm9y/ZXN0LUtlZXBlci1G/ZWF0dXJlZC1JbWFn/ZS5qcGc_dz03NTAm/cmVzaXplPTEyMDAs/Njc1\" title = \"geant\" alt = \"geant\" width = 200\u003e\n    \u003c/div\u003e\n    \n-----\n`- !moons ▶️ Montre toutes les lunes avec leur difficulté.`\n\n`- !moon [MoonName] ▶️ Affiche toutes les informations.`\u003cbr\u003e\n    `- Par exemple : !moon 8-Titan `\n    \u003cdiv align=\"center\"\u003e\n    \u003cimg src = \"https://imgs.search.brave.com/6Ri0nq_SU96qMnM0HXCwOjZFs4mLAH1rQ1Ypf96BFbY/rs:fit:860:0:0/g:ce/aHR0cHM6Ly9wcm9n/YW1lZ3VpZGVzLmNv/bS93cC1jb250ZW50/L3VwbG9hZHMvMjAy/My8xMS9GZWF0dXJl/ZC1MZXRoYWwtQ29t/cGFueS1ob3ctdG8t/aGVhbC5qcGc_Zml0/PTkwMCw1MDY\" title = \"moons\" alt = \"moons\" width = 200\u003e\n    \u003c/div\u003e\n\n-----\n`- !items ▶️ Montre tous les items avec une description.`\n\n`- !item [ItemName] ▶️ Affiche toutes les informations à propos d'un objet.`\u003cbr\u003e\n    `- Par exemple : !item V-Type_Engine`\n    \u003cdiv align=\"center\"\u003e\n    \u003cimg src = 'https://static.miraheze.org/lethalwiki/6/61/VType.png' title = \"batterie\" alt = \"batterie\" width = 150\u003e\n    \u003c/div\u003e\n\n-----\n`- !storeItems ▶️ Montre tous les items achetable dans la boutique avec une description.`\n\n`- !storeItem [StoreItemName] ▶️ Affiche toutes les informations à propos d\"un objet de la boutique passé en paramètre.`\u003cbr\u003e\n    `- Par exemple : !storeItem boombox`\n    \u003cdiv align=\"center\"\u003e\n    \u003cimg src = \"https://imgs.search.brave.com/WULsMc8Vquumbch-q4kgNFdEO4_z1Nnqv-BUizFb5S4/rs:fit:860:0:0/g:ce/aHR0cHM6Ly9pMC53/cC5jb20vZ2FtZXJ0/YWd6ZXJvLmNvbS93/cC1jb250ZW50L3Vw/bG9hZHMvMjAyMy8x/MS9MZXRoYWwtQ29t/cGFueS1Cb29tYm94/LndlYnA_cmVzaXpl/PTEwMjQsNjgyJnNz/bD0x\" title = \"boombox\" alt = \"boombox\" width = 200 \u003e\n    \u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredericdrnl%2Flethal-compagnion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredericdrnl%2Flethal-compagnion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredericdrnl%2Flethal-compagnion/lists"}