Git Product home page Git Product logo

death-chest's Introduction

Hi there 👋

I am Ricardo Borutta! Currently I am studying computer science at the HWR in Berlin.

  • 🌱 I’m currently learning GoLang, C, C++
  • 🔭 In the future I want to learn Rust and Assembly x86

death-chest's People

Contributors

devcyntrix avatar mcmdev avatar nonswag avatar rinsuki avatar srbedrock avatar terminal-access avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

death-chest's Issues

GriefPrevention support

Hello
this plugin is good plugin for survival game type

a lot of survival servers use plugin GriefPrevention

if you can only allow player's death chest to be spawned ONLY and ONLY if: player is in nobody's protected region OR is in his own region (and maybe, think of adding support for plugin Parties too because GriefPrevention don't have team system but using Parties plugin you can create one as each other support themselves, so you can check if player who died is either in: 1. nobody's region (wild); 2. his own region; 3. in region from player who is in the same party like him)

thank you so much.

Unnecessary log when disabling

Describe the bug
Unnecessary log when disabling

To Reproduce
Stop ther server

Screenshots

[12:01:26] [Server thread/INFO]: [DeathChest] Disabling DeathChest v2.1.1
[12:01:26] [Server thread/INFO]: [DeathChest] [ItemStack{BOW x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name={"text":" matador de peleko jegue"}, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado em: "},{"italic":false,"color":"dark_gray","text":"16/11/2023"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado por: "},{"italic":false,"color":"dark_gray","text":"theangrynoob"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Flechas disparadas: "},{"italic":false,"color":"dark_gray","text":"18"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Criaturas abatidas: "},{"italic":false,"color":"dark_gray","text":"2"}],"text":""}], enchants={ARROW_DAMAGE=4, ARROW_KNOCKBACK=2}, repair-cost=7, Damage=18, PublicBukkitValues={
    "toolstats:arrows-shot": 18,
    "toolstats:mob-kills": 2,
    "toolstats:origin": 0,
    "toolstats:owner": [B; 45B, 117B, -101B, 41B, -112B, 83B, 57B, 58B, -119B, 91B, 93B, 93B, -119B, -42B, -31B, -113B],
    "toolstats:time-created": 1700142323175L
}}}, ItemStack{ELYTRA x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name={"text":"asa de killer"}, enchants={MENDING=1, DURABILITY=3}, repair-cost=3, Damage=54}}, ItemStack{DIAMOND_CHESTPLATE x 1, ARMOR_META:{meta-type=ARMOR, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Trocado em: "},{"italic":false,"color":"dark_gray","text":"24/09/2023"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Trocado por: "},{"italic":false,"color":"dark_gray","text":"theangrynoob"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Dano recebido: "},{"italic":false,"color":"dark_gray","text":"1.787,72"}],"text":""}], enchants={PROTECTION_FIRE=1, THORNS=2, DURABILITY=2}, repair-cost=1, Damage=214, PublicBukkitValues={
    "toolstats:damage-taken": 1787.7152391374111d,
    "toolstats:damage-taken-int": 1787,
    "toolstats:hash": "05c35fab8fc16702c22a55465ff85e57e8c847fa4e283a16cd2cc38dbc920770",
    "toolstats:origin": 3,
    "toolstats:owner": [B; 45B, 117B, -101B, 41B, -112B, 83B, 57B, 58B, -119B, 91B, 93B, 93B, -119B, -42B, -31B, -113B],
    "toolstats:time-created": 1695587173169L
}}}, ItemStack{FIREWORK_ROCKET x 4, FIREWORK_META:{meta-type=FIREWORK, power=2}}, ItemStack{DIAMOND_HELMET x 1, ARMOR_META:{meta-type=ARMOR, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Trocado em: "},{"italic":false,"color":"dark_gray","text":"24/09/2023"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Trocado por: "},{"italic":false,"color":"dark_gray","text":"theangrynoob"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Dano recebido: "},{"italic":false,"color":"dark_gray","text":"1.953,83"}],"text":""}], enchants={PROTECTION_ENVIRONMENTAL=2}, Damage=264, PublicBukkitValues={
    "toolstats:damage-taken": 1953.8298564851284d,
    "toolstats:damage-taken-int": 1953,
    "toolstats:hash": "845e5cd0a2f12f0de6f832c04bb9485158037ee67b5b9ac76252f53788ebaa3a",
    "toolstats:origin": 3,
    "toolstats:owner": [B; 45B, 117B, -101B, 41B, -112B, 83B, 57B, 58B, -119B, 91B, 93B, 93B, -119B, -42B, -31B, -113B],
    "toolstats:time-created": 1695589201321L
}}}, ItemStack{POTION x 1, POTION_META:{meta-type=POTION, potion-type=minecraft:water_breathing}}, ItemStack{SUGAR_CANE x 44}, ItemStack{DIAMOND_PICKAXE x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Blocos quebrados: "},{"italic":false,"color":"dark_gray","text":"327"}],"text":""}], Damage=363, PublicBukkitValues={
    "toolstats:generic-mined": 327,
    "toolstats:mob-kills": 2
}}}, ItemStack{SPECTRAL_ARROW x 5}, ItemStack{WHITE_CONCRETE x 64}, ItemStack{STONE_BRICKS x 62}, ItemStack{NETHERITE_PICKAXE x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado em: "},{"italic":false,"color":"dark_gray","text":"12/09/2023"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado por: "},{"italic":false,"color":"dark_gray","text":"Minecraft1967"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Blocos quebrados: "},{"italic":false,"color":"dark_gray","text":"6.473"}],"text":""}], enchants={DIG_SPEED=5, LOOT_BONUS_BLOCKS=3, MENDING=1, DURABILITY=3}, repair-cost=31, Damage=1204, PublicBukkitValues={
    "toolstats:generic-mined": 6473,
    "toolstats:hash": "e3fdb9f0a3194efc352feb3d27abf98eb93f469e2ba13e5ee42890703958c8c9",
    "toolstats:origin": 0,
    "toolstats:owner": [B; 18B, -73B, 57B, 117B, -77B, -55B, 74B, 36B, -92B, 1B, 98B, -29B, 62B, 77B, -106B, -121B],
    "toolstats:time-created": 1694564323312L
}}}, ItemStack{CHARCOAL x 18}, ItemStack{LAPIS_LAZULI x 64}, ItemStack{GREEN_BANNER x 1, BANNER_META:{meta-type=BANNER, patterns=[org.bukkit.block.banner.Pattern@d95e5bef, org.bukkit.block.banner.Pattern@2d73318, org.bukkit.block.banner.Pattern@c96e8925, org.bukkit.block.banner.Pattern@118014e3, org.bukkit.block.banner.Pattern@d1c3f546]}}, ItemStack{BAMBOO x 64}, ItemStack{SCULK_CATALYST x 1}, ItemStack{POTION x 1, POTION_META:{meta-type=POTION, potion-type=minecraft:water_breathing}}, ItemStack{WRITABLE_BOOK x 1}, ItemStack{LANTERN x 12}, ItemStack{SNOW_BLOCK x 37}, ItemStack{WRITABLE_BOOK x 1, BOOK_META:{meta-type=BOOK, pages=[e]}}, ItemStack{BOOK x 59}, ItemStack{CHAIN x 16}, ItemStack{ENCHANTED_BOOK x 1, ENCHANTED_META:{meta-type=ENCHANTED, stored-enchants={LOOT_BONUS_BLOCKS=3}}}, ItemStack{LAPIS_LAZULI x 64}, ItemStack{OBSERVER x 64}, ItemStack{WHEAT_SEEDS x 64}, ItemStack{WHEAT x 8}, ItemStack{FILLED_MAP x 8, MAP_META:{meta-type=MAP, display-name={"text":"Branco"}, map-id=2502}}, ItemStack{DIAMOND_SHOVEL x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Blocos quebrados: "},{"italic":false,"color":"dark_gray","text":"736"}],"text":""}], Damage=772, PublicBukkitValues={
    "toolstats:generic-mined": 736
}}}, ItemStack{GOLDEN_LEGGINGS x 1, ARMOR_META:{meta-type=ARMOR, lore=[{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado em: "},{"italic":false,"color":"dark_gray","text":"25/03/2023"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Fabricado por: "},{"italic":false,"color":"dark_gray","text":"*rennerlot"}],"text":""}, {"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Dano recebido: "},{"italic":false,"color":"dark_gray","text":"36,00"}],"text":""}], enchants={PROTECTION_ENVIRONMENTAL=4, DURABILITY=3}, PublicBukkitValues={
    "toolstats:damage-taken": 36.0d,
    "toolstats:damage-taken-int": 36,
    "toolstats:hash": "3d49d99c7231227aa04380f478ced88e7242150c99ee9a91a84163cf46423daf",
    "toolstats:origin": 0,
    "toolstats:owner": [B; 0B, 0B, 0B, 0B, 0B, 0B, 0B, 0B, 0B, 9B, 1B, -16B, -62B, -59B, 70B, 95B],
    "toolstats:time-created": 1679786517057L
}}}, ItemStack{WHEAT x 64}, ItemStack{BAMBOO x 64}, ItemStack{FILLED_MAP x 1, MAP_META:{meta-type=MAP, display-name={"text":"."}, map-id=2502}}, ItemStack{DIRT x 50}]
[12:01:26] [Server thread/INFO]: [DeathChest] Placeholder API expansion has successfully unregistered

