MC_juxie
本帖最后由 MC_juxie 于 2021-9-12 17:50 编辑

EasyMake基本介绍
简单且可自定义可兼容其他强化插件的装备打造插件

开源
  1. https://github.com/abmcar/EasyMake
复制代码

提示:下划线字体为新更新的内容

前言


功能



使用说明
打造配置文件:
  1. #打造等级上限
  2. MaxMakeLevel: 20
  3. #公式表达
  4. calRule1: "<nowLevel>"
  5. calRule2: "testVar1*testVar2"
  6. calRule3: "<nowLevel>+2*5^2/5"
  7. #公式列表
  8. calRules:
  9.   - calRule1
  10.   - calRule2
  11.   - calRule3
  12. #使用的EasyVar变量名
  13. Vars:
  14.   - testVar1
  15.   - testVar2
  16. #0为打造等级
  17. 0:
  18.   #  所需材料
  19.   MaterialRequire:
  20.     - "§a §7所需材料:矛盾的结晶体 * calRule1"
  21.   #  数值变化
  22.   AddValue:
  23.     - "§a §7数值变化:物理伤害 + 1"
  24.   #   成功率
  25.   SuccessRate: 100
  26.   #  是否公告
  27.   Broadcast: false
  28. 1:
  29.   MaterialRequire:
  30.     - "§a §7所需材料:矛盾的结晶体 * calRule2"
  31.   AddValue:
  32.     - "§a §7数值变化:物理伤害 + 1"
  33.   SuccessRate: 100
  34.   Broadcast: false
  35. 2:
  36.   MaterialRequire:
  37.     - "§a §7所需材料:矛盾的结晶体 * calRule2"
  38.   AddValue:
  39.     - "§a §7数值变化:物理伤害 + 1"
  40.   SuccessRate: 90
  41.   Broadcast: false
  42. 3:
  43.   MaterialRequire:
  44.     - "§a §7所需材料:矛盾的结晶体 * calRule1"
  45.   AddValue:
  46.     - "§a §7数值变化:物理伤害 + 2"
  47.   SuccessRate: 81
  48.   Broadcast: false
复制代码


config.yml:
  1. #默认打造配置文件名
  2. commonMakeDataName: "commonMakeData"
  3. #菜单设置
  4. Menu:
  5.   #  菜单标题
  6.   Title: "打造菜单"
  7.   #  菜单布局,*为玻璃,-为玻璃框,0为空栏,1为装备槽,2为强化按钮
  8.   Slots:
  9.     - '*********'
  10.     - '*0000000*'
  11.     - '*-------*'
  12.     - '*-1---2-*'
  13.     - '*-------*'
  14.     - '*********'
  15.   #  玻璃名字
  16.   GlassName: "边框"
  17.   #  玻璃框名字
  18.   GlassPaneName: "玻璃框内放装备/图纸"
  19.   #  打造按钮名字
  20.   MakeButtonName: "打造"
  21.   #  玻璃(*) 材质名
  22.   Material0: 'GLASS'
  23.   #  玻璃框(-) 材质名
  24.   Material1: 'STAINED_GLASS_PANE'
  25.   #  打造按钮(2) 材质名
  26.   Material2: 'ANVIL'
  27.   FailSound: 'BLOCK_ANVIL_BREAK'
  28.   SuccessSound: 'BLOCK_ANVIL_USE'
  29. #  关键字
  30. KeyWord:
  31.   #  打造关键字
  32.   Make: "可打造"
  33.   #  数值变化关键字
  34.   AddValue: "数值变化"
  35.   #  所需材料关键字
  36.   RequireMaterial: "所需材料"
  37.   #  成功率关键字
  38.   SuccessRate: "成功率"
  39.   #  装备损坏关键字
  40.   Break: "装备损坏"
  41.   #  幸运值关键字
  42.   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为新的物品材质名
例子
  1. 0:
  2.   #  所需材料
  3.   MaterialRequire:
  4.     - "§a §7所需材料:矛盾的结晶体 * calRule1"
  5.   #  数值变化
  6.   AddValue:
  7.     - "§a §7数值变化:物理伤害 + 1"
  8.   #   成功率
  9.   SuccessRate: 100
  10.   #  是否公告
  11.   Broadcast: false
  12.   NewDisplayName: 'TESTNAME'
  13.   NewMaterialName: 'CUSTOMMC_ITEM1406'
  14.   NewLores:
  15.     - '123'
  16.     - "123123"
复制代码



关于打造配置文件



命令
  1. easymake 打开打造菜单
  2. easymake reload 重载插件
复制代码



