NotBounties icon

NotBounties -----

GUI based bounty system with Placeholders and MySQL




Fixed an error that would occur on some servers when a player joined the game.
----------, Feb 20, 2025

Fixed an error that occurred while using the /bountyadmin command with no arguments. You now get the admin commands displayed.

Fixed a bug with some messages getting displayed in silent commands.

Added the /bountyadmin command to the language.yml help.admin section. It will not automatically be added to your file if you update. In case you want to add it, this is what is in the default:
'&9/bountyadmin (player) <bounty command> &7- &dRuns a bounty command for a player.'
----------, Feb 19, 2025

Bounty stats and the leaderboard now require a separate permission: notbounties.stats (given by default)
The help for stat commands is now a separate list in the language.yml file (was previously in the view section). If you have modified the message for the help.view section, then you should move your stat messages to the new help.stats section.

Fixed an error that occurred when using an earlier version of MMOLib
----------, Feb 19, 2025

Added a new option to the config called offline-set. There is an option named the same thing in the random-bounties section, but this one is not under any configuration section to represent that it is a global option for anyone setting a bounty. This option controls whether players can set a bounty on other players who are offline.

{notification} will now be replaced with true if bounty broadcast is enabled, and false if bounty broadcast is disabled.
----------, Feb 17, 2025

Added a new option in the murder-bounty configuration section called multiplicative which allows you to enable or disable a scalar or linear increase of the murderer's bounty.
Code (YAML):
    # whether the bounty-increase represents the percent of the current bounty added, or a flat number.
    # if the multiplicative is set to true, and the current bounty is 0, the bounty will be set to the min-bounty.
    multiplicative
: false
Added a new option in the trickle-bounties configuration section called natural-death-bounty-loss which controls how much of a bounty is lost when a player dies a natural death.
Code (YAML):
  # the percent of the player's bounty that is lost when a player has a natural death (not from another player)
  # 0 = 0%  0.25 = 25%  1 = 100%
  natural-death-bounty-loss
: 0
Fixed a bug that would display the incorrect bounty in some areas after multiple bounties were set on a player.
----------, Feb 17, 2025

You can now change MMOLib stats when you reach a certain bounty. Added a new section to the config.yml file

Code (YAML):
# Config to use with the MMOLib plugin
MMOLib
:
  # whether this feature is enabled
  enabled
: false
  # A stat modifier, 'attack-modifier' can be named whatever you want
  attack-modifier
:
    # The bounty value where this modifier takes place
    # '0-100' will apply this modifier when the player has a bounty in the range 0 (inclusive) to 100 (exclusive)
    # '100' will apply this modifier when the player has a bounty greater than or equal to 100
    bounty
: '0-100'
    # the stat to change
    stat
: ATTACK_DAMAGE
    # the value to change
    value
: 10
    # whether the value will multiply onto the base value or add to it
    multiplicative
: false
  health-modifier
:
    bounty
: '100'
    stat
: MAX_HEALTH
    value
: 10
    multiplicative
: true
You can add or remove the modifier sections. Because the configuration sections are modifiable, they will not automatically appear in your config. If you want to use this feature, copy the whole code above, and paste it at the bottom of the config.yml file. If you are generating a new config, this will be present.

Thanks to WaterArchery for submitting a pull request to fix an error when a player didn't have an island.
----------, Feb 14, 2025

Added a new admin command to run bounty commands for other players with admin permissions.
/bountyadmin (player) <args>
If you generate a new gui.yml, the commands will use this

Added a new config option called maximum-bounty which limits the maximum bounty that can be set on a player

Added a new option to the update notification where you can skip the update.
----------, Feb 11, 2025

Slightly improved the performance of wanted tags.

Fixed a bug when receiving an unknown response from a skin request.
----------, Feb 6, 2025

You can now edit the messages sent to admins who click on a bounty in the GUI to edit it. The following 2 lines will automatically be added to your language.yml file:
Code (YAML):
edit-bounty-clickable : '&6To edit {receiver }''s bounty, &e&lClick this message &6and enter the amount to change. &7 (e.g. 10, -500, or 10k )'
edit-setter-clickable
: '&6To edit {player }''s amount on {receiver }''s bounty, &e&lClick this message &6and enter the amount to change. &7 (e.g. 10, -500, or 10k )'
Fixed a bug when trying to use negative numbers while editing a certain setter which caused the amount to change unexpectedly.
----------, Feb 1, 2025

Fixed a bug when loading bounty maps.
Bounty board will no longer load chunks to update the board.
----------, Jan 25, 2025

Fixed an error that occurred when generating a new player data file. If you get an error starting the server with this version, you need to delete your plugins/NotBounties/data/player_data.json file, and it will regenerate a new one for you.
----------, Jan 24, 2025

Fixed an error that occurred when the proxy is disabled on a specific server in a proxy network.
----------, Jan 24, 2025

Wanted tags will now immediately update when they are disabled in the config and the plugin is reloaded.

An error no longer spams console when NotBounties cannot generate a thread for a skin request.
----------, Jan 22, 2025

Proxy messaging will now only be enabled if the config option is enabled in databases.
Invalid proxy messages from a player will now kick them instead of spamming to the console.
----------, Jan 17, 2025

  • Made changes to bounty posters and bounty tracker items. Bounty maps used to have the chance to overwrite maps created in your world, but not in this update. Consequently, old posters may no longer render depending on your server setup. There is also now an option in the config to disable creating new bounty posters. Bounty trackers should work as normal.
  • The leftover % in trickle bounties will now stay as a bounty on the player instead of being deleted. If configured, you can cause claiming the bounty to only reduce the bounty on the player by a percentage.
  • Added velocity proxy synchronization for velocity. If you add the velocity version of NotBounties to your proxy in addition to the Bukkit version on your backends, bounties and player stats will by synchronized. See this page for the Velocity file.
  • Moved the bounties.yml file into 3 separate files for bounties, player stats, and player data. You can now easily reset one of those by deleting the file. Your old bounties.yml file will automatically be migrated.
  • The %notbounties_wanted% placeholder will no longer show anything if the player has less than the minimum bounty amount
  • Added the broadcast alias for bdc
  • You can now go back pages flawlessly in the tutorial
  • Bounty whitelists now always save after restart
  • Improved tab completion for large servers
  • Added support for SuperiorSkyblock2. You won't be able to claim bounties on members of your island.
  • Fixed a few errors that would pop up.
I am very grateful to everyone who uses this plugin. I want to keep improving it when I have the chance. If you see any bugs, please join the discord server to report them.
----------, Jan 17, 2025

Made some improvements in automatically removing old wanted tags when the server restarts.
----------, Dec 25, 2024

  • Added the color option to custom GUI that works for colorable items. https://github.com/No-Not-Jaden/NotBounties/wiki/Custom-GUI#color
  • You can now use {amount}, {tax}, {amount_tax}, {player1} in the price-select, confirm, and confirm-bounty GUIs
  • Fixed a bug that sends the immunity expire message when you reload the config with time immunity.
  • Doing the /bounty immunity command with time or scaling immunity now displays the amount of immunity you've purchased.
----------, Dec 23, 2024

Fixed a bug that occurred while autosaving with a connected database.

You can now customize the /bounty tutorial command in the language.yml file.
----------, Dec 23, 2024

This is a very very small update. I changed and API key that I use for time zones. If you stay on a previous version and a new player joins, then messages with the time in them will be formatted to use the server's time instead of the players, which isn't that big of a deal. When you update next, it will correct itself.
----------, Dec 17, 2024

Fixed an error on startup when time immunity is being used.

Fixed an error with random bounties.
----------, Dec 8, 2024

Fixed a bug which did not display the player's name in the bounty broadcast when an auto bounty was set.

Fixed a bug where the bounty posters would not always display correctly with ViaVersion
----------, Dec 8, 2024

  • Now using an earlier spigot dependency to have backwards compatibility with all supported versions.
  • Now only the database external dependencies will be loaded through the spigot library loader so platforms that do not have access to that will still have most features.
----------, Nov 19, 2024

Fixed a bug where the bounty for a player would be counted for the all time stat when the bounty was created and when it was claimed. (now only when it is created)
----------, Nov 7, 2024

This is a huge update that has been in the works for many months. The most important change is that only Java 17 and above is supported, which means Minecraft 1.17 and above. Testing for this update was done on 1.20 and 1.21. If you find any bugs, please report them in the discord.

