• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

资源图标

二次开发 付费 闭源 Forge[付费版][鹿之锻造] 2.0.0

请登录后获取
版权类型
二次开发
插件中文名称
鹿之锻造
插件英文名称
ForgePlus
原帖地址
https://www.yuque.com/zesdew/im08nd/ml9na4mqri5edumt?singleDoc#
支持的核心(服务端)
  1. Spigot
语言支持
中文(简体)
前置组件
ProtocolLib
适配版本(Java)
  1. 1.12
✨更新日志

2025/1/16

  • 添加了对 QFSoulBag 插件的支持。
  • 批量锻造(加入强度石)逻辑。
  • 普通锻造加入对灵魂背包的兼容。
2025/1/17

  • 修复了 getrandomitem 参数的部分逻辑不正确的问题。
  • 添加了 getrandomitems 命令参数 目前 getrandomitem 用于获取满强度物品 getrandomitems 用于获取随机强度物品。
  • ecrftitem 配置文件新增 op/console/玩家 角色命令。
  • 合成功能重大更新,支持多配置文件(多UI界面),在gui_type文件夹内部可自行拓展多个配置文件,来进行配置。
2025/1/18-19

  • 添加不同权限对应不同的队列大小。
  • 添加缩短队列制作时间的道具。
  • 修复每个合成界面错误的标题显示。
  • 修复玩家离线时不能正确处理数据库保存逻辑。
  • 优化队列领取逻辑(小bug)点击后不会立即清除此队列中的物品。
  • 每个配方列表对应的默认大小都是独立的。
  • 一键获取配方所需材料。
  • 修复预览界面无法返回到主界面的问题。
  • 修复原初等级不匹配不返还材料的问题。
  • 修复可以无限制的批量锻造(最多64个)。
  • 修复部分客户无法正确加载插件的问题。
  • 优化 创建图纸 创建步骤。
  • 优化 修改图纸 步骤。
  • 修复SpaceRingPlus2灵魂空间只能识别第一页材料的情况。
  • 特殊性更新(版本号 9.89Bata ),更新内容如下:
1. 新增防卡顿保护机制

- 增加区块物品监控系统,防止单区块内物品堆积

- 每个区块最多同时掉落64个物品

- 每个玩家最多同时掉落32个物品

- 系统会自动每10秒重置计数

2. 优化物品掉落机制

- 背包满时物品将分批掉落,每批8个物品

- 批次之间有0.5秒间隔,避免瞬间大量掉落

- 添加物品掉落提示,更清晰地展示锻造过程

3. 批量锻造限制

- 单次最多可锻造32个物品

- 超出限制会有友好提示

- 可以分多次进行大批量锻造

4. 安全性提升

- 添加并发处理保护

- 定期清理过期数据

- 不影响其他插件的正常运作

5. 提示信息优化

- 增加锻造过程的详细提示

- 当需要分批处理时会提前通知玩家

- 物品掉落时会提示具体原因

注意:此次更新主要针对批量锻造时可能出现的卡顿问题进行优化,提升了系统稳定性和用户体验。

2025/1/21

  • 合成现在,以后都不会兼容灵魂背包,新增队列取消合成选项(返还扣除的材料,不返还金币&点券)
  • 优化了一些逻辑
2025/1/22

  • 添加锻造日志,方便查找玩家数据(mysql)。
2025/1/29

  • 再次优化灵魂背包逻辑。
2025/2/5

  • 添加随机生成武器词条功能。
  • 优化原初配置,可以自定义格式。
