Campagne de soutien et de cofinancement de Movilab

Nous faisons appel à vous pour rafraîchir le wiki et améliorer l'accessibilité des ressources

3110€ obtenus à ce jour sur un objectif de 10000 € - Fin du financement : 31 mars 2020

Soutenez sur HelloAsso ou déclarez vos intentions par mail à benoit@compagnie.tiers-lieux.org

Metaverse-City Saint Etienne : plugins et serveur

De Movilab.org


Projet Animateurs et Joueurs Objets connectés Plugins et serveur



Liste des plugins

Betonquest.png

Présentation de Betonquest

Betonquest permet de créer des quest  et de gérer des quêtes.


le nom du npc->quester: 'forgeron'

1er ponteur->first: 'greeting'

si il est block oupas du menu -> stop: 'fals'

la ou on mais les info du pnj-> la NPC_options:

  'greeting':

    text du pnj->text: "Hey bud, what's your name?"

    ponte vere les autre text du joueur ou du npc->pointers: 'dismiss,engage,rude'

  'understand':

    text: "Oh okay. See you around."

  'hurt':

    text: "Wow, okay... Bye, i guess."

  'npcname':

    text: "forgeron, how has your day been going?"

    pointers: 'goodday,badday'

  'concern':

    text: "Oh, i'm sorry bud. Hey, i know we just met, but if you ever need help. I got you."

    pointers: 'earlyleave,continue'

  'forgeronday': 

    text: "It's been real good, the world is amazing, isn't it."

    pointers: 'agree'

  'npcgoodbye':

    text: "It was really nice meeting you %player%, i hope to see you around soon."

les reponse du joueur->player_options:

  'rude':

    pointers: 'hurt'

    text: "I do not have time for  someone like you!"

  'dismiss':

    text: "I am a bit busy at the moment."

    pointers: 'understand'

  'engage':

    text: "%player%, what is your?"

    pointers: 'npcname'

  'goodday':

    text: "It's been really good forgeron, how about your day?"

    pointers: 'forgeronday'

  'badday':

    text: "It hasn't been too good."

    pointers: 'concern'

  'earlyleave':

    text: "Thanks a lot man, I will see you around."

  'continue':

    text: "Thanks you, well. How was you day"

    pointers: 'forgeronday'

  'agree':

    text: "It really is."

    pointers: 'npcgoodbye'

  'disagree':

    text: "I do not know, I have seen some pretty scary stuff."

    pointers: 'npcgoodbye'

documentation

Wiki de BetonQuest, en anglais

preview du nouveau wiki https://github.com/bundabrg/BetonQuest/tree/v2.0-preview.26/docs

l'api de BetonQuest: https://betonquest.pl/javadocs/index.html?pl/betoncraft/betonquest/database/PlayerData.html

pour config BetonQuest :https://github.com/Co0sh/BetonQuest/wiki/Installation-and-Configuration

site officiel de BetonQuest https://betonquest.pl/

Configuration

avec BetonQuest il a moin de passer par le menu qui est par defaut active ou par le chat.

pour passer par le chat il sufis d'aller dans le fichier config et trouver la ligne  : default_conversation_IO et de remplacer chest par tellraw et après d'enregistrer et appre d'aller sur minecraft est de /q reload

Tuto

Maintenant que vous savez à quoi ressemble une quête (très) simple, il est temps de commencer à apprendre à écrire quelque chose de similaire. Commençons par les événements.Nous ne ferons pas de conversation tout de suite,

Événements

Ouvrons simplement le fichier events.yml dans le package par défaut . A la fin, ajoutez une nouvelle ligne:

foo: message Hello world!

Ceci est une instruction d'événement. BetonQuest l'utilisera pour déterminer le type d'événement et ce qu'il doit faire exactement.

foo est le nom,

message est le type

et Hello world! indique le type de message qu'il doit afficher.

Dans ce cas, si vous exécutez foo , il vous affichera un Hello world! .

