DefineEvil
本帖最后由 DefineEvil 于 2018-8-18 22:41 编辑

Inventory Keeper

目前 Sponge 服务端基础插件较少,且仅有的一个好用的死亡不掉落 DeathPenalty 仅支持到 API 5.0.0。在 7.0.0 中无法正常运行。所以我就根据 DeathPenalty 的功能制作了这个插件,与 DeathPenalty 完全兼容。



插件功能

  • 死亡不掉落(请自行设置 gamerule)
  • 死亡掉落货币(可以设置固定数额和百分数掉落比例)
  • 死亡掉落经验(可以设置固定数额和百分数掉落比例)
  • 死亡添加药水惩罚
  • 自定义死亡消息
  • 在 PVP 死亡后恢复掉落


安装方法
请确认你的 Sponge 版本为 7.0.0 及以上。在安装这个插件之前需要有接入 Sponge 经济系统的经济插件。


配置文件

Credits:
因为 InventoryKeeper 和 DeathPenalty 配置文件完全兼容,我就从@Tollainmear帖子里把配置文件转载过来了。请把汉化的配置文件的 credit 给到Tollainmear
由于 DeathPenalty 作者不再维护,我根据原作者的代码使用 Java 完全重写制作了这个插件

未来计划:
我将为这个插件持续提供更新与新功能。如果有什么建议,可以回帖提出。

如果这篇帖子能帮到你,请给我点人气吧。给别人人气不会扣自己的哦。




2021.12 数据,可能有更多内容Inventory Keeper
目前 Sponge 服务端基础插件较少,且仅有的一个好用的死亡不掉落 DeathPenalty 仅支持到 API 5.0.0。在 7.0.0 中无法正常运行。所以我就根据 DeathPenalty 的功能制作了这个插件,与 DeathPenalty 完全兼容。


插件功能
  • 死亡不掉落(请自行设置 gamerule)
  • 死亡掉落货币(可以设置固定数额和百分数掉落比例)
  • 死亡掉落经验(可以设置固定数额和百分数掉落比例)
  • 死亡添加药水惩罚
  • 自定义死亡消息
  • 在 PVP 死亡后恢复掉落



安装方法
请确认你的 Sponge 版本为 7.0.0 及以上。在安装这个插件之前需要有接入 Sponge 经济系统的经济插件。


配置文件
# The message that gets sent to the died player.deathMessage {    arguments {  moneyLoss {   defaultValue {    text="0"   }   optional=true  }  potionEffects {   defaultValue {    text="[无]"   }   optional=true  }  xpLoss {   defaultValue {    text="0"   }   optional=true  }    }    content {  color=aqua  extra=[   {    text=" 你失去了 "   },   {    text="{moneyLoss}"   },   {    text=游戏币和   },   {    text="{xpLoss}"   },   {    text="经验值,死神对你施加了"   },   {    text="{potionEffects}"   },   {    text="效果!"   }  text="[死亡惩罚]"    }    options {  closeArg="}"  openArg="{"    }}# 以下方式的死亡将不会受到死亡惩罚。deathTypes {    pvp=true}# 相对扣除模式或者固定扣除模式 => 保留或者去掉百分号moneyReduction="50%"# 死亡后对玩家施加的药水效果你可以复制粘贴或者创建新的药水效果.potionEffects=[    {  amplifier=1  # Duration in seconds  duration=180  id=slowness  showParticles=false    },    {  amplifier=1  # Duration in seconds  duration=180  id=nausea  showParticles=false    },    {  amplifier=1  # Duration in seconds  duration=180  id=hunger  showParticles=false    }# 不要修改这个节点recentlyDiedPlayers=[]sendDeathMessage=true# 相对扣除模式或者固定扣除模式 => 保留或者去掉百分号xpReduction="50%"
Credits:因为 InventoryKeeper 和 DeathPenalty 配置文件完全兼容,我就从@Tollainmear帖子里把配置文件转载过来了。请把汉化的配置文件的 credit 给到Tollainmear。由于 DeathPenalty 作者不再维护,我根据原作者的代码使用 Java 完全重写制作了这个插件。
未来计划:我将为这个插件持续提供更新与新功能。如果有什么建议,可以回帖提出。
如果这篇帖子能帮到你,请给我点人气吧。给别人人气不会扣自己的哦。



wc5477
这个插件可以帮助我很多 感谢

solongyoung
谢谢~非常感谢

Bug520
不支持1.8版本吗?

DefineEvil
Bug520 发表于 2018-7-14 00:10
不支持1.8版本吗?

1.8请使用deathpenalty,本插件只支持API7.0.0及以上