New Features
  • Bounty Challenges. There is a new challenges.yml file to configure challenges. Ex: Claim x Bounties. These are disabled by default, but you can go into the file and enable it. There is also a new challenges GUI. Use /bounty challenges.
  • View bounties with more detail. There is a new view-bounty GUI to display more information on the bounty reward including custom items. The general-currency-item custom item goes with this GUI to display placeholder currency. Use /bounty check (player).
  • override-type option in the bedrock-gui.yml file to override the GUI type (simple, modal, custom)
  • Bounty Click Actions. You can now configure which actions occur when a player clicks a bounty in the main GUI. New configuration section called bounty-gui-clicks in the config.yml file.
  • Trickle Bounties. Added a new config section called trickle-bounties that allows you to control how much of a bounty is claimed, and how much of a bounty you receive from claiming another bounty.
  • New messages in language.yml to go with the new features.
  • Redis is now supported as a database.
  • Backups of your local bounties are now taken automatically. Old backups will be deleted.
  • A new message appears for bedrock players when they open a form.
  • Added /bounty pause command for admins to disable all bounty features except viewing
  • Added player prefix and suffix options in the language.yml file to add text before or after most {player} and {receiever} placeholders in the file
  • You can now specify the inventory-type option for GUIs
  • Added EssentialsX Hook for item values
  • Added _rank suffix to stat placeholders. ex: %notbounties_all_rank% will return your rank regarding your all time bounty
Changes
  • GUI backend changes
  • Data storage backend changes
  • Major SQL changes: SQL requests were reduced significantly. Bounties are now updated from the database every 5 minutes.
  • Renamed SabreFactions to Factions in the config.yml
  • You can now create bounty posters for offline players. @unknown-user
  • There is now a minBounty option in the config for the bounty tracker.
  • Multiple bounties on the same person set by the same person are no longer grouped together
  • Bedrock skin requests are now async
  • Now formatting timezones by player locales if a specific timezone isn't recorded
  • Set bounty statistic is now updated after a bounty is added instead of when the bounty is claimed
  • Added a new bstats chart for active bounties
  • Bounty whitelist will now be disabled by default when generating a new config
  • Disabling bounty whitelists will now allow anyone to claim previously whitelisted bounties
  • buy-items set to false will give back to the setter
  • use-item-values set to false will override min-bounty
  • Offline bounty notification now includes the value of items
  • Changed use-item-values in the config to item-values, and it now is a text option. (the old value will automatically migrate)
  • Changed how databases are represented in the config.
  • Reloading the config will attempt to connect to any configured databases
  • You can now edit the update notification in the language.yml file
  • Whitelist messages now show in the view-bounty GUI
  • The console name can now be used in the view-bounty GUI
  • Dependencies are now downloaded at runtime to reduce the file size for spigot
Bug Fixes
  • Fixed a bug that occurred when removing expired bounties from the SQL database.
  • Using other faction plugins will no longer result in an error when a bounty is claimed
  • Added an extra method to remove stuck bounty boards
  • Requesting a bedrock skin will catch a null returned value.
  • Added an extra check to remove stuck wanted tags
  • You can now modify the number formatting divisions and wanted tag level properly.
  • Removed entities message is no longer formatting for currency
  • Fixed a bug that prevented skins from loading in the bedrock GUIs.
  • Fixed a bug that would display the wrong player in the bounty-item-select GUI.
  • Fixed a bug that allowed bedrock players to steal items from the GUI if they transitioned from a java GUI to a bedrock form
  • Fixed a bug that caused {slot<x>} placeholder in GUI items to always return the player who opened the GUI
  • Skin requests will only create a maximum of 2 extra threads
  • Fixed a bug that occurred when registering the bounty tracker recipe
  • The bounty list in chat is now consistent with the GUI
----------, Nov 6, 2024

  • Fixed a bug that caused too many threads to be created and gave an "Out of Memory" error
  • Optimized storage of posters
  • Fixed a bug that stopped time-zones from loading
  • Fixed a bug that stopped bedrock players from being recognized
----------, Jul 4, 2024

You no longer need Floodgate or Geyser on the server to get bedrock skins on a server.
----------, Jul 3, 2024

Using Collections.reverse() now to support older version of java
----------, Jul 3, 2024

  • Bedrock xuids are now stored when the player joins so their skins can be requested when they are offline.
  • Fixed a bug where heads in the GUI would revert back to a default skin
  • Floodgate is no longer required to get a skin (but is preferred)
----------, Jul 2, 2024

Fixed a bug that prevented webhooks from being executed.
----------, Jul 2, 2024

  • Fixed an error when requesting skins
  • Skins for players in the GUI will now be loaded more consistently
  • Fixed an SQL sorting bug
  • Optimized sorting of bounties
----------, Jul 2, 2024

  • Now using HttpClient5 for skin requests
  • Fixed an error that would occur when requesting a skin without the proper dependencies
  • Skin requests are now limited to ~200 / min
  • Skin requests will start for players with bounties when the server starts
  • Added SabreFactions to team checking. There isn't much right now you can do with this, but in the future, you will be able to set bounties on teams.
  • Added any-kill to the reward heads section to drop a head when any kill occurs
----------, Jun 30, 2024

Fixed a bug where worldguard would always override pvp restrictions.
Fixed a bug where projectiles would bypass pvp restrictions
----------, Jun 28, 2024

This is a huge update. All features have been tested, but there may still be bugs. If you find one, please report it in the discord.
This version has been tested on 1.21
New Features:
  • Getting player skins in offline mode without Skins Restorer
  • Empty Tracker items that can be crafted. Players will discover the recipe after they set a bounty. These trackers can be turned into Bounty trackers with a command, clicking a bounty poster, or by crafting it with a player head.
  • Bounty Posters can be crafted with an empty map and a player head
  • Bounty Posters and Bounty Trackers can be washed in a cauldron to get an empty map or empty tracker
  • Players can place any item as a bounty with all the item data kept. This is a separate feature from the currency which can be enabled in the bounty-items section in the config.
  • Added {notification}, {mode_raw}, {tax}, {bounty_currency}, {bounty_item_values}, & {bounty_items} as placeholders
  • bedrock-gui.yml dropdown components can use the {player} placeholder to display online players and use [@ll] in the commands to execute a command with all players
  • death tax override for combat logging
  • PVP flags for Worldguard regions (only tested for 1.20.6)
  • A sound will now be played while items are being given to the player
  • The default gui.yml file will have a settings GUI
  • Added hide-tooltip option for custom items (version 1.20.6 or higher)
  • Added a steal-bounties option in the config that lets you steal your own bounty if you kill the player who set it on you
  • Added the plugin-bounty-commands config option that lets you control which command aliases are used and which command the plugin uses when forcing players to run something
  • You can now use -s in commands to make them silent (excluding setting a bounty)
Changes:
  • Skins are now loaded more efficiently
  • Bedrock toggle components can use a placeholder for the default state
  • You can now use {items} in the list-setter message in the language.yml file to display the items on the bounty. (used with the /bounty check command)
  • Wanted tags become smart... They will slow down updating if they cause server lag
  • Items will stop being given if the player disconnects
  • You can now specify on/off for the /bounty bdc command
  • Moved the error message when a hidden player name couldn't be converted to a uuid when using sql
  • Bounty board checks are no longer done when nobody is online
  • The combat-safe message will now be sent when a player dies while combat logged
Fixes:
  • Fixed an SQL memory leak
  • bedrock-gui.yml can now be updated
  • Bedrock GUIs now work with a proxy
  • Skins are no longer loaded for GUIs that don't display them
  • Tracker tab complete now works as intended
  • Reward heads get the right lore
  • Bounty boards no longer update in-game every interval while using SQL
  • Fixed a bug where the combat tag message would be sent every time someone hit you
  • Fixed a double webhook message
  • Big bounty is now triggered if you place a bounty directly on the threshold
  • Opped players now have perms to do /bounty tracker (player)
  • Fixed a bug where top bounties with sql would only return the first player
  • Tutorial command now parses the prefix
  • You can no longer go out of bounds with the help command
----------, Jun 28, 2024

  • Optimized all of the skin requests for player heads or bounty posters
  • Created a Velocity version of NotBounties that currently only sends over skin information from SkinsRestorer, but will sync more information in the future. You can download it here.
  • You can now add "_name" to the end of the top placeholder to get the name of the player in that position. Ex: %notbounties_top_1_current_name% will get the name of the player with the highest active bounty.
  • Fixed a bug where you needed a space at the end of custom model data
