Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for TerrorByte

Deterring griefers has never been so sweet

Report Honeypot?

R

5.1.0

Honeypot 5.1.0

Honeypot 5.1.0 comes 3 days after Honeypot 5.0.0's release and introduces per-type trigger limits for Honeypots, as well as ensures that inventory interact/click and TNT explosions are tracked properly and apply limits the same way. This replaces the legacy blocks-broken-before-action-taken config value, so be sure to check out your configs when updating! It also adds improvements to logging, and a new "What's New" GUI for update notifications. This GUI is dynamically generated from a version manifest here on GitHub, and displays the entire change log in an easy-to-read format 😁

Alongside the new features, 5.1.0 fixes a whopping 25 bugs in total, some of which are critical. It is highly recommended you update your version of Honeypot as soon as possible!

For developers, this update brings 2 new event types and deprecates 7. The PlayerStore and PlayerHistoryStore interfaces got updated to support the new TriggerType Enum, and the legacy methods deprecated. Existing StorageProvider implementations will make the assumption that everything is TriggerType.BREAK, but you should update your StorageProvider as soon as possible to support the various new trigger types. This update, however, is backwards compatible, so you have time. Honeypot 6 will remove all the events and methods that were deprecated this version.

Core

Changes & Additions:

  • Added per-type trigger limits, so server owners can decide how many of each type of Honeypot they want to trigger
    • This is per-type based on the event listener, not the action of the Honeypot
    • In the /honeypot history query [player] menu, each break will show the type of trigger that caused it. If no action was taken, the trigger will be prefixed with "prelim", meaning "preliminary".
  • Added lifetime action and trigger tracking for players
    • These values are backfilled on migration based on the history table! For most servers, you'll be able to have lifetime tracking right away!
  • Added new placeholders for these features:
    • %honeypot_current_count_[type]% - Gets the current player's trigger count, where [type] is break, inventory_open, inventory_interact or generic
    • %honeypot_current_count_[type]_[playerName]% - Gets a given player's trigger count, where [type] is break, inventory_open, inventory_interact or generic and [playerName] is the name of the player to check
    • %honeypot_lifetime_triggers% - Gets the current player's total lifetime Honeypot triggers
    • %honeypot_lifetime_triggers_[playerName]% - Gets a given player's total lifetime Honeypot triggers, where [playerName] is the player to check
    • %honeypot_lifetime_actions% - Gets the current player's total lifetime Honeypot actions taken against them
    • %honeypot_lifetime_actions_[playerName]% - Gets a given player's total lifetime Honeypot actions taken against them, where [playerName] is the player to check
    • %honeypot_triggers_before_action_[type]% - Gets the number of triggers required per type before action is taken, where [type] is break, inventory_open, inventory_interact or generic
    • The legacy Placeholders still exist for backwards compatibility, and use the break type
  • Improved internal player history management, trigger count logic, and action handling to ensure that history and trigger counts are much more accurate and less prone to bugs.
  • Added a "What's New" GUI for version updates moving forward. This GUI displays how many versions Honeypot is behind, what features have been added and in what version, and what bugs have been fixed and in what version.
  • Added detection of players lighting things on fire with Flint and Steel or Fire Charges. This prevents players from lighting TNT honeypots and also allows action to be taken on players who attempt to burn burnable Honeypots (previously, the fire would be lit, but the actual burning of the block would be prevented)
    • This still doesn't not take action against players if a fire they lit spreads to a burnable block, or if they light it via a fire charge shot by a dispenser
    • As before, Honeypots are prevented from burning, at least
  • Added a new option to set the minimum log level for Honeypot
  • Added a new log level, VERBOSE
    • VERBOSE logging is far and few between still. I'm working on improving how logging is implemented, now, so Honeypot isn't littered with logger.verbose() calls lol
  • Added a new config option to enable or disable logging to a file without having to see DEBUG or VERBOSE messages in the file
    • Setting the minimum log level to DEBUG or VERBOSE ignores this setting, forcibly enabling file writes