下载地址

  1. 链接:https://pan.baidu.com/s/1JhQVdl3_SsE5zBAQeJZRsw  提取码:52hn
复制代码


图片展示


更新日志

未来更新计划

本插件所用所有代码均为原创,不存在借用/抄袭等行为

























9695
看起来不错!!游戏内介面是什么样子的呢

MC_juxie
9695 发表于 2021-8-20 17:23
看起来不错!!游戏内介面是什么样子的呢

类似正常的强化gui
一排材料槽 一个装备槽 一个按钮
大概晚上8点半放图

转子拖拉机
有游戏里的图吗

苏子峰
强化增加的属性可以公式比较好

MC_juxie
苏子峰 发表于 2021-8-20 18:25
强化增加的属性可以公式比较好

感谢建议!
已加入更新计划!
(顺带提一嘴没公式没加的原因,预想中打造数值变动是分阶段的,不同阶段的数值增加率不同,后来写完固定数值的给忘了公式

1649721249
很好用的插件感谢楼主的分享

Animalworld
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


qq1446525786
看上去不错刚好可以用起来

MC_juxie
本帖最后由 MC_juxie 于 2021-8-21 08:46 编辑
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?
另外,是否支持一物品多强化/多物品一强化/连续强化?

shen_da
装备强化物是怎样获取的?

shen_da
把插件加进服务器以后没有出现makeData配置文件夹啊

shen_da
配置文件里只有config.yml和messages.yml

fwjfwj
支持,MC有你更精彩6666666666666666

MC_juxie
名副其实 发表于 2021-8-21 18:40
GUI内容是否支持从其他菜单导入?
或者说配置文本内是否能够自定义GUI?
另外,是否支持一物品多强化/多物 ...

不支持导入菜单
自定义GUI在更新计划中
一物品多强化——识别的是物品名称因此无法多强化,不过这之前倒是没想过,之后可能改为识别lore关键字来支持多强化
多物品一强化——插件名字之所以是Make而不是强化当时就是想的有这么一个锻造功能,当前的插件需要一个主物品作为打造核心(例如蓝图),支持多种所需强化材料(例如多种奇奇怪怪的材料)
连续强化——不支持(大概以后也不会支持,用的太少了,但可能可能会加类似装备强化卷的东西进行快速强化

MC_juxie
shen_da 发表于 2021-8-21 20:01
配置文件里只有config.yml和messages.yml

随便强化一下就出来了
已加入更新计划
下个版本会先loadConfig放出配置文件夹的

Animalworld
#默认打造配置文件名
commonMakeDataName: "commonMakeData"
这个能不能自定义多种?
只能用一种有点麻

MC_juxie
本帖最后由 MC_juxie 于 2021-8-22 10:52 编辑
Animalworld 发表于 2021-8-22 01:50
#默认打造配置文件名
commonMakeDataName: "commonMakeData"
这个能不能自定义多种?

能的
如果存在特殊配置则使用特殊配置(特殊配置文件名字为强化装备名字)否则使用默认配置
(已更新关于打造配置的说明

Animalworld
Could not pass event InventoryClickEvent to EasyMake v1.0.1-SNAPSHOT
22.08 15:05:47 [服务器] 信息 org.bukkit.event.EventException: null
22.08 15:05:47 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:69) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]
22.08 15:05:47 [服务器] 信息 at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:git-CatServer-1.12.2-5744880]
22.08 15:05:47 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:503) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
22.08 15:05:47 [服务器] 信息 at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:488) [SimplePluginManager.class:git-CatServer-1.12.2-5744880]
22.08 15:05:47 [服务器] 信息 at net.我的世界.network.NetHandlerPlayServer.func_147351_a(NetHandlerPlayServer.java:2118) [pa.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:38) [lf.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:12) [lf.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
22.08 15:05:47 [服务器] 信息 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_192]
22.08 15:05:47 [服务器] 信息 at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_192]
22.08 15:05:47 [服务器] 信息 at net.我的世界.util.Util.func_181617_a(SourceFile:46) [h.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71190_q(MinecraftServer.java:833) [MinecraftServer.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:474) [nz.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.server.MinecraftServer.func_71217_p(MinecraftServer.java:770) [MinecraftServer.class:?]
22.08 15:05:47 [服务器] 信息 at net.我的世界.server.MinecraftServer.run(MinecraftServer.java:630) [MinecraftServer.class:?]
22.08 15:05:47 [服务器] 信息 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_192]
22.08 15:05:47 [服务器] 信息 Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -2
22.08 15:05:47 [服务器] 信息 at java.lang.String.substring(String.java:1931) ~[?:1.8.0_192]
22.08 15:05:47 [服务器] 信息 at top.abmcar.easymake.util.EasyStringUtil.getMaterialName(EasyStringUtil.java:229) ~[?:?]
22.08 15:05:47 [服务器] 信息 at top.abmcar.easymake.util.EasyStringUtil.getMaterialCount(EasyStringUtil.java:57) ~[?:?]
22.08 15:05:47 [服务器] 信息 at top.abmcar.easymake.menu.MenuClickListener.onPlayerClickInv(MenuClickListener.java:53) ~[?:?]
22.08 15:05:47 [服务器] 信息 at catserver.server.executor.asm.generated.GeneratedEventExecutor35.execute(Unknown Source) ~[?:?]
22.08 15:05:47 [服务器] 信息 at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:67) ~[EventExecutor$2.class:git-CatServer-1.12.2-5744880]

