DE_SHARK
本帖最后由 DE_SHARK 于 2020-7-31 16:49 编辑
制作缘由
开模组服的腐竹多多少少会遇到一些莫名其妙的bug
比如蹦服之后玩家背包被清空了
(接下来就是忙碌忙碌+玩家白嫖时间)
(雾,大雾)



BackupInv-简介
支持设置自动备份时间间隔
支持备份有nbt标签物品的插件
比如拔刀、匠魂工具、植物魔法花等
能完整地保存背包里的这种物品的nbt标签信息
而不会出现保存之后回档出来的是大太刀、乱码匠魂工具和乱码花等
拔刀的杀敌数、荣耀值等也能保存(废话)



插件指令
/bpi help  #查看插件指令帮助
/bpi look 玩家ID 数字  #查看玩家距离现在第几次备份的信息
/bpi back 玩家ID 数字  #将玩家背包回档岛距离现在第几次备份



插件配置



备份原理及食用方法:
如果要还原某位玩家的上一次备份信息,输入/bpi back 玩家ID 1 即可
那么要还原某位玩家的上一次的上一次呢?将“1”改为“2”就行
指令/bpi look 同理



插件的稳定性及对服务器资源的占用:
这个我一直想获得更好的资源占用信息来着的,比如YUM的资源监测,但因为服务器原因没能弄成
如果你的服务器有YUM并且在用着我的插件且人数挺多的情况下,可不可以帮我一个小忙截图一下YUM检测出来的此插件资源占用
这个是我1.7.10科技空岛服务器(其实这张图看不出什么)



备份世界的大小:
请不用担心,你甚至可以几个月不清理这个世界的缓存信息
它的占用空间都没有你的资源世界大



自动删除过久备份:
每个玩家最多被备份96次,超过96次的将会把该玩家最久的一次备份信息删掉在进行备份,但世界的箱子不会删除



已知BUG:
在高版本中无法备份副手,使用/bpi back 玩家ID 指令回档背包时会用空白替代玩家副手的东西。推荐使用/bpi look 玩家ID 拿出玩家备份物品直接丢给玩家



下载地址:
BackupInv[UTF8].jar (255.19 KB, 下载次数: 658) UTF-8
BackupInv[ANSI].jar (255.16 KB, 下载次数: 284) ANSI
如果觉得插件好用的话评分支持一下傻鱼吧
评分人气不会消耗自己的,金粒才会
回复可下载就不用了,求求腐竹带带们给点评分吧qwq

捐赠支持:afdian.net/@DESHARK

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

晨曦曦
前排支持一下!!!

DE_SHARK
q2799976197 发表于 2019-9-14 22:34
前排支持一下!!!

蟹蟹啦qwq

米安博奥
感觉如果物品ID出现变动很容易出bug的样子

DE_SHARK
米安博奥 发表于 2019-9-15 00:16
感觉如果物品ID出现变动很容易出bug的样子

物品id出现变动?是指服务器增删mod的情况吗
这还没考虑过awa,id乱码可以直接删掉backupinvworld世界,独立的世界不会对其他造成影响

God_Boy_Yu
这样就省得玩家丢东西没办法补偿了

Dante_7
本帖最后由 SkinBBS 于 2019-9-15 09:07 编辑

插件是不错, 但是这种实现方式也太笨拙了吧

另外 tile 指的是方块实体 tileEntity, 而这个是在世界加载时载入的. 当使用的人增多时数量就会提上来了.
不过这种插件也只能在小服玩玩, 要是人多了性能占用会更大. 更何况楼主使用的不是超平坦或是虚空世界, 每生成一个区块都需要 Minecraft 自带的 91(应该没有这么多, 一些生成器在主世界不工作, 但是六七十是绝对有的, 而且如果你服务器中有 mod, 他们会给你添加更多的生成器duangduangduang...) 个生成器轮番轰炸, 而且楼主使用的是一字长蛇阵对区块空间的利用并不太好

另外我注意到左下角有个女巫...


DE_SHARK
本帖最后由 DE_SHARK 于 2019-9-16 22:57 编辑
SkinBBS 发表于 2019-9-15 08:54
插件是不错, 但是这种实现方式也太笨拙了吧

