Reiika

Dévoreur d'Oreo
29 Août 2016
34
5
69
26
France
Bonjour, bonsoir,

Je suis actuellement en train de développer un plugin qui sera rendu public par la suite, cependant il y a une chose qui me tracasse :

Pour la configuration de certain paramètres j'ai besoin de les stocker, voici donc ma question !

Est-il préférable de les stocker dans un fichier "yaml" ou dans une base de données ou encore faire les deux et laisser le choix a ceux qui téléchargeront ce plugin de prendre l'un ou l'autre ?

Vos réponses me sont vraiment vitale pour ce plugin ^^

Cordialement Reiika
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Tout d'abord sache que tu es dans la mauvaise section vu qu'ici c'est réservé aux présentation de plugin et à leur recherche. Ton poste devrait plutôt être dans la section support :)

Ok maintenant concernant ton problème.
On parle bien d'une configuration. Quel serait l'avantage d'avoir une configuration en base de donnée ? Pourquoi ferais-tu cela ?
  1. Tout dépend du type de plugin. Si on prend PermissionsEX qui permet d'avoir ces grades en base de donnée c'est plutôt vu que cela permet d'avoir les mêmes grades sur plusieurs serveurs (ils sont tous relié à la base de donnée et les informations sont partagés). Mais avoir par exemple la configuration de WorldGuard sur une base de donnée est totalement inutile voir même contraignant car cela oblige à avoir une table par serveur (pour éviter que les régions ne se mélangent).
    Conclusion: une base de donnée est utile si tu veux partager des données.

  2. Cela dépend également du nombre d'information que tu dois stocker. Pourquoi les base de donnée (comme MySQL) ont été inventé ? Pour permettre de stocker beaucoup d'information de manière transparente (sans avoir besoin de réfléchir comment la structurer je veux dire) mais également pour que cela soit un autre processus qui gère leur accès, modification, ... Si tu as un plugin qui enregistre beaucoup de choses (on est plutôt avec des nombres à 4 chiffres quand je dis "beaucoup" ;) ) comme par exemple LogBlock qui enregistre tous les blocks cassé, posé, ... sur une map. A moins que ta config n'ai 1200 lignes/choix possible je ne vois pas l’intérêt.
    Conclusion: une base de donnée est utile si tu veux stocker beaucoup de données.

  3. Tout le monde n'a pas les sous pour s’acheter une base de donnée. Les personnes ayant un serveur "clef en main" n'ont pas toujours la possibilité de prendre une base de donnée. Donc si ton plugin ne fait pas partie du point 1 ou 2, je ne vois pas comment tu va pouvoir justifier le fait que ton plugin doit avoir une base de donnée pour fonctionner. Ton plugin risque de ne pas être utilisé par des personnes qui n'ont simplement pas les sous pour s'acheter le matériel.
    Conclusion: une base de donnée coûte de l'argent.

Conclusion générale: l'YML c'est cool :p
Plus sérieusement, je pense que les 3 points ci dessus expliques bien mon point de vue. Tu peux faire un système de base de donnée si tu veux mais si c'est une "bête" configuration l'YML convient très bien ;)


Cordialement,
Detobel36
 

Reiika

Dévoreur d'Oreo
29 Août 2016
34
5
69
26
France
Bonjour, merci pour ton explication,

Je vais t'en apporter plus sur mon projet, ce sera un plugin qui permet de gérer un hub avec :
- des bans;
- des tempbans;
- des mute;
- des grades;
- des reports;
ainsi que tout un tas de chose qui permettent de gérer tranquillement son hub, en plus de goodies et quelques item fun pour détendre lors des fêtes.

C'est surtout pour ces 5 premières données que je voulais savoir ce qui ai le mieux a prendre pour les stocker !

Concernant les bases de données il existe des base de données gratuites et très efficaces ( Je ne les citerai que ci demandé ).

Cordialement,
Reiika.
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Concernant les bases de données il existe des base de données gratuites et très efficaces ( Je ne les citerai que ci demandé ).
J'explique juste une observation faite depuis que je suis sur minecraft.fr. Tu as 18 ans (à en croire ton profile) c'est simple de s'aventurer sur un site que l'on ne connais pas, de rentrer son mail et de paramétrer une BDD. Le jeune de 13 ans ne va pas avoir cette facilité contrairement à un fichier de config ;)

Concernant les ban, mutes, tempban je pense qu'il serait intéressant de le faire via une base de donnée :) Car ce n'est justement pas de la config pour moi mais bien des données...
Pour moi une configuration permet de paramétrer un plugin (lui dire quoi faire, comment réagir). Un ban/mute ne dit pas à un plugin ce qu'il doit faire. On lui dit par contre quelles sont les personnes ayant un statue ban/mute.
Si j'étais toi je partirai donc vers une base de donnée ;)
Si tu veux rendre ton plugin accessible aux personnes n'ayant pas l'envie/la possibilité d'avoir une base de donnée tu peux toujours proposer une portabilité avec SQLite :)


Cordialement,
Detobel36
 

Reiika

Dévoreur d'Oreo
29 Août 2016
34
5
69
26
France
Merci a nouveau de votre aide,

J'ai aussi ajouté un système de paramètres qui avec un menu leur permet de :

- Activer / désactivé les messages des joueurs.
- Activer/ désactivé la vue des joueurs.
- Changer leur langages ( français, anglais, allemand, espagnol pour le moment ).

Est ce que je les ajoutes aussi dans la base de données, je les met dans un fichier YML personnel a chaque joueur ou est ce que je fais le même système SQLite que précédemment ?

Cordialement,
Reiika
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Est ce que je les ajoutes aussi dans la base de données, je les met dans un fichier YML personnel a chaque joueur ou est ce que je fais le même système SQLite que précédemment ?
Pour moi c'est également une donnée et non pas un paramètre. J'aurais mis ça dans le SQLite également :)
En sachant que c'est assez simple de changer ça en MySQL après pour permettre le partage de donnée :)


Cordialement,
Detobel36
 

Reiika

Dévoreur d'Oreo
29 Août 2016
34
5
69
26
France
Merci bien, pour ces conseils.

Je vais prendre en compte ce qui a été dis pour mon plugin.

Cordialement,
Reiika