结构护盾

结构护盾

保护结构!阻止玩家在结构内破坏或放置大多数方块。完全数据驱动且可配置,允许你选择哪些结构受到保护以及哪些方块可以被破坏或放置。

结构

 

Structure Shield 阻止玩家在结构内破坏或放置大多数方块。

关于


它完全由数据驱动且可配置,允许你选择哪些结构受保护,以及在受保护的结构内哪些方块可以破坏或放置。

现在玩家无法再轻视结构或为后续玩家完全摧毁它们。这也会增加难度,因为你不能仅仅堵住门来阻止怪物,也不能通过放置平台来绕过跳跃或跑酷路线。

它在构建时考虑了性能,不应影响你的服务器性能或干扰其他模组。如果某个模组确实需要在结构内破坏或放置方块,你可以通过数据包快速允许该操作。

内置了一个适用于原版 Minecraft 的默认数据包。如果你想进行更改,可以轻松调整以满足你的需求,但对大多数人来说应该已经足够。只需安装即可使用。

概述


我构建这个模组是为了让玩家必须按照结构原本设计的方式来体验它们。能够破坏或放置结构内的所有方块往往会让建筑变得无足轻重或过于简单。这个模组让你可以完全控制哪些结构应该受到保护,以及在结构内允许破坏或放置哪些方块。它将在探索结构时创造更有趣、更危险、更有趣的体验。

有了 Structure Shield,你必须导航并时刻留意自己的位置。你不能只是放置方块来堵住房间以阻止怪物。跳跃或跑酷路线现在可以得到强制执行。我发现这样玩结构会更有趣,希望你也一样!

有些结构确实需要破坏或放置方块才能正常运作。在这些情况下,你可以使用方块标签轻松添加允许的方块类型,如下所述。我还想确保玩家仍然可以破坏所有矿石方块,或作为奖励的金块或钻石块等金属方块。大多数作物和植物也是可破坏的。这允许玩家仍然可以完成结构并收集奖励,而不会摧毁结构本身。

这个模组的灵感来自 Modern Inhibited(以及延伸的 Inhibited)。Modern Inhibited 尚未移植到 1.21.1 Neoforge,而我希望在允许某些方块被破坏或放置方面有更细粒度的控制。

标签


这个模组主要基于 3 个不同的标签运行(1 个结构标签和 2 个方块标签):

"structure_shield:structure_shield_protected"

任何带有此标签的结构都将受到此模组的保护。如果你想将结构添加到此标签,你需要在数据包中创建位于 yourdatapack/data/structure_shield/tags/worldgen/structure/structure_shield_protected.json 的 json 文件,内容如下