另外 tile 指的是方块实体 tileEntity, 而这个是在世界加载时 ...

我觉得这样的储存方式有一种可视化的美感,而不是一份份的数据,摸的见看的着(瞎说)

另外我不觉得这样会对服务器产生延迟,因为测试端是一个100mod的服务端,而且当插件在自动备份的间隔里,BackupInvWorld这个世界是被完全卸载的(这个我周六回去更新一下/gc的图片),所以如果不是人为进入该世界加载区块的话,是不会有生物实体生成的(一个单独的世界,除了op其他人也进不来对吧)。在我测试插件的一周里,我获取过服务器不同时间不同TPS时的timings报告,报告上并没有提到关于该插件和地图的信息,所以断定这些对服务器的影响是很少很少的(同样我在周六的时候把图片加上)
对于插件备份的方式是在独立的世界一字型长队,emmmm,其实占用的储存空间也不是很大(逃

So,这个插件总体还不错趴!




暗影世界XD
第一个竟然是我的背包,绝了

Dante_7
本帖最后由 SkinBBS 于 2019-9-17 07:54 编辑
DE_SHARK 发表于 2019-9-16 22:52
我觉得这样的储存方式有一种可视化的美感,而不是一份份的数据,摸的见看的着(瞎说)

另外我不觉得这样 ...

听你的描述我还以为又出了什么不用家在地图就能读取区块 nbt 的黑科技呢.

特意下载插件反编译看了一下, 很明确的告诉你, 你的想法是错误的, 而且错的非常离谱. 有时间多去了解一下 mc 区块加载机制吧.

对服务器影响很小的原因可能是服务器人数比较少

不过你这个方法完美的绕过了读写 nbt 数据的麻烦, 算是投机取巧吧. 看得出来楼主很聪明, 不过不如趁这个机会了解一下如何直接读取物品 nbt 并以二进制的形式储存.

楼主可以在 github 上搜索 OpenNBT 来找到一个开源的 nbt 库, 是由国外大神 steveice10 编写的, 可以多去了解一下底层原理来提升自己, 而不是浅显的调用 api

另外还有一点, mc 的服务端是内置了 gson 的, 没必要把它再次打包进你的插件里, 一看 200 多 k 吓我一跳


DE_SHARK
本帖最后由 DE_SHARK 于 2019-10-3 20:58 编辑
SkinBBS 发表于 2019-9-17 07:48
听你的描述我还以为又出了什么不用家在地图就能读取区块 nbt 的黑科技呢.

特意下载插件反编译看了一下,  ...

qwq

Dante_7
DE_SHARK 发表于 2019-9-17 12:40
(我是说备份间隔的时间世界会被卸载啦)
谢谢带佬提醒啦!我会努力地(高考)
(逃 ...

额, 我不是说楼主不行, 插件本身是非常好的, 最起码提供了一种新的储存方式, 而且还解决了背包丢失的问题, 只是在储存方式上感觉尚有优化空间, 高考加油, 最后几个月了就别写代码了, 专心考试吧.

提前说一下, 选专业的时候先问问学长一星期几节课. 我一个哥们一天8节课, 美滋滋, 感觉又上了四年高中

坚定而知县
[11:32:06 INFO]: 正在保存玩家背包数据..
[11:32:06 WARN]: [BackupInv] Task #102 for BackupInv v1.0 generated an exception
java.lang.ArrayIndexOutOfBoundsException: 36
        at java.util.Arrays$ArrayList.set(Unknown Source) ~[?:1.8.0_201]
        at net.minecraft.server.v1_14_R1.NonNullList.set(SourceFile:53) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at net.minecraft.server.v1_14_R1.TileEntityLootable.setItem(TileEntityLootable.java:99) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at org.bukkit.craftbukkit.v1_14_R1.inventory.CraftInventory.setItem(CraftInventory.java:99) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at com.germ.BackupInv.main$1.run(main.java:172) ~[?:?]
        at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:84) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:452) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at net.minecraft.server.v1_14_R1.MinecraftServer.b(MinecraftServer.java:1148) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:417) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1075) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:919) ~[Paper-1.14.4-b192.jar:git-Paper-188]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