----------, May 6, 2024

Fixed a few bugs that were found in 1.20.5.
If you find any more, please send me a message here or in the Discord Server.
----------, Apr 27, 2024

Looks like when I compiled the last version, some files did not appear, so this is a recompiled version of the last update.
----------, Apr 23, 2024

  • Added %notbounties_total% placeholder for the total bounties on the server (receiver wise) and %notbounties_total_unique% for the total bounties (setter wise)
  • Added a couple of options in the config under wanted-tags to control the update rate
  • If give-own is enabled for bounty trackers or posters, you can obtain them by right or left clicking the player in the bounty gui if you do not have the notbounties.admin permission. A few extra messages have been added for this in the language.yml file.
  • Added a cooldown for giving yourself a poster or tracker
  • Added a see-player-list option in the config that will add an extra check for vanished players. The reason this is an option is that some plugins may interfere with it.
  • Fixed a bug where players on other servers connected with SQL wouldn't show up in the online players
----------, Apr 22, 2024

  1. Fixed an error that would pop up if you clicked the player head in the confirm-bounty GUI
  2. Fixed a bug that would reduce the number of players shown on the leaderboard if one of the removed players were in the hidden-names list
----------, Apr 16, 2024

  • Fixed a bug where you couldn't select players after page 1
  • Vanished players won't show up in the set-bounty GUI or the set-whitelist GUI
  • Immune players won't show up in the set-bounty GUI
  • Fixed a bug where the {max_page} placeholder wasn't displaying properly
  • Fixed a bug where timed bounties would cause an error on versions below 1.17
  • Fixed a bug that restricted sending webhooks without embeds
  • Fixed an error that would occur when returning to the price select GUI and trying to decrease the price
----------, Apr 14, 2024

Fixed a bug where the balance of some players without a vault account would produce an error.
----------, Apr 13, 2024

Fixed a bug where items would not be properly added or removed in some specific configurations
----------, Apr 13, 2024

  • Added a cooldown if an API request returned an error
  • Cached API values
  • Avoided unnecessary calls to functions when a message was being parsed
  • Added an option in the config to change wanted tag update time
  • Fixed bugs with the GUI and doing actions with cracked offline players
  • {time} will now show the timezone
Performance issues should be fixed in this update, but I don't have a large server to test it on, so if you are still having issues, please report it in the discord.
----------, Apr 12, 2024

Combat Logging
  • Added more options under the pvp-restrictions configuration section
  • Added 2 new messages in the language.yml file for a combat tag and the tag expiring
Code (YAML):
  # claim bounties if players combat-log
  combat-logging
:
    # time in seconds that a player must be without combat to log out without losing their bounty - 0 to disable
    time
: 0
    # send the combat-tag and combat-safe messages when they are tagged
    send-message
: false
This works alongside the other pvp-restrictions, so the worlds declared in the pvp-restrictions section will apply to combat logging. To disable the whitelist, just set worlds to an empty list: worlds: []
If you want to only use combat logging, set the rule to 0.

Additional Vanish Detecting
  • The wanted tags will now disappear for vanish from more plugins, specifically VanishPremium
  • If this is not the case for a plugin, let me know, so I can add it
Time Zone Formatting
  • Time in messages is now formatted in the timezone of the players.
  • This is not used much, but the most common case is with the command: /bounty check {player}
  • You can disable this with the auto-timezone option in the config
----------, Apr 9, 2024

Fixed a bug where the first bounty poster reward wouldn't get loaded when the switch to the backup font is made.
----------, Apr 2, 2024

Fixed a bug where bounty commands couldn't be run in the console
----------, Apr 1, 2024

New prompt settings in the config!
Code (YAML):
# prompt feature settings for action commands
prompts
:
  # how many attempts the player gets before the prompt is canceled
  attempts
: 5
  # typing these words in chat will exit the prompt
  cancel-words
:
   - 'cancel'
    - 'exit'
  # the time the player has to type in an answer to the prompt before it times out
  # in seconds
  time-limit
: 30
  • Multiple attempts for prompts if an incorrect input is used
This will work for any bounty commands. If you want to prompt a command from a different plugin, you can specify an answer type in the prompt.
Code (Text):
Using a bounty command:
'[pprompt] bounty {slot13} <&eEnter in chat the bounty amount or type "cancel" to cancel.>'

Using other commands for a player name input:
'[cprompt] give <PLAYER~&eEnter in chat a player name or type "cancel" to cancel.> DIAMOND 1'

Using other commands for a number input:
'[cprompt] give {player} DIAMOND <NUMBER~&eEnter in chat a number or type "cancel" to cancel.>'
  • Cancel words for prompts
  • Time limit for prompts
The amount of commands have increased to be quite long in chat, so I've transitioned them into different pages sorted by their function.
----------, Apr 1, 2024

  • Expire time now works accurately after being broken from a recent update
  • Fixed a bug where /bounty check used the wrong name in the message
  • Increased the amount of time between bounty tag updates
----------, Mar 19, 2024

Added 3 new permissions for auto bounties
  • notbounties.immunity.murder
  • notbounties.immunity.random
  • notbounties.immunity.timed
These permissions will stop the related auto bounties from being set on the player.

Added a new option to override regular immunity for auto-bounties (not the immunity listed above)
Code (YAML):
  # players with immunity will be able to have bounties set on them by auto bounties
  # this does not override the permission specific immunities like notbounties.immunity.murder
  override-immunity
: true
The front page will be updated with these permissions and last update's addons soon.
----------, Mar 19, 2024

Added 3 new plugin integrations:
  • WorldGuard with claim-bounties flag
  • KingdomsX for team claiming
  • Lands for team claiming
The teams configuration section has been updated since 2 more team plugins were added.
Code (YAML):
# allow players on the same team claim each-other's bounties
teams
:
  # claim if on the same scoreboard team
  # some plugins use scoreboard teams, so disabling this may break claiming bounties
  scoreboard-claim
: true
  # players with the same placeholder result will not be able to claim each other's bounties (Must have PlaceholderAPI installed)
  # ex: '%luckperms_prefix%' would prevent anyone with the same prefix from killing each other
  placeholder
: ''
  # <===> BetterTeams <===>
  better-teams
:
    # claim if on the same BetterTeams team
    team
: false
    # claim if allied with each other's BetterTeams team
    ally
: false
  # <===> TownyAdvanced <===>
  towny-advanced
:
    # claim if in the same nation
    nation
: false
    # claim if in the same town
    town
: false
    # claim if nations are allied
    ally
: false
  # <===> KingdomsX <===>
  kingdoms-x
:
    # claim if in the same nation
    nation
: false
    # claim if nations are allied
    nation-ally
: false
    # claim if in the same kingdom
    kingdom
: false
    # claim if kingdoms are allied
    kingdom-ally
: false
  # <===> Lands <===>
  # The claim_bounty flag can be used
  lands
:
    # claim if in the same nation
    nation
: false
    # claim if nations are allied
    nation-ally
: false
    # claim if they are trusted in each other's lands
    land
: false
    # claim if lands are allied
    land-ally
: false
Bug fixes:
  • Fixed a bug where players or admins couldn't remove bounties
  • Fixed a bug where you couldn't use items without metadata in the GUI. Credit to srnyx.
----------, Mar 16, 2024

Really small update here but helpful if you are modifying the GUI file.
  • NotBounties no longer overwrites files when it detects an error
  • Fixed an error when reloading the plugin from the console
  • Added an error when loading GUIs and the slots are outside the GUI
  • Added a comment in the default gui.yml file
----------, Mar 10, 2024

There are many new changes in this update. I thank everyone who added suggestions or bug reports in the discord. Without them, the plugin would have never gotten this big.

