Idée Service de bannissement partagé

Salut,
Je pense que pour consulter les joueurs déjà bannis, le plugin pourrait faire un genre d'upload de chaque cas (chaque joueur banni dans le fichier banned-players.json). Mais pour la base de données : j'ai cru comprendre que votre serveur n'utilise pas le fichier banned-players.json mais plutôt utilise une base de données (peut-être MySql je suppose). Alors (arrêtez-moi si je me trompe) le plugin devrait se connecter à cette base de données et copier la base avec les champs qui l'intéresse vers ma base de données ?
Bonne journée
 
Salut,

aucun serveur n'utilise le fichier banned-players.json. C'est un fichier de base du serveur Minecraft, beaucoup trop limitant pour un vrai serveur. Il est utile que sur de très petits serveurs Vanilla, qui n'auront sûrement aucune utilisé du projet proposé ici.

le plugin devrait se connecter à cette base de données et copier la base avec les champs qui l'intéresse vers ma base de données ?
Tu ne peut pas faire ça, du moins, pas comme ça. Déjà il faudrait que ton plugin ait les accès à sa base de données (ça pourquoi pas), mais aussi et surtout qu'il connaisse la structure de la base de données cible. La structure dépendant du plugin de sanction utilisé, c'est à traiter au cas par cas (sûrement avec un logiciel d’exportation désignée spécifiquement pour chaque plugin de ban). C'est là que tu te rends compte de l'importance d'avoir une API, il faut que les plugins de bannissement intègrent ton système si tu veut réellement que le projet fonctionne. Ou alors, il faudra faire deux commandes distinctes pour chaque sanction. Une pour vraiment appliquer la sanction sur le serveur, et une pour enregistrer la sanction dans ton service.

Sans vouloir te décourager, ça nécessite un développement sérieux si tu souhaites mener à bien ce projet, donc, vu que tu ne sembles pas avoir les compétences pour, il faudrait sûrement envisager de recruter des développeurs.


Note de modération : Je me suis permis de renommer ton sujet et le déplacer dans une section qui semble plus adéquate.
 
  • J'aime
Reactions: Detobel36
Bonjour,
Effectivement, je ne connais rien aux plugins. Avec un amis nous avons décidé de nous lancer dans ce projet, nous allons apprendre en même temps ;)
Je pense que le plus simple serait de faire des commandes distinctes, mais cela serait très énervant pour la personne d'avoir à faire deux commandes.
Ce qui serait un peu plus compliqué serait de récupérer les commandes /ban, /mute etc et en même temps qu'un plugin s'occupe du bannissement, mon plugin récupère aussi l'info pour me la transmettre. Est-ce trop compliqué pour mon niveau ? Avez-vous une autre idée ?
Autre chose : si un plugin utilise une base de données pour enregistrer les bannissements, sont-ils aussi enregistrés dans le fichier banned-players.json ?
Bonne journée
 
Dernière édition:
Re,

Ce qui serait un peu plus compliqué serait de récupérer les commandes /ban, /mute etc et en même temps qu'un plugin s'occupe du bannissement, mon plugin récupère aussi l'info pour me la transmettre.
Tu peux pas vraiment faire ça... Tu ne connaîtra jamais le format de la commande, des arguments, tu ne sauras jamais si un plugin à correctement traiter la commande, s'il a bien les permissions, si il n'y a pas eu une erreur pendant le traitement, etc... Le plus simple est d'utiliser les APIs des plugins de sanctions, s'il en ont une... Malheureusement, s'ils n'en ont pas, c'est pas trop possible.
 
