hackCraft2のドキュメントへようこそ!======================================
- class py2hackCraft.modules.Block(name: str, type: str = 'block', data: int = 0, isLiquid: bool = False, isAir: bool = False, isBurnable: bool = False, isFuel: bool = False, isOccluding: bool = False, isSolid: bool = False, isPassable: bool = False, x: int = 0, y: int = 0, z: int = 0, world: str = 'world')
ブロックを表すデータクラス
- Category:
データクラス
- name
ブロックの種類
- Type:
str
- data
ブロックのデータ値
- Type:
int
- isLiquid
液体ブロックかどうか
- Type:
bool
- isAir
空気ブロックかどうか
- Type:
bool
- isBurnable
燃えるブロックかどうか
- Type:
bool
- isFuel
燃料ブロックかどうか
- Type:
bool
- isOccluding
透過しないブロックかどうか
- Type:
bool
- isSolid
壁のあるブロックかどうか
- Type:
bool
- isPassable
通過可能なブロックかどうか
- Type:
bool
- world
ブロックが存在するワールドの名前(デフォルトは"world")
- Type:
str
- x
ブロックのX座標
- Type:
int
- y
ブロックのY座標
- Type:
int
- z
ブロックのZ座標
- Type:
int
- class py2hackCraft.modules.ChatMessage(player: str, uuid: str, entityUuid: str, message: str)
チャットメッセージを表すデータクラス
- Category:
イベントクラス
- player
プレイヤー名
- Type:
str
- uuid
プレイヤーの一意の識別子(UUID)
- Type:
str
- entityUuid
チャットを送信したエンティティの一意の識別子(UUID)
- Type:
str
- message
プレイヤーがチャットで送信したメッセージの内容
- Type:
str
- class py2hackCraft.modules.Coord(x: int, y: int, z: int, cord: str)
座標を表す名前付きタプル
- Category:
データクラス
- x
X座標
- Type:
int
- y
Y座標
- Type:
int
- z
Z座標
- Type:
int
- cord
座標系 ("": 絶対座標, "~": 相対座標, "^": ローカル座標)
- Type:
str
- cord: str
Alias for field number 3
- x: int
Alias for field number 0
- y: int
Alias for field number 1
- z: int
Alias for field number 2
- class py2hackCraft.modules.Entity(client: _WebSocketClient, world: str, uuid: str)
エンティティを表すクラス
- Category:
基本クラス
- action() bool
自分の前方の装置を使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- action_down() bool
自分の真下の装置を使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- action_up() bool
自分の真上の装置を使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- add_force(x: float, y: float, z: float) bool
エンティティに力を加えて移動させる
- パラメータ:
x (float) -- X軸方向の力(正の値で東方向、負の値で西方向)
y (float) -- Y軸方向の力(正の値で上方向、負の値で下方向)
z (float) -- Z軸方向の力(正の値で南方向、負の値で北方向)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 東方向に力を加える entity.add_force(1.0, 0.0, 0.0)
# 上方向にジャンプするような力を加える entity.add_force(0.0, 1.0, 0.0)
- attack() bool
自分の前方を攻撃する
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- back(n=1) bool
n歩後ろに進む
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- can_dig() bool
自分の前方のブロックが壊せるかどうか調べる :returns: 調べた結果 :rtype: bool
- can_dig_down() bool
自分の下のブロックが壊せるかどうか調べる :returns: 調べた結果 :rtype: bool
- can_dig_up() bool
自分の上のブロックが壊せるかどうか調べる :returns: 調べた結果 :rtype: bool
- craft(recipe, qty=1, slot=None)
ペットのインベントリにある材料を使ってアイテムをクラフトする。
- 引数:
- recipe: レシピパターン(文字列またはリスト形式)
文字列形式: "1,1,1,X,2,X,X,2,X" (カンマ区切りのスロット番号、空は X または空文字)
リスト形式: [1,1,1,"X",2,"X","X",2,"X"] または [1,1,1,None,2,None,None,2,None]
スロット番号は0から始まる(0=スロット1)
負の数(-1など)も空気として扱われる
qty: クラフトする個数(デフォルト: 1) slot: 結果を配置するスロット番号(デフォルト: None = 自動配置)
- 戻り値:
- dict: クラフト結果(以下の構造)
- {
"success": bool, # 成功したか "result_item": str | None, # 作成されたアイテム名 "result_quantity": int | None,# 作成された個数 "requested_quantity": int, # リクエストした個数 "result_slot": int | None, # 配置されたスロット "materials_consumed": dict, # 消費された材料 "game_mode": str, # ゲームモード "error": dict | None # エラー情報
}
- 使用例:
>>> # パンをクラフト(スロット0に小麦3つ) >>> result = entity.craft("0,0,0") >>> if result["success"]: >>> print(f"{result['result_item']}を{result['result_quantity']}個作ったよ!")
>>> # リスト形式でつるはしをクラフト >>> result = entity.craft([3,3,3,"X",4,"X","X",4,"X"])
>>> # 複数個クラフトして、スロット10に配置 >>> result = entity.craft("0,0,0", qty=5, slot=10)
>>> # エラー処理 >>> result = entity.craft("0,0,0") >>> if not result["success"]: >>> error = result["error"] >>> print(f"エラー: {error['message']}") >>> if error["code"] == "INSUFFICIENT_MATERIALS": >>> print("材料が足りないよ")
- dig() bool
自分の前方のブロックを壊す
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- dig_at(loc: Location) bool
指定した座標のブロックを壊す
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)のブロックを壊す loc = LocationFactory.absolute(100, 64, -200) entity.dig_at(loc)
# 自分の東10ブロック、北5ブロックの位置のブロックを壊す loc = LocationFactory.relative(10, 0, -5) entity.dig_at(loc)
# 自分の真上5ブロックの位置のブロックを壊す loc = LocationFactory.local(0, 5, 0) entity.dig_at(loc)
- dig_down() bool
自分の真下のブロックを壊す
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- dig_up() bool
自分の真上のブロックを壊す
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- down(n=1) bool
n歩下に進む
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- drop_item(slot1: int) bool
自分のインベントリのアイテムを落とす
- パラメータ:
slot1 (int) -- 落とすアイテムのスロット番号
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- execute_command(command: str)
コマンドを実行する
- パラメータ:
command (str) -- 実行するコマンドの内容
- facing(angle: int)
エンティティを指定した方角に向かせる
- パラメータ:
angle (int) -- 向く方角(度数法) - 0: 南 - 90: 西 - 180: 北 - 270: 東
- 戻り値:
None
サンプル
# 北を向く entity.facing(180)
# 東を向く entity.facing(270)
- fertilizer() bool
自分の足元の作物に肥料(骨粉)を与える 常に無限で、インベントリチェックなし (0, -1, 0) または (0, 0, 0) の位置にある作物に肥料を与えます
- 戻り値:
肥料を与えるのが成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- fertilizer_at(loc: Location) bool
指定した座標の作物に肥料(骨粉)を与える 常に無限で、インベントリチェックなし 指定された位置にある作物に肥料を与えます
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
肥料を与えるのが成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)の作物に肥料を与える loc = LocationFactory.absolute(100, 64, -200) entity.fertilizer_at(loc)
# 自分の足元の作物に肥料を与える loc = LocationFactory.local(0, -1, 0) entity.fertilizer_at(loc)
- find_nearby_block_at(loc: Location, block: str, max_depth: int) Block | None
指定された座標を中心に近くのブロックを取得する
- flatten_at(loc: Location) bool
指定した座標のブロックを平らにする
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- forward(n=1) bool
n歩前に進む
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- get_block(loc: Location) Block
指定した座標のブロック情報を取得する
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
ブロックの情報(種類、データ値、座標)
- 戻り値の型:
サンプル
# 絶対座標(100, 64, -200)のブロック情報を取得 loc = LocationFactory.absolute(100, 64, -200) block = entity.get_block(loc) print(f"ブロック: {block.name}, データ値: {block.data}")
# 自分の東10ブロックの位置のブロック情報を取得 loc = LocationFactory.relative(10, 0, 0) block = entity.get_block(loc) print(f"ブロック: {block.name}, データ値: {block.data}")
- get_block_by_color(color: str) Block
指定された色に最も近いブロックを取得する
- パラメータ:
color (str) -- ブロックの色(HexRGB形式、例: "#FF0000"で赤) 色は16進数のRGB値で指定(#RRGGBB形式)
- 戻り値:
指定された色に最も近いブロックの情報
- 戻り値の型:
サンプル
# 赤色に近いブロックを取得 block = entity.get_block_by_color("#FF0000") print(f"ブロック: {block.name}, データ値: {block.data}")
# 青色に近いブロックを取得 block = entity.get_block_by_color("#0000FF") print(f"ブロック: {block.name}, データ値: {block.data}")
- get_block_by_name(name: str) Block
指定された名前のブロックを取得する
- パラメータ:
name (str) -- ブロックの名前(例: "stone", "dirt", "oak_planks") データ値が必要な場合は "block:data" の形式で指定 例: "stone:1"(花崗岩), "wool:14"(赤の羊毛)
- 戻り値:
指定された名前のブロックの情報
- 戻り値の型:
サンプル
# 石ブロックを取得 block = entity.get_block_by_name("stone") print(f"ブロック: {block.name}, データ値: {block.data}")
# 花崗岩を取得 block = entity.get_block_by_name("stone:1") print(f"ブロック: {block.name}, データ値: {block.data}")
- get_distance() float
自分と前方のなにかとの距離を調べる
- 戻り値:
前方の物体との距離
- 戻り値の型:
float
- get_distance_down() float
自分と真下のなにかとの距離を調べる
- 戻り値:
真下の物体との距離
- 戻り値の型:
float
- get_distance_target(uuid) float
自分とターゲットとの距離を調べる
- パラメータ:
uuid (str) -- ターゲットのUUID
- 戻り値:
ターゲットとの距離
- 戻り値の型:
float
- get_distance_up() float
自分と真上のなにかとの距離を調べる
- 戻り値:
真上の物体との距離
- 戻り値の型:
float
- harvest() bool
自分の位置または足元の作物を収穫する (0, 0, 0) または (0, -1, 0) の位置にある収穫可能な作物を自動的に収穫します
- 戻り値:
収穫が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- harvest_at(loc: Location) bool
指定した座標の作物を収穫する 常に無限で、インベントリチェックなし 指定された位置にある収穫可能な作物を収穫します
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
収穫が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)の作物を収穫 loc = LocationFactory.absolute(100, 64, -200) entity.harvest_at(loc)
# 自分の足元の作物を収穫 loc = LocationFactory.local(0, -1, 0) entity.harvest_at(loc)
- is_blocked() bool
自分の前方にブロックがあるかどうか調べる :returns: 調べた結果 :rtype: bool
- is_blocked_down() bool
自分の真下にブロックがあるかどうか調べる :returns: 調べた結果 :rtype: bool
- is_blocked_up() bool
自分の真上にブロックがあるかどうか調べる :returns: 調べた結果 :rtype: bool
- is_event_area(loc: Location) bool
指定された座標がイベント検出範囲内かどうかを判定する
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
指定された座標がイベント検出範囲内の場合はTrue、そうでない場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)がイベント検出範囲内かどうかを判定 loc = LocationFactory.absolute(100, 64, -200) entity.is_event_area(loc)
# 自分の東10ブロック、北5ブロックの位置がイベント検出範囲内かどうかを判定 loc = LocationFactory.relative(10, 0, -5) entity.is_event_area(loc)
# 自分の真上5ブロックの位置がイベント検出範囲内かどうかを判定 loc = LocationFactory.local(0, 5, 0) entity.is_event_area(loc)
- jump()
ジャンプさせる
- 戻り値:
None
- livestock_count_nearby(animal_type: str = 'ALL', radius: float = 50.0) int
近くの動物を数える
- パラメータ:
animal_type (str) -- 動物種別(COW, PIG, SHEEP, CHICKEN, RABBIT, HORSE, ALL)
radius (float) -- 検索半径(ブロック数)
- 戻り値:
動物の数
- 戻り値の型:
int
サンプル
>>> count = entity.livestock_count_nearby("COW", 50) >>> print(f"Found {count} cows")
- livestock_feed(animal_uuid: str, food_type: str = 'wheat') None
動物に餌をやる
- パラメータ:
animal_uuid (str) -- 動物のUUID
food_type (str) -- 餌種別(wheat, carrot, seeds, beetroot)
サンプル
>>> entity.livestock_feed(cow_uuid, "wheat")
- livestock_find_nearby(animal_type: str = 'ALL', radius: float = 50.0) list
近くの動物を詳細情報付きで検索
- パラメータ:
animal_type (str) -- 動物種別(COW, PIG, SHEEP, CHICKEN, RABBIT, HORSE, ALL)
radius (float) -- 検索半径(ブロック数)
- 戻り値:
動物情報の辞書リスト
- 戻り値の型:
list
サンプル
>>> animals = entity.livestock_find_nearby("SHEEP", 30) >>> for animal in animals: >>> print(f"{animal['animalType']} at distance {animal['distance']}")
- livestock_get_info(animal_uuid: str) dict
動物の詳細情報を取得
- パラメータ:
animal_uuid (str) -- 動物のUUID
- 戻り値:
動物の詳細情報
- 戻り値の型:
dict
サンプル
>>> info = entity.livestock_get_info(cow_uuid) >>> print(f"Health: {info['health']}/{info['maxHealth']}") >>> print(f"Can breed: {info['canBreed']}")
- livestock_get_nearest_uuid(animal_type: str = 'ALL', radius: float = 50.0) str | None
最も近い動物のUUIDを取得
- パラメータ:
animal_type (str) -- 動物種別(COW, PIG, SHEEP, CHICKEN, RABBIT, HORSE, ALL)
radius (float) -- 検索半径(ブロック数)
- 戻り値:
動物のUUID(見つからない場合はNone)
- 戻り値の型:
Optional[str]
サンプル
>>> cow_uuid = entity.livestock_get_nearest_uuid("COW", 50) >>> if cow_uuid: >>> print(f"Found cow: {cow_uuid}")
- livestock_herd(animal_uuid: str, x: float, y: float, z: float, cord: str = '^', speed: float = 1.0) None
動物を指定座標に誘導
- パラメータ:
animal_uuid (str) -- 動物のUUID
x (float) -- 目標X座標
y (float) -- 目標Y座標
z (float) -- 目標Z座標
cord (str) -- 座標系("": 絶対座標, "~": 相対座標, "^": ローカル座標、デフォルト: "^")
speed (float) -- 移動速度(0.5-2.0、デフォルト1.0)
サンプル
>>> entity.livestock_herd(cow_uuid, 100, 64, 200, "^", 1.0)
- livestock_herd_all_nearby(animal_type: str, radius: float, x: float, y: float, z: float, cord: str = '^', speed: float = 1.0) int
近くの動物すべてを指定座標に誘導
- パラメータ:
animal_type (str) -- 動物種別(COW, PIG, SHEEP, CHICKEN, RABBIT, HORSE, ALL)
radius (float) -- 検索半径(ブロック数)
x (float) -- 目標X座標
y (float) -- 目標Y座標
z (float) -- 目標Z座標
cord (str) -- 座標系("": 絶対座標, "~": 相対座標, "^": ローカル座標、デフォルト: "^")
speed (float) -- 移動速度(0.5-2.0、デフォルト1.0)
- 戻り値:
誘導した動物の数
- 戻り値の型:
int
サンプル
>>> count = entity.livestock_herd_all_nearby("COW", 50, 100, 64, 200) >>> print(f"Herded {count} cows")
- livestock_milk(cow_uuid: str) dict
牛のミルクを搾る
- パラメータ:
cow_uuid (str) -- 牛のUUID
- 戻り値:
ミルク情報 {milk, amount}
- 戻り値の型:
dict
- 例外:
Exception -- 牛以外の動物の場合
サンプル
>>> try: >>> result = entity.livestock_milk(cow_uuid) >>> print(f"Got {result['amount']} milk bucket") >>> except Exception as e: >>> print(f"Cannot milk: {e}")
- livestock_shear(sheep_uuid: str) dict
羊の毛を刈る
- パラメータ:
sheep_uuid (str) -- 羊のUUID
- 戻り値:
羊毛情報 {wool, color, amount}
- 戻り値の型:
dict
- 例外:
Exception -- 羊毛が生えていない、または羊以外の動物の場合
サンプル
>>> try: >>> result = entity.livestock_shear(sheep_uuid) >>> print(f"Got {result['amount']} {result['color']} wool") >>> except Exception as e: >>> print(f"Cannot shear: {e}")
- make_sound() bool
鳴かせる
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- move_item(slot1: int, slot2: int) bool
自分のインベントリのアイテムを移動させる
- パラメータ:
slot1 (int) -- 移動元のスロット番号
slot2 (int) -- 移動先のスロット番号
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- open_inventory(loc: Location) Inventory
指定された座標のインベントリ(チェストなど)を開く
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
開いたインベントリの操作オブジェクト
- 戻り値の型:
サンプル
# 絶対座標(100, 64, -200)のチェストを開く loc = LocationFactory.absolute(100, 64, -200) chest = entity.open_inventory(loc)
# インベントリ内のアイテムを取得 items = chest.get_all_items()
# アイテムを移動 chest.move_item(0, 1)
- pickup_items_at(loc: Location) int
指定した座標の周辺のアイテムを拾う
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
拾ったアイテムの数
- 戻り値の型:
int
- place(side=None) bool
自分の前方にブロックを設置する
- パラメータ:
side (str, optional) --
ブロックを設置する面 - Side.right: 右面 - Side.left: 左面 - Side.front: 前面 - Side.back: 後面 - Side.top: 上面 - Side.bottom: 下面
Noneの場合は自動的に適切な面を選択
- 戻り値:
設置が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 前方にブロックを設置 entity.place()
# 前方のブロックを右面に設置 entity.place(Side.right)
- place_at(loc: Location, side=None) bool
指定した座標にブロックを設置する
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
side (str, optional) --
ブロックを設置する面 - Side.right: 右面 - Side.left: 左面 - Side.front: 前面 - Side.back: 後面 - Side.top: 上面 - Side.bottom: 下面
Noneの場合は自動的に適切な面を選択
- 戻り値:
設置が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)にブロックを設置 loc = LocationFactory.absolute(100, 64, -200) entity.place_at(loc)
# 自分の東10ブロックの位置にブロックを右面に設置 loc = LocationFactory.relative(10, 0, 0) entity.place_at(loc, Side.right)
- place_down(side=None) bool
自分の真下にブロックを設置する
- パラメータ:
side (str, optional) --
ブロックを設置する面 - Side.right: 右面 - Side.left: 左面 - Side.front: 前面 - Side.back: 後面 - Side.top: 上面 - Side.bottom: 下面
Noneの場合は自動的に適切な面を選択
- 戻り値:
設置が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 真下にブロックを設置 entity.place_down()
# 真下のブロックを下面に設置 entity.place_down(Side.bottom)
- place_up(side=None) bool
自分の真上にブロックを設置する
- パラメータ:
side (str, optional) --
ブロックを設置する面 - Side.right: 右面 - Side.left: 左面 - Side.front: 前面 - Side.back: 後面 - Side.top: 上面 - Side.bottom: 下面
Noneの場合は自動的に適切な面を選択
- 戻り値:
設置が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 真上にブロックを設置 entity.place_up()
# 真上のブロックを上面に設置 entity.place_up(Side.top)
- plant() bool
自分の足元に作物を植える 常に無限で、インベントリチェックなし (0, -1, 0) の位置にある耕地に作物を植えます
- 戻り値:
植えるのが成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- plant_at(loc: Location) bool
指定した座標のブロックに植物を植える
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- pop() bool
自分の位置を保存した位置に戻す
- push() bool
自分の位置を保存する
- read_sign() str
自分の前方の看板のテキストを読み取る
- 戻り値:
看板のテキスト(複数行の場合は改行で区切られた文字列)、看板がない場合は空文字列
- 戻り値の型:
str
サンプル
テキストを読み取る:
text = entity.read_sign() print(text) # "1行目\n2行目\n..."
- read_sign_at(loc: Location) str
指定した座標の看板のテキストを読み取る
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
看板のテキスト(複数行の場合は改行で区切られた文字列)、看板がない場合は空文字列
- 戻り値の型:
str
サンプル
相対座標で指定:
loc = LocationFactory.relative(0, 1, 0) # 1ブロック上 text = entity.read_sign_at(loc)
ローカル座標で指定:
loc = LocationFactory.local(0, 0, 1) # 前方1ブロック text = entity.read_sign_at(loc)
- read_sign_down() str
自分の真下の看板のテキストを読み取る
- 戻り値:
看板のテキスト(複数行の場合は改行で区切られた文字列)、看板がない場合は空文字列
- 戻り値の型:
str
- read_sign_up() str
自分の真上の看板のテキストを読み取る
- 戻り値:
看板のテキスト(複数行の場合は改行で区切られた文字列)、看板がない場合は空文字列
- 戻り値の型:
str
- say(message: str)
メッセージをチャットに送る
- パラメータ:
message (str) -- エンティティがチャットで送信するメッセージの内容
- 戻り値:
None
- select_item(slot: int) bool
自分のインベントリのアイテムを手に持たせる
- パラメータ:
slot (int) -- アイテムを持たせたいスロットの番号
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- send_message(target: str, message: str)
カスタムイベントメッセージを送信する
- パラメータ:
target (str) -- 送信先のEntityの名前
message (str) -- 送信するメッセージの内容
- set_event_area(volume: Volume) bool
イベントの検出範囲を設定する
- パラメータ:
volume (Volume) -- イベントの検出範囲
- 戻り値:
設定が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
>>> # 絶対座標で領域を設定 >>> entity.set_event_area(Volume.absolute(100, 64, -200, 110, 70, -190)) >>> # 相対座標で領域を設定(自分の周囲10ブロック) >>> entity.set_event_area(Volume.relative(-5, -5, -5, 5, 5, 5)) >>> # ローカル座標で領域を設定(自分の周囲10ブロック) >>> entity.set_event_area(Volume.local(-5, -5, -5, 5, 5, 5))
- set_item(slot: int, block: str) bool
自分のインベントリの指定したスロットにアイテムを設定する
- パラメータ:
slot (int) -- 設定するスロット番号(0から始まる)
block (str) -- 設定するブロックの種類(例: "stone", "dirt", "oak_planks") データ値が必要な場合は "block:data" の形式で指定 例: "stone:1"(花崗岩), "wool:14"(赤の羊毛)
- 戻り値:
設定が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# スロット0に石を設定 entity.set_item(0, "stone")
# スロット1に花崗岩を設定 entity.set_item(1, "stone:1")
- set_on_message(callback_func: Callable[[Entity, str], Any])
カスタムイベントメッセージを受信したときに呼び出されるコールバック関数を設定する
- step_left(n=1) bool
n歩左にステップする
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- step_right(n=1) bool
n歩右にステップする
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- swap_item(slot1: int, slot2: int) bool
自分のインベントリのアイテムを置き換える
- パラメータ:
slot1 (int) -- 入れ替え元のスロット番号
slot2 (int) -- 入れ替え先のスロット番号
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- teleport(loc: Location)
指定された座標に移動する
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
None
- till_at(loc: Location) bool
指定した座標のブロックを耕す
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- turn(degrees: int)
エンティティを指定した角度だけ回転させる
- パラメータ:
degrees (int) -- 回転する角度(正の値で右回り、負の値で左回り) 例: 90で右に90度回転、-90で左に90度回転
- 戻り値:
None
サンプル
# 右に90度回転 entity.turn(90)
# 左に180度回転 entity.turn(-180)
- turn_left()
左に回転させる
- 戻り値:
None
- turn_right()
右に回転させる
- 戻り値:
None
- up(n=1) bool
n歩上に進む
- パラメータ:
n (int, optional) -- 進む歩数. デフォルトは1.
- 戻り値:
移動が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- use_item() bool
自分の前方にアイテムを使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- use_item_at(loc: Location) bool
指定した座標にアイテムを使う
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
# 絶対座標(100, 64, -200)でアイテムを使用 loc = LocationFactory.absolute(100, 64, -200) entity.use_item_at(loc)
# 自分の東10ブロック、北5ブロックの位置でアイテムを使用 loc = LocationFactory.relative(10, 0, -5) entity.use_item_at(loc)
# 自分の真上5ブロックの位置でアイテムを使用 loc = LocationFactory.local(0, 5, 0) entity.use_item_at(loc)
- use_item_down() bool
自分の真下にアイテムを使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- use_item_up() bool
自分の真上にアイテムを使う
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- wait_for_player_chat() ChatMessage
プレイヤーのチャットを待つ
- 戻り値:
チャットメッセージの情報
- 戻り値の型:
- wait_for_redstone_change() RedstonePower
レッドストーン信号が変わるのを待つ
- 戻り値:
レッドストーン信号の情報
- 戻り値の型:
- write_sign(text) bool
自分の前方の看板にテキストを書き込む
- パラメータ:
text -- 書き込むテキスト。文字列またはリスト(各要素が各行になる、最大4行)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
文字列で書き込む:
entity.write_sign("Hello World")
複数行を書き込む:
entity.write_sign(["1行目", "2行目", "3行目", "4行目"])
- write_sign_at(loc: Location, text) bool
指定した座標の看板にテキストを書き込む
- パラメータ:
loc (Location) -- 座標情報(LocationFactory.absolute/relative/localで生成)
text -- 書き込むテキスト。文字列またはリスト(各要素が各行になる、最大4行)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
サンプル
相対座標で指定:
loc = LocationFactory.relative(0, 1, 0) # 1ブロック上 entity.write_sign_at(loc, "相対座標のメッセージ")
ローカル座標で指定:
loc = LocationFactory.local(0, 0, 1) # 前方1ブロック entity.write_sign_at(loc, "ローカル座標のメッセージ")
複数行を書き込む:
loc = LocationFactory.local(0, 0, 1) entity.write_sign_at(loc, ["1行目", "2行目", "3行目"])
- write_sign_down(text) bool
自分の真下の看板にテキストを書き込む
- パラメータ:
text -- 書き込むテキスト。文字列またはリスト(各要素が各行になる、最大4行)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- write_sign_up(text) bool
自分の真上の看板にテキストを書き込む
- パラメータ:
text -- 書き込むテキスト。文字列またはリスト(各要素が各行になる、最大4行)
- 戻り値:
操作が成功した場合はTrue、失敗した場合はFalse
- 戻り値の型:
bool
- class py2hackCraft.modules.EventMessage(entityUuid: str, sender: str, uuid: str, message: str)
イベントメッセージを表すデータクラス
- Category:
イベントクラス
- entityUuid
イベントを送信したエンティティの一意の識別子(UUID)
- Type:
str
- sender
送信者の名前
- Type:
str
- uuid
送信者の一意の識別子(UUID)
- Type:
str
- message
イベントメッセージの内容
- Type:
str
- class py2hackCraft.modules.InteractEvent(action: str, player: str, player_uuid: str, event: str, name: str, type: str, data: int = 0, world: str = 'world', x: int = 0, y: int = 0, z: int = 0)
クリックイベントを表すデータクラス
- Category:
イベントクラス
- action
アクションの名前
- Type:
str
- player
クリックしたプレイヤー名
- Type:
str
- player_uuid
クリックしたプレイヤーの一意の識別子(UUID)
- Type:
str
- event
アイテムに設定されている名前
- Type:
str
- name
ブロックあるいはエンティティーの名前
- Type:
str
- type
ブロックあるいはエンティティーの種類
- Type:
str
- data
ブロックのデータ値
- Type:
int
- world
ブロックあるいはエンティティーのいたワールド名
- Type:
str
- x
クリックした場所のワールドにおけるX座標
- Type:
int
- y
クリックした場所のワールドにおけるY座標
- Type:
int
- z
クリックした場所のワールドにおけるZ座標
- Type:
int
- class py2hackCraft.modules.Inventory(client: _WebSocketClient, entity_uuid: str, world: str, x: int, y: int, z: int, size: int, items: list)
インベントリを表すクラス
- Category:
基本クラス
このクラスは、アルゴリズム学習のための基本的な操作を提供します。 検索、ソート、集計などの操作は、このクラスの基本操作を組み合わせて実装できます。
- get_all_items() List[ItemStack]
インベントリ内の全てのアイテムを取得する
- 戻り値:
アイテムのリスト
- 戻り値の型:
List[ItemStack]
サンプル
# 全てのアイテムを取得して表示 items = inventory.get_all_items() for item in items: print(f"スロット{item.slot}: {item.name} x{item.amount}")
- get_item(slot: int) ItemStack
指定されたスロットのアイテムを取得する
- パラメータ:
slot (int) -- 取得するアイテムのスロット番号
- 戻り値:
取得したアイテムの情報
- 戻り値の型:
サンプル
# スロット0のアイテムを取得 item = inventory.get_item(0) print(f"アイテム: {item.name}, 数量: {item.amount}")
- move_item(from_slot: int, to_slot: int)
アイテムを別のスロットに移動する
- パラメータ:
from_slot (int) -- 移動元のスロット番号
to_slot (int) -- 移動先のスロット番号
サンプル
# スロット0のアイテムをスロット5に移動 inventory.move_item(0, 5)
- retrieve_to_self(from_slot: int, to_slot: int)
チェストから自分のインベントリにアイテムを取り出す
- パラメータ:
from_slot (int) -- チェストの取り出し元スロット番号
to_slot (int) -- 自分のインベントリの格納先スロット番号
サンプル
# チェストのスロット0のアイテムを自分のスロット5に取り出す inventory.retrieve_from_self(0, 5)
- store_from_self(from_slot: int, to_slot: int)
自分のインベントリからチェストにアイテムを格納する
- パラメータ:
from_slot (int) -- 自分のインベントリの取り出し元スロット番号
to_slot (int) -- チェストの格納先スロット番号
サンプル
# 自分のスロット0のアイテムをチェストのスロット5に格納 inventory.store_to_self(0, 5)
- swap_items(slot1: int, slot2: int)
2つのスロットのアイテムを入れ替える
- パラメータ:
slot1 (int) -- 入れ替え元のスロット番号
slot2 (int) -- 入れ替え先のスロット番号
サンプル
# スロット0と1のアイテムを入れ替え inventory.swap_items(0, 1)
- class py2hackCraft.modules.ItemStack(slot: int = 0, name: str = 'air', amount: int = 0)
アイテムスタックを表すデータクラス
- Category:
データクラス
- slot
スロット番号
- Type:
int
- name
アイテムの名前
- Type:
str
- amount
アイテムの数量
- Type:
int
- class py2hackCraft.modules.Location(x: int, y: int, z: int, world: str = 'world', cord: str = '')
座標を表すデータクラス
- Category:
データクラス
- x
X座標
- Type:
int
- y
Y座標
- Type:
int
- z
Z座標
- Type:
int
- world
ワールド名(デフォルトは"world")
- Type:
str
- cord
座標系(デフォルトは""(絶対座標))
"": 絶対座標 (例: 100, 64, -200)
"~": 相対座標 (例: ~10, ~0, ~-5)
"^": ローカル座標 (例: ^0, ^5, ^0)
- Type:
str
- class py2hackCraft.modules.LocationFactory
Minecraftの座標を生成するファクトリクラス
- Category:
データクラス
座標系の種類:
ABSOLUTE: 絶対座標 (例: 100, 64, -200)
RELATIVE: 相対座標 (例: ~10, ~0, ~-5)
LOCAL: ローカル座標 (例: ^0, ^5, ^0)
- static absolute(x: int, y: int, z: int, world: str = 'world') Location
絶対座標を生成する
- パラメータ:
x (int) -- X座標
y (int) -- Y座標
z (int) -- Z座標
world (str, optional) -- ワールド名. デフォルトは"world".
- 戻り値:
生成された絶対座標
- 戻り値の型:
サンプル
loc = LocationFactory.absolute(100, 64, -200) print(f"X: {loc.x}, Y: {loc.y}, Z: {loc.z}, ワールド: {loc.world}, 座標系: {loc.cord}")
- static local(x: int, y: int, z: int, world: str = 'world') Location
ローカル座標を生成する(自分の向きを基準とした前後左右)
- パラメータ:
x (int) -- 右(+)左(-)方向の相対距離
y (int) -- 上(+)下(-)方向の相対距離
z (int) -- 前(+)後(-)方向の相対距離
world (str, optional) -- ワールド名. デフォルトは"world".
- 戻り値:
生成されたローカル座標
- 戻り値の型:
サンプル
loc = LocationFactory.local(0, 5, 0) # 自分の真上5ブロック print(f"X: {loc.x}, Y: {loc.y}, Z: {loc.z}, ワールド: {loc.world}, 座標系: {loc.cord}")
- static relative(x: int, y: int, z: int, world: str = 'world') Location
相対座標を生成する(自分を中心とした東西南北)
- パラメータ:
x (int) -- 東(+)西(-)方向の相対距離
y (int) -- 上(+)下(-)方向の相対距離
z (int) -- 南(+)北(-)方向の相対距離
world (str, optional) -- ワールド名. デフォルトは"world".
- 戻り値:
生成された相対座標
- 戻り値の型:
サンプル
loc = LocationFactory.relative(10, 0, -5) # 東に10、北に5進む print(f"X: {loc.x}, Y: {loc.y}, Z: {loc.z}, ワールド: {loc.world}, 座標系: {loc.cord}")
- class py2hackCraft.modules.Player(player: str)
プレイヤーを表すクラス
- Category:
基本クラス
- get_entity(name: str) Entity
指定された名前のエンティティを取得する
- パラメータ:
name (str) -- エンティティの名前
- 戻り値:
取得したエンティティ
- 戻り値の型:
- 例外:
UninitializedClientError -- クライアントが初期化されていない場合
- class py2hackCraft.modules.RedstonePower(entityUuid: str, oldCurrent: int, newCurrent: int)
レッドストーン信号を表すデータクラス
- Category:
イベントクラス
- entityUuid
レッドストーン信号を検出したエンティティの一意の識別子(UUID)
- Type:
str
- oldCurrent
前のレッドストーン信号の強さ
- Type:
int
- newCurrent
最新のレッドストーン信号の強さ
- Type:
int
- class py2hackCraft.modules.Side
ブロックの配置方向を表すデータクラス
- Category:
データクラス
- exception py2hackCraft.modules.UninitializedClientError
WebSocketClientが初期化されていないことを示すカスタム例外
- Category:
基本クラス
- class py2hackCraft.modules.Volume(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int, cord: str = '')
3D空間の領域を表すクラス
- Category:
データクラス
座標系の種類: - ABSOLUTE: 絶対座標 (例: 100, 64, -200) - RELATIVE: 相対座標 (例: ~10, ~0, ~-5) - LOCAL: ローカル座標 (例: ^0, ^5, ^0)
- static absolute(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) Volume
絶対座標で領域を指定する
- パラメータ:
x1 (int) -- 1つ目の座標のX座標
y1 (int) -- 1つ目の座標のY座標
z1 (int) -- 1つ目の座標のZ座標
x2 (int) -- 2つ目の座標のX座標
y2 (int) -- 2つ目の座標のY座標
z2 (int) -- 2つ目の座標のZ座標
- 戻り値:
指定された領域
- 戻り値の型:
サンプル
>>> # 絶対座標(100, 64, -200)から(110, 70, -190)の領域を定義 >>> Volume.absolute(100, 64, -200, 110, 70, -190)
- static local(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) Volume
ローカル座標で領域を指定する(自分の向きを基準とした前後左右)
- パラメータ:
x1 (int) -- 1つ目の座標の右(+)左(-)方向の相対距離
y1 (int) -- 1つ目の座標の上(+)下(-)方向の相対距離
z1 (int) -- 1つ目の座標の前(+)後(-)方向の相対距離
x2 (int) -- 2つ目の座標の右(+)左(-)方向の相対距離
y2 (int) -- 2つ目の座標の上(+)下(-)方向の相対距離
z2 (int) -- 2つ目の座標の前(+)後(-)方向の相対距離
- 戻り値:
指定された領域
- 戻り値の型:
サンプル
>>> # 自分の周囲5ブロックの領域を定義(向きに依存) >>> Volume.local(-5, -5, -5, 5, 5, 5)
- static relative(x1: int, y1: int, z1: int, x2: int, y2: int, z2: int) Volume
相対座標で領域を指定する(自分を中心とした東西南北)
- パラメータ:
x1 (int) -- 1つ目の座標の東(+)西(-)方向の相対距離
y1 (int) -- 1つ目の座標の上(+)下(-)方向の相対距離
z1 (int) -- 1つ目の座標の南(+)北(-)方向の相対距離
x2 (int) -- 2つ目の座標の東(+)西(-)方向の相対距離
y2 (int) -- 2つ目の座標の上(+)下(-)方向の相対距離
z2 (int) -- 2つ目の座標の南(+)北(-)方向の相対距離
- 戻り値:
指定された領域
- 戻り値の型:
サンプル
>>> # 自分の周囲5ブロックの領域を定義 >>> Volume.relative(-5, -5, -5, 5, 5, 5)
- py2hackCraft.modules.str_to_bool(s)
文字列をブール値に変換する
- パラメータ:
s (str) -- "true" または "false"(大文字小文字は無視)
- 戻り値:
変換されたブール値"true"ならTrue、"false"ならFalse
- 戻り値の型:
bool