Changes
  • Added built in Webhooks for discord in the webhooks.yml file
  • Added a bounty-expire configuration section in the config
  • Added bounty expire offline tracking option
  • Added an option in the bounty-expire section to reward the receiever when the bounty expires
  • Added a bedrock-gui.yml file that uses the bedrock UI. (This file is similar to gui.yml, but with added complexity)
  • Big bounty commands, bounty claim commands, and GUI commands have been synced with the actions you can do in them.
  • Added [broadcast] action for the commands in the config
  • Added different types of triggers for the big bounty commands (see big-bounties config section)
  • Divisions can now be used in inputs. Ex: /bounty Not_Jaden 1K will work to set a bounty for 1000
  • Raw values can now be obtained from most placeholders by adding "_value" to the end of the placeholder
  • Players can remove their set bounties with the notbounties.removeset permission (default false) and the command /bounty remove (player)
  • New messages in langugage.yml for added commands
  • The GUI names are now fully parsed like all other messages
  • Added a few whitelist commands: /bounty whitelist toggle <whitelist/blacklist> /bounty whitelist toggle (player)
  • Leaderboard values are properly formatted (Right?)
  • A lightweight attempt in autocompleting player names is now used if you don't finish a player's name in a command
  • Added some new built-in placeholders: {whitelist<x>} = Whitelisted player at index x. {whitelist} = All players in the whitelist. {mode} = Whitelist/Blacklist. {min_expire} = Time until part of the parser's bounty expires. {max_expire} = Time until all of the parser's bounty expires. For the GUI titles: {page} = page of the GUI. {page_max} = max page of the GUI
  • Added self-setting option in the config to allow or disallow players from setting bounties on themselves
  • View other's stats with /bounty stat (stat) (player) and edit their stats with /bounty stat (stat) (player) (setValue/edit) (new value/change)
  • The broke message will now be sent before the confirmation GUI
  • /bounty buy now opens the buy confirmation GUI
  • Added a check for persistent bounty entities near where players join
  • Added the command /bounty cleanEntities <radius> to remove any persistent entities that the plugin missed
I'm still working on updating the Wiki with new features, so if you have any questions, feel free to ask them in the discord.
----------, Mar 8, 2024

In this update, these suggestions were implemented:
  • Bimodal currency option to use two different currencies for adding and removing. To use, set add-single-currency to BIMODAL and use a list for the currency option like with multiple currencies. The first currency is the add currency and the second is the remove currency.
Code (YAML):
  # if you are using multiple currencies
  # descending - currency will be given in descending order of weights
  # first - only the first currency in the object list will be given
  # ratio - a ratio of the currencies with their weights will be given
  # bimodal - add the first currency, remove the second
  add-single-currency
: BIMODAL
  • Partial manual economy so auto bounties will give money.
Code (YAML):
  # this option will change how involved NotBounties will be with currency transactions
  # AUTOMATIC - NotBounties will do all the currency transactions
  # PARTIAL - NotBounties will only do the currency transactions for auto-bounties
  # MANUAL - NotBounties will not do any currency transactions, but will run the remove and add commands
  # I suggest pairing this up with the redeem-reward-later option for a voucher of proof
  manual-economy
: PARTIAL
  • Changed force-death-event to claim-order, and you can now set it to be claimed when the players respawn
Code (YAML):
# Change the order when the bounties are claimed event wise
# BEFORE, REGULAR, or AFTER can be used
# do not change this unless you know what you are doing
claim-order
: REGULAR
Other Changes:
  • Fixed a bug that gave an error in the GUI
  • Immunity time is formatted in the help message
  • Lots of internal changes with immunity to optimize and clean code
  • Added offline-tracking option for immunity
  • The help messages in language.yml will now display when players mistype a command
  • Fixed a bug where reloading the config would give an error
Planned future features:
  • Skinsrestorer hook on a proxy and eventually proxy based bounties
  • Discord webhooks
  • Challenges
  • Bounty expire time option for auto bounties
  • Bounty expire offline tracking option
  • Edit other player's bounty stats
  • View specific player stats
I've started my spring semester of school recently, so updates will be coming out slower. Fixing bugs will be a higher priority for me, so if you see anything, report it in the discord.
----------, Jan 28, 2024

Uh, I definitely did not accidentally put 1.7.1 instead of 1.17.1
----------, Jan 19, 2024

  • Random bounties will no longer give an error if offline-set is enabled
  • Bounties set by the server will no longer be refunded to random players
  • Errors will no longer occur with certain GUIs\
  • Added bstats and a config option to turn it off
----------, Jan 19, 2024

Bounty Claim Commands
  • Added new conditional that will check a placeholder for a value before executing a command
Code (YAML):
  # adding ~{player/killer({placeholder/material} {<|>|>=|<=|=|!=} {value}) will check a placeholder or material value before executing - The squiggly brackets are just to show the possible values
  #  checking a material value of the player will not work unless they have respawned
  #  This will message the killer if they have the bounty notification enabled
  #  ex: ~killer(%notbounties_notification% = true) [message_killer] &eYou have claimed &6%notbounties_kills% &ebounties.
  • Added a message action to use the NotBounties prefix
Code (YAML):
  # starting with [message_player] will message the player with the NotBounties prefix
  # starting with [message_killer] will message the killer with the NotBounties prefix
  • Added 3 new built-in placeholders
Code (YAML):
  # {amount} is replaced with the bounty value
  # {bounty} is replaced with the formatted bounty value
  # {cost} is replaced with the formatted bounty value wrapped with the currency suffix and prefix
Timed Bounties
  • Added a new feature that will automatically set bounties for surviving a set amount of time
Code (YAML):
# add bounties after a set amount of time
timed-bounties
:
  # the time in seconds before the next bounty is set - 0 to disable
  time
: 0
  # how much the bounty will increase
  bounty-increase
: 10
  # bounty amount that the player needs for timed-bounties to stop setting bounties - 0 to disable
  max-bounty
: 0
  # reset the timer when the player dies
  reset-on-death
: true
  # time will be tracked when the player is offline, and bounties will be set while they are offline
  offline-tracking
: false
Other Changes
  • Random bounties can now get online players through MySQL if you are connected to a database
  • Expire time can now use decimals
  • You can now translate the help message
  • Added a force death event feature for servers with programs that block it
  • Added an extra message to the update notification to disable it
  • Currency add and remove commands will now be executed if manual-economy is enabled;
  • Added Geyser support
----------, Jan 16, 2024

  • Fixed a bug where MySQL would bug out on obtaining a bounty
  • Fixed a bug where old databases wouldn't convert properly
  • Added a new offline-set option under random-bounties that will enable or disable setting random bounties on offline players
----------, Jan 12, 2024

Quick fix to get wanted tags to disappear when players are invisible
----------, Jan 11, 2024

  • Now getting skins for the bounty posters directly from Mojang because the site previously used went down
  • Fixed a bug where you couldn't have an extra '>' in the prompt GUI commands
----------, Jan 10, 2024

Manual Economy
  • Added a new configuration option in the currency section called manual-economy
  • Enabling this will stop NotBounties from giving or removing currency. Players will still need a sufficient balance to set bounties, but they need to claim the reward manually from the players who set it
  • I suggest enabling redeem-reward-later in the config to keep track of who set each reward, and while you are at it, change the lore of the voucher in the language.yml with the option bounty-voucher-lore
Code (YAML):
bounty-voucher-lore :
 - ''
  - '&2Awarded to {receiver }'
  - ''
Redeem Reward Later Changes
  • Moved the redeem-reward-later option closer to the top of the config and made it a configuration section
  • The voucher-per-setter will give the bounty claimer a voucher for every person who sets a bounty
  • The setter-lore-addition will add a line to the lore for each setter. It is useful if you only want one voucher given out
  • In language.yml, the bounty-voucher-lore and bounty-voucher-name will now use {amount} for the voucher amount and {bounty} for the bounty amount
Other Changes
  • [pprompt] and [cprompt] in GUI commands now have an event priority of LOWEST
----------, Jan 9, 2024

Towny
  • NotBounties will now hook into TownyAdvanced
  • Added 3 new config options to stop players on the same town or nation from claiming each other's bounties
Code (YAML):
teams :
  # <===> TownyAdvanced <===>
  # claim if in the same nation
  towny-nation
: false
  # claim if in the same town
  towny-town
: false
  # claim if nations are allied
  towny-allies
: false
PVP Restrictions
  • Added a new configuration section to restrict PVP in certain worlds
  • The restrictions are based on bounties
Code (YAML):
# restrict PVP
pvp-restrictions
:
  # worlds to restrict PVP
  worlds
:
   - pvp_restriction_world
  # pvp rules
  # 1 - players can only damage other players with bounties
  # 2 - players can damage other players with bounties and those players can fight back
  # 3 - players can damage other players with bounties and players with bounties can damage anyone
  rule
: 2
  # if rule is set to 2 - the time in seconds that players with bounties can fight back after taking damage from another player
  pvp-time
: 60
Other Changes
  • Added a new option for bounty-claim-commands to run for specific bounty amounts
