[Plugin] TNTFly

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
29.12.2017
Bonjour/bonsoir,

Après avoir lu les règlements de cette section, je présume que je peux poster la présentation de mon plugin. :D

~Un plugin de TNTFly?~

Je vous présente aujourd'hui un de mes plugin qui a vu le jour en mars 2017 déjà, mais mieux vaut tard que jamais. ^-^

N'étant qu'apprentis codeur à cette époque, le code de ce plugin est un peu bazardé, mais fonctionnel ne vous inquiétez pas. (Je suis encore apprentis, mais je m’en-sors beaucoup mieux)

Le plugin est presque à sa version finale qui sera probablement la 4.0(Actuellement en 3.9), qui sortira aux alentours de janvier 2018.

Le plugin comporte actuellement plus de 2000 téléchargements. Malgré certains plugins étant à des centaines de milliers de téléchargement, ce n'est pas grand chose.. Mais je suis fier de moi tout de même.
:p

~Présentation du plugin~
Le plugin comporte plus de fonctionnalités qu'une simple tnt qui te propulse. :p

Sachez qu'une petite partie du code(Environ le 3% du plugin) a été en partie copiée sur le tutoriel de Gravenilvec pour le tntfly de son rush.
Vidéo: Ici

Bref c'est partit pour la présentation, le plugin comporte plusieurs fonctionnalités. Voici les quelles;

- Une interface d'inventaire permettant d'activer ou désactiver directement InGame le plugin, c'est à dire que si vous le mettez sous "Disabled", les tnt redeviendront comme en vanilla.
Vue: Ici

- Une interface d'inventaire permettant d'avoir les ajouts/correction de chaque mise-à-jour du plugin.
Vue: Ici

- L'interface la plus utile du plugin, celle permettant de modifier les tnt directement InGame, aucune modification ne se fait depuis un fichier de configuration. ^^
Vue: Ici
Dans cette dernière interface, vous pourrez configurer;

- Les dégâts qu'une tnt infligera aux joueurs à proximité.

- Des effets que les joueurs recevront si ils sont à proximité de la tnt qui explose.
(Effets disponibles: Rapidité, Nausée, Régénération, Obscurité, Wither)
Bien sûr, vous pouvez modifier le niveau ainsi que le temps pour chaque effet!

- Les dégâts que la chute d'un joueur se verra infliger.

- Les dégâts matériel qu'infligera une tnt lors de l'explosion. (soit activé, soit désactivé).

- Si les dégâts matériels sont activés, les drops des blocs cassés par l'explosion(soit activé, soit désactivé).

- Les dégâts dût au feu(Uniquement feu activé grâce à un briquet). (Si un joueur veut enflammer un bloc avec un briquet et que le paramètre est mis sous "Disabled" le feu disparaîtra).

- Le temps qu'une tnt activée avec un briquet mettra pour exploser(Calculé en ticks).

- Le nom qu'une tnt activée aura(Par exemple: Vive Minecraft.fr).

- Et le dernier ajout tout juste sortit en 3.9, le instant mod,
Si il est activé depuis les paramètres du plugin, il vous suffira de faire /tnt give <nombre> et vous recevrez une tnt spéciale, lorsqu'elle sera placée sur le sol elle sera déjà activée et explosera après 60 ticks(3 secondes).

Pour mener à fin la présentation de ce plugin, sachez que le 90% des messages sont customisables depuis un fichier "Message.yml". Pour des raisons évidentes car le plugin est codé entièrement en anglais. \'o'_


~Commandes du plugin~

Pour ce qui est de la partie des commandes, elle est plutôt complexe. Mais très simple à comprendre.

/tnt:
La commande principale est "/tnt". Elle vous ouvrira une interface d'inventaire de 9 cases, avec dedans 3 items, chacun de ces 3 items pourra vous ouvrir une des trois interfaces citées en dessus.


/tnt tnt|information|settings:
Ou alors vous pouvez rejoindre directement une interface avec les commandes "/tnt tnt" pour la première, ensuite "/tnt information" pour la deuxième et enfin "/tnt settings" pour la dernière.


