获取方块的放置坐标
首先本文所介绍的内容是针对Minecraft:JE创建的。无法确定是否可以在BE上实施。
再说一遍,这不适合初学者。请努力阅读。
1. 目标创建一个机制,获取方块的放置位置并执行函数。
2. 制作方式
2.0.准备的事项(包括创建环境等)
- 
Minecraft:JE 1.20.2
 
 
- 
十分な広さを持つワールド(特に座標[0,0,0]あたりが自由に使えるようにする)(あと、コマンドが使える環境であること)
 
 
テキストエディタ(データパック作成用)
2.1. 制作数据包让我们在“(作ったワールドデータ)/datapacks/”文件夹中创建一个数据包。
{
	"pack": {
		"pack_format": 18,
		"description": "説明文"
	}
}
创建一个设定块。玩家要创建实际放置的方块。
为了使用命令进行判定,对NBT进行调整。
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.red_wool",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"red_wool\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
把它添加到路由表中就可以更轻松地管理物品了。
那么,让我们返回游戏世界并尝试取出物品吧。
/reload
/loot give @s loot place_detector:test-block
把调试棒放进灶台里,并附加自定义标签(place_detector:1b, block_name:”red_wool”)。
创建一个检测设置
{
    "criteria": {
        "place": {
            "trigger": "placed_block",
            "conditions": {
                "location": [
                    {
                        "condition": "location_check",
                        "predicate": {
                            "block": {
                                "blocks": [
                                    "furnace"
                                ],
                                "nbt": "{Items:[{tag:{place_detector:1b}}]}"
                            }
                        }
                    }
                ]
            }
        }
    },
    "rewards": {
        "function": "place_detector:place"
    }
}
#>place_detector:place
say 設置した
advancement revoke @s only place_detector:place
ワールドに戻って、先ほど作ったかまどを設置してみましょう。
/reload
获取2.4设置的位置。要获取已设置方块的位置,需要通过某种实体来介导。本例中,我们将使用将调试棒放置在熔炉内,以获得接近坐标[0,0,0]的位置并获取向量的方法。
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
2. 制作方式
2.0.准备的事项(包括创建环境等)
- 
Minecraft:JE 1.20.2
 
- 
- Minecraft:JE 1.20.2
 
 
- 
- 十分な広さを持つワールド(特に座標[0,0,0]あたりが自由に使えるようにする)(あと、コマンドが使える環境であること)
 
 
- テキストエディタ(データパック作成用)
 