Code (YAML):

  # adding >(amount) or <(amount) at the beginning will only run the following command if the claimed bounty was greater or equal to the amount
  #  This tempbans the player if they had a bounty claimed greater than or equal to 2500 currency
  #  ex: >(2499.99) tempban {player} 1h
  • Ban checks are now always async
  • Wanted tags will no longer show in spectator mode
----------, Jan 8, 2024

GUI Prompt
  • added a new action in the commands section for custom items
  • [pprompt] (command) <what value> - closes the GUI and prompts the player for a value - player executes the finished command
  • [cprompt] (command) <what value> - console executes the finished command
  • ex: '[pprompt] bounty {slot13} <&eWhat amount?>' prompts the user to enter the bounty amount of a player
API Additions
  • Added BountyEditEvent and BountyRemoveEvent
  • Updated the wiki with some more useful information
----------, Jan 4, 2024

For most server owners, this is not a version that needs to be installed. Since the last version, code was cleaned up and bounty-related methods were all moved to one class. 2 events were added on claiming bounties and setting bounties.

For more information about the API, look at the wiki page
----------, Jan 2, 2024

  • Fixed a bug where the GUI didn't load on some server builds
  • SkinsRestorer can now be used to obtain player heads
  • Player names are more accurately obtained in the GUI
----------, Dec 24, 2023

  • If your server host does not have a font config or you do not have access to it, a backup font will be used for bounty posters.
  • Custom model data will be applied to currency items given to the player if specified
----------, Dec 20, 2023

Poster
  • You can now use {amount} in the name of the poster item
Bounty Board
  • Added 2 new config options in the bounty board section called item-name and update-name
  • item-name is the name of the map item on the board
  • update-name is how often the name of the map should be updated
  • I'd recommend if you have {amount} in item-name to set the update-name to 1
Fixes
  • Wanted tags now display correctly in 1.16
  • Reward text on bounty maps will now display correctly in 1.16-1.17
  • Custom heads with base64 now work in 1.16-1.18
----------, Dec 11, 2023

Fixed a bug where some items wouldn't display in the GUI
----------, Dec 7, 2023

Team Checking
  • Added a new configuration section called teams
  • You can now disable bounties being claimed on players on the same team
  • Works with scoreboard teams and BetterTeams teams and allies.
  • If you want to use another team plugin, there is a placeholder option that will compare placeholders between players. Players with the same placeholder values will not be able to claim eachother's bounties.
Code (YAML):
# allow players on the same team claim each-other's bounties
teams
:
  # claim if on the same scoreboard team
  # some plugins use scoreboard teams, so disabling this may break claiming bounties
  scoreboard-claim
: true
  # players with the same placeholder result will not be able to claim each other's bounties (Must have PlaceholderAPI installed)
  # ex: '%luckperms_prefix%' would prevent anyone with the same prefix from killing each other
  placeholder
: ''
  # claim if on the same BetterTeams team (Must have BetterTeams installed)
  bt-claim
: false
  # claim if allied with each other's BetterTeams team
  bt-allies
: false
Multi-Currency Update
  • add-single-currency now has 3 options: first, ratio, and descending
  • true was changed to first, and false was changed to ratio
  • Descending is new and will add the weights in descending order
  • Add commands not tied to a currency will be executed if add-single-currency is set to first
  • Added the ability to use custom model data in currency items
  • Currency with values greater than 1 will now more accurately be removed, and any excess used will be given back.
  • See this new wiki page for more information
Code (YAML):
  # descending - currency will be given in descending order of weights
  # first - only the first currency in the object list will be given
  # ratio - a ratio of the currencies with their weights will be given
  add-single-currency
: descending
Placeholders
  • Added 2 new placeholders:
  • %notbounties_notification% - returns "true" if the player has bounty broadcast enabled, otherwise, returns "false".
  • %notbounties_mode% - returns "Whitelist" or "Blacklist" depending on the whitelist mode
  • Big Bounty commands are now parsed with PlaceholderAPI
Other Changes
  • added the ability to play sounds in bounty claim commands and GUI commands
Code (YAML):
  # using [sound_player] (SOUND_ID) <VOLUME> <PITCH> will play a sound for the player
  # using [sound_killer] (SOUND_ID) <VOLUME> <PITCH> will play a sound for the killer
  # vvv GUI commands can only use this one vvv
  # using [sound] (SOUND_ID) <VOLUME> <PITCH> will play a sound for everyone near the death
  • Fixed a bug where the SQL data table wouldn't update from an old version
  • You can now use lists in the GUI layout slots
  • Fixed a bug where logged players would get deleted on database migration
----------, Dec 2, 2023

You can now customize the reward head name and lore. These options are available in the language.yml file.
----------, Nov 18, 2023

  • Fixed a bug where wanted tags would show up below the minimum
  • Fixed a bug where the leaderboards wouldn't track data correctly
  • Fixed a bug where the leaderboard GUI wouldn't display the correct numbers
  • Bounty board now excludes players in the hidden names list
----------, Nov 16, 2023

Fixed a bug where the wanted tags would not be loaded in when teleporting above a player and causing an error.
----------, Nov 15, 2023

Bounty Map
It has come to my attention that rendering bounty maps is very server-intensive with a lot of bounty boards, so I've made some changes to minimize the lag.
  • Added a new config option under bounty-board called staggered-update. This will control how many boards update per update interval.
  • Bounty maps are now created asynchronously.
GUI
  • Page items will now be replaced with air if there is nothing else to replace them with and replace-items is set to true
  • You can now toggle offline players in certain GUIs instead of having to exit the GUI
  • Added [offline] as a custom item action. This will toggle offline players in the set-whitelist and set-bounty GUIs. The old action will still work.
  • Going to the next page now accurately shows all players
----------, Nov 10, 2023

Fixed a bug where the wanted tags and the bounty board would not be deleted when the server stopped. This will not delete any old bounty entities, only new ones that are created.

If you find any that you want to delete, you have to use a kill command. If you had a bounty board, there is a high probability that there are extra item frames there. ex:
Code (Text):
/minecraft:kill @e[type=glow_item_frame,distance=..5]
this will remove all glow item frames in a 5-block radius

Also, I'm back to Semantic Versioning
----------, Nov 9, 2023

Fixed an error that would show up if you had a certain number of bounties and banned player checks enabled
----------, Nov 9, 2023

I should probably stop rushing to get these updates out...
Last update works now.
----------, Nov 9, 2023

Messages are now colored after placeholders have been set
----------, Nov 9, 2023

Fixed an error with connecting to SkinsRestorer
Fixed an error when checking for banned players
----------, Nov 8, 2023

Changes:
  • NotBounties now hooks into SkinsRestorer to use skins on bounty maps
  • Added another section to the currency setup to override Vault
  • Optimized the banned player check
Bug Fixes:
  • Fixed an error that would occur when clicking certain spots in the leaderboard GUIs
  • Fixed a bug where bounty boards would change to facing north when loading in
  • Fixed an error that would occur with bounty maps when the server stopped
----------, Nov 4, 2023

Bounty Board
  • New Bounty Board feature was added that lets you track top bounties on posted bounty posters. The posters will auto-update as new bounties are added.
  • Setup the bounty board by running /bounty board and punching where you want the poster
  • Other commands include /bounty board <rank> to set a specific poster for a leaderboard rank, /bounty board remove to remove a specific bounty board, and /bounty board clear to remove all the bounty board posters
  • There is a new configuration section that allows you to customize some parts of the bounty board
Code (YAML):
bounty-board :
  # 0 oldest bounties
  # 1 newest bounties
  # 2 top bounties
  # 3 lowest bounties
  type
: 2
  # how many seconds between the board updates - minimum of 2 seconds
  update-interval
: 5
  # glow item frame
  glow
: true
  # invisible item frame
  invisible
: true
PlaceholderAPI Fixes
  • Leaderboard placeholders now work again (Idk how they broke)
  • _full ending now returns a completed message
  • _formatted ending will only have currency prefix/suffix for the stats that require it
  • Added a new ending _value that will return just the value of the placeholder unformatted
Other Changes
  • Added a new stat called Current. This can be used to see the top current bounties with leaderboards if the regular GUI is sorted differently
  • Optimized code in many areas
  • Bounties can now be sorted in different order if you are connected to a database
  • Fixed a bug where an error would occur when migrating data
Let me know if you experience any bugs or have any suggestions. You're feedback in very important to me! If you want a fast response, send a message in the discord.
----------, Oct 24, 2023

Wanted tags:
  • Added a new config option to have tags above a player's head for their bounty
  • Added a new placeholder to use the tag elsewhere: %notbounties_wanted%