debug from config.yml is disabled:

# Prints debug messages if property is set to true
debug: false

2 suggestions

1- If player has a specif permission, the chest will be protected from other player take items
2- Option to add a custom head textures or another block to change the death chest

Chest randomly disappear

while testing this bug #24
my friend somehow find his death chest was disappeared

he says quoted "i just death and opened the chest, and it disappeared"

fortunately hologram is enabled in the config, and it create this behaviour
image

a note:
i cant reproduce this bug im sorry

Save the full Minecraft levels

Is your feature request related to a problem? Please describe.
Minecraft reduces the drop rate of levels.

Describe the solution you'd like
Add an option to save the whole levels of the player.

QUESTION - How can I display a world "Alias" in place of the world "Name" when using Placeholders?

I'm looking to customize the Placeholder of DeathChests, by having it show the world "Alias" in lieu of the world "Name", but I haven't been able to figure out how to do this, or if this is even possible.

I've tried a few alternatives in the PAPI Config.yml file, such as <worldname> and <worldalias> etc, to no avail. I've even attempted embedding another placeholder in here, which also doesn't render properly: %multiverse_world_name_colored%

I have a multiverse set up with like 10 different worlds, but my players only know of the worlds by their Alias names, thus it's important to me to display where their previous death chest is, by the Alias.