Bug Fixes:

  • Fixed a bug where Block Break Events for a player would incorrectly send WebHooks to Discord regardless of the send-when value in config, and would incorrectly categorize them as Action Taken, even if action was not taken
  • Fixed a bug where history was counted twice for players who attempted to blow up Honeypots using TNT
  • Fixed a bug where players would have a bogus history row added to them when blowing up Honeypots using TNT if they would normally be considered exempt or have the necessary permissions to break the Honeypot
  • Fixed a bug where, when allow-player-destruction was true (default), player-lit TNT deleted the Honeypot object while allow-explode: false would keep the block intact, allowing players to essentially "disarm" Honeypots by blowing them up if the server was configured as such
    • Going forward, for ALL explosions, only allow-explode is taken into consideration when determining whether to remove a Honeypot, regardless of if allow-player-destruction is true
  • Fixed Player History being properly added for inventory interactions and sign changes
  • Fixed a bug where TNT explosions triggered regions for every block affected by the exposion within the region, rather than treating it as a single event
  • Fixed a bug where SignChangeEventListener blocked changes to sign Honeypots for exempt players
  • Fixed a potential thread-safety issue regarding the Honeypot Logger and the Discord WebHook handler
  • Fixed a bug where ghost Honeypots were created when an integration such as WorldGuard blocked an action. The block would be destroyed, but the Honeypot would remain in the database
  • Fixed a bug where a piston being extended into a breakable Honeypot wasn't detected, breaking the block and leaving a ghost Honeypot behind
  • Fixed Placeholder API placeholders using Bukkit.getOfflinePlayer() instead of Bukkit.getOfflinePlayerIfCached() to prevent a blocking call
  • Fixed a bug where running /honeypot reload after setting use-inventory-click to true would cause the inventory open listener to stop, but the inventory interact listeners to never start, resulting in all container-based Honeypots to be disarmed until the next server restart
  • Fixed a bug where breaking a block that was supporting a Honeypot but wasn't, itself, a honeypot (i.e. a torch placed on a block, where the block was NOT a Honeypot but the torch WAS) wouldn't trigger the BlockBreakEvent for the Player who broke the supporting block
    • This inadvertently surfaced a pre-existing, but previously unknown, bug where history events would have AIR logged as the associated block if a Honeypot was broken in this manner. That bug has also been fixed
  • Fixed a bug where regions in different worlds that overlapped on coordinates could be removed when running /honeypot remove
  • Fixed a bug where the Ghost Honeypot Checker was always scheduled on startup, even if it was disabled, until /honeypot reload was run to cancel it
  • Fixed a bug where the "Unsupported Version" message would only show if EVERY version number within the MC version was out of range (year, drop, and hotfix if applicable)
  • Fixed a bug where comparing two Honeypot Regions for equality would always return true
  • Fixed a bug where the message for no-permission would fail to show if a player attempted to use an action in the GUI they didn't have permission for
  • Fixed a bug where servers using versions of Honeypot before 3.4.0 that upgrade to Honeypot 4 or later will lose their Honeypots permanently from the DB
  • Fixed a bug where Honeypot compared versions incorrectly, leading to versions such as 5.1.10 being considered newer than 5.2.0
  • Fixed a bug where Honeypots created past ~16,700,000 blocks would get rounded and be created at a completely different location
  • Fixed a bug where /honeypot history purge required a Player argument even though it wasn't required or necessary
  • Fixed a bug where offline players could not be queried with /honeypot history query [name]

Removals:

  • None

API

Changes & Additions:

  • Added HoneypotPreTriggerEvent and HoneypotTriggerEvent which is called before and after any Honeypot would be triggered
    • This event is called for all player-based events and pistons. Pistons events are called using the NON_PLAYER trigger type
  • Added a new TriggerType for PlayerStore
  • Updated the PlayerStore interface with new methods for utilizing per-trigger event types
  • Deprecated several event types. All of these events are being replaced by HoneypotPreTriggerEvent and HoneypotTriggerEvent, accordingly. HoneypotPreCreateEvent and HoneypotCreateEvent are not deprecated. These will be removed in Honeypot 6.0
    • HoneypotPreInventoryClickEvent
    • HoneypotInventoryClickEvent
    • HoneypotNonPlayerBreakEvent
    • HoneypotPrePlayerBreakEvent
    • HoneypotPlayerBreakEvent
    • HoneypotPrePlayerInteractEvent
    • HoneypotPlayerInteractEvent
  • Added an API to PlayerHistoryStore to allow retrieval of players based on UUID, which allows querying for offline players now.

Bug Fixes:

  • Fixed a bug in which the (now deprecated) HoneypotNonPlayerBreakEvent could be given a neighboring block instead of the Honeypot

Removals:

  • None; see "Changes & Additions" for deprecations, however

Information

Published
October 5, 2026
0Downloads

Platforms

Paper
Paper
26.1–26.2

Dependencies

PaperPaper

Dependencies: Paper

Plugins and libraries a server needs for this version to run.

No dependencies

Add anything a server has to install alongside this version.