Code (YAML):
# add a tag above a player's head if they have a bounty
wanted-tag
:
  enabled
: true
  # how high above the player's eyes the tag is
  offset
: 0.4
  # text above the player
  text
: '&f {level } &6&lWANTED&f : {amount }'
  # minimum bounty to display tag
  min-bounty
: 100
  # hide the tag when sneaking
  hide-when-sneaking
: true
  # text for certain levels of bounty
  level
:
    # minimum bounty amount: text
    1000
: '&f☠'
    2500
: '&c☠☠'
    5000
: '&4☠☠☠'
[​IMG]
Other changes:
  • Fixed a bug that caused PlaceholderAPI to produce an error when creating a bounty map
Thanks @Ricozaur for the suggestion
----------, Oct 18, 2023

Changed only a few things in this update:
  • Color is parsed after placeholders in bounty maps, so placeholders with color will be translated
  • PlaceholderAPI dependency has been updated
  • The reward line in bounty maps won't add more than one {reward}
----------, Oct 7, 2023

Added a new section in the config called bounty-claim-commands that runs commands when a bounty is claimed.
Code (YAML):
# commands to be executed when a bounty is claimed
  # {player} is replaced with the person whose bounty was claimed
  # {killer} is replaced with the person who claimed the bounty
  # starting with [player] will run the command for the person whose bounty was claimed
  # starting with [killer] will run the command for the person who claimed the bounty
  # starting with nothing will run the command as console
  # adding @(player/killer)permission or !@(player/killer)permission before everything with check for a permission of the player or killer to run the command
  # This will check if the killer has the permission and will message the person they killed
  # ex: @(killer)notbounties.view [killer] msg {player} It wasn''t personal.
  # a command that is just <respawn> will force the player to respawn. This is useful if you want to tp them somewhere after they die
  # You can use placeholders, but they will always be parsed for the player who died
bounty-claim-commands
:
- <respawn >
- '@ (killer )notbounties.view [killer ] msg {player } It wasn''t personal.'
- execute run tp {player } 138 100 319
The default config will generate an empty list with no commands
----------, Sep 27, 2023

Ban Checking:
  • Added an option in the config called remove-banned-players that will check for bounties with banned players every 10 minutes and remove them
  • Supports vanilla banning and LiteBans banning
  • Random bounties will no longer be placed on banned players
Bounty Poster Changes:
  • The reward text will now be centered
  • You can now customize the name line
  • Placeholders and chat colors can now be used
Here are the new config options in bounty-posters and a little bit more about them
Code (YAML):
  # The line right below the player head
  # placeholders can be used in here, but will only get updated every server restart if save-templates is false
  # Long text here may make the names illegible
  name-line
: ' {name }'
  # always update the map even if the bounty hasn't changed
  always-update
: false
  # save created maps to be used later - player heads will not change unless the player changes their name
  save-templates
: true
  # delete all the saved poster templates in the NotBounties/posters folder
  # set this to true if you change anything about what is displayed on the poster besides reward-text and currency-wrap
  # this will be set to false again automatically after a clean has been done
  clean-posters
: false
If you are using placeholders, I suggest setting save-templates to false and always-update to true. This will keep the maps updated but also increase the load on your server

Other Changes:
  • Added /bounty debug command
  • Fixed a bug where an error would occur when typing bounty in console
  • Bounties removed because they were expired, removed by an admin, or because the player was banned, will now refund the setters. If vault is hooked in, it will refund the setters right away; otherwise, refunds will occur when the setters log in.
  • Fixed a bug where the notified message was sent even if the player was already notified
Thanks for all the suggestions and bug reports. If you have any problems, shoot me a message or joining the discord server. (I respond much quicker on discord)
----------, Sep 23, 2023

Bounty Blacklist
  • If enabled in the config, players can toggle their bounty whitelist into a blacklist with /bounty whitelist toggle
  • New messages in the config
Bug Fixes
  • Bounties on 1.16 won't give an error when placing
  • There is now another check for players for setting a bounty on an offline player
  • If you update to a newer version that isn't loaded in your cache, you won't get an update notification anymore
----------, Sep 14, 2023

Vault will now auto-integrate with the plugin. There is a new option in the currency config section called override-vault. If you have previously set up the currency, this will be true and Vault will not be directly integrated. If this option is false, Vault will be used instead of your currency object if Vault is enabled.

The leaderboard placeholders will no longer always return <???> for player names
----------, Sep 2, 2023

Fixed a bug where an empty font file would stop the plugin from starting
----------, Aug 31, 2023

Added a new permission called notbounties.player that controls all of the following permissions:
  • notbounties.set
  • notbounties.view
  • notbounties.buyown
  • notbounties.buyimmunity
  • notbounties.removeimmunity
  • notbounties.tracker
  • notbounties.whitelist
  • notbounties.basic
Added a new config section that allows you to set random bounties on players that have joined the server before
Code (YAML):
# set a random bounty every once in a while
random-bounties
:
  # minimum seconds between next random bounty - 0 to disable
  min-time
: 0 # 86400 seconds in a day
  # maximum seconds between next random bounty
  max-time
: 0
  # minimum bounty price
  min-price
: 10
  # maximum bounty price
  max-price
: 100
The notbounties.view permission now blocks players from viewing bounties in the GUI
----------, Aug 30, 2023

Murder Bounties
  • You can have bounties increase when players kill other players
  • If your config is already loaded, you will have to enable it
  • New message in language.yml
    Code (YAML):
    # add a bounty if a player kills another player
    murder-bounty
    :
      # How many seconds before you can kill the same person and increase your bounty
      player-cooldown
    : 360
      # how much the bounty increases per player kill. Consider raising minimum-broadcast if you change this if you don't want a message in chat
      bounty-increase
    : 10
      # you will be excluded from the bounty increase if you are claiming another bounty
      exclude-claiming
    : true
Other changes:
  • Added console-bounty-name option in the config. Bounties set by console or by murdering other players will have this name as the setter.
  • Added a new permission called notbounties.basic that is required to use /bounty bdc, /bounty help, and /bounty tutorial
  • Fixed a bug where /whitelist set would remove duplicates in current whitelist and new whitelist
  • The minimum broadcast value in the config now applies to claimed bounties
  • Switched player and receiver for the set bounty broadcast
  • Fixed a bug where the bounty broadcast would display for an empty bounty
----------, Aug 27, 2023

Changes:
  • You can now use placeholders in the GUI titles
  • Added an option in the config to show all bounties regardless of whitelist called show-all-bounty
  • Added an option in the config to be able to change your whitelist after you called variable-whitelist
  • Fixed a bug where the bounty claim broadcast had switched players
  • The GUI will now be reopened when the plugin is reloaded
  • whitelist-lore and whitelist-notify can now be multiple lines
  • not-whitelisted-lore will display in /bounty check
  • bounty whitelist will now show whitelisted players even if they are offline
  • Added /bounty tutorial
Overall, there are a bunch of small changes. The title pretty much sums up the important parts.
----------, Aug 20, 2023

Bug Fixes
  • Fixed a bug where loading a new GUI.yml file would disable the plugin
  • Select Price GUI will no longer freeze
  • The price in the buy back GUI is now accurate to the decimal
  • Fixed a bug where setting a bounty would produce an invalid player
Changes:
  • Buy back lore has been moved to language.yml
  • Admin buy edit lore has been added to language.yml
  • You can now open the select-price GUI with /bounty (player)
  • You can use {amount}, {amount_tax}, {leaderboard}, and {player} in the GUI title
  • The default GUI.yml now loads with return items for most GUIs instead of exit items
New Features:
  • Added confirmation option in the config to allow an extra confirmation before setting a bounty
  • Added confirm-bounty GUI
Thanks for all the bug reports
----------, Aug 17, 2023

Previously I was loading a font from the jar file, but that ended up corrupting frequently. Now I am using the default Times New Roman font. This also solved the issue of the plugin being massive in size. You can still use a custom font by placing a ttf file in the posters folder called playerfont.ttf
----------, Aug 17, 2023

Sorry for the confusion, Bukkit is still processing my resource. You can download in the new link.
----------, Aug 17, 2023

Bounty Posters
  • Admins can create bounty posters with /bounty poster (player) <receiver>
  • You can customize the Reward text in the config, and customize the rest of the poster in the posters folder
  • Posters will display bounties on a map and show the reward
Code (YAML):
# wanted posters of bounty
bounty-posters
:
  # players can give themselves bounty posters of any bounty, otherwise, only admins can give posters
  give-own
