本帖最后由 innc 于 2020-7-15 11:58 编辑
1.5版本的所有更新内容
相对原版QuickShop的主要改进:
1. 创建商店不再需要在箱子上额外放置牌子,牌子的放置由插件接管,创建商店的方法和PC版一致,轻轻的饶一下输入价格即可
2. 增加牌子语言文件,几乎所有能见到的文字(98%)都可以自定义(包括牌子上的文字)
3. 在牌子上增加了商店库存的显示(动态更新,包括使用漏斗传输物品)
4. 增加了商店保护机制,包括对爆炸、活塞、燃烧做了相应的处理,不会出现箱子消失的情况
5. 完善了全息物品跨世界的问题,多世界的情况下也能很好的工作,发包操作放到了异步线程进行管理
6. 自带了中文物品名的config文件(基于Java版的物品命名)
7. 语言文件占位符由{}变化成{ITEM_NAME},可以自由改变占位符的前后顺序
8. 对商店增加了UI界面的支持,同时支持[聊天栏操作、聊天栏和UI操作共存、只有UI操作],可以自由配置
9. 对插件本身的配置也可以使用UI来配置(使用指令打开插件的控制面板)
10. 增加了对Residence插件的交互,更加进一步完善对商店的保护
11. QuickShop的"unlimited"概念变成了"server shop",但实际功能没有变化
12. 创造模式可以正常的创建商店(按住shift创建商店,也就是潜行模式下)
13. 更多可以查阅README
食用指南(For 1.5.2版本)
配置指南(For 1.5.1版本)
config.yml
item-names.yml
插件指令
更新日志(超长警告)
问题反馈
问题需要反馈时请按照以下格式回复(可以复制)复制代码如果不清楚构建分支和构建代号,请复制Nukkitx刚启动时输出的第七行文字(示例: <此服务器正在运行 Nukkit git-e4c0f7f 版本 "" (API 1.0.9)>)填写到对应的行即可。关于报错,别直接贴个异常名字就完了(比如:无法处理事件xxxxxxxxxxxx),把调用栈也要完整地贴出来
已知问题
1.5.1版本和1.5.2与GAC反作弊插件有冲突,具体体现在可能是GAC对Nukkitx的底层API有所封装,导致本插件在创建商店时点击箱子时,插件会获取这个玩家身上所有的拥有的权限时,意外地返回了空指针
原因解释:
本插件之所以这么做是为了执行效率,如果为每次检查都单独构建一次字符串那么商店数量限制越多的情况下,执行效率会越低,特殊情况下会导致服务端主线程卡顿数秒(而且这个检测逻辑只能放在主线程中),这对性能非常敏感的主线程来说是完全不可接受的,虽然Java有相应优化机制,但这终究不是个合理的办法,具体可以参考我的源代码中的逻辑
目前提供两种解决方案:
1.禁用GAC插件
2.将本插件退回1.5版本,因为1.5版本没有对权限节点的检查
详细的调用栈如下:
复制代码
下载
1. 需要EconomyAPI作为经济前置
2. 需要Residence作为软前置(没有Residence插件也能独立工作)
1.1:
QuickShopX-1.1.jar
(75.18 KB, 下载次数: 157)
1.2:
QuickShopX-1.2.jar
(78.48 KB, 下载次数: 95)
1.2.1:
QuickShopX-1.2.1.jar
(78.2 KB, 下载次数: 25)
1.2.3:
QuickShopX-1.2.3.jar
(124.04 KB, 下载次数: 6)
1.2.4:
QuickShopX-1.2.4.jar
(124.14 KB, 下载次数: 13)
1.2.5:
QuickShopX-1.2.5.jar
(129.06 KB, 下载次数: 123)
1.3:
QuickShopX-1.3.jar
(141.57 KB, 下载次数: 33)
1.3.1:
QuickShopX-1.3.1.jar
(140.68 KB, 下载次数: 129)
1.4:
QuickShopX-1.4.jar
(142.44 KB, 下载次数: 126)
1.4.1:
QuickShopX-1.4.1.jar
(146.61 KB, 下载次数: 485)
1.5:
Quickshopx-1.5.jar
(139.58 KB, 下载次数: 150)
1.5.1:
Quickshopx-1.5.1.jar
(140.71 KB, 下载次数: 169)
1.5.2:
Quickshopx-1.5.2.jar
(139.9 KB, 下载次数: 2609)
中文物品命名文件(Chinese, For 1.5.x):
item-names.yml
(17.44 KB, 下载次数: 1512)
如果使用英语,则不需要这个文件,请直接关闭 "ControlPanel -> useCustomItemNames"
本帖将不会再发布新版本,如没有特殊需求,建议使用我的另一个插件https://www.mcbbs.net/thread-1057414-1-1.html修复了GAC问题,加入了Land插件支持等等,只需要花几分钟将数据迁移过去就可以用
英文语言
插件默认使用中文如需英文语言请在config.yml设置即可
开源
https://github.com/innc11/QuickShopX
1.5版本的所有更新内容