{ "replace": false, "values": [ "minecraft:buried_treasure", "othermod:structure" }

如果你想在已有结构的基础上添加这些结构,请保留 "replace": false。 如果你想替换所有先前的标签数据并仅保留你自己的集合,请将其设置为 true。

"structure_shield:structure_shield_breakable"

任何带有此标签的方块都可在受上述标签保护的结构内破坏。如果你想修改此方块标签,例如替换其值或添加新值,你需要使用数据包添加方块,并添加此 json 文件:yourdatapack/data/structure_shield/tags/block/structure_shield_breakable.json。 你将通过与我们上面为结构添加方块相同的方式来配置它。要覆盖默认数据包,请使用 "replace": true。或者保持 false 以仅添加值。

方块标签 | "structure_shield:structure_shield_placeable"

任何带有此标签的方块都可在受保护的结构内放置。默认情况下它只包含火把之类的东西,这样玩家可以在移动时添加光源。我会小心地添加方块到此标签,除非你也将其添加到可破坏标签。如果你放置了一个不在可破坏标签中的方块,你将无法破坏它。你将通过与上面相同的方式修改这些标签,并将文件添加到 yourdatapack/data/structure_shield/tags/block/structure_shield_placeable.json。

配置


config/structure_shield-server.toml 中有 2 个服务端配置选项。

配置 | protectAllStructures = false

将其设置为 true 将使游戏中的每个结构都受到保护,无论你在标签中设置了什么。对于许多不想按结构逐一微调的人来说,这可以很好地工作。默认值为 false。

配置 | sanctumsCurseEffectDuration = 4

当玩家在受保护的结构中破坏或放置了不应破坏或放置的方块时,他们会获得一个名为 Sanctum's Curse 的临时效果。此效果会在几秒内阻止他们破坏和放置所有方块(在他们已经破坏的方块之上)。默认是 4 秒,但可以在此配置或关闭。要关闭请将其设置为 0 秒。我创建此效果是为了让玩家更清楚为什么无法放置或破坏方块,并通过减少结构检查来提高性能。

默认数据包值


1.20.1 的值与下面略有不同。short_grass 和 tall_grass 只是 grass,并且包中没有试炼密室等。除此之外它们包含其他所有内容。

受保护的结构:

minecraft:ancient_city,
minecraft:bastion_remnant,
minecraft:desert_pyramid,
minecraft:end_city,
minecraft:fortress,
minecraft:igloo,
minecraft:jungle_pyramid,
minecraft:mineshaft,
minecraft:mineshaft_mesa,
minecraft:monument,
minecraft:pillager_outpost,
minecraft:shipwreck,
minecraft:shipwreck_beached,
minecraft:stronghold,
minecraft:swamp_hut,
minecraft:trail_ruins,
minecraft:trial_chambers,
minecraft:village_plains,
minecraft:village_desert,
minecraft:village_savanna,
minecraft:village_snowy,
minecraft:village_taiga,
minecraft:mansion

可破坏的方块

minecraft:sand,
minecraft:gravel,

minecraft:netherrack,
minecraft:end_stone,

minecraft:amethyst_cluster,
minecraft:small_amethyst_bud,
minecraft:medium_amethyst_bud,
minecraft:large_amethyst_bud,

minecraft:ice,
minecraft:packed_ice,
minecraft:blue_ice,

minecraft:coal_ore,
minecraft:copper_ore,
minecraft:iron_ore,
minecraft:gold_ore,
minecraft:emerald_ore,
minecraft:diamond_ore,
minecraft:lapis_ore,
minecraft:redstone_ore,
minecraft:ancient_debris,

minecraft:deepslate_coal_ore,
minecraft:deepslate_copper_ore,
minecraft:deepslate_iron_ore,
minecraft:deepslate_lapis_ore,
minecraft:deepslate_redstone_ore,
minecraft:deepslate_gold_ore,
minecraft:deepslate_emerald_ore,
minecraft:deepslate_diamond_ore,

minecraft:coal_block,
minecraft:copper_block,
minecraft:iron_block,
minecraft:gold_block,
minecraft:emerald_block,
minecraft:diamond_block,
minecraft:lapis_block,
minecraft:netherite_block,

minecraft:raw_copper_block,
minecraft:raw_iron_block,
minecraft:raw_gold_block,

minecraft:nether_quartz_ore,
minecraft:nether_gold_ore,

minecraft:glowstone,
minecraft:sea_lantern,
minecraft:shroomlight,
minecraft:ochre_froglight,
minecraft:pearlescent_froglight,
minecraft:verdant_froglight,
minecraft:magma_block,
minecraft:jack_o_lantern,
minecraft:redstone_lamp,
minecraft:lantern,
minecraft:soul_lantern,
minecraft:torch,
minecraft:wall_torch,
minecraft:soul_torch,
minecraft:soul_wall_torch,
minecraft:end_rod,

minecraft:azalea,
minecraft:azalea_leaves,
minecraft:flowering_azalea,
minecraft:flowering_azalea_leaves,
minecraft:allium,
minecraft:azure_bluet,
minecraft:blue_orchid,
minecraft:cornflower,
minecraft:dandelion,
minecraft:lilac,
minecraft:lily_of_the_valley,
minecraft:orange_tulip,
minecraft:oxeye_daisy,
minecraft:peony,
minecraft:pink_tulip,
minecraft:poppy,
minecraft:red_tulip,
minecraft:rose_bush,
minecraft:sunflower,
minecraft:white_tulip,
minecraft:wither_rose,

minecraft:short_grass,
minecraft:tall_grass,
minecraft:fern,
minecraft:large_fern,
minecraft:dead_bush,

minecraft:vine,
minecraft:weeping_vines,
minecraft:weeping_vines_plant,
minecraft:twisting_vines,
minecraft:twisting_vines_plant,
minecraft:glow_lichen,
minecraft:hanging_roots,
minecraft:spore_blossom,
minecraft:bamboo,
minecraft:bamboo_sapling,
minecraft:kelp,
minecraft:kelp_plant,
minecraft:seagrass,
minecraft:tall_seagrass,
minecraft:wheat,
minecraft:carrots,
minecraft:potatoes,
minecraft:beetroots,
minecraft:melon,
minecraft:melon_stem,
minecraft:attached_melon_stem,
minecraft:pumpkin,
minecraft:pumpkin_stem,
minecraft:attached_pumpkin_stem,
minecraft:sugar_cane,
minecraft:cactus,
minecraft:nether_wart,
minecraft:torchflower,
minecraft:torchflower_crop,
minecraft:pitcher_crop,
minecraft:pitcher_plant,
minecraft:sweet_berry_bush,

minecraft:skeleton_skull,
minecraft:skeleton_wall_skull,
minecraft:wither_skeleton_skull,
minecraft:wither_skeleton_wall_skull,
minecraft:creeper_head,
minecraft:creeper_wall_head,
minecraft:dragon_head,
minecraft:dragon_wall_head,
minecraft:piglin_head,
minecraft:piglin_wall_head,
minecraft:player_head,
minecraft:player_wall_head,
minecraft:zombie_head,
minecraft:zombie_wall_head,

minecraft:white_banner,
minecraft:white_wall_banner,
minecraft:orange_banner,
minecraft:orange_wall_banner,
minecraft:magenta_banner,
minecraft:magenta_wall_banner,
minecraft:light_blue_banner,
minecraft:light_blue_wall_banner,
minecraft:yellow_banner,
minecraft:yellow_wall_banner,
minecraft:lime_banner,
minecraft:lime_wall_banner,
minecraft:pink_banner,
minecraft:pink_wall_banner,
minecraft:gray_banner,
minecraft:gray_wall_banner,
minecraft:light_gray_banner,
minecraft:light_gray_wall_banner,
minecraft:cyan_banner,
minecraft:cyan_wall_banner,
minecraft:purple_banner,
minecraft:purple_wall_banner,
minecraft:blue_banner,
minecraft:blue_wall_banner,
minecraft:brown_banner,
minecraft:brown_wall_banner,
minecraft:green_banner,
minecraft:green_wall_banner,
minecraft:red_banner,
minecraft:red_wall_banner,
minecraft:black_banner,
minecraft:black_wall_banner

可放置的方块

minecraft:torch,
minecraft:wall_torch,
minecraft:soul_torch,
minecraft:soul_wall_torch

常见问题


问:你会为 Fabric 制作这个吗?

答:我不会移植到 Fabric,但欢迎任何人这样做!对于 Forge,我目前只会支持 1.20.1,并且我会将 1.21 后的版本移植到 NeoForge。从那时起我将停留在 NeoForge,我没有时间管理太多不同版本。

问:你会将此移植到更旧的 Minecraft 版本吗?

答:除非它受到很多关注,否则我只会开发 1.20.1 及以后的版本。重点将放在 1.21.1 Neoforge 上。

问:我可以在我的服务器或整合包中使用这个吗?

答:当然可以!