2025/5/30

  • 修复了 原初合成 单数数量合成逻辑代码错误。
  • 修复了 强度石逻辑lore判断错误的问题。
  • 修复了 强度石无法正确使用的问题。
  • 新增了 锻造物品 重铸功能(测试版-强度,品质都会随机生成)。


  • 1.依赖​

    非必要 (PlayerSync,SpaceRingPlus2-1.3XXX(清守灵魂背包),QFSoulBag(清风灵魂背包),Vault,PlayerPoints,PlaceholderAPI)

    2.运行环境​

    Mysql,Jdk8,Spigot1.12.

    Mysql使用的表 (均可以自动创建)

    3.命令部分​

    • forge_queue (队列功能表)
    • forge_draw (图纸数据表)
    • forge_player (锻造玩家数据表)
    • playerforgedata (锻造保底数据表)
    • forge_logs (正常锻造玩家日志)
    • batch_forge_logs(批量锻造玩家日志)
    # 基础管理命令
    - `/fadmin drawlist` - 打开图纸列表界面
    - `/fadmin create <名称>` - 创建新的锻造图纸
    - `/fadmin changegui <名称>` - 修改已有图纸
    - `/fadmin del <名称>` - 删除指定图纸
    - `/fadmin see <名称>` - 查看图纸详细信息
    - `/fadmin search <关键词>` - 搜索图纸
    - `/fadmin editgui <名称>` - 打开图纸编辑界面
    # 数据管理命令
    - `/fadmin reloadconfig` - 重新加载配置文件
    - `/fadmin loadconfig` - 重新加载settings文件
    - `/fadmin loaddraw` - 从数据库读取图纸信息到游戏
    - `/fadmin savedraw` - 保存游戏内图纸信息到数据库
    # 物品获取命令
    - `/fadmin give <名称>` - 获取指定图纸
    - `/fadmin gem <ID> <等级>` - 获取指定等级的锻造宝石
    - `/fadmin getitem <玩家> <图纸> <品质>` - 给予玩家指定品质的锻造物品
    - `/fadmin getrandomitem <玩家> <图纸>` - 给予玩家随机品质物品(满强度)
    - `/fadmin getrandomitems <玩家> <图纸>` - 给予玩家随机品质物品(随机强度)
    - `/fadmin groupforge <玩家> <组名> [0/1] - §c§l使用指定概率组进行随机锻造 (0=随机强度 1=满强度)
    # 玩家管理命令
    - `/fadmin level <玩家> <等级>` - 设置玩家的锻造等级
    - `/fadmin addexp <玩家> <经验>` - 增加玩家的锻造经验
    - `/fadmin testexp` - 查看等级经验对照表
    # 合成相关命令
    - `/dzec reload` - 重载配方配置文件
    - `/dzforge` - 打开配方界面
    - `/dzqueue` - 打开配方队列
  • 4.配置文件​

  • settings.yml​

  • #MYSQL配置
    MySQL_IP: 127.0.0.1
    MySQL_port: 3306
    MySQL_database: newrpg3
    MySQL_user: root
    MySQL_password: newrpg

    DrawData_Table: forge_draw
    PlayerData_Table: forge_player

    #矿石掉落宝石的几率(最大几率1000 = 100%)
    Ore_Chance:
    56:
    - 388
    - 500

    #矿石掉落宝石的世界列表
    Ore_Worlds:
    - "kqsj"
    - "dp2"

    #宝石的LORE设置
    Gem_Lore:
    388: # 原初之石的物品ID
    - "§6[§5原初之石§6]" # 显示名称
    - "§c锻造类宝石" # 类型标识
    - "<level>" # 等级占位符
    - "§7这是一个神奇的宝石" # 其他描述

    #图纸的物品ID
    Draw_Item_ID: 340

    #代表宝石等级的字符(必须是一位字符)
    Gem_Level_Text: "✪"

    #宝石等级的颜色
    Gem_Level_Color: "§b§l纯度:§a"

    #宝石合成成功的几率(最大为1000)
    Gem_Level_Up_Chance: 450

    #宝石产生的等级几率
    Gem_Level_Chance:
    1: 700
    2: 100
    3: 150
    4: 40
    5: 5
    6: 4
    7: 1

    #评价标记对应的评价内容
    Attrib_Level_Text:
    "level-1": "§a品质:§8§l粗糙§A§0"
    "level-2": "§a品质:§f§l普通§A§0"
    "level-3": "§a品质:§a§l优良§A§0"
    "level-4": "§a品质:§b§l精良§A§0"
    "level-5": "§a品质:§9§l稀有§A§0"
    "level-6": "§a品质:§d§l史诗§A§0"
    "level-7": "§a品质:§6§l传说§A§0"
    "level-8": "§a品质:§4§l逆天§A§0"
    "level-9": "§a品质:§e§l辉煌§A§0"
    "level-10": "§a品质:§e§l究极§A§0"
    "level-11": "§a品质:§7§l诅咒§A§0"
    "level-12": "§a品质:§d§l锻造共鸣§A§0"
    "level-13": "§a品质:§d§l千§c§l幻§A§0"
    "level-14": "§a品质:§e§l人造神§6§l明§A§0"
    "level-15": §a品质:§e§l至臻§d§l典藏§A§0"

    Attrib_Level_Text_Command: #新增功能,锻造出指定等级触发命令组
    level-5: #锻造出来了 Attrib_Level_Text节点下的 level5
    - "" #命令1
    - "" #命令2

    Item_Up_Attrib_Level_Text: #新版本保底
    test01:
    name: "普通增幅石1" # 精准匹配物品名
    upAttribLevelText: "level-2" # 保底从品质几锻造
    canDraw:
    - "null" # null 代表无限制,任意锻造书都可以使用。
    test02:
    name: "普通增幅石2"
    upAttribLevelText: "level-8"
    canDraw:
    - "§a锻造师之剑"
    - "§a锻造师之甲"
    - "§a锻造师之裤"
    - "§a锻造师之靴"
    Old_Item_Up_Attrib_Level_Text: #旧版本保底
    test01:
    name: "普通增幅石1" # 精准匹配物品名
    upAttribLevelText: "level-2" # 随机保底锻造如果随机的品质低于 upAttribLevelText 指定的品质则 品质为 level-2
    canDraw:
    - "null" # null 代表无限制,任意锻造书都可以使用。
    test02:
    name: "普通增幅石2"
    upAttribLevelText: "level-8"
    canDraw:
    - "§a锻造师之剑"
    - "§a锻造师之甲"
    - "§a锻造师之裤"
    - "§a锻造师之靴"


    #锻造属性的波动范围(左边的为评价字符 右边的为波动范围 -30 => 15代表从-30%到-15%之间波动)(评价字符必须和下面的配置对应!)
    Forge_Attrib:
    "level-1": "-1 => 15"
    "level-2": "15 => 20"
    "level-3": "20 => 40"
    "level-4": "25 => 60"
    "level-5": "35 => 85"
    "level-6": "43 => 100"
    "level-7": "60 => 125"
    "level-8": "85 => 145"
    "level-9": "120 => 200"
    "level-10": "140 => 240"
    "level-11": "165 => 288"
    "level-12": "195 => 300"
    "level-13": "220 => 320"
    "level-14": "270 => 360"
    "level-15": "300 => 450"

    #锻造数学百分比显示前缀
    Attrib_Perce_Text: "§A§0§r§a强度:"

    #锻造属性的几率(左边对应上面配置的评价标记,右边为几率1000=100%)
    Forge_Chance:
    "level-1": 150
    "level-2": 235
    "level-3": 220
    "level-4": 130
    "level-5": 113
    "level-6": 70
    "level-7": 20
    "level-8": 15
    "level-9": 15
    "level-10": 15
    "level-11": 10
    "level-12": 10
    "level-13": 8
    "level-14": 8
    "level-15": 1

    #每一个图纸所需的宝石等级对应的给予玩家的经验
    Forge_Exp:
    1: 30
    2: 45
    3: 60
    4: 75
    5: 110
    6: 125
    7: 150
    8: 180
    9: 250
    10: 280
    11: 350
    12: 400
    13: 420
    14: 500
    15: 500
    16: 550
    17: 590
    18: 650
    19: 690
    20: 750
    21: 850
    22: 1000
    23: 1000
    24: 1000
    25: 1000

    #锻造称号 锻造等级:"称号"
    Forge_Perfix:
    1: "§7[§a初级锻造师§7]"
    2: "§7[§a晋升锻造师§7]"
    3: "§7[§a普通锻造师§7]"
    4: "§7[§6高级锻造师§7]"
    20: "§7[§9巅峰锻造师§7]"

    # 每级提升锻造强度的值 值越高每次出高强度几率越大
    Forge_level_change: 0.0

    #经验的正负浮动百分比范围 30= 原始经验+/-30%*原始经验
    Forge_Exp_Float: 20

    #玩家的锻造最大等级
    Max_Player_Forge_Level: 20

    #锻造者的信息
    ForgeOwner: "§A§0§7锻造者§6[§a§l<player>§6]"

    # 新增锻造时间格式配置
    ForgeDateFormat: "§A§0§7锻造时间§6[§a§l<date>§6]"

    #玩家每级经验所需的等级公式 公式为(((level - <1.0>)^ <3>) * (level / <10>) + <70.0>) / <5.0> + ((level -<1.0>) * <400.0> + <96.0>) = 当前升级所需的经验 ,level 为当前等级
    #所有尖括号内的数字需要按顺序设置在下面.
    Exp_Text: "1,3,10,70,5,1,400,96"

    #提升属性几率的物品lore
    Attrib_Up_Item_Lore: "§a纯度:§e§l<chance>"

    #需要额外权限学习图纸的锻造书
    Permission_Books:
    test_01: #配置节点
    books:
    - "§c魔剑莱瓦汀三阶设计图" # 启用需要权限判断的锻造书
    need_permission: "mj.xl" # 需要的权限

    #保底,锻造书保底锻造数量和保底的锻造等级,保底功能需要开启数据库存储
    BaoDi_Books:
    test_01: #配置节点
    books:
    - "§c魔剑莱瓦汀三阶设计图" #启用保底的锻造书
    max_make: 5 # 保底锻造数量
    forge_level: level-1 # 到达保底数量后下次保底锻造的物品等级


    #随机生成武器词条
    Random_Weapon_Lore:
    test_01: #配置节点
    insert_itemlore_rows: 1 # 插入的行数,在指定的行数插入随机词条
    books:
    - "§c魔剑莱瓦汀三阶设计图" #启用 生成随机生成武器词条的图纸
    Top_Fixed_builds_lore: #String_Lore 的 开头固定行
    - "§c§m-----------------"
    String_Lore:
    list01: #第一组随机词条
    lore_list: #词条列表
    - "§c暴击伤害 +10%#20"
    - "§e攻击速度 +15%#20"
    - "§f生命值 +100#20"
    - "§g防御力 +50#20"
    generate_number: 2 #从第一组中随机生成2条
    list02: #第二组随机词条
    lore_list: #词条列表
    - "§c移动速度 +5%#20"
    - "§e跳跃提升 +10%#20"
    - "§f经验加成 +20%#20"
    - "§g金币加成 +25%#20"
    generate_number: 1 #从第二组中随机生成1条
    Bottom_Fixed_builds_lore: #String_Lore 的 结尾固定行
    - "§c§m-----------------"
    # 自定义锻造概率组
    Custom_Forge_Groups:
    test_group_01:
    books:
    - "§c魔剑莱瓦汀三阶设计图"
    chances:
    level-1: 400 # 40%
    level-2: 400 # 40%
    level-3: 200 # 20%
    qualityCommand:
    level-1: "give <player> diamond 1"
    level-2: "effect <player> SPEED 30 1"
    level-3: "broadcast &a恭喜玩家 <player> 锻造出稀有装备!"
    test_group_02:
    books:
    - "§c其他图纸"
    chances:
    level-1: 300 # 30%
    level-2: 300 # 30%
    level-4: 400 # 40%
    qualityCommand:
    level-1: "give <player> diamond 1"
    level-2: "effect <player> SPEED 30 1"
    level-3: "broadcast &a恭喜玩家 <player> 锻造出稀有装备!"

  • Config.yml
  • cdk: ""
    user_qq: ""
    database:
    url: jdbc:mysql://localhost:3306/arliya #数据库名字
    username: arliya #数据库用户名
    password: arliya #数据库密码

    DrawData_Table: forge_draw

    Forge_Settings:
    测试锻造图纸:
    needGemLevel: 1 #需要的宝石等级一定要和gem的星数匹配,比如下面gem 有 两颗星就代表两级。
    needPlayerLevel: 1 #需要的玩家锻造等级
    gem:
    id: 388
    Name: "§6[§5原初之石§6]"
    Lore:
    - "§c锻造类宝石"
    - "§b§l纯度:§a✪" #一级原初
    number: 1 #需要的数量
    formula:
    Material_01: #需要的第1种材料的节点
    id: 388
    Name: "轻轻手套"
    Lore:
    - "§6[§5原初之石§6]"
    - "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
    number: 2 #需要的数量
    Material_02: #需要的第2种材料的节点
    id: 388
    Name: "花萼石头"
    Lore:
    - "§6[§5原初之石§6]"
    - "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
    number: 5 #需要的数量
    result:
    id: 278
    Name: "resultItem"
    Lore:
    - "§6[§5原初之石§6]"
    - "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
    number: 1 #只能填1,这个是返回的锻造物品!
    detail: #这个是锻造书的描述
    Lore:
    - "详细描述1"
    - "详细描述2"
    attrib: #这个是锻造的属性,和平时一样写就行,()代表浮动的属性
    Lore:
    - "属性描述1"
    - "属性描述2"

  • gui_type/ecftitem.yml
  • Maximum_Queue: 5 #玩家初始合成队列(新增)
    title: "§a[§5武器制作§a]"
    gui_id: "ecrftitem"
    Settings:
    配方04:
    needPlayerLevel: 1 #需要的玩家锻造等级
    formula:
    Material_01: #需要的第1种材料的节点
    id: 388
    Name: "轻轻手套"
    Lore:
    - "§6[§5原初之石§6]"
    - "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
    number: 2 #需要的数量
    Material_02: #需要的第2种材料的节点
    id: 388
    Name: "花萼石头"
    Lore:
    - "§6[§5原初之石§6]"
    - "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
    number: 5 #需要的数量
    result: #显示的合成的物品
    id: 388
    Name: "§4朱雀红宝石1234"
    Lore:
    - "§6[§5宝石§6]"
    - "§8合成证明"
    number: 1 #需要的数量
    #新增功能
    synthesis_chance: 30 #合成几率(必须参数)
    synthesis_chance_list:
    - 'vip.hc:35'
    - 'vip.hc:40'
    - 'vip.hc:45'
    permission: hc_02 #需要的权限(可有可无的节点功能,添加后只有当玩家拥有这个权限才会显示到配方列表里)
    money: 100000 #需要的金币(可有可无的节点功能)
    point: 0 #需要的点券(可有可无的节点功能)
    command_list: #合成完毕执行的命令(可有可无的节点功能)
    - 'op:fadmin getrandomitems %player_name% &4朱雀红锻造'
    no_synthesis_command_list: #合成失败后执行的命令(可有可无的节点功能)
    - 'op:eco give %player_name% 100'
    time_craft: 10 #制作时间(单位秒) (新增)

  • gui_type/hc.yml
Maximum_Queue: 5 #玩家初始合成队列(新增)
title: "§a[§5宝石制作§a]"
gui_id: "hc"
Settings:
配方01:
needPlayerLevel: 1 #需要的玩家锻造等级
formula:
Material_01: #需要的第1种材料的节点
id: 388
Name: "轻轻手套"
Lore:
- "§6[§5原初之石§6]"
- "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
number: 2 #需要的数量
Material_02: #需要的第2种材料的节点
id: 388
Name: "花萼石头"
Lore:
- "§6[§5原初之石§6]"
- "§8[§c锻造类宝石§8] §8[§e锻造材料§8]"
number: 5 #需要的数量
result: #显示的合成的物品
id: 388
Name: "§4朱雀红宝石"
Lore:
- "§6[§5宝石§6]"
- "§8合成证明"
number: 1 #需要的数量
#新增功能
synthesis_chance: 30 #合成几率(必须参数)
synthesis_chance_list:
- 'vip.hc:35'
- 'vip.hc:40'
- 'vip.hc:45'
permission: hc_02 #需要的权限(可有可无的节点功能,添加后只有当玩家拥有这个权限才会显示到配方列表里)
money: 100000 #需要的金币(可有可无的节点功能)
point: 0 #需要的点券(可有可无的节点功能)
command_list: #合成完毕执行的命令(可有可无的节点功能)
- 'op:fadmin getrandomitems %player_name% &4朱雀红锻造'
no_synthesis_command_list: #合成失败后执行的命令(可有可无的节点功能)
- 'op:eco give %player_name% 100'
time_craft: 10 #制作时间(单位秒) (新增)
  • 0cab6f2e-1b91-4234-8595-317eba14e56a.webp
    0cab6f2e-1b91-4234-8595-317eba14e56a.webp
    57.3 KB · 查看: 7
  • 2da595a1-0c21-482c-a4a5-8c67f4d2d658.webp
    2da595a1-0c21-482c-a4a5-8c67f4d2d658.webp
    28.8 KB · 查看: 1
  • 7e09bc74-0a05-4b76-934e-081ba430c7f4.webp
    7e09bc74-0a05-4b76-934e-081ba430c7f4.webp
    6.3 KB · 查看: 2
  • 40a54b7b-07ce-4e14-8706-209ffe2a9685.webp
    40a54b7b-07ce-4e14-8706-209ffe2a9685.webp
    29.9 KB · 查看: 4
  • 40e4b8bc-ec77-47d1-89a1-f25354c0bcc7.webp
    40e4b8bc-ec77-47d1-89a1-f25354c0bcc7.webp
    19.4 KB · 查看: 3
  • 40e570c9-0f9f-4985-8e0a-3699364cdaba.webp
    40e570c9-0f9f-4985-8e0a-3699364cdaba.webp
    7 KB · 查看: 3
  • 043d0b32-fd98-487d-9370-13718bf8aaf1.webp
    043d0b32-fd98-487d-9370-13718bf8aaf1.webp
    55.2 KB · 查看: 3
  • 55bcb343-bfaa-4199-85a4-d33fd59a27b6.webp
    55bcb343-bfaa-4199-85a4-d33fd59a27b6.webp
    42.6 KB · 查看: 5
  • 696a4e31-badd-4de9-9bdf-cb7b16786cc9.webp
    696a4e31-badd-4de9-9bdf-cb7b16786cc9.webp
    106.2 KB · 查看: 5
  • 62016d55-80fc-4480-8157-2f88829587db.webp
    62016d55-80fc-4480-8157-2f88829587db.webp
    14.9 KB · 查看: 3
  • 87670bd1-a989-46f5-a81f-f6cdb6a8ae66.webp
    87670bd1-a989-46f5-a81f-f6cdb6a8ae66.webp
    30.9 KB · 查看: 1
  • 98340220-6567-4517-92d5-de8ac5dbb6be.webp
    98340220-6567-4517-92d5-de8ac5dbb6be.webp
    10.1 KB · 查看: 4
  • a8ef9da6-4114-46cb-bdb1-6c37dc6f592c.webp
    a8ef9da6-4114-46cb-bdb1-6c37dc6f592c.webp
    28.7 KB · 查看: 2
  • a81f6b05-61c7-4b5d-8f5c-ed26cf4e661a.webp
    a81f6b05-61c7-4b5d-8f5c-ed26cf4e661a.webp
    29.1 KB · 查看: 4
  • ae5fb4ec-fbdd-4546-a394-a53e7082c7c0.webp
    ae5fb4ec-fbdd-4546-a394-a53e7082c7c0.webp
    31 KB · 查看: 4
  • b4d673ee-9576-4d02-87f8-4b8c6f983543.webp
    b4d673ee-9576-4d02-87f8-4b8c6f983543.webp
    40.1 KB · 查看: 2
  • dfe2b65b-7dce-46ad-acee-e12f39ba975b.webp
    dfe2b65b-7dce-46ad-acee-e12f39ba975b.webp
    14.4 KB · 查看: 4
  • e644e068-603c-41d1-ad08-25a05e2792bd.webp
    e644e068-603c-41d1-ad08-25a05e2792bd.webp
    18.8 KB · 查看: 4
  • f7b49e96-0e97-487b-a571-5273a634eaf0.webp
    f7b49e96-0e97-487b-a571-5273a634eaf0.webp
    37.7 KB · 查看: 0
  • image.webp
    image.webp
    33.1 KB · 查看: 5
作者
The_small_GOD
查看
54
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部