: false
  # display bounty reward on the poster
  # note: changing this will change the position of the names and can cause text to overlap
  #       if you want to change this, I suggest deleting all the made maps in plugins/NotBounties/posters
  display-reward
: true
  # reward text below name if display-reward is enabled
  reward-text
: 'REWARD : ' # total bounty will follow this
  # lock the bounty map - this will improve performance, but the maps will not update after they are created
  # if you turn this on, I advise disabling display-reward to avoid confusing your players
  lock-maps
: false
  # true adds the currency prefix and suffix to the reward text
  # Some special characters like ◆ do not work on the poster
  currency-wrap
: false
  # how many milliseconds between map updates
  update-interval
: 1000

Other Changes

  • Bounty whitelist has changed in the config, and you can disable it there
  • Added a custom heads feature that can use Base64 or HeadDataBase. Create a custom item, and for the material, put: PLAYER_HEAD (HDB ID/Base64)
  • Big bounty particle and bounty tracker no longer work when a player is vanished
  • Page items will not take you to another page if they are hidden
  • You can now add multiple lines in buy own bounty lore
  • Buy back is now formatted properly
  • Added a new option to limit the amount of bounties a player can have
  • Admins can now see whitelisted bounties
  • You can now use {time} in all messages
  • Added 6 new messages in language.yml
----------, Aug 16, 2023

Fixed a bug where old bounties set by console were causing the plugin to fail to enable.
----------, Aug 9, 2023

Whitelist
  • You can whitelist certain players to claim the bounties you set.
  • Add people to your whitelist with /bounty whitelist (add/set/remove) or the new GUI with /bounty whitelist
  • Players can choose up to 10 players to whitelist. This is limited to reduce the burden of hosting an SQL server
  • Whitelisting costs extra per additional person to whitelist. You can change how much it costs in the config
  • Added a world filter option in the config to whitelist or blacklist worlds from bounties being claimed
  • Added notbounties.whitelist permission
Death Tax
  • Added an option in the config to modify the death tax
  • Players will be taxed a percentage of their bounty when it is claimed
  • 0.1 death tax would tax the player 10% of the bounty when they die
  • Use this if you want players to value surviving longer
Multiple Currencies
  • The currency object option in the config can accept a list of currencies
  • If you have multiple placeholder currencies, you must list their add and remove commands in the same order they are in for the currency object
Currency example
Code (YAML):
currency :
  # accepts a material or a placeholder
  # if the currency is a material, the plugin will automatically take away the necessary amounts
  object
:
    #         vvv This number is the currency value. You can set a bounty of 5 with just 1 diamond.
    - 'DIAMOND 5'
    # If you do not specify a currency value, it defaults to 1. You can use decimal values with placeholders but not items
    #                       vvv This second number is the currency weight. The default weight is 0
    - ' %vault_eco_balance% 1 1'
    # If only one weight is set for all the currencies, then that currency will be used until their balance is empty.
    - 'GOLD_INGOT 2'
    # With the weights like this, setting a bounty for 30 will use 10 vault currency and 20 nottokens if the player has the balance.
    # if the player doesn't have vault or token currencies, the plugin will look for diamonds and gold ingots in the player's inventory
    - ' %nottokens_amount% 10 2'
  # before the currency in all occurrences in language.yml
  prefix
: '&f'
  suffix
: '&b◆'
  # only needed if you are using a placeholder, but will be called either way.
  # {player} & {amount} or use a placeholder
  remove-commands
: [ ] # ['eco take {player} {amount}']
  add-commands
: [ ] # ['eco give {player} {amount}']
  # if you are using multiple currencies, true will add only the first currency - false will split the different currencies and will account for weight if any is set
  add-single-currency
: true
Time Immunity
  • Changed how immunity is displayed in the config
Code (YAML):
immunity :
  # players can buy immunity from having bounties set on them as opposed to having immunity from the permission node
  # Immunity types:
  # 0 - disabled
  # 1 - permanent immunity
  # 2 - scaling immunity
  # 3 - time immunity
  type
: 2
  # immunity will never run out
  permanent-immunity
:
    cost
: 128
  # immunity will be stronger the more money you spend - only if permanent immunity is disabled
  # if you buy immunity for 2500, then it protects you from bounties set for 2500, 2499, 1500, etc. (with ratio set to 1)
  # bounties can be set on you for 2501 and higher
  scaling-immunity
:
    # money spent -> bounty protection
    # ex: if ratio is 0.5, buying immunity for 1000 will protect you from bounties 500 or less
    ratio
: 1.0
  # immunity wil only last for a period of time
  time-immunity
:
    # how many seconds 1 currency will add to your immunity
    # ex: spending $15 with seconds: 3600 will give you 54000 seconds of immunity, or 15 hours
    seconds
: 3600
  # in SECONDS how long before a player can set a bounty on a player that was just killed with a bounty
  grace-period
: 10
  • Time immunity will protect you from bounties for a certain amount of time
  • You can change how long 1 currency will protect you for in the config under immunity> time-immunity> seconds
Other Changes
  • There are 10 new messages in language.yml
  • Added a button in currency setup to clear add and remove commands
Bug Fixes
  • You can now edit console bounties
  • Fixed a message being generated with two apostrophes
  • Currency setup now says Essentials instead of vault
  • Fixed a bug where some bounties couldn't be claimed because of heads
Overall this is a huge update, and it took a lot of time and coding. I'm not expecting this to be perfect, so if you find any bugs, please let me know. The fastest way to contact me is through the discord. Thank you Maus, zuhir, and FBI38 for the bug reports and suggestion included in this update.
----------, Aug 8, 2023

Small fix so number parsing works in all countries
----------, Jul 24, 2023

  • Changed how number-formatting is run. Instead of providing symbols and selecting a type, you can choose your location format. It is similar to how EssentialsX does number formatting
  • There will no longer be an excess amount of 0's in the GUI
  • Fixed a bug where most leaderboards were broken
  • Added an option in the config called npc-claim that disables NPCs from claiming bounties
----------, Jul 24, 2023

  • The set-bounty gui will now only show online players by default. If you want to see offline players too, players can do the command, /bounty set offline or you can add this custom item in gui.yml:
Code (YAML):
 add-offline:
    material
: LEVER
    amount
: 1
    name
: '&7See all players'
    commands
:
     - ' [gui ] set-bounty 1 offline'
Make sure you add it to the set-bounty layout too. Thanks HassanTM on Discord for the suggestion.
  • Fixed a bug where errors would pop up when looking at the leaderboards
----------, Jul 19, 2023

  • Added a new command for admins to walk them through setting up the currency. /bounty currency
  • bounties will be rounded to the nearest whole number if you are using an in-game item
----------, Jul 18, 2023

This update added number formatting. This means all the numbers will be read more easily. 12345 > 12,345 or 12.34K. You can edit the number formatting options in the config.

Also fixed a bug where other players could not see your big bounty particle.

This update was very big for the back-end code. Bounties can now be stored in decimal form and to do that, I had to change a whole bunch of data types. Fingers crossed there are no problems for anyone. I had no problems with my tests, but I can never test every case. If you do have problems, let me know in the discord, and they will be fixed ASAP.
----------, Jul 4, 2023

Changes:
  • Added a new config option under bounty-tracker called give-own. This config option allows people with the notbounties.tracker permission to give themselves a bounty tracker
  • Added a new message in language.yml called tracked-notify. This message will display in a player's action bar when they are glowing due to being tracked.
----------, Jun 15, 2023

Bug fixes:
  • Fixed a bug where features would produce an error if PlaceholderAPI wasn't enabled
  • Fixed a bug where the set-bounty GUI wouldn't display players with no immunity after a database disconnection.
I tested the plugin's core features in 1.20, and there were no issues. Let me know if you find a bug or want to suggest something new.
----------, Jun 15, 2023

Fixed a bug where the new location of remove and add commands wasn't recognized
----------, May 18, 2023

Quick bug fix for setting a bounty through GUI. The player will no longer change when changing price
----------, May 16, 2023

In this update, I have completely reworked the GUI to make room for a few new GUIs and added customizability to all.

New GUIs:
  • Bounty top
  • Set bounty
  • Select Price
Changes:
  • GUI settings have been moved to gui.yml. Don't worry, your previous gui will be saved, but I advise you to backup your config file before you update just in case
  • /bounty top redirects to a GUI instead of chat, but you still list top stats in chat by adding "list" to the end of the command. Ex: /bounty top all list
  • The confirmation GUI after removing or buying back your bounty is now fully customizable
