innc
本帖最后由 innc 于 2020-7-15 11:58 编辑

本插件是根据wujipohhQuickShop重制而来

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. 1. 问题具体表现在: (比如:箱子上的全系物品发生偏移)
  2. 2. 后台有无报错: (有/无,如果有请贴出 完整的 完整的 完整的 完整的 报错)
  3. 3. 服务端版本: (master 599)(默认认为是Nukkitx, 构建分支+构建代号)
  4. 4. 插件版本: (1.5.10)
  5. (其它额外说明部分...)
复制代码
如果不清楚构建分支和构建代号,请复制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. [main] ERROR - Throwing
  2. cn.nukkit.utils.EventException: null
  3.         at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:34) ~[nukkit_1.14_b626.jar:?]
  4.         at cn.nukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:56) ~[nukkit_1.14_b626.jar:?]
  5.         at cn.nukkit.plugin.PluginManager.callEvent(PluginManager.java:546) ~[nukkit_1.14_b626.jar:?]
  6.         at cn.nukkit.Player.handleDataPacket(Player.java:2423) ~[nukkit_1.14_b626.jar:?]
  7.         at cz.creeperface.nukkit.gac.player.NukkitCheatPlayer.handleDataPacket(Unknown Source) ~[?:?]
  8.         at java.util.ArrayList.forEach(ArrayList.java:1257) [?:1.8.0_242]
  9.         at cn.nukkit.network.Network.processPackets(Network.java:197) [nukkit_1.14_b626.jar:?]
  10.         at cn.nukkit.network.Network.processBatch(Network.java:180) [nukkit_1.14_b626.jar:?]
  11.         at cn.nukkit.Player.handleDataPacket(Player.java:2099) [nukkit_1.14_b626.jar:?]
  12.         at cz.creeperface.nukkit.gac.player.NukkitCheatPlayer.handleDataPacket(Unknown Source) [%5B反作弊%5DGAC-1.0.jar:?]
  13.         at cn.nukkit.network.RakNetInterface.handleEncapsulated(RakNetInterface.java:157) [nukkit_1.14_b626.jar:?]
  14.         at cn.nukkit.raknet.server.ServerHandler.handlePacket(ServerHandler.java:132) [nukkit_1.14_b626.jar:?]
  15.         at cn.nukkit.network.RakNetInterface.process(RakNetInterface.java:66) [nukkit_1.14_b626.jar:?]
  16.         at cn.nukkit.network.Network.processInterfaces(Network.java:83) [nukkit_1.14_b626.jar:?]
  17.         at cn.nukkit.Server.tick(Server.java:1132) [nukkit_1.14_b626.jar:?]
  18.         at cn.nukkit.Server.tickProcessor(Server.java:911) [nukkit_1.14_b626.jar:?]
  19.         at cn.nukkit.Server.start(Server.java:888) [nukkit_1.14_b626.jar:?]
  20.         at cn.nukkit.Server.<init>(Server.java:573) [nukkit_1.14_b626.jar:?]
  21.         at cn.nukkit.Nukkit.main(Nukkit.java:112) [nukkit_1.14_b626.jar:?]
  22. Caused by: java.lang.NullPointerException
  23.         at cn.innc11.quickshopx.listener.CreateShopListener.createShop(CreateShopListener.java:90) ~[?:?]
  24.         at cn.innc11.quickshopx.listener.CreateShopListener.onPlayerInteract(CreateShopListener.java:155) ~[?:?]
  25.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
  26.         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
  27.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
  28.         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
  29.         at cn.nukkit.plugin.MethodEventExecutor.execute(MethodEventExecutor.java:29) ~[nukkit_1.14_b626.jar:?]
  30.         ... 18 more
复制代码





下载
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


101134482
支持!支持楼主!辛苦啦

101134482
输入/qs b就出现的问题,点击箱子没反应

101134482
不知道是不是我弄错了……打开方式不对

innc
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对

请检查一下是否安装了Residence领地插件,如果没有请在控制面板关闭与Residence插件交互再试一试

innc
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对

关掉那个开关不行的,是确实是代码逻辑有问题,我发布了1.2.4版本,修复了这个问题,试一下试试

101134482
innc 发表于 2019-12-11 22:29
请检查一下是否安装了Residence领地插件,如果没有请在控制面板关闭与Residence插件交互再试一试 ...

