ODailyQuests - Plugin de quêtes quotidiennes

Ordwen

Architecte en herbe
27 Octobre 2014
357
58
140
21
Hello !

J'ai développé un plugin, et je cherche quelques personnes intéressées pour le tester sur leur serveur histoire de le débugger et obtenir des retours.

C'est un plugin de quêtes quotidiennes, nommé ODailyQuests.
Tous les jours, les joueurs ont 3 quêtes aléatoires dans une liste à réaliser. Cela ajoute quelques objectifs supplémentaires et du dynamisme à un serveur.

Il y a deux modes de quêtes : les quêtes globales et les quêtes catégorisées par difficulté (facile, medium, difficile). Si le second mode est choisi, une quête de chaque catégorie sera tirée aléatoirement. Sinon, les trois quêtes viendront des quêtes globales.

Il y a également deux modes temporels : fixe (l'heure de tirage est la même pour tous les joueurs, à minuit) et spécifique (chaque joueur a sa propre heure de tirage, selon sa dernière connexion).

Il y a actuellement 11 types de quêtes :
  • BREAK (casser des blocs);
  • PLACE (placer des blocs);
  • CRAFT (assembler des items sur un établi);
  • PICKUP (ramasser au sol);
  • LAUNCH (lancer un projectile (perle, œuf, flèche));
  • CONSUME (consommer des potions, nourriture, sceau de lait);
  • GET (obtenir un nombre précis d'un objet (se complète en cliquant dans un menu));
  • COOK (cuire des objets dans un four (tout ce qui se cuit fonctionne, la progression est incrémentée quand le joueur retire du four));
  • ENCHANT (enchanter des objets sur une table d'enchantement);
  • KILL (tuer des entités (monstres, animaux ou joueurs));
  • FISH (pêcher un objet (tout ce qui se pêche fonctionne).

Chaque quête réalisée engendre une récompense, qui peut être d'un des types :
  • COMMAND (le serveur exécute une commande en récompense);
  • EXP (donne des niveaux d'expérience au joueur);
  • MONEY (donne de l'argent au joueur);
  • POINTS (donne des points au joueur (uniquement compatible avec TokenManager pour le moment).

Des interfaces sont accessibles pour visualiser les quêtes existantes (globales et catégories) et ses propres quêtes, avec des informations comme sa progression.
Ces menus sont personnalisables dans le fichier de configuration.

Le plugin propose l'utilisation de Citizens, en cliquant sur les NPCs pour ouvrir les menus. Il y a également deux placeholders à utiliser dans les scoreboards ou les tabs, l'un permettant de voir le nombre de quêtes quotidiennes validées et l'autre le temps restant avant le prochain tirage.

Il y a deux modes de stockage pour le moment : YAML et MySQL. Cela ne concerne que les progressions, qui sont chargées/sauvegardées à la connexion/déconnexion du joueur. Les quêtes sont stockées dans des fichiers dédiés selon leur catégorie, et sont toutes à rédiger sur un schéma précis comme l'exemple qui suit :
YAML:
3:
    name: "Too many zombies"
    menu_item: ZOMBIE_HEAD
    description:
      - "&cKill &65 &czombies."
      - "&aWin &b500 &aTokens."
    quest_type: KILL
    entity_type: ZOMBIE
    required_amount: 5
    reward:
      reward_type: POINTS
      amount: 500

Enfin, le plugin nécessite Vault pour fonctionner et est supposément compatible Spigot et PaperSpigot, à partir de la 1.16. Il nécessite Java 16 pour fonctionner.

Je suis tout à fait ouvert à ajouter d'autres types de quêtes, de récompenses ou d'items pris en charge, génériques ou spécifiques à des plugins (par exemple, objectifs d'îles, de claims...). C'est même tout l'intérêt, faire quelque chose de complet ! Je suis ouvert à toute suggestion pour rendre le plugin meilleur, n'hésitez pas !

Pour les personnes intéressées, vous pouvez me contacter sur Discord et je vous enverrais le plugin : Samu'#1211
J'ai également mis au point un Wiki au lien suivant (en anglais): https://ordwenplugins.gitbook.io/odailyquests/

Pour les plus téméraires, voici un lien vers le code source du plugin : https://github.com/SamuDu24/ODailyQuests
C'est mon premier gros plugin, alors si vous voyez des choses pas très jolies dans le code, je serais heureux de recevoir vos critiques !

Merci beaucoup !

EDIT: un an plus tard, le plugin est public et a plutôt bien fonctionné. J'ai appris énormément de choses, et j'en suis assez fier.
Voici un lien vers la page Spigot du plugin.
Et enfin, un lien vers le serveur de support Discord.
 
Dernière édition:
  • C'est le feu
Reactions: Akamiro

Ordwen

Architecte en herbe
27 Octobre 2014
357
58
140
21
Hey ! Pouvez vous le rendre compatible en 1.8 vu que c'est une version beaucoup utilisée ?

Hey !

Je suis désolé, mais ce ne sera pas possible.
Techniquement, il n'est pas impossible que le plugin fonctionne, mais il y aura sûrement des problèmes d'identifiants pour les items, et je n'assurerai aucun support pour ces versions, car cela me demanderait sûrement une refonte du code.

J'ai choisi les versions entre la 1.13 et la 1.18 parce que ce sont celles-ci les plus utilisées aujourd'hui. Vous pouvez le constater via le lien suivant, sur le diagramme "Minecraft versions" : https://bstats.org/global/bukkit

De plus, très peu de plugins conçus pour les versions inférieures à la 1.13 sont aujourd'hui maintenus, ou ont toujours un support actif de la part des développeurs.
Je préfère m'aligner à cette tendance et évoluer avec le temps.

Voilà voilà !
Au plaisir.
 

ACIDICTE

Aventurier
5 Mars 2023
2
0
1
23
Salut comment je peut faire pour ajouter un mission style placer des block cassez des block etc
 

jordan555

Aventurier
15 Mai 2023
1
0
1
21
Salut tout le monde

Est t'il possible avec ce plugins de lancer des quêtes aléatoire sans devoir dialoguer avec un pnj ( genre toute les 10 min ca donne une quêtes a faire au joueurs )
 

Ordwen

Architecte en herbe
27 Octobre 2014
357
58
140
21
Salut tout le monde

Est t'il possible avec ce plugins de lancer des quêtes aléatoire sans devoir dialoguer avec un pnj ( genre toute les 10 min ca donne une quêtes a faire au joueurs )
Hey !

Avec ODailyQuests, tu peux attribuer le nombre de quêtes que tu veux aux joueurs, donc ça peut être une comme 10... Mais actuellement, il n'y a que trois modes disponibles: les quêtes journalières, hebdomadaires et mensuelles. Je travaille actuellement sur la possibilité de mettre un délai personnalisé, donc tu pourras théoriquement mettre 10 minutes, et le joueur recevra une nouvelle quête toutes les 10 minutes. Par contre, je ne peux pas donner une date de sortie pour cette fonctionnalité.

Il n'y a pas besoin de dialoguer avec un PNJ (ce n'est même pas possible), le plugin se charge tout seul d'attribuer les quêtes.