这个报错是因为插件原因吗

AzureHanChen
不错,解决了玩家MOD物品丢失的问题

DE_SHARK
本帖最后由 DE_SHARK 于 2021-8-8 01:08 编辑
坚定而知县 发表于 2019-10-3 11:33
[11:32:06 INFO]: 正在保存玩家背包数据..
[11:32:06 WARN]:  Task #102 for BackupInv v1.0 generated an  ...


_(:з」∠)__(:з」∠)__(:з」∠)_

DE_SHARK
AzureHanChen 发表于 2019-10-3 16:04
不错,解决了玩家MOD物品丢失的问题

谢谢支持qaq

Misaka。
这个重载插件的信息可太溜了  居然是  ‘好了’
突然戳中笑点

云树
BackupInv v1.0 Total: 0.094 s        Pct: 0.11%
   Pct Total        Pct Tick           Total              Avg         PerTick             Count                Event
       0.11%         188.89%          0.09 s            94.44 ms         0.0               0.0k            Task: main$1(interval 18000)
这占用也太可怕了

HB_233
楼主,为什么这个插件在我端里没办法正常运行呢,只能加载部分配置文件,不会自动备份,就像自动备份功能消失了一样。指令倒是都可以用的。服务端是Catserver 游戏版本1.12.2

这里是它生成的残缺的配置文件
SystemDatabase:
  nowLocX: 0
  nowLocY: 19
Messages: {}
PlayersDatabase:
  _Suprenium_:
  - 0 5
  - 0 7
  - 0 9
  - 0 11
  - 0 11
  - 0 13
  - 0 15
  - 0 17


DE_SHARK
HB_233 发表于 2020-1-12 17:58
楼主,为什么这个插件在我端里没办法正常运行呢,只能加载部分配置文件,不会自动备份,就像自动备份功能消 ...

你把两个版本的插件都试一下

asdp000333
进我收藏吃灰

Nicekill
一直在找的插件,谢谢楼主分享!

tianjiarui2
用不了啊
服务器版本:1.15
[23:28:04] [Server thread/信息]:tianjiarui2 issued server command: /bpi back

[23:28:04] [Server thread/ERROR]:null
org.bukkit.command.CommandException: Unhandled exception executing command 'bpi' in plugin
BackupInv v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[mcx.jar:git-Spigot-f39a89e-
f777640]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[mcx.jar:git-Spigot-
f39a89e-f777640]
at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711) ~