Re,
Je pense que le plus simple sera alors de créer une commande à part, cela sera assez pénible pour l'utilisateur, mais peut-être plus tard créer un vrai plugin avec toutes les fonctions d'un plugin de sanctions (ce sera très très compliqué :'( donc pas fait tout de suite, je vais certainement me tourner vers un développeur de plugins pour cela).
Pour l'instant je vais me tourner vers des commandes simples (en gros un petit plugin avec juste une commande pour ajouter un joueur à ma base de données).
J'espère quand même que les staff des serveurs trouveront mon plugin utile (même si il faut ajouter manuellement le joueur à la base avec une commande à part...)
Pensez-vous que cela vaut toujours la peine d'être développé ou cela est peine perdue compte tenu de la complexité d'utilisation ? Dois-je continuer mon projet ?
 
Salut,

Je ne suis pas totalement d'accord avec @DiscowZombie
En effet, ton plugin devra s'adapter. Mais y a pas non plus 36 milles plugins de gestions de ban. En tout cas pas 36 milles connu et qui valent la peine.
Donc si tu fais en sorte que ton plugin détecte le plugin de ban utilisé (Essentials, MaxBan,...), je pense qu'il y a totalement moyen de faire ça lors de l'exécution de la commande.

Concernant les serveurs utilisant un système custom (comme Phoenix), déjà sache que les accès à la base de données ne seront donné que si le plugin est Opensource (si tu va dans ma bdd c'est que je confie un mdp à un plugin, donc un accès... Même si je peux le limiter (uniquement des select sur une table précise) je ne le donne pas à n'importe quel plugin).
Mais effectivement imaginer être compatible "par défaut" avec tous les plugins c'est mort... Mais ton plugin peut fournir une API ;)

Notons enfin que pour Essentials par exemple, les ban sont stocké dans un fichier (un fichier par joueur, mais un fichier quand même) et du coup lisible par ton plugin.

C'est un projet complexe mais pas impossible. Moi par contre je me concentrerais d'abord sur la partie Web. La structure de ta base de données, de l'API qui sauvegardera les données ect. Le plugin c'est dans un 2eme temps pour moi...

Mais du coup vous vous lancez la dedans et vous n'avez même pas les bases en mysql ? En système REST, en API,... ? C'est très utopiste ça :/


Cordialement,
Detobel36
 
  • J'aime
Reactions: DiscowZombie
Salut,
Je pense que pour l'instant, dès que le plugin sera disponible, il ne récupèrera pas encore les anciens bans du serveur.
Par contre, j'ai la partie web qui est presque entièrement finie, il ne me reste qu'à ajouter deux champs, et modifier un peu l'interface sur le site pour pouvoir afficher ces deux nouveaux champs. Pour l'instant, le système fonctionne déjà sur l'interface web. Il est déjà possible d'ajouter des joueurs dans la base, c'est pour cela que je suis en train de me pencher vers le côté plugin. Comme dit précédemment, il ne me reste plus que le type de sanction et la durée de la sanction et la partie web est terminée.
Bonne journée
 
Salut,

Il est déjà possible d'ajouter des joueurs dans la base
Oui mais est-ce que c'est déjà possible avec une API ?
Si ton API est déjà prête, fait un wiki avec pleins d'informations pour motiver les développeurs indépendant et les administrateurs de serveur à se pencher sur ton projet ;)
Faut faire un truc un peu qualitatif :D

Au passage, est-ce que ton système gère les doublons ? Parceque si tu récupère les ban "par la suite", faudra être sur de pouvoir détecter ceux que tu as et ceux qui sont nouveau ;)


Cordialement,
Detobel36
 
Dernière édition:
  • J'aime
Reactions: DiscowZombie
Salut,

Site où s'inscrire d'abord : http://azot.alwaysdata.net (ce site n'est pas entièrement dédié à Minecraft, vous pouvez aussi faire beaucoup d'autres choses dessus)
Je voulais éviter de double poste, mais je pense qu'il est quand même important que tu reçoives une notification...

Je me suis inscrit (avec un faux mail) sur le site en question. Et y a quelques soucis...
J'ai notamment réussi à récupérer l'utilisateur et le mot de passe à la base de données (il semblerait qu'un pare-feu empêche à un utilisateur de se connecter à distance "OUF". Attention, je n'ai pas fait plus de tests, il est peut-être possible de bypass cette protection). J'ai également réussi à faire un petit injection HTML (juste une balise "<b>").
Je n'ai pas poussé plus loin, de peur de faire "crash" et/ou d'être accusé de "hack"... (même si ici c'est plus du "hack" pour aider, j'ai pas d'autorisation donc bon).

De manière plus "pratique", je déconseille fortement à toutes personne intéressé de se créer un compte pour l'instant (ou en tout cas en sachant que vos données ne sont potentiellement pas en sécurité) !
Je rappel au passage aux petits malin qui voudraient également trouver des failles que le fait de s'introduire dans un système (même s'il n'est pas bien protégé) est interdit ! (c'est comme si vous rentriez chez quelqu'un avec comme seul argument "la porte était ouvert", c'est interdit !)

C'est d'ailleurs pour ça que je n'ai pas poussé mes tests plus loin...


@julescrepi si besoin je peux t'aider/vous aider (si vous êtes plusieurs sur le projet) à trouver les failles. Je ne prendrai cependant pas le temps de faire du code review et encore moins de le corriger moi (j'ai pas le temps pour ça :/ ). Mais je ne ferai rien sans autorisation.


Bon courage dans le fix de bug.

Cordialement,
Detobel36
 
Dernière édition:
  • J'aime
Reactions: DiscowZombie