Example:
image
image

Item got duped when you break the chest

How to produce

  1. kill yourself
  2. go to your death location
  3. break the death chest
  4. voila

i have tried this for like 10 more times
image

other behaviour (open the chest -> take all item -> chest break/disappear automaticaly) work as intended

config:

# The Configuration file of Death Chest
#    In this file you can customize the plugin.
#

# Do not touch this!
config-version: 2

# I recommend leaving this on true to receive notification when I have performance improvements.
update-checker: true
duration-format: 'mm:ss'
# The expiration of the chest in seconds.
# You can deactivate the expiration by setting the value to -1
expiration: 1800
# If this feature is enabled all caught items will be dropped if the chest is expired.
drop-items-after-expiration: true

# Here you can modify the inventory which opens when you right-click the death chest. You can use color codes with '&'
# in the title and change the inventory size by changing the size value.
inventory:
  title: 'Death Chest'
  # Possible values are: constant and flexible
  # constant: the size of the inventory is always 45 slots large
  # flexible: the size of the inventory depends on the items which had the player in the inventory.
  size: flexible

# This section is for handling the hologram function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
# This feature is only available if you have a supported hologram plugin installed.
hologram:
  enabled: true
  # If you add lines you have to increase this value. This values depends on the hologram
  # plugin and the distance between the plugin
  height: 2.3
  # Support for {player_name}: Name
  #             {player_displayname}: Displayname
  #             {duration}: Time left
  lines:
    - '&7&lR.I.P'
    - '${player_name}'
    - '&3-&6-&3-&6-&3-&6-&3-'
    - '${duration}'

# This section is for handling the particle function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
particle:
  enabled: true
  radius: 1.0
  count: 32
  # Maximum is 20
  speed: 20.0

# This section is for handling the block breaking function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
# This feature is only available if you have ProtocolLib installed.
break-effect:
  enabled: true
  view-distance: 20.0

# This section is for handling the notification function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false.
# This feature sends a message to the dead player. Here you can inform the player about the chest and their expiration.
# You can send the death coordination by using the placeholders: ${x} ${y}, ${z} and ${world}
player-notification:
  enabled: true
  message: |-
    &7You died. Your items were put into a chest which disappears after &c30 minutes&7! ${world}: ${x} ${y} ${z} 
# Available Placeholders:
# ${player_name} : shows the player name
# ${player_displayname} : shows the player display name (Maybe with prefix)
# ${x}, ${y}, ${z}, ${world} : shows the coordinates of the death location
global-notification:
  enabled: false
  message: |-
    &7${player_name} died at ${x} ${y} ${z} in ${world}