Enregistrez maintenant le fichier, lancez la commande /q reload  et exécutez l'événement avec la commande /q e {name} foo ( q raccourci pour quest, e raccourci pour event, {name} nom de votre Minecraft sans crochets et foo nom de l'événement que nous venons de créer. ).

Il devrait vous montrer un Hello world! dans le chat il serra marquer en blanc dans le chat.

Créons un autre événement, plus compliqué. teleport semble assez compliqué.

Comme vous pouvez le lire dans la liste des événements , un seul argument, l'emplacement. Appuyez sur F3 et vérifiez votre position actuelle (il est indiqué à gauche, trois chiffres x, yet z). Ajoutez maintenant dans events.yml une autre ligne:

bar: teleport 100;200;300;world

et remplacez 100 par votre x coordonnée, 200 avec y et 300 avec z. world doit être remplacé par le nom de votre monde actuel. Enregistrez le fichier, rechargez le plugin et exécutez cet événement avec une commande décrite précédemment. Il devrait vous téléporter à l'emplacement que vous avez spécifié.

Félicitations, vous venez de créer vos premiers événements.

Allez-y et faites des expériences avec d'autres types d'événements.

Vous pouvez les trouver dans le chapitre Liste des événements . Une fois que vous avez terminé, commençons les conditions d'apprentissage.

Conditions

Ouvrez le fichier conditions.yml et ajoutez-y une nouvelle ligne:

foo: location 100;200;300;world 5

Pouvez-vous voir comment nous avons nommé la foo condition de la même manière que l' foo événement ?

Ils ne sont connectés d'aucune façon. Les noms de condition et les noms d'événement sont séparés, vous pouvez donc leur attribuer le même nom sans aucun problème. Regardons maintenant la chaîne d'instruction. Comme vous pouvez le soupçonner, location est un type de condition.