/tnt set <nom>:
Pour mettre un nom custom aux tnt c'est la commande "/tnt set <nom>". Les codes couleurs ainsi que les espaces sont autorisés dans le nom.


/tnt give <nombre>:
Ensuite nous avons "/tnt give <nombre>" pour se donner un certain nombre de tnt pour le mode "instant tnt".


Les effets \'o'/
Et enfin la partie reloue des commandes, pour les effets. Ce sera toujours la même structure, mais avec le nom de l'effet. Pour modifier la durée de l'effet de rapidité par exemple, ça sera "/tnt speed d <secondes>" et pour le niveau de l'effet "/tnt speed l <niveau>".

à savoir que si vous passez directement par l'interface de paramètres du plugin, dans la catégorie "effects" vous aurez toutes les informations de quel effet est activé, combien de secondes et de quel niveau.

Sinon pour les autres effets ça sera,
- "/tnt nausea" pour la nausée
- "/tnt regen" pour la régénération
- "/tnt blindness" pour l'obscurité
- "/tnt wither" pour le wither



/tnt help:
Et pour mener à fin cette partie des commandes, vous avez le "/tnt help" pour avoir une vision sur toutes les commandes citées ci-dessus.

~Particularité du plugin~

Pour modifier les ticks qu'une tnt mettra pour exploser, il vous faudra cliquer sur l'horloge dans l'interface de paramétrage du plugin "/tnt settings" et ensuite entrer un nombre entre 0 et 80 dans le chat. Si le nombre n'est pas contenu entre ces derniers, le plugin vous redemandera un nombre. Si vous voulez quitter le mode édition pour pouvoir réécrire dans le chat normalement, il vous suffira d'envoyer une lettre à la place d'un nombre.

~Permissions du plugin~

Les permissions pour utiliser une commande ne sont pas très compliquées.


Toutes les permissions:
Tout d'abord il y a une permission donnant tout les accès au plugin, en quelques sorte une permission admin, ça sera "tntfly.*".


/tnt:
Ensuite la permission de base c'est la permission "tntfly.menu". Sans cette dernière vous ne pourrez pas avoir accès au menu des interfaces d'inventaires.


/tnt tnt|information|settings et les interfaces:
Malgré tout, si vous ne voulez pas qu'un joueur ait accès à toutes les zones de l'interface, donnez lui que la permission "tntfly.tnt" et il n'aura accès qu'à la première interface. Si vous lui donnez la permission "tntfly.info" il n'aura accès qu'à la deuxième. Et "tntfly.settings" pour la dernière.

Si le joueur à la permission "tntfly.menu" et qu'il n'a pas accès au "tntfly.settings" il ne pourra pas rentrer dans l'interface ET ne pourra pas exécuter la commande "/tnt settings".


/tnt set <nom>:
Pour modifier le nom d'une tnt c'est la permission "tntfly.setname" qui s'en occupe.


/tnt help:
Pour la commande "/tnt help" c'est la permission "tntfly.help".


Les effets \'o'_
Pour ce qui est des effets, chaque effet a sa commande spécifique. Pour activer/désactiver ainsi que modifier les valeur de cet effet, c'est la permission "tntfly.modify.speed". Le joueur a donc accès aux commandes "/tnt speed l <lvl>" et "/tnt speed d <temps>" et à l'interface dédié à l'effet de rapidité.

Vous avez compris pour les autres effets.. "tntfly.modify.<effet>".
Petite particularité pour la régénération, c'est "tntfly.modifiy.regeneration" et non "regen" cette fois-ci.

Pour activer ou désactiver TOUT les effets. (En gardant leur configuration actuelle à chaque fois) depuis l'interface de paramètres, c'est "tntfly.modify".

/!\ Cette fonction ne permet pas de pouvoir modifier tout les effets. /!\


Modifier les ticks d'une tnt:
Pour modifier le temps que mettra une tnt à exploser c'est "tntfly.modify.fuzeticks".