21504010
用了之后玩家更珍惜生命了

ksgfk
死亡后没有任何效果,后台报错
  1. [Server thread/ERROR] [Sponge]: Could not pass RespawnPlayerEvent$Impl to Plugin{id=inventorykeeper, name=InventoryKeeper, version=1.0.1, authors=[DefineEvil], source=.\mods\inventorykeeper.jar}
  2. java.lang.NullPointerException: null
  3.         at com.defineevil.sponge.inventorykeeper.InventoryKeeper.onPlayerRespawn(InventoryKeeper.java:116) ~[InventoryKeeper.class:?]
  4.         at org.spongepowered.common.event.listener.RespawnPlayerEventListener_InventoryKeeper_onPlayerRespawn49.handle(Unknown Source) ~[?:?]
  5.         at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.12.2-2705-7.1.0-BETA-3206]
  6.         at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:383) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
  7.         at org.spongepowered.mod.event.SpongeModEventManager.extendedPost(SpongeModEventManager.java:420) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
  8.         at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:404) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
  9.         at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:446) [SpongeEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
  10.         at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:217) [SpongeImpl.class:1.12.2-2705-7.1.0-BETA-3206]
  11.         at net.minecraft.server.management.PlayerList.func_72368_a(PlayerList.java:1797) [pl.class:?]
  12.         at net.minecraft.network.NetHandlerPlayServer.func_147342_a(NetHandlerPlayServer.java:1117) [pa.class:?]
  13.         at net.minecraft.network.play.client.CPacketClientStatus.func_148833_a(SourceFile:31) [lb.class:?]
  14.         at net.minecraft.network.play.client.CPacketClientStatus.func_148833_a(SourceFile:8) [lb.class:?]
  15.         at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:148) [PacketUtil.class:1.12.2-2705-7.1.0-BETA-3206]
  16.         at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$zla000(SourceFile:539) [hv$1.class:?]
  17.         at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
  18.         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
  19.         at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_171]
  20.         at net.minecraft.util.Util.func_181617_a(SourceFile:46) [h.class:?]
  21.         at org.spongepowered.common.SpongeImplHooks.onUtilRunTask(SpongeImplHooks.java:288) [SpongeImplHooks.class:1.12.2-2705-7.1.0-BETA-3206]
  22.         at net.minecraft.server.MinecraftServer.redirect$onRun$zjf000(MinecraftServer.java:3987) [MinecraftServer.class:?]
  23.         at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:723) [MinecraftServer.class:?]
  24.         at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:396) [nz.class:?]
  25.         at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
  26.         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
  27.         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
复制代码

sponge版本:spongeforge-1.12.2-2705-7.1.0-BETA-3206

DefineEvil
ksgfk 发表于 2018-7-17 13:23
死亡后没有任何效果,后台报错

sponge版本:spongeforge-1.12.2-2705-7.1.0-BETA-3206

感谢反馈,刚刚发布了1.0.2版本。请删除配置文件后重试。
还有,不掉落要自己设置gamerule

ksgfk
DefineEvil 发表于 2018-7-18 21:03
感谢反馈,刚刚发布了1.0.2版本。请删除配置文件后重试。
还有,不掉落要自己设置gamerule ...

插件有没有重载功能...每次修改配置文件都要在后台用sponge plugins reload命令才能重载,有点麻烦

DefineEvil
ksgfk 发表于 2018-7-19 16:16
插件有没有重载功能...每次修改配置文件都要在后台用sponge plugins reload命令才能重载,有点麻烦 ...

这是Sponge推荐的做法

bbleae
希望加入 pvp杀人时根据凶手的权限或用户组来判断死亡惩罚
比如有a和b两个用户组, a组玩家被a组玩家杀死没有死亡惩罚, 而被b组玩家杀死有死亡惩罚

DefineEvil
bbleae 发表于 2018-7-27 16:25
希望加入 pvp杀人时根据凶手的权限或用户组来判断死亡惩罚
比如有a和b两个用户组, a组玩家被a组玩家杀死没 ...

感谢你的建议 :)
我会在制作下一个版本的时候加入分权限组设置惩罚比例和药水效果。

adsvv147
我怎么找不到这个配置文件在哪啊。。配置文件名是啥哦

ksgfk
楼主我发现一个小bug...服务器加上末影接口
首先玩家需要有一些经验

然后把经验用经验棒存到流体储罐

接着自杀,会发现本来就没有的经验却变多了

但是,如果我把经验惩罚改成0,再自杀

可以看到,经验还是0
综上,我觉得可能是插件的锅

思念丶···
很棒的插件。