Biomentry

进入新的生物群系时,呈现沉浸式和动态的标题。

资源图片
# 📌 关于Biometry **Biometry** 不仅仅是一个生物群系提示器——它是一个为 Minecraft 打造的**沉浸式系统**。 它让每个生物群系都感觉**鲜活、独特和具有反应性**。 从**动画标题**和**环境音效**到**高级条件规则**,Biomentry 将环境与玩家的旅程连接起来——无论他们穿越沙漠、探索茂密的洞穴,还是在模组维度中游荡。 非常适合**RPG、冒险、生存和讲故事服务器**,Biometry 将探索变成一种体验。 --- ## ✨ 核心功能 ### 📍 智能生物群系检测 - 实时检测**地面和地下**。 - 通过**自定义逻辑**增强,以实现准确的洞穴识别(光照等级、方块密度、天空访问、Y 轴坐标、结构)。 - 支持**特殊洞穴生物群系**: `lush_caves`, `deep_dark`, `dripstone_caves`。 --- ## 🕳️ 高级洞穴检测 一个多标准评分系统来确定玩家是否真正处于洞穴中,考虑以下因素: - 环境光照等级, - 玩家周围的方块密度, - 天空访问, - Y 轴坐标和自然结构语境。 这允许在人工洞穴或开阔的峡谷中进行准确的检测。 --- ### 🖥️ 沉浸式视觉通知 - 动画**标题和字幕**(淡入、打字机等)在进入生物群系时显示。 - **可自定义的风格**,适用于每个生物群系或生物群系组。 - **生物群系分组**以减少消息垃圾(例如,森林、海洋)。 --- ### 🔊 环境音效 - 每个生物群系都具有独特的循环音效: - 沙漠骆驼 - 丛林鹦鹉 - 沼泽青蛙 - 山脉风声 - **告别重复的雨声 → 迎接沉浸感。** --- ### ⚙️ 玩家自定义 - `/biomentry toggle` → 启用/禁用通知。 - `/biomentry language ` → 更改语言。 - **偏好设置保存到每个玩家**,以便完全控制。 --- ### 🛡️ 区域和服务器集成 - **WorldGuard 支持** → 在出生点、竞技场、安全区或自定义区域中禁用通知。 - **多语言支持** → 包含英语和法语;德语、俄语、西班牙语模板。 - **优化性能** → 智能缓存减少了冗余计算。 --- ## 🔥 v0.3 – 树苗更新的新增功能 ### 1️⃣ 高级条件系统 - 全新的 **`conditions.yml`** 解锁了深度自定义: - **触发器** → 生物群系进入、地面与洞穴、时间、玩家统计信息 - **逻辑门** → 组合 `and`、`or`、`not` 以创建复杂规则 - **条件** → 权限、生命值、盔甲、药水效果、世界时间 - **行为** → 运行命令、应用效果、授予临时权限、治愈、给予饱和度 --- ### 2️⃣ 自定义生物群系和洞穴支持 - 对**模组和数据包生物群系**的全面支持(Terralith、Biomes O’ Plenty 等)。 - **自动识别自定义洞穴**,使用 `in_cave: true/false`。 - **完全使用生物群系 ID** (`terralith:skylands`) 确保条件、声音和通知适用于**任何生物群系**,无论是原版还是模组。 --- ### 3️⃣ 增强的沉浸感和稳定性 - 环境音效已完全改版。 - 更智能的洞穴检测。 - 可靠的 Boss 条和通知。 - 修复错误 → 条件行为现在总是执行正确。 --- ## 🚀 为什么选择 Biometry? Minecraft 中的生物群系是**故事、氛围和身份**。 **Biometry 为它们赋予了声音。** 非常适合希望: - **沉浸感** → RPG、半角色扮演、冒险世界 - **讲故事工具** → 进入区域时触发 - **氛围** → 环境声音和视觉效果 - **自定义** → 高级配置和玩家偏好 随着 Biometry,**每一步进入新的生物群系——无论是地面、洞穴,还是原版或模组——都感觉像一个新的章节。** ## 配置文件
config.yml ``` #Biomentry 的配置 # 常规设置 general: language: 'en' # 插件语言:'fr' (法语) 或 'en' (英语) enableParticles: false # 全局启用或禁用粒子效果 enableCommands: false # 全局启用或禁用命令执行 enableAmbientSounds: true # 全局启用或禁用环境音效 # 标题显示设置 titleInfo: fadeIn: 10 # 淡入时间(以刻为单位) stay: 70 # 显示时长(以刻为单位) fadeOut: 20 # 淡出时间(以刻为单位) animationType: 'fade' # 动画类型:'fade'、'typewriter' 或 'slide' typewriterSpeed: 2 # 打字机速度(每刻字符数) # 显示管理优先级系统 priority: enabled: true # 启用优先级系统 level: 'medium' # 优先级等级:'low'、'medium'、'high' pauseOnOtherPlugins: true # 当其他插件显示标题时暂停生物群系显示 resumeDelay: 40 # 其他插件完成后恢复之前的延迟(以刻为单位) checkInterval: 5 # 检查是否存在其他插件活动(以刻为单位)的间隔 # 生物群系组 - 同一组的生物群系在彼此过渡时不会触发通知 # 白桦林 biomeGroups: - ['birch_forest', 'old_growth_birch_forest'] # 针叶林 - ['taiga', 'old_growth_spruce_taiga', 'old_growth_pine_taiga', 'snowy_taiga'] # 黑暗森林 - ['dark_forest'] # 海洋 - ['ocean', 'deep_ocean', 'warm_ocean', 'lukewarm_ocean', 'cold_ocean', 'frozen_ocean', 'deep_cold_ocean', 'deep_frozen_ocean', 'deep_lukewarm_ocean'] # 沙漠 - ['desert'] # 山脉和高峰 - ['windswept_hills', 'windswept_forest', 'windswept_gravelly_hills', 'windswept_savanna', 'jagged_peaks', 'frozen_peaks', 'stony_peaks'] # 洞穴 - ['deep_dark', 'dripstone_caves', 'lush_caves'] # 坏地 - ['badlands', 'eroded_badlands', 'wooded_badlands'] # 热带草原 - ['savanna', 'savanna_plateau', 'windswept_savanna'] # WorldGuard 区域,在此区域禁用通知 disabledRegions: - spawn - safe_zone - pvp_arena # 插件完全禁用的世界列表(这里仅为示例) disabled-worlds: - "a_minigame_world" - "world_the_end" ```
biomes.yml ``` # 生物群系配置文件的摘录 # 在这里,您可以定义每个生物群系的 BEHAVIOR。 # 标题和字幕的实际文本在语言文件中。 biomes: plains: title: 'biomes.plains.title' subtitle: 'biomes.plains.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_GRASS_BREAK' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 forest: title: 'biomes.forest.title' subtitle: 'biomes.forest.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_CHERRY_WOOD_BREAK' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 dark_forest: title: 'biomes.dark_forest.title' subtitle: 'biomes.dark_forest.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'AMBIENT_CAVE' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 birch_forest: title: 'biomes.birch_forest.title' subtitle: 'biomes.birch_forest.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_CHERRY_WOOD_BREAK' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 old_growth_birch_forest: title: 'biomes.old_growth_birch_forest.title' subtitle: 'biomes.old_growth_birch_forest.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_CHERRY_WOOD_BREAK' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 flower_forest: title: 'biomes.flower_forest.title' subtitle: 'biomes.flower_forest.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_GRASS_BREAK' commands: [] particle: type: "VILLAGER_HAPPY" count: 10 offset: 0.5 speed: 0.1 bossBar: color: 'WHITE' style: 'SOLID' ambient_sound: sound: 'ambient.weather.rain' volume: 0.1 pitch: 1.0 delay: 200 'clifftree:desert_cliff': title: 'biomes.clifftree.desert_cliff.title' subtitle: 'biomes.clifftree.desert_cliff.subtitle' display: 'actionbar' animationType: 'typewriter' separator: ' | ' sound: 'BLOCK_SAND_BREAK' bossBar: color: 'YELLOW' style: 'SOLID' duration: 120 particle: type: "DUST" count: 15 offset: 0.6 speed: 0.1 ```
conditions.yml ``` #Biometry 条件系统的配置文件。 # 每个“规则”定义一个触发器、条件和行为。 rules: # --- 示例 1:简单的“如果...和...”条件(AND)--- # 玩家在沙漠中获得速度,但只有在白天并且拥有权限时。 desert_speed_day: trigger: type: 'ENTER_BIOME' biome: 'minecraft:desert' conditions: and: # “and” 是一个必须全部为真的条件的列表 - type: 'WORLD_TIME' operator: 'LESS_THAN' value: 12500 # 在日落之前 - type: 'HAS_PERMISSION' permission: 'biomentry.condition.desert_speed' actions: - type: 'APPLY_EFFECT' effect: 'SPEED' duration: 600 # 以刻为单位(30 秒) amplifier: 0 # --- 示例 2:“如果处于洞穴中”条件 --- # 如果玩家进入任何洞穴并且拥有权限,则该玩家会得到火把。 generic_cave_torch: trigger: type: 'ENTER_BIOME' in_cave: true # 此规则仅在玩家处于洞穴中时才生效。 conditions: or: # 至少一个条件必须为真 - type: 'HAS_PERMISSION' permission: 'biomentry.condition.torch_giver' - type: 'HAS_EFFECT' effect: 'NIGHT_VISION' actions: - type: 'RUN_COMMAND' command: 'give %player_name% minecraft:torch 4' - type: 'SEND_MESSAGE' message: '你感觉自己在这些洞穴中像一个探险家。' # --- 示例 3:“如果不是...”条件(NOT)--- # 如果玩家进入地狱而没有全钻石盔甲,则会收到警告。 nether_warning: trigger: type: 'ENTER_BIOME' biome: 'minecraft:nether_wastes' in_cave: false # 仅适用于地狱的“表面” conditions: not: # “not” 反转其包含的条件 type: 'HAS_ARMOR' material: 'DIAMOND' pieces: 4 # 全部盔甲 4 个部件 actions: - type: 'SEND_MESSAGE' message: '<#FF6347>警告! 没有适当的装备,地狱很危险。' # --- 示例 4:“如果既不...也不...”条件(NOT + OR)--- # 如果玩家既没有再生效果,也没有抗性效果,则在地狱深渊中会受到伤害。 deep_dark_danger: trigger: type: 'ENTER_BIOME' biome: 'minecraft:deep_dark' conditions: # 逻辑是:NOT (A OR B) not: or: - type: 'HAS_EFFECT' effect: 'REGENERATION' - type: 'HAS_EFFECT' effect: 'RESISTANCE' actions: - type: 'APPLY_EFFECT' effect: 'WITHER' # 应用枯萎效果 duration: 100 amplifier: 0 - type: 'SEND_MESSAGE' message: '<#8B0000>你感觉到一种邪恶的存在在吸取你的生命...' # --- 示例 5:请求的行为 --- # 进入特定生物群系时授予临时权限和生命值/饱和度。 ancient_forest_bonus: trigger: type: 'ENTER_BIOME' biome: 'minecraft:old_growth_pine_taiga' conditions: # 无条件,对所有人触发 and: [] actions: - type: 'ADD_PERMISSION' permission: 'essentials.fly' duration: 300 # 以秒为单位(5 分钟) - type: 'HEAL' amount: 4.0 # 以半心为单位(这里,2 个心) - type: 'GIVE_SATURATION' amount: 5.0 - type: 'SEND_MESSAGE' message: '<#2E8B57>古老针叶林的力量流淌在你的体内。' ```