Animalworld
材料是按照名字还是lore yml文件的名称必须和武器名一样吗?

MC_juxie
Animalworld 发表于 2021-8-22 15:09
Could not pass event InventoryClickEvent to EasyMake v1.0.1-SNAPSHOT
22.08 15:05:47 [服务器] 信息 or ...

似乎..大概是这个符号没收录进来.....
能否发下武器介绍前和所需材料后的符号
我添一下


另外 bug略多目前还不建议当主要强化插件使用,不过测bug还是很感谢的!

Animalworld

是这样吗 但是没办法强化

钝的单手剑.yml
0:
  MaterialRequire:
    - "§a §7所需材料:§6☉ §f铜币 * 1"
  AddValue:
    - "§a §7数值变化:物理伤害 + 1"
  SuccessRate: 100
  Broadcast: false


Animalworld
☪ 这个是武器前的符号

浮生几许亿
111111111111111

酥氿鸭
感谢分享 非常好用的插件!

MC_juxie
Animalworld 发表于 2021-8-22 15:10
材料是按照名字还是lore yml文件的名称必须和武器名一样吗?

我是**...
是lore

MC_juxie
Animalworld 发表于 2021-8-22 15:19
是这样吗 但是没办法强化

钝的单手剑.yml

lore 带    铜币
就行

Animalworld


这样吗
但是不能强化

浮生几许亿
6666666666666666

苏子峰
再次来催更 , 加油作者

Animalworld
是不是没办法强化带小数点的

Animalworld
[02:37:48] [Server thread/ERROR]: Could not pass event InventoryClickEvent to EasyMake v1.0.2-SNAPSHOT
org.bukkit.event.EventException: null
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:69) ~[EventExecutor$2.class:git-CatServer-1.12.2-a8d129c]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:git-CatServer-1.12.2-a8d129c]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [SimplePluginManager.class:git-CatServer-1.12.2-a8d129c]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [SimplePluginManager.class:git-CatServer-1.12.2-a8d129c]
        at net.minecraft.network.NetHandlerPlayServer.func_147351_a(NetHandlerPlayServer.java:2113) [pa.class:?]
        at net.minecraft.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:38) [lf.class:?]
        at net.minecraft.network.play.client.CPacketClickWindow.func_148833_a(CPacketClickWindow.java:12) [lf.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_251]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_251]
        at net.minecraft.util.Util.func_181617_a(Util.java:50) [h.class:?]
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:841) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:472) [nz.class:?]
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:778) [MinecraftServer.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:632) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
Caused by: java.lang.NumberFormatException: For input string: "4.5"
        at java.lang.NumberFormatException.forInputString(Unknown Source) ~[?:1.8.0_251]
        at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_251]
        at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_251]
        at top.abmcar.easymake.util.EasyStringUtil.getLoreInteger(EasyStringUtil.java:217) ~[?:?]
        at top.abmcar.easymake.util.EasyStringUtil.getNewAttributeLore(EasyStringUtil.java:244) ~[?:?]
        at top.abmcar.easymake.util.EasyStringUtil.getAttributeLores(EasyStringUtil.java:31) ~[?:?]
        at top.abmcar.easymake.make.Make.getNewItemMeta(Make.java:32) ~[?:?]
        at top.abmcar.easymake.make.Make.makeItem(Make.java:47) ~[?:?]
        at top.abmcar.easymake.menu.MenuClickListener.onPlayerClickInv(MenuClickListener.java:88) ~[?:?]
        at catserver.server.executor.asm.generated.GeneratedEventExecutor87.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:67) ~[EventExecutor$2.class:git-CatServer-1.12.2-a8d129c]
        ... 15 more

Animalworld
武器的所需材料lore和材料的lore能改一下吗

因为武器也是所需材料 所以他也是可强化材料

第一页 上一页 下一页 最后一页