# PlayerBlockLife 配置文件
# 版本: 1.0.0-1.20.4

# 方块设置
blocks:
  # 每个玩家的生命方块数量
  amount: 5
  # 方块生成范围（以玩家为中心的正方形边长的一半）
  spread: 5
  # 方块埋藏深度（0为地面，负数为地下）
  depth: -1
  # 方块材质类型
  # 可选值: player_head, custom_block, default
  material: player_head
  # 是否在生成方块时自动填充周围的方块
  fill_around: true

  # 当使用玩家头颅时的设置
  player_head:
    # 是否随机旋转头颅方向
    random_rotation: true
    # 是否显示玩家名字
    show_player_name: true
    # 是否显示特殊效果
    show_effects: true

  # 当使用自定义方块时的设置
  custom_block:
    # 自定义方块材质
    material: DIAMOND_BLOCK
    # 是否发光
    glowing: true
    # 发光等级 (0-15)
    light_level: 3

# 游戏规则
game:
  # 方块被挖光时是否死亡
  die_when_blocks_gone: true
  # 死亡后是否变成观察者
  become_spectator: true
  # 观察者模式
  spectator_mode:
    # 是否可以飞行
    can_fly: true
    # 是否可以看到其他玩家
    can_see_players: true
    # 是否可以穿墙
    can_clip: true

  # 是否启用生命值系统
  health_system: true
  # 生命值计算公式
  health_formula:
    # 方块数量与生命值的关系
    # 格式: 方块数量:生命值
    5: 20
    4: 16
    3: 12
    2: 8
    1: 4
    0: 0

  # 状态效果
  status_effects:
    # 当剩余2个方块时
    two_blocks_left:
      - type: SLOW
        amplifier: 1
        duration: 100
    # 当剩余1个方块时
    one_block_left:
      - type: SLOW
        amplifier: 2
        duration: 100
      - type: WEAKNESS
        amplifier: 0
        duration: 100
      - type: BLINDNESS
        amplifier: 0
        duration: 100

  # 挖掘奖励
  break_rewards:
    # 是否给予经验
    give_exp: true
    # 经验数量
    exp_amount: 5
    # 是否给予物品
    give_items: false
    # 物品列表
    items:
      - DIAMOND:1
      - GOLD_INGOT:3

  # 广播设置
  broadcast:
    # 方块被破坏时是否广播
    on_block_break: true
    # 广播范围（格数）
    range: 30
    # 玩家死亡时是否全服广播
    on_player_death: true
    # 新玩家加入时是否广播
    on_player_join: false

# 皮肤系统
skin:
  # 是否启用皮肤系统
  enabled: true
  # 皮肤来源
  source: player_profile
  # 可选值: player_profile, mojang_api, local_cache
  # player_profile: 从玩家本地缓存获取（推荐，不调用外部API）
  # mojang_api: 从Mojang API获取（需要网络）
  # local_cache: 从本地缓存获取

  # 缓存设置
  cache:
    # 是否启用缓存
    enabled: true
    # 缓存过期时间（天）
    expire_days: 7
    # 缓存最大大小（MB）
    max_size_mb: 100

  # 默认皮肤（当无法获取玩家皮肤时）
  default_skin:
    # 使用哪个玩家的皮肤作为默认
    player_name: Steve
    # 或使用自定义UUID
    uuid: 8667ba71-b85a-4004-af54-457a9734eed7
    # 是否随机分配默认皮肤
    random_default: false
    # 可选的默认皮肤列表
    available_skins:
      - Steve
      - Alex
      - Enderman

  # 皮肤处理
  processing:
    # 是否异步处理皮肤
    async: true
    # 处理线程数
    threads: 2
    # 超时时间（秒）
    timeout: 10
    # 重试次数
    retry_times: 3

# 数据存储
storage:
  # 存储类型
  # 可选值: yaml, json, sqlite, mysql
  type: yaml

  # 自动保存
  auto_save:
    # 是否启用自动保存
    enabled: true
    # 保存间隔（秒）
    interval: 300

  # YAML存储设置
  yaml:
    # 数据文件编码
    encoding: UTF-8
    # 是否压缩
    compress: false

  # SQLite设置
  sqlite:
    # 数据库文件路径
    file: plugins/PlayerBlockLife/data.db
    # 连接池大小
    pool_size: 5

  # MySQL设置
  mysql:
    # 数据库主机
    host: localhost
    # 数据库端口
    port: 3306
    # 数据库名
    database: minecraft
    # 用户名
    username: root
    # 密码
    password: password
    # 表前缀
    table_prefix: pbl_
    # 连接池设置
    pool:
      max_connections: 10
      min_connections: 2
      connection_timeout: 30000
      idle_timeout: 600000

