填充特定區域中特定塊上方的每個空氣塊
我想通過在特定區域用白色彩色玻璃填充每個末地石塊上方(僅在上方)的每個塊(僅當該塊是空氣時)來防止末地的主島產卵。我有 OP 和 WorldEdit 訪問權限,並且是伺服器所有者,因此如果需要,我可以添加 Bukkit 外掛。我正在執行的世界版本是 CraftBukkit 1.14.4 世界。
是否有任何可用的命令來執行此操作,無論是普通命令還是 WorldEdit 命令?是否有任何其他 Bukkit 外掛可以讓我這樣做?還是我必須手動放置所有東西?
使用偏移蒙版是使用 WorldEdit 執行此操作的正確方法。
如果您想用白色彩色玻璃替換末地石上方的每個空氣塊,請使用
//replace ">end_stone air" white_stained_glass
.但是,請注意 Minecraft 現在有 3 種類型的空氣塊,因此
!#existing
通常更有用,因為它匹配任何不包含塊的位置(例如,它只匹配空氣類型)。資料來源:https ://worldedit.enginehub.org/en/latest/usage/general/masks/#offset-mask
至少在香草中,沒有簡單的命令可以做到這一點。但是您可以使用極其複雜的命令系統來達到相同的效果。誰不喜歡這樣?
首先,在您所在區域的最低 X 和 Z 座標處生成一個盔甲架,高空:
/summon armor_stand <x> 255 <z> {NoAI:1,NoGravity:1,Tags:["xMover"]}
然後執行這兩個命令的次數至少與 X 方向上該區域的長度一樣多(更多並不重要,除了性能,所以我建議只保留重複的命令鏈幾秒鐘):
execute at @e[tag=xMover] run summon armor_stand ~ ~ ~ {NoAI:1,NoGravity:1,Tags:["zMover"]} execute as @e[tag=xMover] at @s run tp @s ~1 ~ ~
這應該會給你一長串懸停的盔甲架。
現在你讓這條線產生許多非懸停盔甲架。那些會掉下來並落在他們所在的柱子的頂部。
警告:盔甲架可能掉落的水、熔岩、標誌和其他方塊可能會造成乾擾。在許多情況下,也會像在自身下方放火一樣結束水晶,可能會覆蓋你的台階。
而且,當然,這會造成大量滯後。你最好呆在一個可以隨時再次關閉控制桿的位置,只需查看聊天中的座標(命令輸出)以確定何時停用它,因為如果你填滿整個 End,即使輸入命令也會滯後很多島這邊。
execute at @e[tag=zMover] run summon armor_stand ~ ~ ~ {NoAI:1,Tags:["placeHere"]} execute as @e[tag=zMover] at @s run tp @s ~ ~ ~1
然後稍等片刻,直到所有裝甲架都倒下並執行這兩個命令(如果您不相信所有塊都已載入,您也可以在鏈中多次執行這些命令):
execute at @e[tag=placeHere] run setblock ~ ~ ~ stone_slab kill @e[tag=placeHere]
最後你還可以殺死其他盔甲架:
/kill @e[tag=xMover] /kill @e[tag=zMover]
另一個警告:這只適用於每列的頂層。在有末影石的地方,例如在更多末影石上方三格空氣上方有末影石,那麼它仍然會留下那些未覆蓋的地方。一個荒謬的解決方案是在每個 Y 層上執行整個系統。
或者,您可以利用產卵來發揮自己的優勢。只需在重複和鍊式命令塊中使用這三個命令:
execute at @e[type=enderman] run setblock ~ ~ ~ stone_slab kill @e[type=enderman] kill @e[type=item,nbt={Item:{id:"minecraft:ender_pearl"}}]
然後等待一個小時左右,末地的大部分應該是平板,至少在你周圍 32 到 128 個街區。如果您還希望其餘部分被壓成台階,請偶爾四處走動,但通常末路之地的半徑為 128,並且沒有非常靠近中心的洞穴,因此如果您只是站在中間,它應該會留下很少的位置。