好,谢谢

101134482
innc 发表于 2019-12-11 23:04
关掉那个开关不行的,是确实是代码逻辑有问题,我发布了1.2.4版本,修复了这个问题,试一下试试 ...

好滴

101134482
楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵)也没看见报错(在地狱试的创建商店)

101134482
101134482 发表于 2019-12-12 07:51
楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵) ...

装了Res的汉化,关闭了只能在领地创建商店的功能但并未重启服务器

innc
101134482 发表于 2019-12-12 07:52
装了Res的汉化,关闭了只能在领地创建商店的功能但并未重启服务器

1.2.4就不需要装Res啦,只需要关掉开关即可,另外创建商店时确实是没有UI的哟,把箱子轻轻的饶一下就好(相当于PC版左键单击),轻轻的破坏一下,不是直接点击(直接单击的话相当于PC版右键点击),会弹出提示的,然后直接在聊天栏输入价格即可,除了创建商店时是没有UI的,交易和修改信息都是有UI的

101134482
innc 发表于 2019-12-12 08:56
1.2.4就不需要装Res啦,只需要关掉开关即可,另外创建商店时确实是没有UI的哟,把箱子轻轻的饶一下就好( ...

谢谢楼主啦

101134482
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件设定我觉得非常好,不会过多导致卡,赞

innc
101134482 发表于 2019-12-13 13:52
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件 ...

啊,我也发现这个问题了,这个其实是mc的机制,过一段时间就会集体消失,但传送后再传送回来又可以正常显示,之前还准备搞个定时刷新来着的,因为不影响功能使用,又是时间紧迫没办法啊,争取下个版本加进去吧,可以用开关控制的那种

101134482
innc 发表于 2019-12-13 16:29
啊,我也发现这个问题了,这个其实是mc的机制,过一段时间就会集体消失,但传送后再传送回来又可以正常显 ...

嗯嗯,今天传送到生存世界的时候发现,箱子上的物品跨世界了

101134482
楼主……emm就是商店上的物品悬浮起来,会跨世界……多个世界显示这个物品

innc
101134482 发表于 2019-12-16 21:20
楼主……emm就是商店上的物品悬浮起来,会跨世界……多个世界显示这个物品 ...

感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决

101134482
innc 发表于 2019-12-16 23:37
感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决 ...

好哒ヾ(????)?

XZH99999
666666666666666666

101134482
innc 发表于 2019-12-16 23:37
感谢反馈,我也发现这个问题了,(我记得在1.12的时候都是好好地),我试看看能不能解决 ...

楼主怎么样呀,好期待好期待了好多天

innc
101134482 发表于 2019-12-30 12:17
楼主怎么样呀,好期待好期待了好多天

试了好多办法无果诶,这该不会是mc的特**

101134482
innc 发表于 2019-12-30 22:52
试了好多办法无果诶,这该不会是mc的特**

旧的商店好像不会跨物品……如果不行的话。可以添加个是否显示浮空物ing(?????)

lajijunxie
开服报错了
希望修复

pXiaoD
lajijunxie 发表于 2020-1-8 03:14
开服报错了
希望修复

此是一款名为Bemilk的商店插件报错,非此插件问题。

lajijunxie
PQguanfang 发表于 2020-1-8 06:03
此是一款名为Bemilk的商店插件报错,非此插件问题。

发错图了

lajijunxie
插件在最新版nkx的红石分支构建报错

innc
lajijunxie 发表于 2020-1-8 15:33
插件在最新版nkx的红石分支构建报错

感谢反馈!,这个问题是API过时,不影响正常功能的

innc
101134482 发表于 2019-12-31 18:07
旧的商店好像不会跨物品……如果不行的话。可以添加个是否显示浮空物ing(?????) ...

跨物品很有可能是MC的bug,从旧版本到新版本,有关悬浮物品部分的代码我从来没有修改过,我印象特别深的是1.11到1.12的时候突然出现这个问题,前几天我在1.14上测试的时候这个问题已经消失了,突然不会出现跨物品的问题了。另外
可以添加个是否显示浮空物ing
,插件控制面板里面已经有这个功能了
hologramItemShow: true # 是否显示商店上方的全系物品
,希望看帖子仔细一点哦,另外新的1.2.5版本已经发布,修复了一些小bug和其它问题。欢迎支持啦!

lajijunxie
问一下,支持nbt标签物品吗?
比如附魔,或者rpg物品

innc
lajijunxie 发表于 2020-1-10 01:04
问一下,支持nbt标签物品吗?
比如附魔,或者rpg物品

感谢支持~ 这个暂时还不支持NBT物品,NBT物品会在检查时被忽略掉(相当于不存在),因为上上上个版本NBT物品会导致非常严重的bug所以当时给屏蔽掉了,不过已经在考虑了,不出意外会下个版本加入对nbt、附魔、lore、命名的支持

pXiaoD
innc 发表于 2020-1-10 13:23
感谢支持~ 这个暂时还不支持NBT物品,NBT物品会在检查时被忽略掉(相当于不存在),因为上上上个版本NBT物 ...

如果添加对lore的支持的话建议还是用玩家UI,别搞箱子了,问题会一堆的...

innc
PQguanfang 发表于 2020-1-10 15:19
如果添加对lore的支持的话建议还是用玩家UI,别搞箱子了,问题会一堆的... ...

感谢版主大大的反馈!,这也确实是个问题,带nbt的物品很难出现两个完全一样的物品,在玩家手上基本上就是一次性商店,不过既然有需求嘛,还是要去试一试,只需要把物品的lore附魔自定义命名在玩家购买之前显示清楚了问题也不大

3148981314
这个插件的指令的权限代码是什么,就是像mw.command.teleport这些这样的

innc
3148981314 发表于 2020-1-10 18:55
这个插件的指令的权限代码是什么,就是像mw.command.teleport这些这样的

插件没有具体的权限,只有任何玩家都可执行的权限和只有OP才能执行的权限,不用手动设置

lajijunxie
innc 发表于 2020-1-10 13:23
感谢支持~ 这个暂时还不支持NBT物品,NBT物品会在检查时被忽略掉(相当于不存在),因为上上上个版本NBT物 ...

谢谢大大的努力更新插件

3148981314
innc 发表于 2020-1-10 22:13
插件没有具体的权限,只有任何玩家都可执行的权限和只有OP才能执行的权限,不用手动设置 ...

谢谢回复,还想问此插件有无税收tax

innc
3148981314 发表于 2020-1-11 11:27
谢谢回复,还想问此插件有无税收tax

没有tax,如果有,我一定会加注说明的

3148981314
innc 发表于 2020-1-11 19:53
没有tax,如果有,我一定会加注说明的

谢谢,还有一个问题,就是生存想要打掉普通的箱子他会显示需要输入价格,箱子打不掉

innc
3148981314 发表于 2020-1-13 18:51
谢谢,还有一个问题,就是生存想要打掉普通的箱子他会显示需要输入价格,箱子打不掉 ...

我刚刚试过了,可以打掉,显示输入价格是正常的机制,不用理会即可,另外箱子打不掉可能是由于其它插件的机制,如果还是不能打掉请提供详细的信息,比如是否空手打箱子还是拿着什么物品或者方块,是否处于领地中,打不掉的时候有哪些消息提示,有没有其它可能拦截这个事件的插件等,如果有请列出来,最好能有截图,不然我根本无法定位是不是本插件的问题

101134482
innc 发表于 2020-1-9 15:20
跨物品很有可能是MC的bug,从旧版本到新版本,有关悬浮物品部分的代码我从来没有修改过,我印象特别深的 ...

嗯呐,辛苦楼主啦????支持支持

紫凝蓝枫
设置商店后所有的玩家都被卡在木牌处,并且所有传送点都变成了这个木牌的位置,玩家上线就卡在这里 然后被T掉.....

innc
紫凝蓝枫 发表于 2020-1-15 19:32
设置商店后所有的玩家都被卡在木牌处,并且所有传送点都变成了这个木牌的位置,玩家上线就卡在这里 然后被T ...

感谢支持~收到反馈!这个问题我还没用遇到过,请提供更加详细信息,比如后台有无报错,玩家收到哪些提示信息等,感觉这个应该是其它插件的问题,因为本插件没用设置传送点和限制玩家移动的代码

紫凝蓝枫
innc 发表于 2020-1-15 21:01
感谢支持~收到反馈!这个问题我还没用遇到过,请提供更加详细信息,比如后台有无报错,玩家收到哪些提示 ...

后台无报错,具在线玩家提供的消息。当时玩家正在制造商店,放下十几个木牌时没有事情,再放一个就出现了所有玩家前往最后一个放置木牌的坐标并且无法移动,疯狂抽搐,最后被服务器提示“Illegal Batch F acket
”踢出服务器。 当时商店截图。尝试上线TP至其余坐标(使用warp会TP到木牌处,此处使用/tp 61 80 261)后会发现四周都是黑色无方块,第三人称视角头上会有一个铁锭在不断抽搐。



innc
紫凝蓝枫 发表于 2020-1-16 13:37
后台无报错,具在线玩家提供的消息。当时玩家正在制造商店,放下十几个木牌时没有事情,再放一个就出现了 ...

应该是"Illegal Batch Packet"吧,直接原因是和网络数据包有联系,能提供一下具体的Nukkit的build版本嘛?还是用的自己魔改的build,我好复现以修复这个问题,另外也请提供一下nukkit的游戏版本和出问题的客户端版本,关于这个问题请尝试关闭全系物品的开关试一下,最有可能就是全系物品导致的

最后做个推广:插件昨天更新了1.3版本,使用了更美观的牌子文字风格可以康康(有预览图)

紫凝蓝枫
innc 发表于 2020-1-16 14:46
应该是"Illegal Batch Packet"吧,直接原因是和网络数据包有联系,能提供一下具体的Nukkit的build版本嘛 ...

就是卡住了疯狂抽搐被T的..本地局域网也会这样。NK为1.14.1,build版本的话我用的是Mengcraft的645号。全息物品我感觉很有可能 我关掉试试

innc
紫凝蓝枫 发表于 2020-1-16 14:55
就是卡住了疯狂抽搐被T的..本地局域网也会这样。NK为1.14.1,build版本的话我用的是Mengcraft的645号。全 ...

645嘛!!是我看错了么,master最高才583诶,难道说Mengcraft用的是其它分支吗。因为我个人使用的是master来开发的,如果可以能发我一份核心jar是最好的。你试一下关掉试试,如果仍然有问题欢迎反馈~

紫凝蓝枫
本帖最后由 紫凝蓝枫 于 2020-1-17 13:09 编辑
innc 发表于 2020-1-16 15:06
645嘛!!是我看错了么,master最高才583诶,难道说Mengcraft用的是其它分支吗。因为我个人使用的是maste ...

我的核心给你上传了一下百度云“https://pan.baidu.com/s/1_NExMbUCOLQAak2AMh9iVA
那个地图我emmm直接还原了......没办法测试关掉全息后的了emmmm

innc
紫凝蓝枫 发表于 2020-1-17 13:04
我的核心给你上传了一下百度云“https://pan.baidu.com/s/1_NExMbUCOLQAak2AMh9iVA”
那个地图我emmm直接 ...

感谢!核心收到!这个核心是master#562版本,而且我这边测试中也没有出现卡死被踢出服务器的问题,貌似和全系物品没有关系,另外对大箱子的支持还不够到位,可能会出现商店识别不到箱子里有物品的情况,建议及时跟进新版本的核心(好像已经出到586了,说不定修复了这个问题),如果再出现这个问题试着把插件一个一个卸载,看是哪个插件的锅。我认为应该是其它的具有发包机制的插件导致的原因比较大一点。好啦,有问题可以随时过来联系我哦

紫凝蓝枫
innc 发表于 2020-1-17 15:30
感谢!核心收到!这个核心是master#562版本,而且我这边测试中也没有出现卡死被踢出服务器的问题,貌似和 ...

嗯,谢谢了(核心版本我记错了)我现在已经恢复该插件的使用了,如果有玩家报错我会第一时间将服务端打包发给你检查的 辛苦了

innc
紫凝蓝枫 发表于 2020-1-17 16:23
嗯,谢谢了(核心版本我记错了)我现在已经恢复该插件的使用了,如果有玩家报错我会第一时间将服 ...

哈哈,别那么严谨,如果出现问题能提供关键log文件就够啦,觉得ok的话能给个评分就是最大的感谢啦

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