/tnt give <nombre>:
Et enfin pour pouvoir utiliser la commande "/tnt give <nombre>" pour l'instant mode, c'est "tntfly.give".

J’intégrais des permissions permettant de restreindre toutes les actions possibles dans l'interface de paramètres, telle que les dégâts des tnt etc,..

~Informations~

Pour ce qui est de la version de spigot requise pour ce plugin, pas trop à vous inquiéter, c'est presque toutes. Malheureusement la version 1.7 à été rayée de la liste, trop de bug.. La plus petite version requise est donc la 1.8, ensuite vous avez la 1.9, la 1.10, la 1.11. Pour ce qui est de la 1.12, je ne vais pas vous le cacher que j'ai recensé quelques bugs alors pour l'instant, je dirais que le plugin peut-être utilisé en 1.12, mais à vos risques et périls qu'il ne fonctionne pas. ;'D

Vous pouvez modifier le plugin sans les interface et tout faire depuis le fichier "Storage.yml" mais comme vous le voyez, il ne s'appelle pas "config.yml" car ce n'est pas recommandé de l'utiliser. Du sens ou, aucune indication est faîte, donc si vous faîtes une erreur, vous devrez supprimer le fichier pour qu'il se recréer. Mais toutes vos anciennes configurations seront reset. ;w;

Si vous utilisez une version 3.8 et que vous mettez la version 3.9, les fichiers ".yml" s'actualiseront automatiquement, en se basant sur les lignes déjà écrites dans ces derniers. Si vous supprimez une ligne par accident, il se peut qu'il refasse une mise à niveau, et vous vous retrouverez avec plusieurs fois la même ligne. Alors faîtes attention !


~Conclusion~

Hey, voila j'ai terminé de présenter mon plugin, donc une version 4.0 arrivera bientôt, aucune nouvelle fonction fera son arrivée, simplement de nouvelles permissions et une résolutions de quelques bugs restant peut-être.

Pour ce qui est des bugs, des questions, envoyez les moi en mp forum, en dessous de ce poste.

J'espère avoir été clair dans la présentation de mon plugin, car il n'est pas super simple à utiliser sans aide, même moi je me perds dans les permissions parfois.

Bref en espérant que le plugin vous plaise et que vous passerez une excellente année 2018 pleine de fun et de programmation !!!! ;'D
(Je n'ai jamais été très doué pour créer des postes beau, agréables à lire.. Alors veuillez m'excuser si ce n'est pas top ><)
Téléchargement: Ici
(Pas de pubs, lien direction SpigotMC, la ou est exposé mon plugin ^^)

Bien à vous,
Luca008.
 
Dernière édition:
  • J'aime
Reactions: crokis

crokis

Développeur PHP/Java/SQL
16 Juillet 2015
51
25
28
Auvergne-Rhône-Alpes, France
Bonjour,

C'est un plugin qui semble très complet :) grand bravo, ça a du prendre pas mal de temps !
Seul petit bémol : le fichier de configuration me semble indispensable, surtout pour ce qui est fait :/
Comment gères-tu l'enregistrement des paramètres à chaque reboot serveur ?
Cependant, créer une config t'obligerait à supprimer sans coeur une bonne partie de ton code (avec l'interface inventaire), donc je comprends :p

En tout cas, j'espère qu'il servira à plus d'un, peut-être à moi, qui sait ! :)
Bonne continuation, et encore bravo :)
 
  • J'aime
Reactions: Luca_008

Luca_008

Architecte en herbe
21 Novembre 2016
150
20
125
22
Salut. Il a un fichier de configuration, simplement que je n'ai pas utilisé celui de base qui est mis à disposition dans l'API Bukkit. J'ai créer un fichier en .yml qui stock les informations que tu changes depuis les interfaces inventaires. Ce qui fait qu'a chaque reboot, tout reste comme tu l'avais configurer.

Mais merci c'est sympatoche d'avoir laissé un avis ! :)

Bonne soirée.
 
  • J'aime
Reactions: crokis