2.1. 制作数据包让我们在“(作ったワールドデータ)/datapacks/”文件夹中创建一个数据包。
{
	"pack": {
		"pack_format": 18,
		"description": "説明文"
	}
}
创建一个设定块。玩家要创建实际放置的方块。
为了使用命令进行判定,对NBT进行调整。
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.red_wool",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"red_wool\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
把它添加到路由表中就可以更轻松地管理物品了。
那么,让我们返回游戏世界并尝试取出物品吧。
/reload
/loot give @s loot place_detector:test-block
把调试棒放进灶台里,并附加自定义标签(place_detector:1b, block_name:”red_wool”)。
创建一个检测设置
{
    "criteria": {
        "place": {
            "trigger": "placed_block",
            "conditions": {
                "location": [
                    {
                        "condition": "location_check",
                        "predicate": {
                            "block": {
                                "blocks": [
                                    "furnace"
                                ],
                                "nbt": "{Items:[{tag:{place_detector:1b}}]}"
                            }
                        }
                    }
                ]
            }
        }
    },
    "rewards": {
        "function": "place_detector:place"
    }
}
#>place_detector:place
say 設置した
advancement revoke @s only place_detector:place
ワールドに戻って、先ほど作ったかまどを設置してみましょう。
/reload
获取2.4设置的位置。要获取已设置方块的位置,需要通过某种实体来介导。本例中,我们将使用将调试棒放置在熔炉内,以获得接近坐标[0,0,0]的位置并获取向量的方法。
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
{
	"pack": {
		"pack_format": 18,
		"description": "説明文"
	}
}
创建一个设定块。玩家要创建实际放置的方块。
为了使用命令进行判定,对NBT进行调整。
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.red_wool",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"red_wool\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
把它添加到路由表中就可以更轻松地管理物品了。
那么,让我们返回游戏世界并尝试取出物品吧。
/reload
/loot give @s loot place_detector:test-block
把调试棒放进灶台里,并附加自定义标签(place_detector:1b, block_name:”red_wool”)。
创建一个检测设置
{
    "criteria": {
        "place": {
            "trigger": "placed_block",
            "conditions": {
                "location": [
                    {
                        "condition": "location_check",
                        "predicate": {
                            "block": {
                                "blocks": [
                                    "furnace"
                                ],
                                "nbt": "{Items:[{tag:{place_detector:1b}}]}"
                            }
                        }
                    }
                ]
            }
        }
    },
    "rewards": {
        "function": "place_detector:place"
    }
}
#>place_detector:place
say 設置した
advancement revoke @s only place_detector:place
ワールドに戻って、先ほど作ったかまどを設置してみましょう。
/reload
获取2.4设置的位置。要获取已设置方块的位置,需要通过某种实体来介导。本例中,我们将使用将调试棒放置在熔炉内,以获得接近坐标[0,0,0]的位置并获取向量的方法。
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.red_wool",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"red_wool\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
把它添加到路由表中就可以更轻松地管理物品了。
那么,让我们返回游戏世界并尝试取出物品吧。
/reload
/loot give @s loot place_detector:test-block
把调试棒放进灶台里,并附加自定义标签(place_detector:1b, block_name:”red_wool”)。
创建一个检测设置
{
    "criteria": {
        "place": {
            "trigger": "placed_block",
            "conditions": {
                "location": [
                    {
                        "condition": "location_check",
                        "predicate": {
                            "block": {
                                "blocks": [
                                    "furnace"
                                ],
                                "nbt": "{Items:[{tag:{place_detector:1b}}]}"
                            }
                        }
                    }
                ]
            }
        }
    },
    "rewards": {
        "function": "place_detector:place"
    }
}
#>place_detector:place
say 設置した
advancement revoke @s only place_detector:place
ワールドに戻って、先ほど作ったかまどを設置してみましょう。
/reload
获取2.4设置的位置。要获取已设置方块的位置,需要通过某种实体来介导。本例中,我们将使用将调试棒放置在熔炉内,以获得接近坐标[0,0,0]的位置并获取向量的方法。
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
{
    "criteria": {
        "place": {
            "trigger": "placed_block",
            "conditions": {
                "location": [
                    {
                        "condition": "location_check",
                        "predicate": {
                            "block": {
                                "blocks": [
                                    "furnace"
                                ],
                                "nbt": "{Items:[{tag:{place_detector:1b}}]}"
                            }
                        }
                    }
                ]
            }
        }
    },
    "rewards": {
        "function": "place_detector:place"
    }
}
#>place_detector:place
say 設置した
advancement revoke @s only place_detector:place
ワールドに戻って、先ほど作ったかまどを設置してみましょう。
/reload
获取2.4设置的位置。要获取已设置方块的位置,需要通过某种实体来介导。本例中,我们将使用将调试棒放置在熔炉内,以获得接近坐标[0,0,0]的位置并获取向量的方法。
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
{
    "values": [
        "place_detector:scores"
    ]
}
#>place_detector:scores
# 計算用のスコア
scoreboard objectives add _ dummy
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行
execute at @e[tag=place_detector_pos] run setblock ~ ~ ~ red_wool
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:get_pos
# チャンクロード
forceload add 0 0 -1 -1
# プレイヤーの周囲にある特定のかまどをコピー (ワールド外対策としてy座標を分けて実行)
clone ~5 ~-5 ~5 ~-5 ~-5 ~-5 to overworld -5 -5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-4 ~5 ~-5 ~-4 ~-5 to overworld -5 -4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-3 ~5 ~-5 ~-3 ~-5 to overworld -5 -3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-2 ~5 ~-5 ~-2 ~-5 to overworld -5 -2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~-1 ~5 ~-5 ~-1 ~-5 to overworld -5 -1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~0 ~5 ~-5 ~0 ~-5 to overworld -5 0 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~1 ~5 ~-5 ~1 ~-5 to overworld -5 1 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~2 ~5 ~-5 ~2 ~-5 to overworld -5 2 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~3 ~5 ~-5 ~3 ~-5 to overworld -5 3 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~4 ~5 ~-5 ~4 ~-5 to overworld -5 4 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
clone ~5 ~5 ~5 ~-5 ~5 ~-5 to overworld -5 5 -5 filtered furnace{Items:[{tag:{place_detector:1b}}]}
# かまどを破壊
fill -5 -5 -5 5 5 5 air destroy
# デバッグ棒にタグをつける(検索の最適化)
tag @e[type=item,nbt={Item:{id:"minecraft:debug_stick",tag:{place_detector:1b}}}] add place_detector_vector
# マーカーをプレイヤーの位置に召喚
summon marker ~ ~ ~ {Tags:["place_detector_pos"]}
# マーカーにデバッグ棒の座標(ベクトル)を加える
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[0]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[0] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[1]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[1] double 1 run scoreboard players operation #pos _ += #vector _
execute store result score #pos _ run data get entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2]
execute store result score #vector _ run data get entity @e[type=item,tag=place_detector_vector,limit=1] Pos[2]
execute store result entity @e[type=marker,tag=place_detector_pos,limit=1] Pos[2] double 1 run scoreboard players operation #pos _ += #vector _
# マーカーにblock_nameをコピー
data modify entity @e[type=marker,tag=place_detector_pos,limit=1] data.block_name set from entity @e[type=item,tag=place_detector_vector,limit=1] Item.tag.block_name
# ドロップしたアイテムを消去
kill @e[x=-5,y=-5,z=-5,dx=10,dy=10,dz=10,type=item]
让我们回到World,尝试放置一个炉子吧。
/reload
在2.5版中执行宏时,请指定标记位置。
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
    
