death-chest icon indicating copy to clipboard operation
death-chest copied to clipboard

Chests thief protection expiration (or not working anymore ?)

Open TBG-FR opened this issue 1 year ago • 2 comments

Describe the bug It looks like Death Chests aren't protected against thiefs anymore... It was working well when enabling the plugin, and I haven't touched configuration since, but players are able to interact with other player's chests 🤔

Could this be due to the daily restart of the server ? Expiration and thief expiration both are disabled (-1 for expiration and 0 for thief expiration) so it should work and keep chests there and protected, right ?

To Reproduce Paper version 1.21.1-118-master@fb76840 (2024-10-02T12:49:56Z Implementing API version 1.21.1-R0.1-SNAPSHOT (5 version(s) behind latest)

Steps to reproduce the behavior:

  1. Someone dies
  2. Another player tries to open the chest (it works) and/or steal something

Expected behavior Only the chest owner (or an admin) can interact with his own Death Chest.

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: false

# Uses the Duration Format Utils class from the Apache lang dependency
# https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html
duration-format: 'mm:ss'

chest:
  # The expiration of the chest in seconds.
  # You can deactivate the expiration by setting the value to -1
  expiration: -1
  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: '&cVous ne pouvez pas ouvrir ce coffre !'

# 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: '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:
  # 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: 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}, ${world} and ${world_alias}
# 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: '&7Vous êtes mort. Votre inventaire a été placé dans un coffre aux coordonnées suivantes : ${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
# ${world_alias} : shows the alias of the world (see world-alias section)
# ${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: 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
# ${world_alias} : shows the alias of the world (see world-alias section)
# (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

world-chest-protection-filter:
  filter: blacklist
  worlds:
    - disabled_world

world-alias:
  world: "World"
  world_nether: "Nether"
  world_the_end: "The End"

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

Additional context When reloading the plugin, here's the output. All chests displayed here are from players who died recently (some minutes/hours ago for the overworld, few days for the end), and should not be expired...

[19:13:04 INFO]: TBG_FR issued server command: /deathchest:deathchest reload
[19:13:04 INFO]: [DeathChest] Placeholder API expansion has successfully unregistered
[19:13:04 INFO]: [DeathChest] 2 death chests loaded in world "world"
[19:13:04 INFO]: [DeathChest]   Of these 2 have expired
[19:13:04 INFO]: [DeathChest] 0 death chests loaded in world "world_nether"
[19:13:04 INFO]: [DeathChest]   Of these 0 have expired
[19:13:04 INFO]: [DeathChest] 1 death chests loaded in world "world_the_end"
[19:13:04 INFO]: [DeathChest]   Of these 1 have expired
[19:13:04 INFO]: [PlaceholderAPI] Successfully registered internal expansion: DeathChest [2.2.7]

TBG-FR avatar Oct 20 '24 19:10 TBG-FR

As I have no permissions plugin configured, could this be that only my chests are protected ? (I am the op) I thought I tested the behavior between other players, but looking at the CSV "audits", it looks like only my chests are protected: true 🤔 And re-reading the config file, that could explain it, if regular no-op players do not have this permission by default

TBG-FR avatar Oct 20 '24 19:10 TBG-FR

Hi @TBG-FR , thank you for contacting me, you are absolutely right. To get a protected chest as a player, he needs the permission configured in config.yml. In your case “deathchest.thiefprotected”. I will think about how to enable this for players without permission plugin.

Best reguards

DevCyntrix avatar Oct 21 '24 06:10 DevCyntrix