Ceci est une référence pour la librairie Python de l'API de Minecraft supportée par l'édition Minecraft: Pi pour le Raspberry Pi.
La première section ci-dessous montre la structure de la librairie. Par la suite, l'ensemble des méthodes des différentes classes sont décrites dans le format suivant:
Description => type de retour (si applicable)
# Exemple de code utilisant la méthode
variable = mc.nomMethode(arguments)
La description de la classe Block
fournit la liste des id
de blocs disponibles via l'API ainsi que les valeurs possibles du paramètre data
lorsqu'applicable.
minecraft.py
- Classe
Minecraft
: classe principale pour se connecter et interagir avec le jeu- Classe
player
: obtenir et changer la position et les réglages du joueur - Classe
entity
: obtenir et changer la position et les réglages des entités (ou joueurs) - Classe
camera
: changer l'angle et la position de la caméra - Classe
events
: obtenir les événements qui se sont produits dans la partie
- Classe
- Classe
block.py
- Classe
Block
: définition d'un bloc, en particulier de son type
- Classe
event.py
- Classe
BlockEvent
: définition d'un événement de bloc, en particulier quel événement, quel bloc et quel joueur
- Classe
vec3.py
- Classe
Vec3
: classe générale pour la gestion d'un vecteur tridimensionnel (c.à.d. x, y, z)
- Classe
connection.py
: module interne utilisé par l'APIutil.py
: module interne utilisé par l'API
"La classe principale pour interagir avec une instance de Minecraft Pi". Inclus les fonctions pour créer une connection, modifier les joueurs et blocs et capturer les événements.
Crée une connection avec Minecraft (adresse, port) => objet Minecraft
.
# Utiliser l'adresse et le port par défaut
mc = minecraft.Minecraft.create()
# Spécifier l'adresse ip et le port
mc = minecraft.Minecraft.create("192.168.1.1", 4711)
Obtient le type (id) du bloc à la position (x, y, z) => entier:id.
# Obtenir le type du bloc à (0, 0, 0)
typeBloc = mc.getBlock(0, 0, 0)
Obtient le type du bloc avec données à la position (x, y, z) => objet Block
.
# Obtenir un objet bloc pour le bloc à (0, 0, 0)
objBloc = mc.getBlockWithData(0, 0, 0)
Place un bloc à (x, y, z) de type id avec donnée facultative *data.
# Placer un bloc à 0, 0, 0 de type "DIRT"
mc.setBlock(0, 0, 0, block.DIRT.id)
# PLacer un bloc à 0, 0, de type "WOOD" avec sous-type 1
mc.setBlock(0, 0, 0, block.WOOD.id, 1)
Remplit une cuboïde de blocs dans l'espace entre (x0, y0, z0) et (x1, y1, z1) de type id avec donnée facultative *data.
# Place de multiples blocs en remplissant l'espace
# entre deux points (-2, -2, -2) et (2, 2, 2).
mc.setBlocks(-2, -2, -2, 2, 2, 2, block.STONE.id)
Obtient la hauteur du monde à la position (x, z) => entier.
# Obtenir la position y (verticale) du bloc le plus
# haut (n'étant pas de l'air) à la position 0, 0
y = mc.getHeight(0, 0)
Obtient une liste des id des entités des joueurs connectés => [entier:id]
# Afficher la liste des id des entités des joueurs connectés
idEntites = mc.getPlayerEntityIds()
for idEntite in idEntites:
print(idEntite)
Sauvegarde un "checkpoint" qui peut être utilisé pour restaurer le monde.
Restaure le monde à sa condition au moment de la sauvegarde du checkpoint avec .saveCheckpoint()
.
Affiche un message dans le "chat" du jeu.
# Écrire "Bonjour monde Minecraft!" dans la fenêtre de jeu
mc.postToChat("Bonjour monde Minecraft!")
Règle les paramètres du jeu (setting, status). Clés de paramètres: 'world_immutable'
, 'nametags_visible'
.
# Régler 'world_immutable' à vrai (True)
mc.setting('world_immutable', True)
# Régler 'nametags_visible' à faux (False)
mc.setting('nametags_visible', False)
Classe qui permet d'interagir avec le joueur, pour obtenir et régler sa position.
Obtient la position du joueur dans le monde => objet Vec3
(nombres décimaux).
Si le joueur est au milieu d'un bloc, x.5 est retourné.
# Obtenir la position du joueur (nombres décimaux)
posJoueur = mc.player.getPos()
# Assigner les coordonnées de la position du joueur
# à des variables individuelles
x, y, z = mc.player.getPos()
Déplace le joueur à la position (x, y, z).
# Déplacer le joueur à la position (0.5, 1.0, 10.1)
mc.player.setPos(0.5, 1, 10.1)
Obtient la position de la "tuile" ou bloc sur lequel le joueur se tient => objet Vec3
.
# Obtenir la position du bloc sur lequel le joueur se tient
tuileJoueur = mc.player.getTilePos()
Déplace le joueur sur le bloc à la position (x, y, z).
# Déplacer le joueur sur le bloc à la position (0.5, 1.0, 10.1)
mc.player.setTilePos(0.5, 1, 10.1)
Règle un paramètre du joueur (setting, status). Clé de paramètre: 'autojump'
.
# Régler 'autojump' à vrai (True)
mc.player.setting('autojump', True)
Les méthodes de la classe Minecraft.entity
sont utilisées en conjonction avec la méthode .getPlayerEntityIds()
pour interagir avec les entités (ou les joueurs) dans une partie. Les méthodes de cette classe sont utiles pour les parties multi-joueurs.
# Obtenir l'id des entités des joueurs connectés à la partie
idEntites = mc.getPlayerEntityIds()
idEntite1 = idEntites[0]
idEntite2 = idEntites[1]
# ...
Obtient la position d'une entité dans le monde => objet Vec3
(nombres décimaux).
Si l'entité' est au milieu d'un bloc, x.5 est retourné.
# Obtenir la position de l'entité 'idEntite'(nombres décimaux)
posEntite = mc.entity.getPos(idEntite)
# Assigner les coordonnées de la position de l'entité
# à des variables individuelles
x, y, z = mc.entity.getPos(idEntite)
Déplace l'entité à la position (x, y, z).
# Déplacer l'entité 'idEntite' à la position (0.5, 1.0, 10.1)
mc.entity.setPos(idEntite, 0.5, 1, 10.1)
Obtient la position de la "tuile" ou bloc sur lequel l'entité se tient => objet Vec3
.
# Obtenir la position du bloc sur lequel l'entité 'idEntite' se tient
tuileEntite = mc.entity.getTilePos(idEntite)
Déplace l'entité sur le bloc à la position (x, y, z).
# Déplacer l'entité 'idEntite' sur le bloc à la position (0.5, 1.0, 10.1)
mc.entity.setTilePos(idEntite, 0.5, 1, 10.1)
Classe permettant de régler les paramètres de la caméra.
Règle le mode de la caméra à la vue normale de Minecraft. Argument facultatif *entityId.
# Régler le mode de la caméra à normal pour le joueur
mc.camera.serNormal()
# Règler le mode de la caméra à normal pour l'entité 'idEntite'
mc.camera.setNormal(idEntite)
Règle le mode de la caméra à fixe.
# Régler le mode de la caméra à fixe
mc.camera.setFixed()
Règle le mode de la caméra pour suivre le joueur ou une entité facultative *entityId.
# Régler la caméra pour suivre le joueur
mc.camera.setFollow()
# Régler la caméra pour suivre l'entité 'idEntite'
mc.camera.setFollow(idEntite)
Définit la position de la caméra aux coordonnées (x, y, z).
# Régler la position de la caméra à (0, 0, 0)
mc.camera.setPos(0, 0, 0)
Cette classe permet de récupérer la liste des événements qui se sont produits dans la partie.
Retourne la liste des blocs touchés par l'épée => [objet BlockEvent
].
# Obtenir la liste des blocs touchés depuis le dernier appel à la fonctions
eventementsBloc = mc.events.pollBlockHits()
for evenement in eventementsBloc:
print(evenement)
Supprime tous les événements passés.
# Supprimer tous les événements passés
mc.events.clearAll()
La définition d'un bloc dans Minecraft. Utilisée pour décrire le type d'un bloc et, si applicable, sa donnée (ou sous-type). Cette classe contient aussi des constantes pour la définition des id
correspondant à chaque type de bloc, par exemple Block.AIR.id
et égal à 0
.
Obtiens un objet Block
=> objet Block
.
# Créer un objet Block d'un type spécifique `2` (GRASS)
objBloc = block.Block(2)
# Créer un objet Block d'un type spécifique '17' (WOOD)
# avec une donnée '1' (SPRUCE)
objBloc = block.Block(17, 1)
Constantes correspondant aux différents types de blocs => entier:id.
AIR = 0
STONE = 1
GRASS = 2
DIRT = 3
COBBLESTONE = 4
WOOD_PLANKS = 5
SAPLING = 6
BEDROCK = 7
WATER_FLOWING = 8
WATER = 8
WATER_STATIONARY = 9
LAVA_FLOWING = 10
LAVA = 10
LAVA_STATIONARY = 11
SAND = 12
GRAVEL = 13
GOLD_ORE = 14
IRON_ORE = 15
COAL_ORE = 16
WOOD = 17
LEAVES = 18
GLASS = 20
LAPIS_LAZULI_ORE = 21
LAPIS_LAZULI_BLOCK = 22
SANDSTONE = 24
BED = 26
COBWEB = 30
GRASS_TALL = 31
WOOL = 35
FLOWER_YELLOW = 37
FLOWER_CYAN = 38
MUSHROOM_BROWN = 39
MUSHROOM_RED = 40
GOLD_BLOCK = 41
IRON_BLOCK = 42
STONE_SLAB_DOUBLE = 43
STONE_SLAB = 44
BRICK_BLOCK = 45
TNT = 46
BOOKSHELF = 47
MOSS_STONE = 48
OBSIDIAN = 49
TORCH = 50
FIRE = 51
STAIRS_WOOD = 53
CHEST = 54
DIAMOND_ORE = 56
DIAMOND_BLOCK = 57
CRAFTING_TABLE = 58
FARMLAND = 60
FURNACE_INACTIVE = 61
FURNACE_ACTIVE = 62
DOOR_WOOD = 64
LADDER = 65
STAIRS_COBBLESTONE = 67
DOOR_IRON = 71
REDSTONE_ORE = 73
SNOW = 78
ICE = 79
SNOW_BLOCK = 80
CACTUS = 81
CLAY = 82
SUGAR_CANE = 83
FENCE = 85
GLOWSTONE_BLOCK = 89
BEDROCK_INVISIBLE = 95
STONE_BRICK = 98
GLASS_PANE = 102
MELON = 103
FENCE_GATE = 107
GLOWING_OBSIDIAN = 246
NETHER_REACTOR_CORE = 247
La donnée (ou sous-type) d'un bloc => entier:data.
Données applicables à différents types de blocs:
WOOL
0: White
1: Orange
2: Magenta
3: Light Blue
4: Yellow
5: Lime
6: Pink
7: Grey
8: Light grey
9: Cyan
10: Purple
11: Blue
12: Brown
13: Green
14: Red
15:Black
WOOD
0: Oak
1: Spruce
2: Birch
SAPLING
0: Oak
1: Spruce
2: Birch
GRASS_TALL
0: Shrub
1: Grass
2: Fern
TORCH
1: Pointing east
2: Pointing west
3: Pointing south
4: Pointing north
5: Facing up
STONE_BRICK
0: Stone brick
1: Mossy stone brick
2: Cracked stone brick
3: Chiseled stone brick
STONE_SLAB / STONE_SLAB_DOUBLE
0: Stone
1: Sandstone
2: Wooden
3: Cobblestone
4: Brick
5: Stone Brick
TNT
0: Inactif
1: Prêt à exploser
LEAVES
1: Oak leaves
2: Spruce leaves
3: Birch leaves
SANDSTONE
0: Sandstone
1: Chiseled sandstone
2: Smooth sandstone
STAIRS_[COBBLESTONE, WOOD]
0: Ascending east
1: Ascending west
2: Ascending south
3: Ascending north
4: Ascending east (upside down)
5: Ascending west (upside down)
6: Ascending south (upside down)
7: Ascending north (upside down)
LADDERS, CHESTS, FURNACES, FENCE_GATE
2: Facing north
3: Facing south
4: Facing west
5: Facing east
[WATER, LAVA]_STATIONARY
0-7: Le niveau de l'eau ou lave, 0 étant le plus haut, 7 le plus bas.
NETHER_REACTOR_CORE
0: Inutilisé
1: Actif
2: Arrêté / utilisé au complet
Classe définissant un "événement bloc" dans Minecraft, utilisée pour décrire un événement affectant un bloc. Ce type d'objet est retourné par la méthode Minecraft.events.pollBlockHits()
.
# Obtenir la liste des objets événement bloc
evtsBloc = mc.events.pollBlockHits()
# et boucle sur chacun de objets de la liste
for evBloc in evtsBloc:
...
Le type de BlockEvent
=> entier:type. Il n'y a qu'un seul type implémenté: BlockEvent.HIT
# Obtenir le type de l'événement bloc
typeEvenementBloc = evBloc.type
Types de BlockEvent
:
0: BlockEvent.HIT
La position du bloc où l'événement s'est produit, c.à.d. le bloc qui a été touché => objet Vec3
.
# Obtenir la position du bloc touché dans un objet Vec3
posEvBloc = evBloc.pos
# Obtenir les coordonnées de la position du bloc touché
x, y, z = evBloc.pos
La face du bloc où l'événement s'est produit => entier:face.
# Obtenir la face du bloc qui a été touchée
faceEvBloc = evBloc.face
L'entité du joueur ayant touché le bloc => entier:entityId.
# Obtenir l'id de l'entité du joueur ayant touché le bloc
idJoueurEvBloc = evBloc.entityId
Classe définissant un vecteur tridimensionnel dans Minecraft, c'est à dire un jeux de trois coordonnées x
, y
et z
où x
et z
sont les coordonnées dans le plan horizontal et y
est la coordonnée verticale.
# Obtenir un objet Vec3 pour le point aux coordonnées (0, 0, 0)
position = vecVec(0, 0, 0)
Coordonnée x
du vecteur => nombre décimal.
# Obtenir la coordonnées x de l'objet Vec3 position
x = position.x
Coordonnée y
du vecteur => nombre décimal.
# Obtenir la coordonnées y de l'objet Vec3 position
y = position.y
Coordonnée z
du vecteur => nombre décimal.
# Obtenir la coordonnées z de l'objet Vec3 position
z = position.z
Merci à Martin O'Hanlon pour la version originale anglaise de la référence sur laquelle cette page a été basée.
Sauf si indiqué autrement, le contenu de cette page est mis à disposition selon les termes de la Licence Creative Commons Attribution-ShareAlike 4.0 International.
Copyright (c) 2017, Julien de la Bruère-Terreault, drgfreeman@tuta.io