#>place_detector:place
# かまどの設置位置にマーカーを召喚
function place_detector:get_pos
# マーカーの位置でコマンドを実行(変更部分!,関数のマクロ実行)
execute at @e[tag=place_detector_pos] run function place_detector:block_function/macro with entity @e[tag=place_detector_pos,limit=1] data
# マーカーを消去
kill @e[type=marker,tag=place_detector_pos]
# 進捗の初期化
advancement revoke @s only place_detector:place
#>place_detector:block_function/macro
# マクロで関数のパスを設定,実行
$function place_detector:block_function/$(block_name)
#>place_detector:block_function/red_wool
# 設置音を変える
stopsound @a block block.stone.place
playsound block.wool.place block @a ~ ~ ~ 1 1
# ブロックを設置
setblock ~ ~ ~ red_wool
让我们回到游戏世界,尝试放置一个灶台。
/reload
炉子被红色羊毛所替代,摆放时发出羊毛的声音。(偶尔会听到放置石头的声音。)
增加方块种类
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
 
「ブロックの位置にエンティティを設置する」
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦
        
        
        
    
	
		            	                        
        
{
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "item",
                    "name": "furnace",
                    "functions": [
                        {
                            "function": "set_name",
                            "name": {
                                "translate": "block.minecraft.diorite",
                                "italic": false
                            }
                        },
                        {
                            "function": "set_nbt",
                            "tag": "{BlockEntityTag:{Items:[{id:\"debug_stick\",Count:1b,tag:{place_detector:1b,block_name:\"diorite\"}}]}}"
                        }
                    ]
                }
            ]
        }
    ]
}
#>place_detector:block_function/diorite
# ブロックを設置
setblock ~ ~ ~ diorite
回到世界,尝试安装新建的炉子。
/reload
/loot give @s loot place_detector:test-block2
3. 结束语我们介绍了一种获取块的安装位置并执行函数的方法。
作为这一机制的应用示例,
- 
「ブロックの設置制限を設ける」
 
- 「ブロックの設置制限を設ける」
 
- 「ブロックの位置にエンティティを設置する」
 
有以下所述的一些选项。
我使用该机制创建了分发地图并公开。请务必尝试玩一下!
感冒很痛苦