# Available Placeholders:
# ${player_name} : shows the player name
# ${player_displayname} : shows the player display name (Maybe with prefix)
# ${x}, ${y}, ${z}, ${world} : shows the coordinates of the death location
# To disable the death message change "enabled" to true and remove the message option.
change-death-message:
  enabled: false
  message: |-
    &7${player_name} died at ${x} ${y} ${z} in ${world}
# This section configures the activation of this plugin for specific worlds.
world-filter:
  # Possible values: blacklist, whitelist
  filter: blacklist
  worlds:
    - disabled_world

# Set this option to true if you want to protect the death chests against explosions.
blast-protection: true

# This option protects the death chest against thieves if the player has the specific permission and the thief
# not the bypass permission.
# For this option is Vault required.
chest-protection:
  enabled: false
  permission: deathchest.thiefprotected
  bypass-permission: deathchest.thiefprotected.bypass
  # On this website you can find a list of all sounds which is implemented in SpigotMC
  # @see https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
  # If you want to disable the sound or the message, you can delete this options
  sound: BLOCK_CHEST_LOCKED;1.0;1.0
  message: |-
    &cYour are not permitted to open this chest```

[Suggestion] Stored XP

First off this plugin is amazing thank you for the awesome work!

It would be really cool to see it save either save all or part of the xp the player had at the time of death.
It would also be really cool to set those as permissions so not everyone was keeping xp

Add drop conditions

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want that I can enable that the items drops if the player dies in void, lava or fire.

Death on top of a chest doesn't put DeathChest on top of a chest

hello its me again :)

as you guess, i died on top of a chest
but the death chest is spawned a bit far from the chest
image

my user were reporting that they died near the edge on an end island, on top of a chest
and the death chest is spawned flying in the void (a bit far from the death location, more likely 10+ blocks) (i saw the evidence, but i forgot to take a screenshot)

expected behavior:
death chest is spawned on the exact death location of the player, in this case is on top of a chest

additional note:

  • DeathChest version 1.5.17
  • i also tried on a single chest block

[Suggestion] Let the player know when the chest is getting closer to expires/disappear

the idea is to notify player every n seconds that the chest is gonna be expired

for example

expiration: 1800 # about 30 min
notify-every: 300 # 5 minutes
notify-message: Your death chest gonna disappeared in {time} hurry up

or we can set up our custom time for example

notify:
  600: Your death chest gonna be disappeared in 10 min # alert the player 10 minutes before the chest expires
  300: Hurry up, 5 min again !!! # alert the player 5 minutes before the chest expired
  -1: farewell to your item :( # when the chest disappeared

Persistent chests (server reload/restart)

Hello there ! Good job on that awesome plugin, which seems to work really well 👌

I've seen the following lines in the config

# The expiration of the chest in seconds.
# You can deactivate the expiration by setting the value to -1,
#  but warning: The chest will still disappear after a server reload/restart

And I was wondering if we could find a way to avoid loosing a player's stuff if the server is reloaded/restarted ? Is it planned ? Do you have any ideas ? I believe it means that the plugin should be able to create a file (or a database, but that's heavier of course), to store the data ?

I'll be honest, I didn't check the source code for now to see how you store the chest inventory, but I'll do it !

Thanks in advance for your answer 😉

Higher than usual resource drain?

https://spark.lucko.me/p86MimpATf
Hi, terribly sorry but just thought I'd check as in the plugins section of the Spark report it suggests Death-Chest is using almost 14%? The server was idling the whole time so not too sure but it seems extremely high compared to the other plugins. If it's intended it's absolutely fine but thought I'd check just in case.

Add drop conditions

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want that I can enable that the items drops if the player dies in void, lava or fire.

Add drop conditions

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want that I can enable that the items drops if the player dies in void, lava or fire.

Add drop conditions

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want that I can enable that the items drops if the player dies in void, lava or fire.

Massive Server Lag on hoppers.

Spark:
image

In the server we are using hoppers, when hoppers are used in farms the server lags to 7-10 tps? Why does this take so much tps?
Im currently using 1.5.8 I I will update if this continues in 1.5.17!

DeathChests not stored with the world

In 1.5.24 DeathChests are not stored in the world folders which means they do not get backed up with i.e. Backuper (backup plugin). Server rollbacks will still keep all DeathChests.

I don't know if this has changed in 2.0.0 but the new version was not working for me.

Deathchest not rendering, items gone

Describe the bug
I'm killed by some mob. Deathchest note with coordinates pops up. I respawn, go to coordinates. Nothing is there. There is no death chest, and if I do /dc list it does not show I have a death chest. No errors in the server log.

To Reproduce
Unclear, seems random. About 8/10 times I do generate a death chest.

Steps to reproduce the behavior:

  1. Die
  2. Return to death point

Expected behavior
A death chest should generate with my stuff in it, or at least the stuff should fall to the ground.

Configuration
Default

Updating to 2.0.0 removed all existing DeathChests and not spawning any new ones

All existing death chests on the server were deleted when I shut it down and replaced 1.5.24 with 2.0.0. In addition to this, it was not spawning any new death chests and instead deleting the items entirely. I only replaced the jar, all other files remained as they were.

The nature of the new death was fall damage over a manual sugarcane farm.

Previous server restart:

[19:36:29] [Server thread/INFO]: [DeathChest] Enabling DeathChest v1.5.24
[19:36:29] [Server thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[19:36:30] [Server thread/INFO]: [DeathChest] 15 death chests loaded.

After updating:

[14:21:09] [Server thread/INFO]: [DeathChest] Enabling DeathChest v2.0.0
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] Migrating the deathchests...
[14:21:10] [Server thread/WARN]: Nag author(s): '[CyntrixAlgorithm]' of 'DeathChest v2.0.0' about their usage of System.out/err.print. Please use your plugin's logger instead (JavaPlugin#getLogger).
[14:21:10] [Server thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] 15 chests found
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] [STDOUT] deserializing...
[14:21:10] [Server thread/INFO]: [DeathChest] 0 death chests loaded in world "world"
[14:21:10] [Server thread/INFO]: [DeathChest]   Of these 0 have expired
[14:21:10] [Server thread/INFO]: [DeathChest] 0 death chests loaded in world "world_nether"
[14:21:10] [Server thread/INFO]: [DeathChest]   Of these 0 have expired
[14:21:10] [Server thread/INFO]: [DeathChest] 0 death chests loaded in world "world_the_end"
[14:21:10] [Server thread/INFO]: [DeathChest]   Of these 0 have expired

Full log: 2023-09-05-2.log
Config: config.yml.txt

Chest Protection

Describe the bug
I set up Chest Protection, but I can't open the chest when the player exits and re-enters

To Reproduce
paper

Steps to reproduce the behavior:

  1. death
  2. Leave the game
  3. Join the game
  4. It cannot be opened deathchest
    Expected behavior
    iI can open the box

Screenshots
If applicable, add screenshots to help explain your problem.

Configuration

# The Configuration file of Death Chest
#    In this file you can customize the plugin.
#

# I recommend leaving this on true to receive notification if I published an update.
update-checker: true
auto-update: true

duration-format: 'mm:ss'

chest:
  # The expiration of the chest in seconds.
  # You can deactivate the expiration by setting the value to -1
  expiration: 600
  no-expiration-permission:
    enabled: false
    permission: 'deathchest.stays-forever'
  # If this feature is enabled all caught items will be dropped if the chest has expired.
  drop-items-after-expiration: false
  # Set this option to true if you want to protect the death chests against explosions.
  blast-protection: true

  # This option protects the death chest against thieves if the player has the specific permission and the thief
  # not the bypass permission.
  thief-protection:
    # Set the value to 'true' if you want to activate this feature
    enabled: true
    permission: 'deathchest.thiefprotected'
    bypass-permission: 'deathchest.thiefprotected.bypass'
    # To enable the expiration set the number to number greater than 0. The unit of this variable is seconds.
    expiration: 0
    # On this website you can find a list of all sounds which is implemented in SpigotMC
    # @see https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
    # If you want to disable the sound or the message, you can delete these options
    sound: BLOCK_CHEST_LOCKED;1.0;1.0
    message: |-
      &cHmm..這不是你的箱子吧?

# Here you can modify the inventory which opens when you right-click the death chest. You can use color codes with '&'
# in the title and change the inventory size by changing the size value.
inventory:
  # Here you can use the Placeholder API and
  #   ${player_name}: Name
  #   ${player_displayname}: Displayname
  #   ${duration}: Time left
  title: '死亡保護箱'
  # Possible values are: 'constant' and 'flexible'
  # constant: the size of the inventory is always 45 slots large
  # flexible: the size of the inventory depends on the items which had the player in the inventory.
  size: flexible

# This section is for handling the hologram function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
# This feature is only available if you have a supported hologram plugin installed.
hologram:
  # Set the value to 'false' if you want to deactivate this feature
  enabled: true
  # If you add lines you have to increase this value. This values depends on the hologram
  # plugin and the distance between the plugin
  height: 1
  line-height: 0.25
  # Support for ${player_name}: Name
  #             ${player_displayname}: Displayname
  #             ${duration}: Time left
  lines:
    - '&7&lR.I.P'
    - '${player_name}'
    - '&3-&6-&3-&6-&3-&6-&3-'
    - '${duration}'

# This section is for handling the particle function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
particle:
  # Set the value to 'false' if you want to deactivate this feature
  enabled: true
  radius: 1.0
  count: 32
  # Maximum is 20
  speed: 20.0

# This section is for handling the block breaking function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false
# This feature is only available if you have ProtocolLib installed.
break-effect:
  # Set the value to 'false' if you want to deactivate this feature
  enabled: true
  view-distance: 64

# This section is for handling the notification function in this plugin. You can remove this section to disable the feature,
# or you set the 'enabled' option to false.
# This feature sends a message to the dead player. Here you can inform the player about the chest and their expiration.
# You can send the death coordination by using the placeholders: ${x} ${y}, ${z} and ${world}
# Also you can send the chest coordination by using the placeholders: ${chest_x}, ${chest_y} and ${chest_z}
player-notification:
  # Set the value to 'false' if you want to deactivate this feature
  enabled: true
  message: |-
    &7你死了. 你的物品被保存在死亡箱中 ,&c10 分鐘後消失 &7! ${x} ${y} ${z}

# Available Placeholders:
# ${player_name} : shows the player name
# ${player_displayname} : shows the player display name (Maybe with prefix)
# ${x}, ${y}, ${z}, ${world} : shows the coordinates of the death location
# ${chest_x}, ${chest_y}, ${chest_z} : shows the coordinates of the chest
global-notification:
  # Set the value to 'true' if you want to activate this feature
  enabled: true
  message: |-
    &7${player_name} 死在 ${x} ${y} ${z} 在 ${world}

# Available Placeholders:
# ${player_name} : shows the player name
# ${player_displayname} : shows the player display name (Maybe with prefix)
# ${x}, ${y}, ${z}, ${world} : shows the coordinates of the death location
# (coordinates of the chest isn't available for here)
# To disable the death message change "enabled" to true and remove the message option.
change-death-message:
  # Set the value to 'true' if you want to activate this feature
  enabled: false
  message: |-
    &7${player_name} died at ${x} ${y} ${z} in ${world}

# This section configures the activation of this plugin for specific worlds.
world-filter:
  # Possible values: blacklist, whitelist
  filter: blacklist
  worlds:
    - disabled_world


# Do not touch this!
config-version: 3
# Prints debug messages if property is set to true
debug: false

Additional context
Add any other context about the problem here.

teleport chest

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Whenever a player dies, he always has to walk a long distance to get back to the place of death, and is likely to die several times on the way

Describe the solution you'd like
A clear and concise description of what you want to happen.
add the ability to teleport to the death chest and teleport the chest to yourself

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I've tried using the /back plugin and it sometimes teleports to the wrong place.

Additional context
Add any other context or screenshots about the feature request here.

Chest breaking - Put everything back where it was

It would be nice if the player breaks the chest, it puts everything back where it was before the player died.
One of my players suggested this idea. He's tired to put everything back where it was one by one.

Death chest print on disabling

[20:23:50 INFO]: [DeathChest] Disabling DeathChest v1.5.24
[20:23:50 INFO]: [com.github.devcyntrix.deathchest.DeathChestImpl@a4f0a561, com.github.devcyntrix.deathchest.DeathChestImpl@42fabf89, com.github.devcyntrix.deathchest.DeathChestImpl@976e3f44, com.github.devcyntrix.deathchest.DeathChestImpl@d825a344, com.github.devcyntrix.deathchest.DeathChestImpl@ae4ab521, com.github.devcyntrix.deathchest.DeathChestImpl@9fe33e1, com.github.devcyntrix.deathchest.DeathChestImpl@eb0ae1e1, com.github.devcyntrix.deathchest.DeathChestImpl@8e24e4e1, com.github.devcyntrix.deathchest.DeathChestImpl@47597261, com.github.devcyntrix.deathchest.DeathChestImpl@48fb30e1, com.github.devcyntrix.deathchest.DeathChestImpl@833e6ca1, com.github.devcyntrix.deathchest.DeathChestImpl@b028821, com.github.devcyntrix.deathchest.DeathChestImpl@4f729de1, com.github.devcyntrix.deathchest.DeathChestImpl@e5f286e1, com.github.devcyntrix.deathchest.DeathChestImpl@59ec10a1, com.github.devcyntrix.deathchest.DeathChestImpl@9385bae1, com.github.devcyntrix.deathchest.DeathChestImpl@aedfa989, com.github.devcyntrix.deathchest.DeathChestImpl@6d0ecf44, com.github.devcyntrix.deathchest.DeathChestImpl@106015e1, com.github.devcyntrix.deathchest.DeathChestImpl@a6f94789, com.github.devcyntrix.deathchest.DeathChestImpl@df9ecf89, com.github.devcyntrix.deathchest.DeathChestImpl@f0d67f89, com.github.devcyntrix.deathchest.DeathChestImpl@2d5d08e1, com.github.devcyntrix.deathchest.DeathChestImpl@55f096e1, com.github.devcyntrix.deathchest.DeathChestImpl@9c773944, com.github.devcyntrix.deathchest.DeathChestImpl@9181d7e1, com.github.devcyntrix.deathchest.DeathChestImpl@ce94f7a1, com.github.devcyntrix.deathchest.DeathChestImpl@be7a7ee1, com.github.devcyntrix.deathchest.DeathChestImpl@56319de1, com.github.devcyntrix.deathchest.DeathChestImpl@69e55961, com.github.devcyntrix.deathchest.DeathChestImpl@3ef4bb61, com.github.devcyntrix.deathchest.DeathChestImpl@12a8f0e1, com.github.devcyntrix.deathchest.DeathChestImpl@7b975144, com.github.devcyntrix.deathchest.DeathChestImpl@7e801b44, com.github.devcyntrix.deathchest.DeathChestImpl@bcbc45e1, com.github.devcyntrix.deathchest.DeathChestImpl@e13403e1, com.github.devcyntrix.deathchest.DeathChestImpl@e6d5e1, com.github.devcyntrix.deathchest.DeathChestImpl@e8f07fe1, com.github.devcyntrix.deathchest.DeathChestImpl@6967bc61, com.github.devcyntrix.deathchest.DeathChestImpl@454b61, com.github.devcyntrix.deathchest.DeathChestImpl@18fe7221, com.github.devcyntrix.deathchest.DeathChestImpl@3ef0f2e1, com.github.devcyntrix.deathchest.DeathChestImpl@12988189, com.github.devcyntrix.deathchest.DeathChestImpl@3d79fb44, com.github.devcyntrix.deathchest.DeathChestImpl@fcb9c744, com.github.devcyntrix.deathchest.DeathChestImpl@5aebb4e1, com.github.devcyntrix.deathchest.DeathChestImpl@a2541989, com.github.devcyntrix.deathchest.DeathChestImpl@10a83061, com.github.devcyntrix.deathchest.DeathChestImpl@e503dfe1, com.github.devcyntrix.deathchest.DeathChestImpl@8c302de1, com.github.devcyntrix.deathchest.DeathChestImpl@3a76bc61, com.github.devcyntrix.deathchest.DeathChestImpl@f9c18461, com.github.devcyntrix.deathchest.DeathChestImpl@62f323e1, com.github.devcyntrix.deathchest.DeathChestImpl@a6fa3989, com.github.devcyntrix.deathchest.DeathChestImpl@4f14de1, com.github.devcyntrix.deathchest.DeathChestImpl@f6d16144, com.github.devcyntrix.deathchest.DeathChestImpl@b1dbe621, com.github.devcyntrix.deathchest.DeathChestImpl@f5e0f1e1, com.github.devcyntrix.deathchest.DeathChestImpl@d5960e61, com.github.devcyntrix.deathchest.DeathChestImpl@dcd789e1, com.github.devcyntrix.deathchest.DeathChestImpl@6e4e9e1, com.github.devcyntrix.deathchest.DeathChestImpl@a1022189, com.github.devcyntrix.deathchest.DeathChestImpl@dc000ae1, com.github.devcyntrix.deathchest.DeathChestImpl@eb3a8f89, com.github.devcyntrix.deathchest.DeathChestImpl@bde8589, com.github.devcyntrix.deathchest.DeathChestImpl@e151eba1, com.github.devcyntrix.deathchest.DeathChestImpl@2c256b61, com.github.devcyntrix.deathchest.DeathChestImpl@a8f65889, com.github.devcyntrix.deathchest.DeathChestImpl@231ca861, com.github.devcyntrix.deathchest.DeathChestImpl@a1210d89, com.github.devcyntrix.deathchest.DeathChestImpl@b0fbcbe1, com.github.devcyntrix.deathchest.DeathChestImpl@8ef51a1, com.github.devcyntrix.deathchest.DeathChestImpl@18a82de1, com.github.devcyntrix.deathchest.DeathChestImpl@94ddd2e1, com.github.devcyntrix.deathchest.DeathChestImpl@d0d89589, com.github.devcyntrix.deathchest.DeathChestImpl@6f351389, com.github.devcyntrix.deathchest.DeathChestImpl@ad0611e1, com.github.devcyntrix.deathchest.DeathChestImpl@836f1fe1, com.github.devcyntrix.deathchest.DeathChestImpl@a81aae1, com.github.devcyntrix.deathchest.DeathChestImpl@82cb1144, com.github.devcyntrix.deathchest.DeathChestImpl@d27a1d89, com.github.devcyntrix.deathchest.DeathChestImpl@62d101a1, com.github.devcyntrix.deathchest.DeathChestImpl@248d65e1, com.github.devcyntrix.deathchest.DeathChestImpl@ab614fe1]

Check the protection option at the beginning of onHopperMoveItem

Ignore onMoveHopperItem if the death chest protection option is disabled.

Config:

# This option protects the death chest against thieves if the player has the specific permission and the thief
# not the bypass permission.
chest-protection:
  enabled: false
  permission: 'deathchest.thiefprotected'
  bypass-permission: 'deathchest.thiefprotected.bypass'
  # To enable the expiration set the number to number greater than 0. The unit of this variable is seconds.
  expiration: 0
  # On this website you can find a list of all sounds which is implemented in SpigotMC
  # @see https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
  # If you want to disable the sound or the message, you can delete these options
  sound: BLOCK_CHEST_LOCKED;1.0;1.0
  message: |-
    &cYou are not permitted to open this chest

Spark:
image

Add a chest protection filter

Is your feature request related to a problem? Please describe.
I want to disable the chest protection for specific worlds.

Describe the solution you'd like
Add a filter for the chest protection to the configuration file.

Vault Hard Dependancy

Hi, is it possible for a release to be maintained without the Vault plugin hard dependancy? I don't mind sticking with 1.5.4 while I can but just wanted to ask anyway. Many thanks! All your work is greatly appreciated!!!

Bug with multiblock structures

Bug explain:
if you died on top of a bed or door
it will change one of the block that you standing and drop the block

if you break/take item from the deathchest
the deathchest is gone and it create this bizzare screenshot
image

also for scaffolding
if you are for example died at the very bottom of scaffolding
it will break the entire scaffolding connected to it (posible to happen with twisting vine)

if you died at the middle, this happen (break the bottom scaffolding before take the deathchest)
image

im fine with bed and door, but for the scaffolding is sometime annoy me (because i have scaffolding near a wall, and often hitting the wall while flying with elytra, im dumb dumb)

[1.5.3 - WorldGuard Flag Bug] - softcrash when using the plugin without worldguard being present.

Update: Please see the comment below as to why I beleive this is happening and a suggested fix for the issue.

Death Chest: v1.5.3
Server: PaperMC 1.19.23 Build 232 (any build that supports running this plugin)

There appaears to be a softcrash happening upon server start up when using this plugin with out the preseance of the worldguard plugin.

[16:29:11] [Server thread/INFO]: [DeathChest] Loading DeathChest v1.5.3
[16:29:11] [Server thread/ERROR]: [org.bukkit.craftbukkit.v1_19_R1.CraftServer] com/sk89q/worldguard/protection/flags/Flag initializing DeathChest v1.5.3 (Is it up to date?)
java.lang.NoClassDefFoundError: com/sk89q/worldguard/protection/flags/Flag
	at de.helixdevs.deathchest.DeathChestPlugin.onLoad(DeathChestPlugin.java:80) ~[death-chest-1.5.3-all.jar:?]
	at org.bukkit.craftbukkit.v1_19_R1.CraftServer.loadPlugins(CraftServer.java:429) ~[paper-1.19.2.jar:git-Paper-235]
	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:278) ~[paper-1.19.2.jar:git-Paper-235]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1100) ~[paper-1.19.2.jar:git-Paper-235]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-235]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: com.sk89q.worldguard.protection.flags.Flag
	at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:177) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:124) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	... 6 more

Marked as a softcrash as the plugin appears to finish loading later on in the server startup process.

Add drop conditions

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want that I can enable that the items drops if the player dies in void, lava or fire.

Item blacklist

Option to blacklist certain items with specific custom model data from being added to the death chest

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.