本帖最后由 土球球 于 2020-4-13 19:51 编辑
Virtual Chest
虚拟箱子GUI
按版规 7-6,所有诸如“感谢楼主搬运”的回复
版主一律发卡警告,并以扣 2 人气 20 金粒处理
首先,这是一个Sponge插件,而不是占据服务端插件版绝大多数的CraftBukkit/Spigot插件。
虽然说本版开设了Sponge版块,但是这只是整个服务端插件版的
第三个原创Sponge插件(
第一个,
第二个)。
正如楼主所预期的一样,MCBBS的原创Sponge插件数目一点都没有增加。
该插件使用SpongeAPI 5.2.0编写,并提供了针对API 7.0.0的额外支持。
因此该插件理论上应该可以在1.10.2、1.11.2、和1.12.2版本的SpongeVanilla/SpongeForge服务端上正常工作。
事情起因
有一天,@酷车手BB弹 找到我,跟我说了一件事情:
目前来看,Sponge的基础插件已基本齐全,但ChestCommands却迟迟没有对应的Sponge版本。
然后他满怀期望地问了问我——可不可以写一个?
我看了看ChestCommands的功能——好像实现起来并不是很难的样子。
于是本人在肝了约两天之后,便有了这个插件的第一个版本。 |
如上所述,这个插件的功能目前而言是尽可能向ChestCommands等箱子菜单插件看齐的。
这个页面展示了VirtualChest目前和CC和BS等插件相比,支持的功能列表。
功能配置
一个示例图片(你可以通过手持指南针右键打开这个GUI):
(该界面是示例文件的一个GUI,你可以试着点一下2333)
功能描述
待补充,但插件本身提供了
示例文件可以参考。
你可以在config/virtualchest/menu目录下找到会在第一次启动含有该插件的Sponge服务端启动后生成的示例文件。
默认情况下,所有config/virtualchest/menu目录下的.conf文件决定了可用的箱子GUI列表。
唔,现在还有一个wiki:
https://github.com/ustc-zzzz/VirtualChest/wiki
感谢@Tollainmear 为该wiki提供的简体中文翻译:
http://www.mcbbs.net/thread-779618-1-1.html
未实现功能
和ChestCommands相比,本插件主要有以下功能未实现:
- 牌子菜单,不过我知道名为CommandSign的Sponge插件完全可以解决这一问题,所以不会添加
- 以OP模式执行,目前添加了可忽略权限(IgnoredPermissions)的配置选项,示例配置文件中有所涉及
- 提供一套开发者API,目前这个正在填坑中
- 提供详细的wiki说明,这个快填完了
如果有什么其他好的想法,可以和我提一提,当然有Bug也可以来这里反馈。
下载链接
自己翻到帖子开始处找→_→
插件需要 PlaceholderAPI 作为前置:
https://www.mcbbs.net/thread-847941-1-1.html
更新日志
请移步GitHub上的发布页面:
https://github.com/ustc-zzzz/VirtualChest/releases
原创声明
来自群组:
InfinityStudio
还是zzzz强。啥海绵插件都能弄得出来

