Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 10906|回复: 181

[Nukkit插件] [重制][商店]QuickShopX——一款箱子商店插件[全版本]

  [复制链接]
innc 当前离线
积分
3076
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-5
查看详细资料
 楼主| 发表于 2019-12-11 15:46:09 | 显示全部楼层 |阅读模式
基岩版插件发布
中文名称: 快捷商店X
英文名称: QuickShopX
来源: 重制/改造
前置插件: EconomyAPI, Residence(软前置)
服务端类型: Nukkit(旧) Cloudburst Nukkit(原NukkitX) 
插件类型:  
支持版本:  
下载地址: http://贴内.com
原帖地址: https://www.mcbbs.net/thread-819548-1-4.html
最后更新: 2020-03-19

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

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

本插件是根据wujipohhQuickShop重制而来

1.5版本的所有更新内容



file_1594785240000.jpg file_1594785240000.jpg

file_1594785240000.jpg



相对原版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, 下载次数: 33)

评分

参与人数 7人气 +10 金粒 +100 贡献 +2 收起 理由
ruo_shui + 1 + 10 MCBBS有你更精彩~
wyd1542536763 + 1 + 10 感谢大佬的插件。
msaw4 + 1 + 5 希望作者开个qq讨论群 我有好多想法呢qwq.
mctop + 1 MCBBS有你更精彩~
紫凝蓝枫 + 1 不容易啊,奈何老夫没文化,一句NB行天下.
PQguanfang + 3 + 25 + 2 优秀原创作品
神奈川归尘 + 2 + 50 nb

查看全部评分

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-11 18:46:18 来自手机 | 显示全部楼层
支持!支持楼主!辛苦啦
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-11 19:10:43 来自手机 | 显示全部楼层
输入/qs b就出现的问题,点击箱子没反应
Screenshot_20191211-190907.jpg
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-11 19:11:37 来自手机 | 显示全部楼层
不知道是不是我弄错了……打开方式不对
回复

使用道具 举报

innc 当前离线
积分
3076
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-5
查看详细资料
 楼主| 发表于 2019-12-11 22:29:19 来自手机 | 显示全部楼层
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对

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

使用道具 举报

innc 当前离线
积分
3076
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-5
查看详细资料
 楼主| 发表于 2019-12-11 23:04:45 来自手机 | 显示全部楼层
101134482 发表于 2019-12-11 19:11
不知道是不是我弄错了……打开方式不对

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

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-12 07:35:33 来自手机 | 显示全部楼层
innc 发表于 2019-12-11 22:29
请检查一下是否安装了Residence领地插件,如果没有请在控制面板关闭与Residence插件交互再试一试 ...

好,谢谢
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-12 07:36:14 来自手机 | 显示全部楼层
innc 发表于 2019-12-11 23:04
关掉那个开关不行的,是确实是代码逻辑有问题,我发布了1.2.4版本,修复了这个问题,试一下试试 ...

好滴
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-12 07:51:59 来自手机 | 显示全部楼层
楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵)也没看见报错(在地狱试的创建商店)
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-12 07:52:49 来自手机 | 显示全部楼层
101134482 发表于 2019-12-12 07:51
楼主我用的是1.14核心,创建商店的时候好像没弹出UI,让我点击箱子,我手持物品点击后,箱子就打开了(懵) ...

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

使用道具 举报

innc 当前离线
积分
3076
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-5
查看详细资料
 楼主| 发表于 2019-12-12 08:56:17 | 显示全部楼层
101134482 发表于 2019-12-12 07:52
装了Res的汉化,关闭了只能在领地创建商店的功能但并未重启服务器

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

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-12 22:08:32 来自手机 | 显示全部楼层
innc 发表于 2019-12-12 08:56
1.2.4就不需要装Res啦,只需要关掉开关即可,另外创建商店时确实是没有UI的哟,把箱子轻轻的饶一下就好( ...

谢谢楼主啦
回复

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-13 13:52:50 来自手机 | 显示全部楼层
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件设定我觉得非常好,不会过多导致卡,赞
回复

使用道具 举报

innc 当前离线
积分
3076
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-2-5
查看详细资料
 楼主| 发表于 2019-12-13 16:29:04 来自手机 | 显示全部楼层
101134482 发表于 2019-12-13 13:52
好像没有发现什么问题了~非常好用,就是箱子上面的物品创建后会消失,重新点击牌子就显示啦,如果这是插件 ...

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

使用道具 举报

101134482 当前离线
积分
331
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-9-21
查看详细资料
发表于 2019-12-13 17:45:12 来自手机 | 显示全部楼层
innc 发表于 2019-12-13 16:29
啊,我也发现这个问题了,这个其实是mc的机制,过一段时间就会集体消失,但传送后再传送回来又可以正常显 ...

嗯嗯,今天传送到生存世界的时候发现,箱子上的物品跨世界了
Screenshot_20191213-174124.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-11-28 10:16 , Processed in 0.066574 second(s), Total 28, Slave 27 queries, Release: Build.2020.11.13 1521, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表