# 消息配置
messages:
  # 消息前缀
  prefix: "&6[&ePlayerBlockLife&6]&r "
  # 消息颜色
  colors:
    success: "&a"
    error: "&c"
    warning: "&e"
    info: "&7"
    highlight: "&6"

  # 命令消息
  commands:
    setlifeblocks:
      success: "&a已为你生成 {blocks} 个生命方块！"
      already_has: "&c你已经有生命方块了！使用 /checklifeblocks 查看位置"
      no_skin: "&e你的皮肤正在加载中，请稍候..."
      failed: "&c无法生成生命方块，请确保周围有足够空间"

    checklifeblocks:
      no_blocks: "&c你还没有设置生命方块！使用 /setlifeblocks 来设置"
      info: "&a你的生命方块信息："
      location: "&7{index}. &e世界: {world} &7坐标: &a{x}&7, &a{y}&7, &a{z}"
      remaining: "&7剩余方块: &e{remaining}&7/&a5"
      health: "&7当前生命值: &c{health} ❤"

    admin:
      reload: "&a插件配置已重载！"
      delete_success: "&a已删除玩家 {player} 的生命方块"
      delete_failed: "&c删除失败，玩家不存在或没有生命方块"
      revive_success: "&a玩家 {player} 已复活！"
      revive_failed: "&c复活失败，玩家不存在或未死亡"

  # 游戏消息
  game:
    block_destroyed:
      owner: "&c⚠ 警告！你的生命方块被 {breaker} 破坏了！"
      breaker: "&a你破坏了 {owner} 的生命方块！"
      remaining: "&7对方剩余生命方块: &a{remaining}"
      broadcast: "&7[附近] &e一个生命方块被破坏了！"

    death:
      title: "&4☠ 你死了！"
      subtitle: "&c所有生命方块已被挖光"
      broadcast: "&4☠ 玩家 {player} 的生命方块已被全部挖光，惨遭淘汰！"
      spectator: "&e你已被淘汰，可以观察其他玩家。等待下一轮游戏开始..."

    warning:
      low_blocks: "&c⚠ 警告！生命方块即将耗尽！"
      last_block: "&4⚠ 警告！这是最后一个生命方块！"
      health_low: "&4⚠ 警告！生命值过低！"

  # 加入消息
  join:
    welcome: "&e欢迎加入游戏！"
    welcome_back: "&e欢迎回来，{player}！"
    rules: |
      &6游戏规则：
      &7- 每个玩家有5个生命方块
      &7- 方块被其他玩家挖光时，你将死亡
      &7- 方块使用你的皮肤作为材质
      &7- 你可以自由移动，但方块固定位置
    remaining_blocks: "&7你还有 {blocks} 个生命方块"
    commands: "&7使用 &e/setlifeblocks &7来设置你的生命方块"

# 效果设置
effects:
  # 方块放置效果
  place:
    particles:
      - type: ENCHANTMENT_TABLE
        count: 30
        offset_x: 0.3
        offset_y: 0.3
        offset_z: 0.3
        speed: 0.1
    sounds:
      - type: BLOCK_ANVIL_PLACE
        volume: 0.5
        pitch: 1.2

  # 方块破坏效果
  break:
    particles:
      - type: BLOCK_CRACK
        count: 50
        offset_x: 0.5
        offset_y: 0.5
        offset_z: 0.5
        speed: 0.5
        data: PLAYER_HEAD
      - type: SMOKE_LARGE
        count: 20
        offset_x: 0.3
        offset_y: 0.3
        offset_z: 0.3
        speed: 0.05
    sounds:
      - type: ENTITY_ITEM_BREAK
        volume: 1.0
        pitch: 0.8
      - type: BLOCK_GLASS_BREAK
        volume: 0.8
        pitch: 1.0
    knockback:
      enabled: true
      power: 0.5
      vertical: 0.3

  # 玩家受伤效果
  damage:
    particles:
      - type: DAMAGE_INDICATOR
        count: 10
    sounds:
      - type: ENTITY_PLAYER_HURT
        volume: 1.0
        pitch: 1.0

  # 玩家死亡效果
  player_death:
    particles:
      - type: EXPLOSION_HUGE
        count: 5
    sounds:
      - type: ENTITY_WITHER_DEATH
        volume: 0.7
        pitch: 0.8
      - type: ENTITY_LIGHTNING_BOLT_THUNDER
        volume: 1.0
        pitch: 0.5

# 保护设置
protection:
  # 是否保护生命方块不被非玩家破坏
  protect_from_non_players: true
  # 是否保护生命方块不被爆炸破坏
  protect_from_explosions: true
  # 是否保护生命方块不被火焰烧毁
  protect_from_fire: true
  # 是否保护生命方块不被活塞推动
  protect_from_pistons: true
  # 是否允许TNT破坏生命方块
  allow_tnt_damage: false
  # 是否允许苦力怕爆炸破坏生命方块
  allow_creeper_explosions: false
  # 是否允许末影龙破坏生命方块
  allow_ender_dragon_damage: false
  # 是否允许其他插件修改生命方块
  allow_plugin_modification: false

# 世界保护
world_guard:
  # 是否与WorldGuard集成
  enabled: false
  # 需要保护的地区标志
  region_flags:
    - block-break
    - block-place
    - pvp
  # 白名单地区（允许破坏生命方块的地区）
  whitelist_regions: []
  # 黑名单地区（不允许破坏生命方块的地区）
  blacklist_regions: []

# 调试设置
debug:
  # 是否启用调试模式
  enabled: false
  # 调试级别
  # 可选值: INFO, WARNING, ERROR, DEBUG
  level: INFO
  # 是否记录到文件
  log_to_file: true
  # 日志文件路径
  log_file: plugins/PlayerBlockLife/debug.log
  # 是否显示详细事件日志
  verbose_events: false
  # 是否记录性能数据
  log_performance: false
  # 性能日志间隔（秒）
  performance_log_interval: 60