[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1657) ~
[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1497) ~[mcx.jar:git-
Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[mcx.jar:git-
Spigot-f39a89e-f777640]

at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[mcx.jar:git-
Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~
[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [mcx.jar:git-
Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)

[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [mcx.jar:git-
Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.MinecraftServer.aZ(MinecraftServer.java:917) [mcx.jar:git-

Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:910)
[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeAll(SourceFile:103) [mcx.jar:git-
Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:893)

[mcx.jar:git-Spigot-f39a89e-f777640]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:827) [mcx.jar:git-
Spigot-f39a89e-f777640]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at com.germ.BackupInv.main.onCommand(main.java:91) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[mcx.jar:git-Spigot-f39a89e-
f777640]

... 17 more

[23:28:08] [Server thread/信息]:damaoguai issued server command: /lost

[23:28:14] [Server thread/信息]:damaoguai issued server command: /list

[23:28:36] [User Authenticator #5/信息]:UUID of player GnomeSane is 150fad04-6f6a-3f6b-a2db-

0528aa28bf4d


165465WD
不会乱码吧、

DE_SHARK

这个需要看你用哪个版本,如果是windows系统就下载ANSI版本

Xiao_Xu007
谢谢楼主,终于可以解决匠魂工具变彩色马赛克的问题了

北梦丶
能不能关闭保存背包通知呢 大佬

DE_SHARK
北梦丶 发表于 2020-2-27 06:56
能不能关闭保存背包通知呢 大佬

WarnSaveBefore: '§c正在保存玩家背包数据..'
InfoSaveAfter: '§a玩家背包数据保存成功..'
你把配置文件改成
WarnSaveBefore: ''
InfoSaveAfter: ''
试试

DE_SHARK
本帖最后由 DE_SHARK 于 2020-2-27 14:02 编辑
Xiao_Xu007 发表于 2020-2-26 22:56
谢谢楼主,终于可以解决匠魂工具变彩色马赛克的问题了


好用的话可以评个分吗qwq,让更多的人看见这插件
(回复才发现你已经评分了,谢谢啦awa)

北梦丶
我的版本好像 有所不同
SystemDatabase:
  nowLocX: 960
  nowLocY: 59
Messages: {}
PlayersDatabase:
  ColderCaesar:

是不是要更新??

DE_SHARK
北梦丶 发表于 2020-2-27 21:28
我的版本好像 有所不同
SystemDatabase:
  nowLocX: 960
  1. BackupTime: 15  #备份时间间隔,单位:分钟
  2. Messages:
  3. WarnSaveBefore: '§c正在保存玩家背包数据..'
  4. InfoSaveAfter: '§a玩家背包数据保存成功..'
  5. InfoBackSuccess: '§a玩家背包数据恢复成功..'
  6. WarnPlayerBack: '§a你的背包已被回档..'
  7. #不要修改
  8. SystemDatabase:
  9. nowLocX: 0
  10. nowLocY: 5
  11. PlayersDatabase:
  12. GermMC:  #这个是默认备份箱子起始位置,不要改
  13.   - '0 5'
复制代码

你把config里替换成这个试试
不行的话下载那里有两个插件版本,换另外一个试试

结城希亚
支持下1.12.2吧!秋梨膏!

DE_SHARK
御炎Roinflam 发表于 2020-3-5 21:12
支持下1.12.2吧!秋梨膏!

理论支持全版本,目前1.7.10和1.12.2经测试可以使用

结城希亚
DE_SHARK 发表于 2020-3-5 21:34
理论支持全版本,目前1.7.10和1.12.2经测试可以使用

装上后就无限刷null了

micr风云
感谢楼主 这个插件非常好 我一直没来评分 感谢!随便问一下插件的权限节点是多少

DE_SHARK
micr风云 发表于 2020-3-11 19:23
感谢楼主 这个插件非常好 我一直没来评分 感谢!随便问一下插件的权限节点是多少 ...

enmm我也忘了,默认op能用的,建议还是不要乱给玩家

1357637651
刚刚一个玩家背包被清了,来bbs找找还真有背包备份插件,感谢lz

DE_SHARK
1357637651 发表于 2020-3-11 22:42
刚刚一个玩家背包被清了,来bbs找找还真有背包备份插件,感谢lz

好用评个分啊awa,谢谢你对插件的肯定

1357637651
DE_SHARK 发表于 2020-3-11 22:49
好用评个分啊awa,谢谢你对插件的肯定

当前评分不可用233,下次来查指令的时候给你补上qwq

竹春十
非常有用的插件!如果它在未来能支持数据库就更好了

micr风云
楼主有时间的话麻烦更新一个权限节点和tab玩家补全出来 这个非常好用 可是我不想因为节点的原因放弃它

1507788278
这个插件会不会让百人以上的服务器备份时卡顿?一次性创造这么多箱子

DE_SHARK
1507788278 发表于 2020-3-21 19:05
这个插件会不会让百人以上的服务器备份时卡顿?一次性创造这么多箱子

哇百人,还没试过呢呜呜呜,我服务器最多才四五十人。要不你试一下233333[捕捉工具人.jpg]

Misaka。
DE_SHARK 发表于 2020-3-21 20:40
哇百人,还没试过呢呜呜呜,我服务器最多才四五十人。要不你试一下233333[捕捉工具人.jpg] ...

en  可以检测到饰品栏,时装装备栏之类的吗

CloudSpace
数据无价 可以帮助防炸了

DE_SHARK
Misaka。 发表于 2020-3-22 22:04
en  可以检测到饰品栏,时装装备栏之类的吗

不支持awa

Misaka。

好的呢 qwq

1507788278
副手不会备份呀。。。

1507788278
早点整一下吧owo,我现在回档背包副手必须先给他们拿出来,再回档,不然副手会被空白覆盖。

sszq
非常好的插件 在cat端完美使用

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