Celui-ci signifie que nous vérifierons si le joueur se trouve à proximité de cet emplacement (vous devez changer l'emplacement pour l'endroit où vous vous trouvez actuellement, afin que vous n'ayez pas à parcourir le monde entier). Notez qu'il ya un argument supplémentaire, 5. Il s’agit de la distance maximale que vous pouvez éloigner de l’emplacement pour satisfaire à la condition.Bon, enregistrez le fichier et rechargez le plugin.

Maintenant, dirigez-vous vers l'emplacement que vous avez défini dans la condition.

Essayez de vous tenir sur le bloc exact correspondant à cet endroit.

Émettez /q c {nom} commande foo ( c'est un raccourci pour condition).

Il devrait vous montrer "vérification de l'état bla bla bla: vrai ". Nous nous concentrons sur ce dernier mot, vrai .

Cela signifie que vous remplissez la condition: vous vous tenez dans un rayon de 5 pâtés de maisons. Maintenant déplacez-vous de 2 pâtés de maisons et lancez cette commande à nouveau. Vous devriez toujours remplir la condition. Marchez 4 pâtés de maisons et essayez maintenant. Il devrait montrer faux . Vous êtes maintenant en dehors de ce rayon de 5 blocs. Trouver? Génial.

Maintenant, je vais vous montrer l'utilisation la plus simple de ces conditions.

Ouvrez à nouveau le fichier events.yml et, à la fin de l' foo instruction, ajoutez un conditions:foo argument. Au fait, renommez l' foo événement en baz, afin que les noms ne deviennent pas déroutants. Maintenant, vous devriez avoir quelque chose comme

baz: message Hello world! conditions:foo

Maintenant, l' baz événement ne s'exécutera que s'il remplit les foo conditions.

Rechargez le plugin, sortez du rayon de 5 blocs et essayez d’exécuter l’ baz événement. Puff, rien ne se passe. C'est parce que vous ne remplissez pas la foo condition. Retournez dans le rayon et essayez d’organiser cet événement maintenant. Il devrait heureusement afficher le Hello world! message.

C'est très bien que nous puissions ajouter de telles conditions, mais le problème est le suivant: que se passe-t-il si vous voulez afficher le message uniquement si le joueur est en dehors du rayon? Ne vous inquiétez pas, vous n'avez pas à spécifier de inverted_locationcondition ou quoi que ce soit du genre. Vous pouvez simplement nier la condition. La négation fait que la condition se comporte exactement de la manière opposée, dans ce cas, elle foone sera satisfaite que si le joueur se trouve en dehors du rayon de 5 pâtés de maisons et ne sera pas remplie s'il est à l'intérieur. Ouvrez le fichier events.yml et ajoutez un point d’exclamation avant la foocondition.

baz: message Hello world! conditions:!foo

Cela signifie "afficher le message Hello world!si la foocondition n'est pas remplie ". Enregistrez le fichier, rechargez le plug-in et exécutez l'événement à l'intérieur et à l'extérieur du rayon pour voir comment il fonctionne.

Évènement "Protection de PNJ"

Cette suite de commandes permet de détecter l'intrusion de plusieurs mobs, d'un type précis ou pas, dans une zone définie. Cela déclenche ensuite un évènement, qui permet de tuer les joueurs.

bxz est le nom de l'event, qui va dans plusieurs ficher exemple event,le non du pnj, on peux le remplacer par le non quon veux de l’évent bxz.

Dans le jeu

command Explications
player (joueur) /q e nom bxz le / pour designer une commande , q raccourci pour quest,

e raccourci pour event ,

nom de votre joueur et bxz nom de l'événement que je crée. Commande a taper dans le jeu

Dans le ficher

Onglet code yamel Explications
le nom du pnj events: ' bxz' pour déclarer un event dans le fichier conversations il faut mettre event: 'le nom qu'on a mis dans le ficher event'
event bxz: folder effe,title,comm,


effe: effect BLINDNESS 120 1 --ambient


title: command title @a title {"text":"Game Over","color":"dark_red","extra":[{"text":" ","color":"yellow"}]} 


comm: command kill @a 


conditions:mobspawn (voir ci-dessous)

bxz est le nom qu'on va appeler dans le fichier conversations
  • l'event folder va regroupe plusieur event commes
  • effect qui va donner un effec de potion aveuglante sur les joueurs
  • title qui va écrie haut millieus de l'ecran Game Over en rouge ,
  • command kill qui va tuer les joueur s'il y a des mob dans la zone,
  • la condition va dire s'il a un mob dans la zone,
conditions mobspawn: 'monsters ZOMBIE:1 x;y;z;$mon_monde$ 10 ' monsters est le nom de la condition, Zombie est le type de mob qu'il va détecter dans la zone et 1 est le nombre de mob qui doit détecter au minimum pour que la condition marche, la zone de détection a un radius de 10 blocs.

Évènement "Coffre give"

Cette suite de commandes permet de déclencher par le click le give d'itemes dans un coffre.

muffin est le nom de l'event, qui va dans plusieurs ficher exemple event,le non du pnj, on peux le remplacer par le non quon veux de l’évent muffin.

Dans le jeu

command Explications
player (joueur) /q e nom muffin le / pour designer une commande , q raccourci pour quest,

e raccourci pour event ,

player (joueur) /q o click_chest le / pour designer une commande , q raccourci pour quest,

o raccourci pour objectives,

nom de votre joueur et nom de l'objectives que je créer. Commande a taper dans le jeu pour voir si vous avez l'objectives d'activer.

Dans le ficher

Onglet code yamel Explications
le nom du pnj évents: ' chestgive_un' pour déclarer un évent dans le fichier conversations il faut mettre évent: 'le nom qu'on a mis dans le ficher évent'
évent chestgive_un: chestgive -387;8;159;world bow




objectif:clic_chest (voir ci-dessous)

chest_placer est le nom qu'on va appeler dans le fichier conversations
  • l'évent objective start va dire quille dois délcencher l'objective
  • chestgive qui va give des item qu'on a spécifier dans le fichier items
objectif clic_chest: action right chest loc:-387;8;159;world évent:chestgive_un action est le nom de l'objectif, right est comment il clic sur l'objet, chest est l'objet ou il dois cliquer ,loc c'est coordonner de la ou il a l'objet en question, évent:chestgive est le nom de l'évent qui se si tu dans le fichier évent

Command

commande de BetonQuest info  permission
/j donne le journal betonquest.journal
/bc ouvre vos pointeurs de boussole.
/backpack  ouvre le backpack betonquest.backpack 
/q liste toutes les commandes admin disponibles betonquest.admin
/q reload recharge le plugin
/q event {playerName} {package.eventID} déclenche un événement par le joueur.
/q condition {playerName} {package.conditionID}  indique si le lecteur remplit ou non la condition spécifiée
/q item {package.itemID}  crée un article en fonction de ce que vous avez en main
/q donne {package.itemID}  vous donne un élément défini dans la configuration
/q purge {playerName} supprime toutes les données du joueur de la base de données
/q rename {tag / point / objectif / entry} {oldName} {newName} renomme tous les éléments spécifiés de la base de données
/q delete {étiquette / point / objectif / entrée} {nom} supprime tous les éléments spécifiés de la base de données
/q backup  crée une sauvegarde des fichiers de configuration et de la base de données
/q update  met à jour le plug-in avec la dernière version disponible. Si vous souhaitez plutôt mettre à jour une version de développement, ajoutez un --devargument à la fin de la commande.
/q create {package}  crée un nouveau package avec le nom donné, rempli avec la quête par défaut
/questlang {lang} change la langue du lecteur (et globalement si utilisé depuis la console). default language utilisera le langage défini dans config.yml . betonquest.language

Pour donner un permission par betonquets il faut fair minecraft-command: command lp user non du jouer permission set le non de la permission.

Info utile

BetonQuest a un api et peux stocker dans une basse de donnée mysql les données des quets

il peux prendre en compte les commande sudo (joueur) et les commande (console)

BetonQuest peut s’accrocher à d’autres plugins pour étendre ses fonctionnalités

on peut activer des command block avec le setblock a distance

Ne donnez pas la permission betonquest.admin à des personnes en qui vous n'avez pas entièrement confiance. Ils peuvent utiliser la commande /q config pour ajouter un événement de commande et ainsi exécuter n'importe quelle commande en tant que console. Cela pourrait être dangereux.


Worldedit.png

Présentation de WorldEdit

WorldEdit est un plugin avec le quel on peut terraformer




Documentation et tuto écrire

en: https://wiki.sk89q.com/wiki/WorldEdit wiki officiel de WorldEdit

en:https://minecraft.fr/world-edit/ article écrit qui explique WorldEdit

info en vrac

les blocks de structure  marche un peu comme schematica (limite des block de structure 32x32x32)

Le bloc de commande (nom anglais : command block) est un bloc permettant d’exécuter des commandes.

les command block ne prenne pas les // donc la solution c'est de fair passer par betonquest les command de worldedit ( q e @p le name)

minecraft-world: paste 190;70;60;world roger

minecraft-worldx: paste 186;70;61;world vide

les plugin python sont plus vraiment mis à jour (https://github.com/zhuowei/RaspberryJuice,https://github.com/Jycraft/jycraft)

l'alternative a Worldedit et VoxelSniper  a se jour c'est Fast il prend les deux plugins en meme temps

skin : https://minecraft.novaskin.me/

pour les arme (CrackShot (Guns) https://dev.bukkit.org/projects/crackshot

commande block: "@r" tuera un joueur aléatoire, "@a" tuera tous les joueurs et "@e" tuera toutes les entités (ATTENTION cette dernière peut être dangereuse)