Minecraft Bot: Fehler? Problem`?
Verfasst: Montag 24. April 2023, 17:30
Guten Tag ich habe versucht einen minecraft Bot zu programmieren, der auf einen minecraft Server joint, dann zu einem bestimmten lesepult geht (Koordinaten), hinter dem ein Villager steht, diesen Lesepult dann solange Abbaut und wiederaufstellt bis der Villager ein bestimmtes Entchantetes Buch anbietet. Sobald der dieses Anbietet soll in dem Minecraft Chat eine Nachricht geschrieben werden.
Ich schaffe es einfach nicht. Bzw ich weiß nicht wo der Fehler ist...
ich habe noch nicht ganz so viel Erfahrung mit Python...
Ich schaffe es einfach nicht. Bzw ich weiß nicht wo der Fehler ist...
ich habe noch nicht ganz so viel Erfahrung mit Python...
Code: Alles auswählen
import time
from mcstatus import MinecraftServer
from mcpi.minecraft import Minecraft
from mcpi.block import Block
# Verbindung zum Minecraft-Server herstellen
server = MinecraftServer.lookup("<Server-IP>")
mc = Minecraft.create("<Server-IP>")
# Koordinaten des Lesepults und des Villagers
read_table_x = <x-Koordinate>
read_table_y = <y-Koordinate>
read_table_z = <z-Koordinate>
villager_x = <x-Koordinate>
villager_y = <y-Koordinate>
villager_z = <z-Koordinate>
# Schleife, die das Lesepult abbaut und wieder aufbaut, bis der Villager das gewünschte Buch anbietet
while True:
# Bewege den Bot zum Lesepult
mc.player.setPos(read_table_x, read_table_y, read_table_z)
time.sleep(1)
# Baue das Lesepult ab und wieder auf
mc.setBlock(read_table_x, read_table_y, read_table_z, Block.AIR.id)
time.sleep(1)
mc.setBlock(read_table_x, read_table_y, read_table_z, Block.BOOKSHELF.id)
time.sleep(1)
# Überprüfe, ob der Villager das gewünschte Buch anbietet
entities = mc.getEntitiesWithinSphere(villager_x, villager_y, villager_z, 1)
for entity in entities:
if entity.getEntityTypeId() == "villager":
trades = entity.getTrades()
for trade in trades:
if trade.getDisplayName() == "<gewünschtes verzaubertes Buch>":
# Sende eine Nachricht im Minecraft-Chat
mc.postToChat("Gewünschtes Buch verfügbar!")
break
time.sleep(10)