相对原版QuickShop的主要改进:
1. 创建商店不再需要在箱子上额外放置牌子,牌子的放置由插件接管,创建商店的方法和PC版一致,轻轻的饶一下输入价格即可
2. 增加牌子语言文件,几乎所有能见到的文字(98%)都可以自定义(包括牌子上的文字)
3. 在牌子上增加了商店库存的显示(动态更新,包括使用漏斗传输物品)
4. 增加了商店保护机制,包括对爆炸、活塞、燃烧做了相应的处理,不会出现箱子消失的情况
5. 完善了全息物品跨世界的问题,多世界的情况下也能很好的工作,发包操作放到了异步线程进行管理
6. 自带了中文物品名的config文件(基于Java版的物品命名)
7. 语言文件占位符由{}变化成{ITEM_NAME},可以自由改变占位符的前后顺序
8. 对商店增加了UI界面的支持,同时支持[聊天栏操作、聊天栏和UI操作共存、只有UI操作],可以自由配置
9. 对插件本身的配置也可以使用UI来配置(使用指令打开插件的控制面板)
10. 增加了对Residence插件的交互,更加进一步完善对商店的保护
11. QuickShop的"unlimited"概念变成了"server shop",但实际功能没有变化
12. 创造模式可以正常的创建商店(按住shift创建商店,也就是潜行模式下)
13. 更多可以查阅README
食用指南(For 1.5.2版本)
配置指南(For 1.5.1版本)
config.yml
item-names.yml
插件指令
指令 | 描述 | 权限 |
/qs help(h) | 显示帮助信息 | player |
/qs buy(b) | 改变为购买类型的商店 | player |
/qs sell(s) | 改变为出售类型的商店 | player |
/qs price(p) <price> | 改变商店的交易价格 | player |
/qs server(se) | 改变商店为系统商店(ver1.3+) | op |
/qs version(v) | 显示插件的版本信息 | op |
/qs controlpanel(cp) | 显示插件的控制面板 | op |
/qs reload(r) | 重新加载插件的配置文件 | op |
更新日志(超长警告)
问题反馈
问题需要反馈时请按照以下格式回复(可以复制)
- 1. 问题具体表现在: (比如:箱子上的全系物品发生偏移)
- 2. 后台有无报错: (有/无,如果有请贴出 完整的 完整的 完整的 完整的 报错)
- 3. 服务端版本: (master 599)(默认认为是Nukkitx, 构建分支+构建代号)
- 4. 插件版本: (1.5.10)
- (其它额外说明部分...)
已知问题
1.5.1版本和1.5.2与GAC反作弊插件有冲突,具体体现在可能是GAC对Nukkitx的底层API有所封装,导致本插件在创建商店时点击箱子时,插件会获取这个玩家身上所有的拥有的权限时,意外地返回了空指针
原因解释:
本插件之所以这么做是为了执行效率,如果为每次检查都单独构建一次字符串那么商店数量限制越多的情况下,执行效率会越低,特殊情况下会导致服务端主线程卡顿数秒(而且这个检测逻辑只能放在主线程中),这对性能非常敏感的主线程来说是完全不可接受的,虽然Java有相应优化机制,但这终究不是个合理的办法,具体可以参考我的源代码中的逻辑
目前提供两种解决方案:
1.禁用GAC插件
2.将本插件退回1.5版本,因为1.5版本没有对权限节点的检查
详细的调用栈如下:
- [main] ERROR - Throwing
- cn.nukkit.utils.EventException: null
- at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:34) ~[nukkit_1.14_b626.jar:?]
- at cn.nukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:56) ~[nukkit_1.14_b626.jar:?]
- at cn.nukkit.plugin.PluginManager.callEvent(PluginManager.java:546) ~[nukkit_1.14_b626.jar:?]
- at cn.nukkit.Player.handleDataPacket(Player.java:2423) ~[nukkit_1.14_b626.jar:?]
- at cz.creeperface.nukkit.gac.player.NukkitCheatPlayer.handleDataPacket(Unknown Source) ~[?:?]
- at java.util.ArrayList.forEach(ArrayList.java:1257) [?:1.8.0_242]
- at cn.nukkit.network.Network.processPackets(Network.java:197) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.network.Network.processBatch(Network.java:180) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Player.handleDataPacket(Player.java:2099) [nukkit_1.14_b626.jar:?]
- at cz.creeperface.nukkit.gac.player.NukkitCheatPlayer.handleDataPacket(Unknown Source) [%5B反作弊%5DGAC-1.0.jar:?]
- at cn.nukkit.network.RakNetInterface.handleEncapsulated(RakNetInterface.java:157) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.raknet.server.ServerHandler.handlePacket(ServerHandler.java:132) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.network.RakNetInterface.process(RakNetInterface.java:66) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.network.Network.processInterfaces(Network.java:83) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Server.tick(Server.java:1132) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Server.tickProcessor(Server.java:911) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Server.start(Server.java:888) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Server.<init>(Server.java:573) [nukkit_1.14_b626.jar:?]
- at cn.nukkit.Nukkit.main(Nukkit.java:112) [nukkit_1.14_b626.jar:?]
- Caused by: java.lang.NullPointerException
- at cn.innc11.quickshopx.listener.CreateShopListener.createShop(CreateShopListener.java:90) ~[?:?]
- at cn.innc11.quickshopx.listener.CreateShopListener.onPlayerInteract(CreateShopListener.java:155) ~[?:?]
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
- at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
- at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:29) ~[nukkit_1.14_b626.jar:?]
- ... 18 more
下载
1. 需要EconomyAPI作为经济前置
2. 需要Residence作为软前置(没有Residence插件也能独立工作)
1.1:

1.2:

1.2.1:

1.2.3:

1.2.4:

1.2.5:

1.3:

1.3.1:

1.4:

1.4.1:

1.5:

1.5.1:

1.5.2:

中文物品命名文件(Chinese, For 1.5.x):

如果使用英语,则不需要这个文件,请直接关闭 "ControlPanel -> useCustomItemNames"
本帖将不会再发布新版本,如没有特殊需求,建议使用我的另一个插件https://www.mcbbs.net/thread-1057414-1-1.html修复了GAC问题,加入了Land插件支持等等,只需要花几分钟将数据迁移过去就可以用
英文语言
插件默认使用中文如需英文语言请在config.yml设置即可
开源
https://github.com/innc11/QuickShopX
支持!支持楼主!辛苦啦

输入/qs b就出现的问题,点击箱子没反应
不知道是不是我弄错了……打开方式不对
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对
请检查一下是否安装了Residence领地插件,如果没有请在控制面板关闭与Residence插件交互再试一试
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对
关掉那个开关不行的,是确实是代码逻辑有问题,我发布了1.2.4版本,修复了这个问题,试一下试试
innc 发表于 2019-12-11 22:29
请检查一下是否安装了Residence领地插件,如果没有请在控制面板关闭与Residence插件交互再试一试 ...
好,谢谢
innc 发表于 2019-12-11 23:04
关掉那个开关不行的,是确实是代码逻辑有问题,我发布了1.2.4版本,修复了这个问题,试一下试试 ...
好滴



楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵)也没看见报错(在地狱试的创建商店)
101134482 发表于 2019-12-12 07:51
楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵) ...
装了Res的汉化,关闭了只能在领地创建商店的功能但并未重启服务器
101134482 发表于 2019-12-12 07:52
装了Res的汉化,关闭了只能在领地创建商店的功能但并未重启服务器
1.2.4就不需要装Res啦,只需要关掉开关即可,另外创建商店时确实是没有UI的哟,把箱子轻轻的饶一下就好(相当于PC版左键单击),轻轻的破坏一下,不是直接点击(直接单击的话相当于PC版右键点击),会弹出提示的,然后直接在聊天栏输入价格即可,除了创建商店时是没有UI的,交易和修改信息都是有UI的
innc 发表于 2019-12-12 08:56
1.2.4就不需要装Res啦,只需要关掉开关即可,另外创建商店时确实是没有UI的哟,把箱子轻轻的饶一下就好( ...
谢谢楼主啦
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件设定我觉得非常好,不会过多导致卡,赞
101134482 发表于 2019-12-13 13:52
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件 ...
啊,我也发现这个问题了,这个其实是mc的机制,过一段时间就会集体消失,但传送后再传送回来又可以正常显示,之前还准备搞个定时刷新来着的,因为不影响功能使用,又是时间紧迫没办法啊,争取下个版本加进去吧,可以用开关控制的那种
innc 发表于 2019-12-13 16:29
啊,我也发现这个问题了,这个其实是mc的机制,过一段时间就会集体消失,但传送后再传送回来又可以正常显 ...
嗯嗯,今天传送到生存世界的时候发现,箱子上的物品跨世界了
楼主……emm就是商店上的物品悬浮起来,会跨世界……多个世界显示这个物品

101134482 发表于 2019-12-16 21:20
楼主……emm就是商店上的物品悬浮起来,会跨世界……多个世界显示这个物品 ...
感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决
innc 发表于 2019-12-16 23:37
感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决 ...
好哒ヾ(????)?

666666666666666666
innc 发表于 2019-12-16 23:37
感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决 ...
楼主怎么样呀,好期待好期待了好多天

101134482 发表于 2019-12-30 12:17
楼主怎么样呀,好期待好期待了好多天
试了好多办法无果诶,这该不会是mc的特**
innc 发表于 2019-12-30 22:52
试了好多办法无果诶,这该不会是mc的特**
旧的商店好像不会跨物品……如果不行的话。可以添加个是否显示浮空物ing(?????)
开服报错了
希望修复
希望修复
lajijunxie 发表于 2020-1-8 03:14
开服报错了
希望修复
此是一款名为Bemilk的商店插件报错,非此插件问题。
PQguanfang 发表于 2020-1-8 06:03
此是一款名为Bemilk的商店插件报错,非此插件问题。
发错图了
插件在最新版nkx的红石分支构建报错
lajijunxie 发表于 2020-1-8 15:33
插件在最新版nkx的红石分支构建报错
感谢反馈!,这个问题是API过时,不影响正常功能的
101134482 发表于 2019-12-31 18:07
旧的商店好像不会跨物品……如果不行的话。可以添加个是否显示浮空物ing(?????) ...
跨物品很有可能是MC的bug,从旧版本到新版本,有关悬浮物品部分的代码我从来没有修改过,我印象特别深的是1.11到1.12的时候突然出现这个问题,前几天我在1.14上测试的时候这个问题已经消失了,突然不会出现跨物品的问题了。另外
可以添加个是否显示浮空物ing
hologramItemShow: true # 是否显示商店上方的全系物品
问一下,支持nbt标签物品吗?
比如附魔,或者rpg物品
比如附魔,或者rpg物品
lajijunxie 发表于 2020-1-10 01:04
问一下,支持nbt标签物品吗?
比如附魔,或者rpg物品
感谢支持~ 这个暂时还不支持NBT物品,NBT物品会在检查时被忽略掉(相当于不存在),因为上上上个版本NBT物品会导致非常严重的bug所以当时给屏蔽掉了,不过已经在考虑了,不出意外会下个版本加入对nbt、附魔、lore、命名的支持
innc 发表于 2020-1-10 13:23
感谢支持~ 这个暂时还不支持NBT物品,NBT物品会在检查时被忽略掉(相当于不存在),因为上上上个版本NBT物 ...
如果添加对lore的支持的话建议还是用玩家UI,别搞箱子了,问题会一堆的...
PQguanfang 发表于 2020-1-10 15:19
如果添加对lore的支持的话建议还是用玩家UI,别搞箱子了,问题会一堆的... ...
感谢版主大大的反馈!,这也确实是个问题,带nbt的物品很难出现两个完全一样的物品,在玩家手上基本上就是一次性商店,不过既然有需求嘛,还是要去试一试,只需要把物品的lore附魔自定义命名在玩家购买之前显示清楚了问题也不大
这个插件的指令的权限代码是什么,就是像mw.command.teleport这些这样的
3148981314 发表于 2020-1-10 18:55
这个插件的指令的权限代码是什么,就是像mw.command.teleport这些这样的
插件没有具体的权限,只有任何玩家都可执行的权限和只有OP才能执行的权限,不用手动设置