New Features:
  • Hidden players section in the config for players that will not show up in bounty top
  • You can bypass the repeat command for buying your own bounty or buying immunity by adding --confirm to the end
  • Changed most of the placeholders to match up with the statistics. Old placeholders will work still. You can now add _formatted to the end to add currency prefix and suffix. Add _full to the end of a top bounty to get information on what the placeholder is.
  • There are new lines in the language.yml file

I will advise you again to backup your config file before you update just in case. I haven't had any problems, but I don't want to see anyone's work get flushed away. Lastly, let me know in the discord if you find any bugs, so I can patch them ASAP.
----------, May 16, 2023

This update adds a new placeholder for all the bounty tops!
  • %notbounties_top_(all/kills/claimed/deaths/set/immunity)_<x>%
Ex: %notbounties_top_all_1% will return the player with the highest all-time bounty and the price. With the default config, it would look something like this:
1. Not_Jaden > 32

In the future I plan to add more GUI to the plugin so players can set bounties and view top bounties in the GUI as well.
----------, Apr 18, 2023

Currency
If you are updating, the biggest thing for you is the new currency settings. The config has added 2 new options for a currency prefix and suffix to avoid having to change every message in the language.yml.
Code (YAML):

# accepts a material or a placeholder
# if the currency is a material, the plugin will automatically take away the necessary amounts
# I recommend changing the language.yml file to fit with your currency
currency
: 'DIAMOND'
 
Code (YAML):
currency :
  # accepts a material or a placeholder
  # if the currency is a material, the plugin will automatically take away the necessary amounts
  object
: 'DIAMOND'
  # before the currency in all occurrences in language.yml
  prefix
: '&f'
  suffix
: '&b◆'
Updating won't add anything to the prefix or suffix in the config

MySQL
There is now support for MySQL. You can find the options in the config. If the plugin doesn't connect to an SQL server, then it will default to local storage. Similarly, if migrate-local-data is enabled in the config, all of the locally stored bounties will be moved into the database.

Another bonus option in the config is auto-connect. With this enabled, NotBounties will try to connect to a database every 30 seconds if one isn't already connected.

Bounty Leaderboards
There are new commands that will show your own bounty stats as well as top bounty stats.

/bounty top (all/kills/claimed/deaths/set/immunity) - Lists the top 10 players with the respective stats.
/bounty stat (all/kills/claimed/deaths/set/immunity) - View your bounty stats.

Most of these were already recorded with placeholders, but now, you can see them without any external plugins. The players just need the notbounties.view permission. There was one placeholder that was added that is "claimed" in the command and "%notbounties_currency_gained%" for the placeholder.

With these new commands, there are new options in the language.yml.

In the future, I plan on adding an area in the GUI to view bounty stats. Overall, this has been a decently large update, especially with MySQL. Although I do test my plugins before updates, it is getting harder and harder the more features I add. That being said, if you do see any bugs at all, send me a message either here or on discord.
----------, Mar 4, 2023

This update includes many new features and bug fixes, notably big bounties.

Features:
  • Big Bounties - run commands for players that obtain bounties over a certain threshold and a particle above their head. You can edit the bounty threshold, what commands to run, and toggle the particle in the config.
  • Added message for the big bounty
  • Added a new config option "minimum-broadcast:" that allows server owners to reduce the chat spam and display only bigger bounties in chat when they are set.
  • Added another message sent to the player when they receive a bounty and removed duplicate broadcast messages.
  • Added sounds for claiming, setting, and redeeming bounties
  • Bounty notifications now tell you who and how much of a bounty was added to you while offline
Fixes:
  • Fixed a bug where claiming a bounty set by the console wouldn't work
  • The startup message won't include double [NotBounties]
I'd like to say thanks again to everyone that uses my plugins. Also, if you see any bugs or want to suggest a new feature in the discord.
----------, Feb 15, 2023

This update includes 1 new feature suggested by .ash that allows you to change the sorting type. You can change this in config.yml under advanced-gui.

Code (YAML):
advanced-gui :
  # how the bounty menu is sorted
  # 0 : newer bounties at top
  # 1 : older bounties at top
  # 2 : more expensive bounties at top
  # 3 : less expensive bounties at top
  sort-type
: 0

You can sort by bounty set date or the bounty price.
If you would like your suggestion implemented, message Jaden#8952 or join the discord.
----------, Feb 5, 2023

Changes:
  • Bounty voucher system to claim bounties at a later date. This is default off, but you can enable it in the config with the redeem-reward-later setting
  • You can now choose if you want the setters or the claimers of the bounty to get a head when it is claimed
  • New lines have been added to the language.yml file for new messages
  • Added a bounty tracker permission. It is default given to players
Bug fixes:
  • fixed that you could still see bounties claimed with bounty broadcast disabled
  • fixed a problem with bounty tracker not displaying with right-click when show-always was disabled
----------, Dec 8, 2022

Only a few changes this update
  • Players can now do /bounty bdc to toggle the bounty broadcast messages (suggested by FBI38#6866)
  • /bounty top shows the current 10 highest bounties
  • /bounty top all shows the all-time top 10 highest bounties (did not count previous bounties so everyone starts from 0 after this update unfortunately)
As always, there could be bugs, so let me know! Any suggestions are appreciated on the discord
----------, Dec 8, 2022

Bug Fixes:
  • Fixed a bug with custom model data causing the commands not to work
  • Fixed a bug where tab complete wasn't working
Bounty Tracker:
What is it? Track players with bounties with a special compass
How do I get it? do /bounty tracker (bounty) (receiver)
How can I disable it? doing nothing will keep the plugin performing mostly like before. If you are worried about a performance drop, disable the tracker in the new section in the config
Check the config on the overview page to see comments on usage

GUI Name:
You can now change the name of the GUI in language.yml
----------, Sep 12, 2022

You can now put the parameter: "custom-model-data: x" in your custom items to give them the data. I also updated the config to be a little more descriptive in the comments. If you already have the plugin installed, you may have to look at the config file in the main page for the descriptions.
----------, Sep 10, 2022

You can now customize the look of your GUI!
A new section in the config has been added. Don't worry about adding anything new, it will auto-generate for you!
The new section will look like this:
Code (YAML):
# for customizing the layout of the gui
advanced-gui
:
  size
: 54
  custom-items
:
    fill
:
      material
: GRAY_STAINED_GLASS_PANE
      amount
: 1
      name
: '&r'
      lore
: [ ]
      enchanted
: false
      # use {player} to replace with the player's name
      # [close] to close gui
      # [p] (command) to send as the player
      commands
: [ ]
  bounty-slots
:
   - '0-44'
  layout
:
    1
:
      # use custom items here or preset items such as 'exit' 'next' 'back'
      item
: fill
      slot
: 45-53
    2
:
      item
: exit
      slot
: 49
    # these will only appear when there are multiple pages
    3
:
      item
: back
      slot
: 45
    4
:
      item
: next
      slot
: 53
You can add custom items, select which slots the bounties can appear on, and choose how big your inventory is!

It is 1 am for me right now, but I didn't want to wait any longer to release this. I have tested it, but I am not perfect, so there may be bugs. Let me know right away so I can fix them.

I will go into more depth in the future on the main page.
----------, Sep 9, 2022

Removed the API version in the plugin.yml so it can run on previous versions. I have only tested 1.16.5. If you come across a problem in one of these versions, let me know. Also, if the plugin runs on another legacy version, post a comment and I'll add it to the tested versions
----------, Sep 6, 2022

Hex now works in the lore of the heads in the GUI
----------, Sep 5, 2022

Hex:
  • You can now use hex colors in the language.yml file
  • The format is '&#xxxxxx'
  • Example: '&#78142aYou do not have enough money for this!'
New message:
  • A message will now be sent to a player if a bounty they set has expired
  • Customize this message in the language.yml
  • Player also gets refunded their money back (not the tax though)
Bug Fix:
  • Setting offline bounties or doing anything with offline players is no longer case sensitive
----------, Sep 4, 2022

Fixed a bug where /bounty check did not work with offline players
----------, Sep 4, 2022

Changed the api version so it now actually works for 1.18
----------, Aug 14, 2022

Resource Information
Author:
----------
Total Downloads: 18,685
First Release: Aug 12, 2022
Last Update: Feb 20, 2025
Category: ---------------
All-Time Rating:
29 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings