本帖最后由 MC_juxie 于 2021-9-12 17:50 编辑
EasyMake基本介绍
开源
复制代码
提示:下划线字体为新更新的内容
前言
功能
使用说明
复制代码
config.yml:复制代码
关于自定义菜单仅支持*-012,可留空
名字支持色彩符号,不支持lore添加
关于公式和变量
只有出现在公式列表中的公式才会被识别和计算,变量默认只有<nowLevel>一个,表示下一个强化等级,可以通过EasyVar加更多变量
计算顺序从左至右,支持+-*/^五种运算
例如 1+2*3^3/4 = 3*3^3/4 = 9^3/4 = 27/4 = 6
目前,成功率,数值变动,所需材料均支持公式的插入和计算,直接使用公式名字替换原始数值即可
变量有什么用?
我们可以设定某一个变量为玩家的锻造等级,让其与数值变动相关
这样,我们就可以让玩家因为锻造等级不同而锻造出不同的物品,又或者说让其成功率不同
关于MakeData中的NewDisplayName,NewLores,NewMaterialName选项
这3个选项为可选,会覆盖已有的选项
NewDisplayName为完全覆盖物品展示名
NewLores为覆盖Lores
NewMaterialName为新的物品材质名
例子
复制代码
关于打造配置文件
命令
复制代码
下载地址
复制代码
图片展示
更新日志
未来更新计划
本插件所用所有代码均为原创,不存在借用/抄袭等行为
EasyMake基本介绍
简单且可自定义可兼容其他强化插件的装备打造插件
开源
- https://github.com/abmcar/EasyMake
提示:下划线字体为新更新的内容
前言
- 前一阵在bbs找装备强化的插件,结果发现大部分强化插件都是一个模板,很多都是不同装备打造属性完全相同且配置麻烦,因此诞生了写这么一个插件的想法。
- 由于强化插件较多,因此此插件在配置好的情况下兼容其他强化插件,词条和数值修改和成功率完全从lore中获取,仅新词条从配置中获取,支持不同名字装备不同打造模板。
- 另外本人写插件经验较少,此插件不宜作为”生产力“插件使用,另外代码欢迎各位dalao纠正!也欢迎诸位提建议!
功能
- 装备打造
- 不同装备不同打造模板
- 自定义打造菜单
- 打造关键字修改
- 打造公告
- 针对lore修改,兼容其他强化插件(大概)
- 增加特定玩家强化成功率
- 支持数值变动公式化
- 支持打造材料,数值变化,成功率根据玩家变量变化而变化
- 支持自定义成功失败音效
使用说明
- 装备打造模板由装备名字决定(去掉各种符号),无特殊配置则使用默认配置,配置文件夹为:makeData
- 读取lore和物品名时会忽略常见字符和颜色
- 所需材料由lore检测,只要物品lore有材料关键字就算打造材料,跟物品名字无关
- 幸运值需要装EasyVar(作者的另一个插件),默认变量名为LuckValue,例如设置 test 的 luckValue为10,那么test的强化成功率则为 (原始成功率+10)%
- 使用的玩家变量变量名需在Vars中列出来
- 有不懂的可以在楼下问,看到了基本都回答了
- #打造等级上限
- MaxMakeLevel: 20
- #公式表达
- calRule1: "<nowLevel>"
- calRule2: "testVar1*testVar2"
- calRule3: "<nowLevel>+2*5^2/5"
- #公式列表
- calRules:
- - calRule1
- - calRule2
- - calRule3
- #使用的EasyVar变量名
- Vars:
- - testVar1
- - testVar2
- #0为打造等级
- 0:
- # 所需材料
- MaterialRequire:
- - "§a §7所需材料:矛盾的结晶体 * calRule1"
- # 数值变化
- AddValue:
- - "§a §7数值变化:物理伤害 + 1"
- # 成功率
- SuccessRate: 100
- # 是否公告
- Broadcast: false
- 1:
- MaterialRequire:
- - "§a §7所需材料:矛盾的结晶体 * calRule2"
- AddValue:
- - "§a §7数值变化:物理伤害 + 1"
- SuccessRate: 100
- Broadcast: false
- 2:
- MaterialRequire:
- - "§a §7所需材料:矛盾的结晶体 * calRule2"
- AddValue:
- - "§a §7数值变化:物理伤害 + 1"
- SuccessRate: 90
- Broadcast: false
- 3:
- MaterialRequire:
- - "§a §7所需材料:矛盾的结晶体 * calRule1"
- AddValue:
- - "§a §7数值变化:物理伤害 + 2"
- SuccessRate: 81
- Broadcast: false
config.yml:
- #默认打造配置文件名
- commonMakeDataName: "commonMakeData"
- #菜单设置
- Menu:
- # 菜单标题
- Title: "打造菜单"
- # 菜单布局,*为玻璃,-为玻璃框,0为空栏,1为装备槽,2为强化按钮
- Slots:
- - '*********'
- - '*0000000*'
- - '*-------*'
- - '*-1---2-*'
- - '*-------*'
- - '*********'
- # 玻璃名字
- GlassName: "边框"
- # 玻璃框名字
- GlassPaneName: "玻璃框内放装备/图纸"
- # 打造按钮名字
- MakeButtonName: "打造"
- # 玻璃(*) 材质名
- Material0: 'GLASS'
- # 玻璃框(-) 材质名
- Material1: 'STAINED_GLASS_PANE'
- # 打造按钮(2) 材质名
- Material2: 'ANVIL'
- FailSound: 'BLOCK_ANVIL_BREAK'
- SuccessSound: 'BLOCK_ANVIL_USE'
- # 关键字
- KeyWord:
- # 打造关键字
- Make: "可打造"
- # 数值变化关键字
- AddValue: "数值变化"
- # 所需材料关键字
- RequireMaterial: "所需材料"
- # 成功率关键字
- SuccessRate: "成功率"
- # 装备损坏关键字
- Break: "装备损坏"
- # 幸运值关键字
- LuckValue: "LuckValue"
关于自定义菜单仅支持*-012,可留空
名字支持色彩符号,不支持lore添加
关于公式和变量
只有出现在公式列表中的公式才会被识别和计算,变量默认只有<nowLevel>一个,表示下一个强化等级,可以通过EasyVar加更多变量
计算顺序从左至右,支持+-*/^五种运算
例如 1+2*3^3/4 = 3*3^3/4 = 9^3/4 = 27/4 = 6
目前,成功率,数值变动,所需材料均支持公式的插入和计算,直接使用公式名字替换原始数值即可
变量有什么用?
我们可以设定某一个变量为玩家的锻造等级,让其与数值变动相关
这样,我们就可以让玩家因为锻造等级不同而锻造出不同的物品,又或者说让其成功率不同
关于MakeData中的NewDisplayName,NewLores,NewMaterialName选项
这3个选项为可选,会覆盖已有的选项
NewDisplayName为完全覆盖物品展示名
NewLores为覆盖Lores
NewMaterialName为新的物品材质名
例子
- 0:
- # 所需材料
- MaterialRequire:
- - "§a §7所需材料:矛盾的结晶体 * calRule1"
- # 数值变化
- AddValue:
- - "§a §7数值变化:物理伤害 + 1"
- # 成功率
- SuccessRate: 100
- # 是否公告
- Broadcast: false
- NewDisplayName: 'TESTNAME'
- NewMaterialName: 'CUSTOMMC_ITEM1406'
- NewLores:
- - '123'
- - "123123"
关于打造配置文件
命令
- easymake 打开打造菜单
- easymake reload 重载插件
下载地址
- 链接:https://pan.baidu.com/s/1JhQVdl3_SsE5zBAQeJZRsw 提取码:52hn
图片展示
更新日志
未来更新计划
- 修复可能存在的bug
- 数值变动提供公式选项 ✓ 下一步支持更多变量
- 代码优化
- 使用TaboolLib重写(不一定
- (bbs排版优化
- 加入增幅卷
- 自定义菜单GUI ✓
本插件所用所有代码均为原创,不存在借用/抄袭等行为
看起来不错!!游戏内介面是什么样子的呢
有游戏里的图吗
强化增加的属性可以公式比较好
苏子峰 发表于 2021-8-20 18:25
强化增加的属性可以公式比较好
感谢建议!
已加入更新计划!
(顺带提一嘴没公式没加的原因,预想中打造数值变动是分阶段的,不同阶段的数值增加率不同,后来写完固定数值的给忘了公式
很好用的插件感谢楼主的分享
21.08 01:34:49 [服务器] 服务器 进程/错误 Could not pass event InventoryClickEvent to EasyMake v1.0-SNAPSHOT
21.08 01:34:49 [服务器] 信息 org.bukkit.event.EventException: null
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:69) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:503) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:488) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.NetHandlerPlayServer.func_147351_a(NetHandlerPlayServer.java:2118) [pa.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:38) [lf.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:12) [lf.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
21.08 01:34:49 [服务器] 信息 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 at net.我的世界.util.Util.func_181617_a(SourceFile:46) [h.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71190_q(MinecraftServer.java:833) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:474) [nz.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71217_p(MinecraftServer.java:770) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.run(MinecraftServer.java:630) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 Caused by: java.lang.NullPointerException
21.08 01:34:49 [服务器] 信息 at top.abmcar.easymake.util.EasyStringUtil.isRequired(EasyStringUtil.java:67) ~[?:?]
21.08 01:34:49 [服务器] 信息 at top.abmcar.easymake.util.MenuUtil.isMaterialRequire(MenuUtil.java:51) ~[?:?]
21.08 01:34:50 [服务器] 信息 at top.abmcar.easymake.menu.MenuClickListener.onPlayerClickInv(MenuClickListener.java:54) ~[?:?]
21.08 01:34:50 [服务器] 信息 at catserver.server.executor.asm.generated.GeneratedEventExecutor35.execute(Unknown Source) ~[?:?]
21.08 01:34:50 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:67) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]
21.08 01:34:50 [服务器] 信息 ... 15 more
21.08 01:34:49 [服务器] 信息 org.bukkit.event.EventException: null
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:69) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:503) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:488) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.NetHandlerPlayServer.func_147351_a(NetHandlerPlayServer.java:2118) [pa.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:38) [lf.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:12) [lf.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
21.08 01:34:49 [服务器] 信息 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 at net.我的世界.util.Util.func_181617_a(SourceFile:46) [h.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71190_q(MinecraftServer.java:833) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:474) [nz.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71217_p(MinecraftServer.java:770) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at net.我的世界.server.MinecraftServer.run(MinecraftServer.java:630) [MinecraftServer.class:?]
21.08 01:34:49 [服务器] 信息 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_192]
21.08 01:34:49 [服务器] 信息 Caused by: java.lang.NullPointerException
21.08 01:34:49 [服务器] 信息 at top.abmcar.easymake.util.EasyStringUtil.isRequired(EasyStringUtil.java:67) ~[?:?]
21.08 01:34:49 [服务器] 信息 at top.abmcar.easymake.util.MenuUtil.isMaterialRequire(MenuUtil.java:51) ~[?:?]
21.08 01:34:50 [服务器] 信息 at top.abmcar.easymake.menu.MenuClickListener.onPlayerClickInv(MenuClickListener.java:54) ~[?:?]
21.08 01:34:50 [服务器] 信息 at catserver.server.executor.asm.generated.GeneratedEventExecutor35.execute(Unknown Source) ~[?:?]
21.08 01:34:50 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:67) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]
21.08 01:34:50 [服务器] 信息 ... 15 more
看上去不错刚好可以用起来
本帖最后由 MC_juxie 于 2021-8-21 08:46 编辑
感谢xd
有无详细log和报错原因?(已经尝试修复 最新版本为1.0.1)
Animalworld 发表于 2021-8-21 01:38
21.08 01:34:49 [服务器] 服务器 进程/错误 Could not pass event InventoryClickEvent to EasyMake v1.0-S ...
感谢xd
有无详细log和报错原因?(已经尝试修复 最新版本为1.0.1)
GUI内容是否支持从其他菜单导入?
或者说配置文本内是否能够自定义GUI?
另外,是否支持一物品多强化/多物品一强化/连续强化?
或者说配置文本内是否能够自定义GUI?
另外,是否支持一物品多强化/多物品一强化/连续强化?
装备强化物是怎样获取的?
把插件加进服务器以后没有出现makeData配置文件夹啊
配置文件里只有config.yml和messages.yml
支持,MC有你更精彩6666666666666666
名副其实 发表于 2021-8-21 18:40
GUI内容是否支持从其他菜单导入?
或者说配置文本内是否能够自定义GUI?
另外,是否支持一物品多强化/多物 ...
不支持导入菜单
自定义GUI在更新计划中
一物品多强化——识别的是物品名称因此无法多强化,不过这之前倒是没想过,之后可能改为识别lore关键字来支持多强化
多物品一强化——插件名字之所以是Make而不是强化当时就是想的有这么一个锻造功能,当前的插件需要一个主物品作为打造核心(例如蓝图),支持多种所需强化材料(例如多种奇奇怪怪的材料)
连续强化——不支持(大概以后也不会支持,用的太少了,但可能可能会加类似装备强化卷的东西进行快速强化
shen_da 发表于 2021-8-21 20:01
配置文件里只有config.yml和messages.yml
随便强化一下就出来了
已加入更新计划
下个版本会先loadConfig放出配置文件夹的
#默认打造配置文件名
commonMakeDataName: "commonMakeData"
这个能不能自定义多种?
只能用一种有点麻
commonMakeDataName: "commonMakeData"
这个能不能自定义多种?
只能用一种有点麻