What is this plugin used to do?
I think you should put the forum into the sponge!
Let more people contribute code for it!
额...发表一个疑问,这真是你写的? 为什么要搞英文的实例....小小疑问..
本帖最后由 ustc_zzzz 于 2017-3-9 19:20 编辑
因为示例是直接从插件JAR里复制的,而为保证国际化,优先写的就是英文版本,然后我就懒得写中文版本的。。。当然里面的提示说明等还是中文版本的。
下一步集成商店吗。
收购和出售
类似与BOSSSHOP?
啊呀。。。这个首先要和经济API挂钩。。。反正还要做好多事的_(:з」∠)_
要实现的功能还有很多,老哥,任重而道远啊
更新了,感谢楼主的积极开发。
新功能在制作吗·
很优秀的作品,可以增加一个附属功能吗,就是锁定物品栏打开菜单,禁止丢弃移动.
拿走了 谢谢老铁 祝你的插件越来越好
这个也是权衡啊。。。如果将来版本中涉及到了商品交易,那么就要允许玩家移动自己背包里的物品。
看到又更新了·
感谢楼主不懈的努力·
还在等禁高频红石的插件,还有锁箱子插件完善再开sponge服
可不可以上线给个物品打开GUI·
比如指南针之类的·
这个指令要是打开的话有些长了·
有没有缩写·
发现使用/vp open 菜单
可以打开菜单
可以是觉得还有有些长了。
有没有直接输入/vp 默认打开的一个菜单?
本帖最后由 117779284 于 2017-3-23 23:28 编辑
command-aliases {
m-e=example
m-e2=example2
menu-example=example
menu-example2=example2
我觉得这里应该更无脑的说明一下。
比如举个例子:
例子内容
大家看啊,
m-e是注册一个命令。而这个命令输入后直接打开界面1 example!
----
这样说明,应该更好理解一些
最近有新的更新计划吗·
每天都在关注 不过最近貌似没什么更新
我没看懂 指南针打开GUI 是怎么设置的
麻烦能给说一下吗·
sponge最新版的api更新了,VirtualChest3.0版本不能用了。
修好了,请下最新版本(v0.3.1)。
另外,这口锅是Sponge的,我一点都不愿意背→_→
ustc_zzzz 如果能添加指令就更好了, 比如弄成钟表菜单那样的, 添加回城指令,warp指令 ,和命令方块指令
在或者是交易 商店 等等,那就强大了!海绵独一份!等你的下一次更新。 谢谢
=。= 其实sponge一切都还好,就是老是加载一堆莫名其妙的区块,pokemon服务器50人在线区块加载近万。。。TPS只有8.这还是视距为4的情况下。
你能否写个能快速卸载区块的插件,个人能力有限,有心无力。
其实我怀疑是pokemon作者的问题。。。
请问目前可用的API有哪些?
API?不存在的,现在这个插件还要有变动,API还没法定下来。
我想在菜单的lore里体现玩家的金钱、上线时间、在线人数之类的信息QAQ,现在就名字和世界名可以体现
另外想请问下,点击菜单后在输入框输入指令的功能有么?指令是什么呢

不好意思,我纠结了一晚上,没想清楚“点击菜单后在输入框输入指令”这一特性究竟是什么。。。

应该是我描述的方法不对。。。
# Print a command on player chat.
e-suggest-cmd=""
这个是另一个插件的
麻烦帮我看下这个错误报告是什么意思,谢谢
| 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SpongeScheduler.tickSyncScheduler(SpongeScheduler.java:191) [SpongeScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SyncScheduler.tick(SyncScheduler.java:51) [SyncScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.runTick(SchedulerBase.java:108) [SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.processTask(SchedulerBase.java:165) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.startTask(SchedulerBase.java:179) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SyncScheduler.executeTaskRunnable(SyncScheduler.java:81) ~[SyncScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:183) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions.lambda$runCommand$1(VirtualChestActions.java:86) ~[VirtualChestActions.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions$Callback.accept(VirtualChestActions.java:225) ~[VirtualChestActions$Callback.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions$Callback.lambda$accept$0(VirtualChestActions.java:229) ~[VirtualChestActions$Callback.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions.process(VirtualChestActions.java:91) ~[VirtualChestActions.class:?] 15.04 21:05:32 [服务器] 位置: org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:291) ~[SpongeCommandManager.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.api.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:336) ~[SimpleDispatcher.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:359) ~[CommandSpec.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: org.spongepowered.api.command.args.ChildCommandElementExecutor.execute(ChildCommandElementExecutor.java:182) ~[ChildCommandElementExecutor.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.command.VirtualChestCommand.processOpenCommand(VirtualChestCommand.java:66) ~[VirtualChestCommand.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.command.VirtualChestCommand.openInventory(VirtualChestCommand.java:126) ~[VirtualChestCommand.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventoryDispatcher.createInventory(VirtualChestInventoryDispatcher.java:66) ~[VirtualChestInventoryDispatcher.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventoryDispatcher.lambda$createInventory$0(VirtualChestInventoryDispatcher.java:66) ~[VirtualChestInventoryDispatcher.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.createInventory(VirtualChestInventory.java:87) ~[VirtualChestInventory.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.updateInventory(VirtualChestInventory.java:104) ~[VirtualChestInventory.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.setItemInInventory(VirtualChestInventory.java:114) ~[VirtualChestInventory.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestItem.setInventory(VirtualChestItem.java:128) ~[VirtualChestItem.class:?] 15.04 21:05:32 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestItemStackBuilder.build(VirtualChestItemStackBuilder.java:61) ~[VirtualChestItemStackBuilder.class:?] |
大概是这个
| 15.04 23:52:01 [服务器] 位置: net.minecraftforge.fml.common.FMLCommonHandler.onPreServerTick(FMLCommonHandler.java:274) [FMLCommonHandler.class:?] 15.04 23:52:01 [服务器] 位置: net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:591) [EventBus.class:?] 15.04 23:52:01 [服务器] 位置: net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:635) [EventBus.class:?] 15.04 23:52:01 [服务器] 位置: net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) [ASMEventHandler.class:?] 15.04 23:52:01 [服务器] 位置: net.minecraftforge.fml.common.eventhandler.ASMEventHandler_14_SpongeMod_onTick_ServerTickEvent.invoke(.dynamic) [?:?] 15.04 23:52:01 [服务器] 位置: org.spongepowered.mod.SpongeMod.onTick(SpongeMod.java:271) [SpongeMod.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SpongeScheduler.tickSyncScheduler(SpongeScheduler.java:191) [SpongeScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SyncScheduler.tick(SyncScheduler.java:51) [SyncScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.runTick(SchedulerBase.java:108) [SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.processTask(SchedulerBase.java:165) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.startTask(SchedulerBase.java:179) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SyncScheduler.executeTaskRunnable(SyncScheduler.java:81) ~[SyncScheduler.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.scheduler.SchedulerBase.lambda$startTask$0(SchedulerBase.java:183) ~[SchedulerBase.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions.lambda$runCommand$1(VirtualChestActions.java:86) ~[VirtualChestActions.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions$Callback.accept(VirtualChestActions.java:225) ~[VirtualChestActions$Callback.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions$Callback.lambda$accept$0(VirtualChestActions.java:229) ~[VirtualChestActions$Callback.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.action.VirtualChestActions.process(VirtualChestActions.java:91) ~[VirtualChestActions.class:?] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:291) ~[SpongeCommandManager.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.api.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:336) ~[SimpleDispatcher.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:359) ~[CommandSpec.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.api.command.args.ChildCommandElementExecutor.execute(ChildCommandElementExecutor.java:182) ~[ChildCommandElementExecutor.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.command.VirtualChestCommand.processOpenCommand(VirtualChestCommand.java:66) ~[VirtualChestCommand.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.command.VirtualChestCommand.openInventory(VirtualChestCommand.java:126) ~[VirtualChestCommand.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventoryDispatcher.createInventory(VirtualChestInventoryDispatcher.java:66) ~[VirtualChestInventoryDispatcher.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventoryDispatcher.lambda$createInventory$0(VirtualChestInventoryDispatcher.java:66) ~[VirtualChestInventoryDispatcher.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.createInventory(VirtualChestInventory.java:87) ~[VirtualChestInventory.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.updateInventory(VirtualChestInventory.java:104) ~[VirtualChestInventory.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestInventory.setItemInInventory(VirtualChestInventory.java:114) ~[VirtualChestInventory.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestItem.setInventory(VirtualChestItem.java:128) ~[VirtualChestItem.class:?] 15.04 23:52:01 [服务器] 位置: com.github.ustc_zzzz.virtualchest.inventory.VirtualChestItemStackBuilder.build(VirtualChestItemStackBuilder.java:61) ~[VirtualChestItemStackBuilder.class:?] 15.04 23:52:01 [服务器] 位置: org.spongepowered.common.data.SpongeDataManager.deserialize(SpongeDataManager.java:223) ~[SpongeDataManager.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 位置: org.spongepowered.api.data.persistence.AbstractDataBuilder.build(AbstractDataBuilder.java:88) ~[AbstractDataBuilder.class:1.10.2-2254-5.2.0-BETA-2272] 15.04 23:52:01 [服务器] 信息 org.spongepowered.api.data.persistence.InvalidDataException: Could not deserialize something correctly, likely due to bad type data. 15.04 23:52:01 [服务器] Server thread/严重错误 [virtualchest]: Find error when generating item at Item |
图片给你看下