- ◆ 支持核心
- Arclight
- ◆ 插件前置
- 无
- ◆ 游戏版本
- 1.21.1
一、前言
Cobblemon 用幸运方块插件。
支持多类型方块、宝可梦/物品/指令奖励、保底、幸运值、预览、排行榜、个人统计、历史记录、管理 GUI、PlaceholderAPI。
内置普通幸运方块,闪光幸运方块,神兽幸运方块,异兽幸运方块,满级幸运方块
二、功能
六、配置文件
Cobblemon 用幸运方块插件。
支持多类型方块、宝可梦/物品/指令奖励、保底、幸运值、预览、排行榜、个人统计、历史记录、管理 GUI、PlaceholderAPI。
内置普通幸运方块,闪光幸运方块,神兽幸运方块,异兽幸运方块,满级幸运方块
二、功能
- 多幸运方块类型,独立配置
- 支持总保底、奖励池保底、稀有度保底
- 支持幸运值加权
- 支持奖励预览 GUI
- 支持排行榜 GUI
- 支持个人统计 GUI
- 支持历史记录 GUI
- 支持游戏内管理 GUI
- 支持 PlaceholderAPI
- /xclb help 查看命令帮助
- /xclb give [类型] [玩家] [数量] 给予指定类型的幸运方块
- /xclb list 查看当前已加载的幸运方块类型
- /xclb manage [类型] 打开幸运方块管理界面
- /xclb preview [类型] 打开奖励预览界面
- /xclb stats [类型] 打开个人统计面板
- /xclb history [类型] 打开个人开启历史记录
- /xclb leaderboard [类型] 打开排行榜界面
- /xclb create <类型> 创建新的幸运方块配置文件
- /xclb setmaterial <类型> 用主手物品设置幸运方块材质
- /xclb reload 重载配置、语言和方块示例
- cobblemonluckyblock.give 允许给予幸运方块,默认 OP
- cobblemonluckyblock.list 允许查看已加载的幸运方块类型,默认 全员
- cobblemonluckyblock.create 允许创建新的幸运方块配置,默认 OP
- cobblemonluckyblock.setmaterial 允许修改幸运方块材质,默认 OP
- cobblemonluckyblock.reload 允许重载插件配置,默认 OP
- cobblemonluckyblock.preview 允许查看奖励预览,默认 全员
- cobblemonluckyblock.leaderboard 允许查看排行榜,默认 全员
- cobblemonluckyblock.leaderboard.manage 允许重置和管理排行榜数据,默认 OP
- cobblemonluckyblock.stats 允许查看个人统计面板,默认 全员
- cobblemonluckyblock.history 允许查看开启历史记录,默认 全员
- cobblemonluckyblock.manage 允许打开管理界面,默认 OP
- %xclb_luckyblock_name:<方块ID>% 获取幸运方块显示名
- %xclb_open_count:<方块ID>% 获取玩家开启次数
- %xclb_open_rank:<方块ID>% 获取玩家开启排行
- %xclb_open_total:<方块ID>% 获取全服总开启次数
- %xclb_open_top_name:<方块ID>:<排名>% 获取指定排名玩家名
- %xclb_open_top_count:<方块ID>:<排名>% 获取指定排名开启次数
- %xclb_rarity_name:<方块ID>:<稀有度>% 获取稀有度显示名
- %xclb_rarity_count:<方块ID>:<稀有度>% 获取玩家该稀有度开奖次数
- %xclb_rarity_rank:<方块ID>:<稀有度>% 获取玩家该稀有度排行
- %xclb_rarity_total:<方块ID>:<稀有度>% 获取全服该稀有度总次数
- %xclb_rarity_top_name:<方块ID>:<稀有度>:<排名>% 获取该稀有度指定排名玩家名
- %xclb_rarity_top_count:<方块ID>:<稀有度>:<排名>% 获取该稀有度指定排名次数
- %xclb_reward_name:<方块ID>:<奖励ID>% 获取奖励显示名
- %xclb_reward_count:<方块ID>:<奖励ID>% 获取玩家该奖励获得次数
- %xclb_reward_rank:<方块ID>:<奖励ID>% 获取玩家该奖励排行
- %xclb_reward_total:<方块ID>:<奖励ID>% 获取全服该奖励总次数
- %xclb_reward_top_name:<方块ID>:<奖励ID>:<排名>% 获取该奖励指定排名玩家名
- %xclb_reward_top_count:<方块ID>:<奖励ID>:<排名>% 获取该奖励指定排名次数
示例
- %xclb_luckyblock_name:default%
- %xclb_open_count:default%
- %xclb_open_top_name:default:1%
- %xclb_rarity_count:default:legendary%
- %xclb_rarity_top_count:default:legendary:1%
- %xclb_reward_count:default:spawn_shiny_magikarp%
- %xclb_reward_top_name:default:spawn_shiny_magikarp:1%
六、配置文件
YAML:
#示例幸运方块配置
id: default
enabled: true
# 幸运方块使用的方块材质,必须是可放置的方块。
# 如果 material 是 PLAYER_HEAD,还可以额外配置自定义头颅纹理。
material: PLAYER_HEAD
head-texture-value: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGVjYTU3YzQ2NjgxZTIxZmVlZmI1ZGMyNzkwOWVkZTk1YTNjMTE4MzU2NWNmNzQ3NGRjNDlmYzA2NDEzMGUwYyJ9fX0="
display-name: "&6&l宝可梦幸运方块"
lore:
- "&7放下它,再敲开它,测试你的运气。"
- "&8这是 default 类型的幸运方块。"
# 默认开出提示。
# 如果某个 reward 自己配置了 message,会优先使用 reward.message。
# 下面这些变量都可以直接写进消息里:
# {player}: 玩家名称
# {player_uuid}: 玩家 UUID
# {lucky_block}: 幸运方块类型 id
# {lucky_block_name}: 幸运方块显示名
# {reward}: 本次开出的奖励名称
# {reward_id}: 本次开出的奖励 id
# {pity_count}: 当前总保底计数
# {pity_threshold}: 当前总保底阈值
# {pity_remaining}: 距离触发总保底还差多少次
# {pity_progress}: 总保底进度,格式为 当前次数/阈值
# {pool_pity_count:<pool>}: 指定奖励池的保底计数,例如 {pool_pity_count:pokemon}
# {pool_pity_threshold:<pool>}: 指定奖励池的保底阈值
# {pool_pity_remaining:<pool>}: 指定奖励池距离触发保底还差多少次
# {pool_pity_progress:<pool>}: 指定奖励池的保底进度,格式为 当前次数/阈值
# {rarity_pity_count:<rarity>}: 指定稀有度的保底计数,例如 {rarity_pity_count:legendary}
# {rarity_pity_threshold:<rarity>}: 指定稀有度的保底阈值
# {rarity_pity_remaining:<rarity>}: 指定稀有度距离触发保底还差多少次
# {rarity_pity_progress:<rarity>}: 指定稀有度的保底进度,格式为 当前次数/阈值
# {luck_count:<rarity>}: 指定稀有度当前连续未出次数,例如 {luck_count:legendary}
# {luck_multiplier:<rarity>}: 指定稀有度当前幸运值加权倍率,例如 1.6
# {world}: 本次触发位置所在世界名
# {x}: 本次触发位置的方块 X 坐标
# {y}: 本次触发位置的方块 Y 坐标
# {z}: 本次触发位置的方块 Z 坐标
reward-message: "&a{player} 使用了 {lucky_block_name}&a,开出了 &e{reward}&a。&7(总保底:{pity_progress},宝可梦池:{pool_pity_progress:pokemon},传说保底:{rarity_pity_progress:legendary},传说幸运值:{luck_count:legendary} 次)"
# 稀有度显示名映射。
# 左边是配置里实际使用的 rarity id,
# 右边是 GUI 等界面里展示给玩家看的名字。
rarity-display-names:
common: "普通"
rare: "稀有"
epic: "史诗"
legendary: "传说"
# 保底配置说明:
# enabled:
# 是否启用“总保底”。
# threshold:
# 连续多少次没中总保底目标时,下一次强制触发。
# reward:
# 总保底命中的奖励 id,必须能在 rewards 里找到。
# reset-on-reward:
# 如果玩家中途自然开出了这个总保底奖励,是否把总保底计数清零。
# pools:
# 按奖励池单独统计保底。
# 例如 pool: pokemon 表示“连续几次没出 pokemon 池奖励”。
# reward 留空时,会从这个池里按原权重随机选一个奖励。
# rarities:
# 按稀有度单独统计保底。
# 例如 rarity: legendary 表示“连续几次没出 legendary 奖励”。
# reward 留空时,会从这个稀有度里按原权重随机选一个奖励。
pity:
enabled: true
threshold: 10
reward: spawn_shiny_magikarp
reset-on-reward: true
pools:
- pool: pokemon
threshold: 4
reward: ""
reset-on-reward: true
rarities:
- rarity: legendary
threshold: 10
reward: spawn_shiny_magikarp
reset-on-reward: true
# 幸运值/霉运值配置说明:
# 这套机制不会直接“保底必出”,而是动态提高指定稀有度奖励的权重。
# 适合做“连续没出高稀有时,慢慢提高高稀有概率”。
# enabled:
# 是否启用幸运值系统。
# rarities:
# 按稀有度分别配置。
# start-after:
# 连续多少次没出该稀有度后,开始加权。
# bonus-per-miss:
# 每多失败一次,额外增加多少倍权重。
# 例如 0.35 表示每次额外 +35%。
# max-multiplier:
# 权重加成上限。例如 3.0 表示最多变成原来的 3 倍。
# reset-on-hit:
# 一旦抽中该稀有度,是否把这条幸运值计数清零。
luck:
enabled: false
rarities:
- rarity: epic
start-after: 3
bonus-per-miss: 0.35
max-multiplier: 2.5
reset-on-hit: true
- rarity: legendary
start-after: 5
bonus-per-miss: 0.6
max-multiplier: 5.0
reset-on-hit: true
spawn-near-player:
# 当奖励动作里用到 {x} {y} {z} 时,会从玩家附近随机取点。
# horizontal-radius 越大,左右前后偏移范围越大。
# vertical-offset 用来整体上移或下移生成位置。
horizontal-radius: 3
vertical-offset: 0
# rewards 就是“奖励池”本体。
# 每个奖励至少建议关心这几个字段:
# id:
# 奖励的唯一标识,给保底、日志、占位符使用。
# pool:
# 奖励属于哪个奖励池,给 pool 保底使用。
# rarity:
# 奖励属于哪个稀有度,给 rarity 保底使用。
# weight:
# 普通随机抽取时的权重,数值越大越容易被抽中。
# actions:
# 奖励实际执行什么内容。推荐统一写在 actions 里。
#
# actions 常见写法示例:
# actions:
# - type: item
# material: minecraft:diamond
# amount: 3
# - type: broadcast
# message: "&6{player} 开出了稀有奖励:{reward}"
# - type: sound
# sound: ENTITY_PLAYER_LEVELUP
# volume: 1.0
# pitch: 1.0
# - type: random-group
# choices:
# - weight: 2
# actions:
# - type: item
# material: minecraft:diamond
# amount: 1
# - weight: 1
# actions:
# - type: item
# material: minecraft:emerald
# amount: 1
# - type: title
# title: "&6&l幸运降临"
# subtitle: "&e你开出了 {reward}"
# - type: actionbar
# message: "&e获得奖励:{reward}"
# - type: effect
# effect: lightning
# - type: command
# command: "give {player} minecraft:diamond 1"
# - type: pokemon-spawn
# species: pikachu
# level: [10-20]
# attributes:
# - "shiny"
#
rewards:
- id: diamonds
name: "钻石"
pool: loot
rarity: common
weight: 25
actions:
- type: sound
sound: ENTITY_PLAYER_LEVELUP
- type: actionbar
message: "&e获得奖励:{reward}"
- type: item
material: minecraft:diamond
amount: 3
- id: golden_apples
name: "金苹果"
pool: loot
rarity: rare
weight: 15
actions:
- type: sound
sound: ENTITY_EXPERIENCE_ORB_PICKUP
- type: item
material: minecraft:golden_apple
amount: 2
- id: lightning
name: "一道闪电"
pool: trap
rarity: rare
weight: 10
actions:
- type: sound
sound: ENTITY_LIGHTNING_BOLT_THUNDER
- type: effect
effect: lightning
- id: hostile_wave
name: "一波怪物"
pool: trap
rarity: rare
weight: 10
actions:
- type: sound
sound: ENTITY_ZOMBIE_AMBIENT
- type: random-group
choices:
- weight: 2
actions:
- type: command
commands:
- "summon minecraft:zombie {x} {y} {z}"
- "summon minecraft:skeleton {x} {y} {z}"
- weight: 1
actions:
- type: command
commands:
- "summon minecraft:spider {x} {y} {z}"
- "summon minecraft:creeper {x} {y} {z}"
- id: spawn_pikachu
name: "皮卡丘"
pool: pokemon
rarity: rare
enabled: true
weight: 12
actions:
- type: sound
sound: ENTITY_PLAYER_LEVELUP
- type: title
title: "&6&l好运降临"
subtitle: "&e你开出了 {reward}"
fade-in: 10
stay: 40
fade-out: 10
- type: pokemon-spawn
species: pikachu
level: [12-18]
attributes:
- "nature=jolly"
- "ability=static"
- id: spawn_eevee
name: "伊布"
pool: pokemon
rarity: rare
enabled: true
weight: 10
actions:
- type: sound
sound: ENTITY_EXPERIENCE_ORB_PICKUP
- type: effect
effect: potion
potion: speed
duration: 15
amplifier: 0
- type: pokemon-spawn
species: eevee
level: [8-14]
attributes:
- "nature=timid"
- id: spawn_starter_pack
name: "御三家组合"
pool: pokemon
rarity: epic
enabled: true
weight: 8
actions:
- type: sound
sound: ENTITY_PLAYER_LEVELUP
- type: command
commands:
- "spawnpokemonat {x} {y} {z} bulbasaur level=10"
- "spawnpokemonat {x} {y} {z} charmander level=10"
- "spawnpokemonat {x} {y} {z} squirtle level=10"
- id: spawn_snorlax
name: "卡比兽"
pool: pokemon
rarity: epic
enabled: true
weight: 4
actions:
- type: sound
sound: ENTITY_GENERIC_EXPLODE
- type: pokemon-spawn
species: snorlax
level: [20-30]
attributes:
- "nature=adamant"
- id: spawn_shiny_magikarp
name: "闪光鲤鱼王"
pool: pokemon
rarity: legendary
enabled: true
weight: 1
actions:
- type: sound
sound: ENTITY_PLAYER_LEVELUP
- type: broadcast
message: "&6&l欧皇时刻!&e{player} &6从 {lucky_block_name} 中开出了 &e{reward}&6!"
- type: title
title: "&6&l欧皇时刻!"
subtitle: "&e你开出了 {reward}"
fade-in: 10
stay: 50
fade-out: 15
- type: actionbar
message: "&6保底进度已重置,恭喜获得 {reward}"
- type: effect
effect: particle
particle: end_rod
count: 30
offset-x: 0.8
offset-y: 0.8
offset-z: 0.8
- type: pokemon-spawn
species: magikarp
level: [15-25]
attributes:
- "shiny"
- "nature=modest"