- Add block_blacklist option to BLOCK_BREAK tournament.
- Update internal libraries to support the latest Minecraft version(s)
- Optimized discord webhook.
- Minor optimizations to MySQL database calls.
- Added support for 1.21.11 items.
- Added 1.12.8 item support
- Added optional blacklist to PLAYER_CONSUME objective.
- Moved more classes internally instead of relying on external API.
- Some small code cleanup.
- Fixed an issue with the `HIDE_ATTRIBUTES` flag.
- Update CrazyCrates & CrazyEnvoys
- Remove support for anything below 1.20
- Build against Java 21
- Fixed an issue where bulk crafting items wouldn't count in the crafting objective.
- Fix an issue with water bottle counting in the potion brew objective.
- Added new forcejoin command.
- Reverted database locking changes due to errors.
- Improve some internal logging.
- Possible fix for duplicating rewards on multiserver setups.
- Added new HOURLY tournament timeline
- This timeline option will start and end the tournament on the hour and not an hour after it's started. This means a tournament starting at 1 PM will end at 2 PM and restart right afterward.
- Don't apply potion meta to all potions unless a potion tournament is enabled.
- Fixed an issue where the webhook would always display as "Unknown"
- Fixed TokenEnchant listener on the latest versions.
- More fixes with the webhook.
- Allow some placeholders that don't require a player to be used without one.
- Call TournamentEndEvent at the end of the stop method.
- Possible fix for webhook data being empty when a tournament ends.
- Possible fix for rewards repeating when a tournament ends.
- Update
Duels API
Read previous updates to see the changes made from v3.16.x -> v3.17.0
- Update MythicMobs api.
- Fix UnsupportedOperationException error sent when a tournament ends.
- Use an iterator for tournament filtering on the timer to prevent duplicated stop events.
- Check that inventory is not full before counting crafted items in the craft objective.
- Reupload to remove some forgotten debug messages.
- Fixed an issue with invalid CrazyCrates API
- Fixed an issue with the item_whitelist in the PLAYER_CONSUME objective.
- Clear user data when the tournament is stopped. (May prevent duplicating rewards)
- Possible fixes for tournament stop method being called repeatedly. This is not guaranteed to fix the problem but we've added in some logging methods to hopefully locate the issue. If you encounter any issues please open a ticket in our Discord.
- Fix incorrect name with CrazyEnvoys which caused tournament not to load.
- Properly register CrazyEnvoy objective.
THIS UPDATE IS A BETA AIMED AT FIXING A BUNCH OF VARIOUS ISSUES WITH THE PLUGIN. PLEASE TAKE A BACKUP OF YOUR XLTOURNAMENTS FOLDER BEFORE UPDATING. THERE ARE NO CONFIGURATION CHANGES.
- Clear tournament participants when using the end command.
- Call TournamentEndEvent at the start of the stop method to ensure data is not cleared before other plugins can listen.
- Updated CrazyEnvoy & CrazyCrates API.
- More possible fixes to broadcast spam.
- Moved ActionManager back internally instead of being in external API
- Some internal code cleanup & renaming.
- The exclude_placed_blocks configuration option is no longer global it now can be configured per-tournament when using the BREAK_BLOCK objective type.
- The BROADCAST action now broadcasts the message globally instead of sending it to each user. Should prevent spam.
- Add new ODAILYQUESTS_COMPLETE objective.
- Remove support for anything below 1.19
- Build against Java 17
- Fix an issue with hex colors not translating properly
- Add new PLAYER_CONSUME objective type.
- Update gradle to 8.5
THIS IS THE LAST RELEASE THAT WILL SUPPORT ANYTHING BELOW 1.19 - 1.20.2
- Removed support for anything below 1.16.5
- Fixed an issue with coloring text.
- Various code cleanup and improvements related to version support changes.
- Fix some incorrect default configuration values.
- Fix an issue that caused coloring the lore of items in the gui not to work.
- Fixed an issue that caused console spam about "inconsistent skull meta"
- Add the ability to use AIR as the filler item in the GUI.
- Fixed an issue that caused the GUI not to reload when using the reload command.
- Fix an issue with the exclude_placed_blocks configuration setting not working correctly.
- Fix a possible issue with duplicating scores when using the ITEM_CRAFT objective.
- Optimize the tournament GUI a bit.
- Fixed an issue where player placed crops would not be tracked for the BLOCK_BREAK objective.
- Some minor code cleanup.
- Fixed an issue that caused messages to not be colored.
- Fixed an issue where having multiple tournaments with the block_whitelist meta would cause others to not work.
- Slightly optimized the BLOCK_BREAK objective type.
- Improve placeholder replacing for the webhook.
- Fixed an issue where crops were always assumed to be growing instead of fully grown.
- Fixed an issue where the block_whitelist wasn't working properly for the BLOCK_BREAK objective.
If you are using 1.12.2 and attempting to make a farming tournament most crops are under the CROPS material name.
PLEASE READ THIS UPDATE CAREFULLY IF YOU USE BLOCK_BREAK OR ITEM_CRAFT OBJECTIVES!
- Updated the gui library.
- Fixed an issue where the BLOCK_BREAK objective didn't support multiple items in the whitelist.
- Added the ability to whitelist multiple items for the ITEM_CRAFT objective.
Configuration Changes:
If you use the BLOCK_BREAK or ITEM_CRAFT objective and have a whitelist setup for them you need to modify your tournament configuration file.
Block Break:
The new format for the whitelist is the following:
Code (YAML):
block_whitelist
:
- IRON_ORE
- COAL_ORE
- DIAMOND_ORE
Item Craft
The new way to use the whitelist is the following:
Code (YAML):
item_whitelist
:
- RED_BED
- BEACON
- Fixed an issue with the tournament start command not sending the correct messages.
- Added improved support for lower versions
- Fixed an issue where messages were not colored at all.
- Readded support for lower spigot versions.
- Removed a debug message in the discord webhook.
- Added a discord webhook to notify users in a discord channel when a tournament has ended.
- Added a start command to start tournaments.
- Cleaned up some internal code.
New Configuration Settings:
Put this new section right below the database options in your config.yml
Code (YAML):
discord_webhook
:
# Should the webhook be enabled or not
enable
: false
# The URL for the webhook.
url
: ''
# Link to an avatar to use for the webhook.
avatar_url
: 'https://cdn.discordapp.com/attachments/1028362255785545747/1159605391274037298/XLT_logo.PNG?ex=6531a1ad&is=651f2cad&hm=c0beef7c23632a12fa461c12102e2878c17cb2d19ae46ba90e6d99f4ee7cce40&'
# This is the message sent when the tournament ends.
# Placeholders:
# {TOURNAMENT} - Returns the name of the tournament.
# {FIRST_PLACE} - Returns the name of the first place winner.
# {SECOND_PLACE} - Returns the name of the second place winner.
# {THIRD_PLACE} - Returns the name of the first place winner.
#
# {FIRST_PLACE_SCORE} - Returns the score of the first place winner.
# {SECOND_PLACE_SCORE} - Returns the score of the second place winner.
# {THIRD_PLACE_SCORE} - Returns the score of the third place winner.
content
: 'The
{TOURNAMENT
} has completed here are the winners!\n\n:first_place
: 1st Place
:
{FIRST_PLACE
}\n:second_place
: 2nd Place
:
{SECOND_PLACE
}\n:third_place
: 3rd Place
:
{THIRD_PLACE
}'
If you enjoy this update please be sure to leave a like and a review on the plugin!
- Added new POTION_BREW objective type.
This objective works by tracking when a user takes a potion out of a brewing stand regardless if they brewed it or not. Once the potion has been removed the plugin assigns a NBT tag to the item to prevent them from spamming them.
This is experimental and may likely need further tweaks sadly there is not a good method to listen for potion brewing while also tracking who brewed them.
If you are enjoying these updates be sure to leave a like and a review!
- Added EXCELLENTCRATES_OPEN objective for Excellent Crates
- Fixed an issue where the X-Prison objective wasn't registered properly.
- Fixed an issue with using color codes in the GUI items.
- Moved some methods into a new library [Included in the jar file no extra steps needed]
- Fixed an issue where the adventure library was not properly shaded into the plugin causing load errors.
- Added more permission options instead of having a single admin permission.
- Updated PlaceholderAPI to 2.11.4
You can view the new command & permission list
here.
If you are enjoying the updates be sure to leave a like & review!
- Added the ability to hide completed tournaments from the menu.
New Entry:
This new config entry needs to be placed in your menu.yml file
Code (YAML):
# Should tournaments that have ended be displayed in the menu
hide_completed_tournaments
: false
- Fixed an issue with italic formatted messages.
- Fixed an issue where the clear player message was blank by default.
- General code cleanup & improvements.
- Improved some error handling.
- Improved some internal methods [Very slightly]
- Cleaned up a lot of internal code.
- Added new /tournament end {tournament} command.
New Configuration Entries:
With this update there are two new lines that need to be added in the messages.yml file under the tournaments section.
Code (YAML):
stopped
:
"{PREFIX} &cYou have stopped the {TOURNAMENT} tournament."
already_stopped
:
"{PREFIX} &cThat tournament is not currently active."
- Added the ability to require player only kills for the mob kills tournament.
You can see how this feature works
here.
- Added MiniMessage formatting to all plugin messages.
- Cleaned up a bit of code here and there.
All messages still support the legacy "&" color formatting and will continue to do so for quite some time. By adding adventure I've simply added another way for you to color your messages including with gradients in 1.16+
- Added bstats metrics to help aid in future updates.
- Ensure the database connection is not closed before attempting to close it.
The data collected with bstats will be used to determine version support going forward.
- Added the ability to disable the previous & next page items in the menu.
- Fixed incorrect java compile error.
Updated Configuration:
This new option will default to
true if it can't find the new setting.
Code (YAML):
# These are the next & previous page items in the gui.
page_items:
enabled
: false
# Should the page arrows be enabled or not.
next_page:
material
: ARROW
display_name
:
"&aNEXT PAGE ->"
slot
: 23
previous_page:
material
: ARROW
display_name
:
"&c<- PREVIOUS PAGE"
slot
: 21
If you are enjoying the new updates be sure to leave a review!
- Added XPRISON_RANKUP objective to support X-Prison
This new objective tracks how many times a user ranks up. It is currently untested as I do not own X-Prison to test please report any issues to me and I will get them fixed.
PLEASE READ THIS UPDATE CAREFULLY AS THE MENU SYSTEM HAS BEEN UPDATED WITH NEW FEATURES
WE ALSO HAVE A NEW SUPPORT DISCORD WHICH YOU CAN JOIN BY CLICKING HERE.
Changes:
- Added the ability to have multiple pages within the tournament gui.
- Removed the ability to define slots for tournament icons.
Configuration Changes:
There are two new entries you need to add to your menu.yml file. Here they are:
Code (YAML):
# These are the next & previous page items in the gui.
page_items:
next_page:
material
: ARROW
display_name
:
"&aNEXT PAGE ->"
slot
: 23
previous_page:
material
: ARROW
display_name
:
"&c<- PREVIOUS PAGE"
slot
: 21
Slot Updating:
Using slots: <number> is no longer supported in the menu.yml file. In order to sort items in the gui you must now use the filler setting.
This is an example of how it is configured in the default file.
Code (YAML):
filler_items:
glass:
material
: GRAY_STAINED_GLASS_PANE
amount
: 1
display_name
:
"&r"
slots
:
[0-10, 12, 14, 16-26
]
In other news I am
@aus7124 the new owner & maintainer of this plugin. I have some new features in the works soon so be sure to stay tuned for those!
v3.9.3
- Updated CrazyEnvoy & CrazyCrate libraries. [REQUIRES LATEST VERSION OF BOTH]
v3.9.2
Changelog:
- Remove deprecated methods in ItemStackBuilder
- Further fixes towards duplicating reward broadcasts.
- Updated CrazyEnvoy & CrazyCrate libraries.
- Remove unused imports and generally cleanup some code.
- Further support for 1.20 & 1.20.1
Update provided by @aus7124 v3.9.1
Changelog:
- Possible fix for duplicated tournament end messages.
Update provided by @aus7124
v3.9.0
Changelog:
- Removed EZRanksProObjective.
- Removed MineCratesObjective.
- Removed VotingPluginObjective.
- Updated CrazyEnvoy & CrazyCrates APIs.
- Misc updates & fixes.
Big shoutout to
@aus7124 for providing this update!
v3.8.0
Changelog:
- Updated to Spigot 1.18.2.
- Updated CrazyCrates API to 1.10.4.
- Fixed bug where timer would increase using SPECIFIC timeline after ending.
v3.7.1
Changelog:
- Added CustomModelData option for GUI items.
- Example:
Code (YAML):
custom_model_data
: <value>
- Changed HEX format to {#FFFFFF}.
- Added HEX gradients and rainbow effect.
- See more info and examples here.
v3.7.0
Changelog:
- Added 'mob_whitelist' config list value for MOB_KILLS objective to only count specific mob types.
- Added Base 64 support for player heads.
- Example:
Code (YAML):
material
: PLAYER_HEAD
base64
: <value>
- Added check for crops to ensure they are fully grown in BLOCK_BREAK objective.
v3.6.0
Changelog:
- Added more PlaceholderAPI placeholders, check them out here.
- Added '{START_MONTH_NUMBER}' and '{END_MONTH_NUMBER}' for GUI placeholders.
- Fixed an error produced when reloading the plugin.
v3.5.0
Changelog:
- Added Spigot 1.17 support.
v3.4.5
Changelog:
- Refactored the calandar system to use java.time.ZonedDateTime to improve date and time calculations using timezones to fix some issues when tournaments end.
v3.4.4
Changelog:
- Added 'BEDWARS1058_FINAL_KILLS' objective.
v3.4.3
Changelog:
- Fixed a major bug with automatic participation which would reset upon re-entering the server.
- Added ability to set messages to "" to disable them.
- Added '/tournament clearplayer <player> <tournament>' to clear and remove a specific player from a tournament.
v3.4.2
Changelog:
- Fixed automatic participation not working.
v3.4.1
Changelog:
- Fixed issue where filler item commands were being executed before the menu closed meaning opening other menus (such as DeluxeMenus) wouldn't open.
v3.4.0
Changelog:
- Added PLAYTIME internal objective to track playtime and config.yml setting:
Code (Text):
playtime_objective_task_update: 200
- Added ESSENTIALS_BALANCE_RECEIVE objective from EssentialsX plugin.
- Added ESSENTIALS_BALANCE_SPEND objective from EssentialsX plugin.
v3.3.0
Changelog:
- Added participation permission option which will require a permission in order to join the tournament (including automatic participation) @mrfloris.
- Simply add this (not required) to your tournament config to use this feature.
- Added ability to add commands to filler items in the GUI.
- Example:
v3.2.2
Changelog:
- Added GOLDENCRATES_OPEN objective from GoldenCrates plugin.
- Fixed an issue where specific timeline tournaments would count up for a few seconds after ending.
v3.2.1
Changelog:
- Added PLACEHOLDERAPI;<placeholder without %%> objective type from PlaceholderAPI plugin (must resolve to raw integer value). This allows for tons more objective types within this one.
v3.2.0
Changelog:
- Fixed issues regarding BedWars1058 objectives.
- Fixed an error using the API to register custom objectives (yes again).
v3.1.2
Changelog:
- Fixed an error when registering a custom objective using the API.
v3.1.1
Changelog:
- Added "use_ssl: true" option to the MySQL settings in the config.yml to toggle SSL.
v3.1.0
Changelog:
- Added BedWars1058 objectives:
- BEDWARS1058_BED_BREAK
- BEDWARS1058_KILLS
- BEDWARS1058_LEVEL_UP
- BEDWARS1058_WINS
v3.0.13
Changelog:
- Fixed error upon completing a challenge tournament which would result in rewards not being given.
v3.0.12
Changelog:
- Fixed an issue if there were more than one item given as a result of a crafting recipe it would only count as 1 point.
v3.0.11
Changelog:
- Fixed an issue where the countdown timer would start increasing after a weekly or monthly tournament would end.
- Fixed a bug where an error would be produced if you had at least 1 invalid action in a list, it'll now skip over invalid actions.
v3.0.10
Changelog:
- Added RANDOMEVENTS_WINS objective type from RandomEvents plugin.
- Added section in config.yml to edit command aliases for the main /tournament command. You will need to add that to your config.yml file.
-
Code (Text):
# Command aliases to the main /tournament command
# ** You will need to restart your server if you edit this list **
command_aliases:
- xlt
- tournaments
v3.0.9
Changelog:
- Added HEX colour codes (e.g. "#<9773ba>Hello World").
- Updated XMaterial to support materials in 1.16.5.
v3.0.8
Changelog:
- Fixed a bug where disabled worlds were not working properly.
- Fixed an error caused with automatic participation actions.
v3.0.7
Changelog:
- Fixed an issue where tournament scores were reset when /xlt reload or /reload was performed.
- Minor code improvements.
- Updated API with missing constructor to create custom objectives.
v3.0.6
Changelog:
- Added optional block whitelist to the break and place objectives allowing you to only count specific blocks. See more information here.
v3.0.5
Changelog:
- Fixed a bug where fishing tournaments would count without needing to catch a fish.
- Fixed a bug where crafting tournaments would either throw an error or give an incorrect tournament score when shift-clicking from the crafting table.
- Added MYTHICMOBS_KILLS objective for the MythicMobs plugin.
v3.0.4
Changelog:
- Added new option in the config.yml file to exclude blocks placed by other players (for BLOCK_BREAK objective).
-
Code (YAML):
# Should we exclude placed blocks from counting towards the BLOCK_BREAK objective?
exclude_placed_blocks
: true
v3.0.3
Changelog:
- Added 'DUELS_WINS' objective from Duels plugin.
- Added 'VOTINGPLUGIN_VOTES' objective from VotingPlugin plugin.
- Added 'disabled_gamemodes' option to tournaments to disable specific gamemodes from counting towards tournaments.
- Fixed bug where points would count after an event was already cancelled by WorldGuard (such as block break).
v3.0.2
Changelog:
- Added two new objectives for the ClueScrolls plugin:
- CLUESCROLLS_CLUE_COMPLETE
- CLUESCROLLS_SCROLL_COMPLETE
v3.0.1-BETA
Changelog:
- Added CRACKSHOT_DAMAGE objective using CrackShot plugin.
- Added MINECRATES_OPEN objective using MineCrates plugin.
- Added CRAZYENVOY_OPEN objective using CrazyEnvoy plugin.
Fixed a placeholder replacement that was missing in tournament lore.
Fixed a bug that occurred when using /xlt reload.
Fixed an error where it tried to queue a reward for tournaments that have already ended.
Fixed a bug where rewards were not being queued properly.
Fixed a thread issue where the queued rewards don't get stopped on reload.
Added a config option to the tournament files that allow you to make the blocks traveled tournament not count blocks traveled while flying.
add this config option to the tournament config file:
Code (Text):
disable-flying: false
Fixed a bug where translated words got translated even if the translation key was in the middle of another word.
Added the option to send reward commands for every participant in a tournament when it ends.
You can do this by adding:
Code (Text):
reward:
all:
- "give %player% stone 1"
to the tournament file.
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2F264b04f52f45fb53b83bc187882c3e0e.png)
Added a way for server owners to add info items to the tournament menu.
This can be done like this:
Code (Text):
gui:
tournaments:
size: 18
title: '&8Tournaments'
filler:
material: STAINED_GLASS_PANE
data: 7
custom:
material: STAINED_GLASS_PANE
data: 7
displayname: "Custom Item"
lore:
- "Custom Item lore"
slots:
- 9
With the custom: item being the item in question.
The identifier for the item can be anything you wish it to be.
If you set the display-name to %hidden%, then it will have no name, like a filler item.
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2F50488fb0ba448ae4c5856abeae602348.png)
Added a command that allows administrators to remove the data of a player from a tournament.
Command: /xlt remove <player> <tournamentId>
Permission: xltournaments.admin
Added the config option
Code (Text):
disable-vehicles: false/true
to the tournament config files.
This is used to disable the counting of blocks traveled for the BLOCKS_TRAVELED tournament type. Set it to true to ignore blocks traveled while mounted on a vehicle.
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2Fd245ab9997d4bbb32da5f9e002780189.png)
Made some optimization improvements to the Votifier Listener class
Fixed an NPE related to Session join time.
Added extra configuration regarding the glow effect on tournament display items.
You can now set the glow value depending on the tournament status.
The glow: false parameter overrides the state-specific booleans if set to true. Fixed the TEBlockExplode Event, it now works properly.
Fixed a NPE occurring when adding a participant
You can now restart your tournaments automatically through a configuration option!
This can be enabled by adding the line:
Code (Text):
restart-on-end: true
to your tournament configuration file.
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2F3e9f4ae3e1649cde0c06746e2f8cb573.png)
Added support for the TEBlockExplode Event in regards to block-break tournaments.
Added the translations.yml file which will contain the translation of certain things that don't have an option in other configs.
A bug was occurring in the previous update when you didn't have XLAutoMiner installed. It has now been fixed.
Disabled blocks from counting towards any tournaments if the broken block is a placed block from the current server session.
Added material-data and skull-owner config options to allow you to set up the tournament display item as a player skull or monster skulls.
Added the option to stop the player's playtime from going up when the player is currently inside an XLAutoMiner AutoMine room.
This can be enabled/disabled in the tournament files.
Added support for MythicMobs in the form of a new TournamentType: ENTITY_KILL_MYTHICMOBS. This tournament type functions the same as ENTITY_KILL with the only difference being that you need to use the %score% placeholder and not the %entitykills% placeholder.
An example of this tournament gets generated by default.
Fixed some smaller bugs.
Fixed an NPE error that occurs because I forgot a null check before getting the entity killers world.
Added a feature to allow server owners to blacklist worlds, which would disable any score counting for players in that world. For supported tournaments.
Added a feature to allow server owners to whitelist WorldGuard regions, this allows for precise control of where a tournament is held. Leaving the region-whitelist as empty will allow score counting in all regions.
Added the ability to use the %player% placeholder in tournament display names and lore to display the viewing player's name.
Added the option to make the tournament item glow by adding
to the tournament file.
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2F53a5b2790e88bcf0da97854413f727d8.png)
Fixed so %start% and %end% placeholders can be used in tournament display names.
Changed the tournament item identification method to NBT Storage. Fixed a bug where it stored playtime without resetting session time basically doubling the playtime.
Added the option to require a monetary cost when players try to participate in a tournament.
This is done by adding the participation-cost: 240 to the tournament configuration file.
A new configurable message has also been added to the config.yml file.
Simply adding in the new path should make it work if you are updating from an older version.
Code (Text):
message:
not-enough-money: "&4ERROR:&7 You do not have enough vault currency to participate in this tournament."
![[IMG]](/proxy/image?url=https%3A%2F%2Fi.gyazo.com%2F360c2b6da60bfe768fc26d37bc684769.png)
Added the ability to set the item amount for the display items for each tournaments.
Just add the display-amount: 1 option to the tournament file.