本帖最后由 DefineEvil 于 2018-8-18 22:41 编辑 
安装方法:
请确认你的 Sponge 版本为 7.0.0 及以上。在安装这个插件之前需要有接入 Sponge 经济系统的经济插件。
配置文件:
目前 Sponge 服务端基础插件较少,且仅有的一个好用的死亡不掉落 DeathPenalty 仅支持到 API 5.0.0。在 7.0.0 中无法正常运行。所以我就根据 DeathPenalty 的功能制作了这个插件,与 DeathPenalty 完全兼容。
插件功能:
安装方法:
请确认你的 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 完全重写制作了这个插件。
未来计划:我将为这个插件持续提供更新与新功能。如果有什么建议,可以回帖提出。
如果这篇帖子能帮到你,请给我点人气吧。给别人人气不会扣自己的哦。
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 完全重写制作了这个插件。
未来计划:我将为这个插件持续提供更新与新功能。如果有什么建议,可以回帖提出。
如果这篇帖子能帮到你,请给我点人气吧。给别人人气不会扣自己的哦。
这个插件可以帮助我很多 感谢
谢谢~非常感谢
不支持1.8版本吗?
Bug520 发表于 2018-7-14 00:10
不支持1.8版本吗?
1.8请使用deathpenalty,本插件只支持API7.0.0及以上
用了之后玩家更珍惜生命了
死亡后没有任何效果,后台报错
复制代码
sponge版本:spongeforge-1.12.2-2705-7.1.0-BETA-3206
- [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}
 
- java.lang.NullPointerException: null
 
-         at com.defineevil.sponge.inventorykeeper.InventoryKeeper.onPlayerRespawn(InventoryKeeper.java:116) ~[InventoryKeeper.class:?]
 
-         at org.spongepowered.common.event.listener.RespawnPlayerEventListener_InventoryKeeper_onPlayerRespawn49.handle(Unknown Source) ~[?:?]
 
-         at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:383) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at org.spongepowered.mod.event.SpongeModEventManager.extendedPost(SpongeModEventManager.java:420) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:404) [SpongeModEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:446) [SpongeEventManager.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:217) [SpongeImpl.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at net.minecraft.server.management.PlayerList.func_72368_a(PlayerList.java:1797) [pl.class:?]
 
-         at net.minecraft.network.NetHandlerPlayServer.func_147342_a(NetHandlerPlayServer.java:1117) [pa.class:?]
 
-         at net.minecraft.network.play.client.CPacketClientStatus.func_148833_a(SourceFile:31) [lb.class:?]
 
-         at net.minecraft.network.play.client.CPacketClientStatus.func_148833_a(SourceFile:8) [lb.class:?]
 
-         at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:148) [PacketUtil.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$zla000(SourceFile:539) [hv$1.class:?]
 
-         at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]
 
-         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
 
-         at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_171]
 
-         at net.minecraft.util.Util.func_181617_a(SourceFile:46) [h.class:?]
 
-         at org.spongepowered.common.SpongeImplHooks.onUtilRunTask(SpongeImplHooks.java:288) [SpongeImplHooks.class:1.12.2-2705-7.1.0-BETA-3206]
 
-         at net.minecraft.server.MinecraftServer.redirect$onRun$zjf000(MinecraftServer.java:3987) [MinecraftServer.class:?]
 
-         at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:723) [MinecraftServer.class:?]
 
-         at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:396) [nz.class:?]
 
-         at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
 
-         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
 
- at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
sponge版本:spongeforge-1.12.2-2705-7.1.0-BETA-3206
ksgfk 发表于 2018-7-17 13:23
死亡后没有任何效果,后台报错
sponge版本:spongeforge-1.12.2-2705-7.1.0-BETA-3206
感谢反馈,刚刚发布了1.0.2版本。请删除配置文件后重试。
还有,不掉落要自己设置gamerule
DefineEvil 发表于 2018-7-18 21:03
感谢反馈,刚刚发布了1.0.2版本。请删除配置文件后重试。
还有,不掉落要自己设置gamerule ...
插件有没有重载功能...每次修改配置文件都要在后台用sponge plugins reload命令才能重载,有点麻烦
ksgfk 发表于 2018-7-19 16:16
插件有没有重载功能...每次修改配置文件都要在后台用sponge plugins reload命令才能重载,有点麻烦 ...
这是Sponge推荐的做法
希望加入 pvp杀人时根据凶手的权限或用户组来判断死亡惩罚
比如有a和b两个用户组, a组玩家被a组玩家杀死没有死亡惩罚, 而被b组玩家杀死有死亡惩罚
比如有a和b两个用户组, a组玩家被a组玩家杀死没有死亡惩罚, 而被b组玩家杀死有死亡惩罚
bbleae 发表于 2018-7-27 16:25
希望加入 pvp杀人时根据凶手的权限或用户组来判断死亡惩罚
比如有a和b两个用户组, a组玩家被a组玩家杀死没 ...
感谢你的建议 :)
我会在制作下一个版本的时候加入分权限组设置惩罚比例和药水效果。
我怎么找不到这个配置文件在哪啊。。配置文件名是啥哦
楼主我发现一个小bug...服务器加上末影接口
首先玩家需要有一些经验

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

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

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

可以看到,经验还是0
综上,我觉得可能是插件的锅
首先玩家需要有一些经验

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

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

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

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