Bases de Sqript
Créer un script
Un script est défini par un unique fichier, dont l'extension est .sq
. Chaque fichier possédant cette extension dans le dossier .minecraft/scripts/ correspondra donc à un script.
Info
Il est conseillé d'utiliser un éditeur de texte performant pour faciliter ou automatiser certaines tâches lors de la rédaction d'un script.
Pour fonctionner correctement, un script doit respecter une certaine structure.
Blocs
Un script fonctionnel est composé de blocs. Un bloc est un ensemble de lignes ayant un certain rôle lors de l'exécution du script, et constitue l'élément le plus important dans un script. Un bloc peut exécuter des actions, définir des valeurs, ou indiquer à Sqript comment se comporter avec les autres blocs. Voici un exemple de structure par blocs :
Tip
Pour l'instant, on ignorera le contenu de ces blocs. Tout sera expliqué dans les parties suivantes.
Un bloc peut contenir des sauts de lignes, Sqript considérera qu'un bloc s'arrête que lorsqu'un nouveau bloc commence ou lorsqu'on arrive à la fin du fichier. On remarquera qu'un nouveau bloc est défini par une première ligne dont l'indentation vaut zéro.
Info
L'indentation d'une ligne correspond au nombre de tabulations présentes au début de la ligne. Pour indenter une ligne, on peut utiliser la touche ++tab++, ou ajouter 4 espaces.
Warning
Il est bien précisé ci-dessus que 4 espaces sont nécessaires, si un espace est oublié l'indentation sera mauvaise. Si un script est mal indenté, de nombreuses erreurs peuvent se produire. Il est donc conseillé d'utiliser un éditeur de texte permettant une manipulation efficace et intuitive des tabulations (Sublime Text 3 ).
Liste des blocs implémentés par Sqript
Certains blocs peuvent être rechargés (recompilés lors de l'exécution de la commande /sqript reload), et d'autres non. Un bloc rechargeable sera indiqué par l'annotation reloadable
en haut à droite de celui-ci.
on script load: print "Hello world !"
import: * from my_script
every 1 minute: ...
item test_item: name: My Test Item texture: sample:yellow_diamond.png creative tab: miscellaneous max stack size: 8 type: item
packet test_packet(message): client: print message server: print message
function broadcast(message): #Fonction qui envoie un message à tous les joueurs for p in all players: send message to p
command /randomplayer: usage: /randomplayer description: returns a random player send a random element of all players to sender
options: my_value: 5