Bolt

Fixed

  • Fixed Bed textures not showing up properly.
  • Fixed Bots config resetting and loading presets.
  • Fixed Mace not working with fireball.
  • Fixed Build height damage grace period.
Changed
  • Only enable spawn bounds task when arena world and lobby world aren't same.
  • Use Modern service for 1.19.4 and 1.21.1 not Latest.
  • Removed protocol lib dependency for modern versions.
  • Made max stack size editing configurable.
Note: Please restart your servers to apply the update.
Added
  • Added an arena panel menu to manage arenas in a user-friendly manner.
  • Added /kit addAllowedBlock/removeAllowedBlock <kit> <material> to allow custom block break rules.
  • Added logic to allow arena world different from lobby world. (Disable 'PREVENT-FLYING-OUT-OF-BOUNDS' when doing this)
  • Added /arena saveAllChanges (Save changes and re-scale all arenas), /arena removeAllDuplicates (Remove all duplicates)
  • Added CartPvP mode
  • Added arena kits manage menu.
  • Added tournament hotbar items.
  • Added MiniMessage support
  • Added 1.21.1, 1.21.2, 1.21.3, 1.21.4 support.
  • Added a build height damage grace period and title for warning.
  • Added logic to check for duplicates first before warning for arena in-use in duels.
  • Added <kit> to win/loss commands.
  • Added an option to toggle bolt name tag for Tablist Name.
  • Added /bolt checkArenas command to check for broken arenas.
  • Added PlaceholderAPI hooks for profile settings.
  • Added line interval, replay-delay and animation interval configuration for scoreboard title animation.
  • Added custom animations support for scoreboard.
    • To add an animation, use the following format at the botton of scoreboard.yml:
      YAML:
      # 20 Ticks = 1 second
      ANIMATIONS:
        IDENTIFIER: "{animation_name}"
        INTERVAL: 4 # How fast should the title animation be? (In ticks)
        REPLAY-DELAY: 100 # How long should we wait before re-playing the title animation? (In ticks)
        LINES:
          - "Frame 1"
          - "Frame 2"
          - "Frame 3"
      # Usage
      SCOREBOARD-LINES: # Assume this is lobby lines
        - "Line 1"
        - "Line 2"
        - "Line 3 {animation_name}"
Fixed
  • Fixed null pointer exception on PlayerItemPickUpEvent.
  • Fixed void death logic where if you had won yet died, you would've lost the match.
  • Fixed kit editor inventory logic for modern versions.
  • Fixed kit inventories not marked immutable.
  • Fixed clickables not translating custom placeholders.
  • Fixed broken fireball explode logic, now (EXPLOSION_AFFECTS_PLAYERS) will work properly.
  • Fixed Kit pearl cooldown rule not working.
  • Fixed Wrong sequence for queue toggling resulting in duplicate kits.
  • Fixed Name tags turning white on player join. (NameTagAPI recode)
  • Fixed Stick fight best of logic not working properly.
  • Fixed default bot presets having the wrong icons.
  • Fixed queue menu fighting count. (Now non stackable items will also show proper amount)
  • Fixed Kit and Arena save commands having race conditions resulting in a broken file.
  • Fixed arenas not resetting on shutdown resulting in broken blocks. (Thanks @MsxDevil)
  • Fixed beds not resetting for modern versions properly. (Thanks @MsxDevil)
  • Fixed lava/water bucket logic reset logic broken because of paper change how Bukkit API works on modern versions.
  • Fixed massive lag with matches being fetched from map constantly. (Thanks @TheDancing)
  • Fixed Hotbar Item comparison not working properly resulting in Profile item not being usable.
  • Fixed portals not working properly in modern versions. (Thanks @MsxDevil)
  • Fixed /kit viewArenas not working.
  • Fixed creeper head showing up for some items in modern for shop.
  • Fixed SkinAPI requiring ProtocolLib even when Carbon was installed.
  • Fixed Modern versions NPE in InventoryListener.
  • Fixed invalid logic for highest global winstreak. (Thanks @J4C0B3Y )
  • Fixed product unlock collection having duplicate items resulting in broken shops and rewards. (Thanks AgentNodebuff)
  • Fixed bot sumo logic where you are stuck in water if you hold and press "W".
  • Fixed PotionEffectProvider error-ing in console for tab-completion.
  • Fixed item components not serializing properly on modern versions.
  • Fixed being teleported to another arena's mid spawn while in another match.
Changed
  • Completely recoded Bolt's arena system from scratch. (10x faster arena scaling)
  • Changed Bolt's internal prefix and many default locale messages to new theme.
  • Redesigned arena and kit help commands to work with pagination.
  • Load the entire arena's chunks instead of spawn ones.
  • Don't spawn bound teleport players when they are respawning.
  • Stopped shading PacketEvents, use it as a plugin.
  • Renamed Mace Mode to WindCharge Mode.
  • Redesigned arena menus.
  • Recoded bolt's configuration system.
  • Switched to Plugin logger on modern versions to clean up console spam with custom loggers.
  • Stopped saving kits and arenas on shutdown, hence preventing corruption.
  • Allowed editing player kits while in tournament.
  • Disabled shared arenas for modern versions.
  • Remove enderpearls when arena unloads.
Removed
  • Removed Stats migration code
  • Removed Extra block break logic for explosions
  • Removed Importer command and menus
Installation Notes
  • Shared arenas have been disabled on modern versions, therefore you must use standalone arenas only.
  • You must install packetevents-spigot before running this update.Bolt has stopped shading packetevents and uses packetevents plugin instead just like ProtocolLib.
Developer Notes
This update makes Bolt perfectly stable and usable for modern pvp. If you have any suggestions on features specific to modern pvp, please use the suggestions forum to forward them to me.
  • Like
Reactions: Down
Added
  • Added a force vanilla tablist option in settings.yml.
  • Added Mace Support for 1.21 with a mace mode kit rule.
  • Added /bolt unbreakable to mark items as unbreakable
Fixed
  • Fixed default bot presets not saving with prefix.
  • Fixed MatchDamageListener causing a NPE breaking spectator damage logic.
  • Fixed Bot preset command throwing a NPE when kits are null.
  • Fixed tablist sorting for vanilla layout.
  • Fixed bolt not saving unbreakable tag on items.
  • Fixed event round countdown stopping at wrong count.
  • Fixed people joining parties when they in tournament.
  • Fixed player stuck on respawn screen when bestOf is enabled in modern versions.
  • Fixed kit editor 5th slot kit not deleting.
  • Fixed bot giving up on fighting the player.
Changed
  • Only give XP if match was not forfeited.
  • Made prevention of sword dropping configurable.
Note: Please restart your servers for the changes to take place.
Added
  • Added arena "Vanilla" reset type, works on all versions using bukkit API. It is slower than chunk reset however.
  • Added LunarClient TitleAPI 1.7 support.
  • Added debugs to print out scoreboard and and nametag exceptions.
  • Added Scoreboard combo count displaying "No Combo" placeholder ({your_combo_formatted}, {opponent_combo_formatted}}).
Fixed
  • Fixed Chunk reset not resetting newly created duplicates properly.
  • Fixed Bot health under name display not updating.
  • Fixed coloring mistake in /elo reset command.
  • Fixed Tablist breaking with disguise.
  • Fixed /arena setProtectionRadius command not accept "-1" as a value.
  • Fixed modern clients not receiving health updates on legacy servers.
  • Fixed NameTagAPI erroring for refreshing nametags in some instances.
Changed
  • Changed default reset type to "CHUNK" with clear data after reset set to false. (This is the least lag inducing and most stable system now)
  • Changed from Drink to @J4C0B3Y 's CommandAPI.
Note: Please restart your servers for the changes to take place.
Added
  • Added dotted placeholders for pearl fight and top fight lives. (Use {blue_lives_proper}, {red_lives_proper}).
  • Added animated scoreboard title. (scoreboard.yml)
  • Added a separate phoenix chat listener to allow phoenix chat limitations.
  • Added a placeholder to get all queued/fighting count for solo/duo queues.
  • Added a placeholder to display required wins for ranked queue.
  • Added queue-parkour scoreboard lines.
  • Added an option to use the next available queue for random button. (settings.yml)
  • Added an option to enchant in-use queue select item button. (settings.yml)
  • Added new optimized SkinAPI.
  • Added "leaveduel" alias to Leave Command.
  • Added {match_lasted} placeholder for scoreboard.
  • Added Phoenix reboot handler hook. (scoreboard.yml)
  • Added an option to prevent unranked win streak from getting destroyed with ranked ones. (settings.yml)
  • Added an option to turn off auto world saving. (settings.yml)
  • Added toggle-able per-arena enderpearls. (/arena setPearlsAllowed)
  • Added per arena FFA Spawn radius. (/arena setFFARadius)
  • Added a theme system like carbon's. (/bolt theme <color> works for {theme}, %bolt_theme%)
  • Added tournament hotbar and max participants config, and forceEnd command.
  • Added per cooldown configuration for cooldown message.
Changed
  • Completely rewrote ScoreboardAPI from scratch.
  • Optimized and re-coded NameTagAPI.
  • Updated XSeries with new XSkull, XPotion and PacketEvents.
  • Optimized queue list querying performance.
  • Allowed parkour to be played while player is in queue.
  • Changed players queued amount to fighting amount in Queue Select button.
  • Rewrote visibility logic for all matches.
  • Allow wool breaking if it's bed defense for fireball/bedfight.
  • Allow other plugins to modify party chat message.
  • Added more Modmode/vanish command to blocked commands.
  • Updated SpigotAPI to support Carbon 5.0.
  • Completely recoded and optimized match health display. (Major lag optimization)
  • Use LightRandom for Java Randoms for more optimized seeding.
  • Completely recoded match history, and statistics saving logic.
  • Made Fireball/TNT yield configurable and stopped fireball from dropping blocks.
  • Show "None" if there is no next level and division in menus and placeholders.
  • Use proper void kill method for events.
  • Use a smaller UUID for profile history to reduce MongoDB storage size.
  • Use disguised proper name when unfollowing a target.
  • Don't terminate a match if it's already terminating.
  • Centered bottom kit editor as requested by @lightspark
Fixed
  • Fixed player being damaged on respawn.
  • Fixed player being stuck after own-goal death.
  • Fixed random visibility issues while getting in match.
  • Fixed compile errors for global depends.
  • Fixed BattleRush and Bridges match logic for respawning and death.
  • Fixed stats not migrating properly if some stats are already migrated.
  • Fixed typo in GeneralMenus combat stats config.
  • Fixed being able to place block on water in TNTSumo.
  • Fixed Match History/Inventory menu errors and configuration.
  • Fixed NameTag turning white on join sometimes
  • Fixed scoreboard not appearing on first join for some players
  • Fixed item Drop logic for match.
  • Fixed proper death logic not being called for jumping in your own goal.
  • Fixed Kit editor glitch with editor menu items.
  • Fixed Bolt preventing chunks from unloading.
  • Fixed shop product menu not using proper slots.
  • Fixed visibility logic for Phoenix hook.
  • Fixed EffectsButton NPE in PostMatchInventory.
  • Fixed NPE in BasicSoloMatch duration timestamp.
  • Fixed StickFight not dropping blocks.
  • Fixed null pointers in auto-updating menu when accessing the profiles cache.
  • Fixed Leaderboards having an exception if division is null.
  • Fixed next division not being null when all divisions are unlocked.
  • Fixed potion stats being displayed even when it's not a potion match.
  • Fixed void damage logic.
  • Fixed event leave logic making event stuck in limbo.
  • Fixed Phoenix PlayerGrantEvent being delayed for NameTagAPI reload.
  • Fixed party duel menu having a NPE.
  • Fixed spectator layout not allowed for tournament players.
  • Fixed void kill not playing kill sound for special matches.
  • Fixed water/lava not resetting properly with FAWE arena reset.
  • Fixed CurrentMatchesMenu for /spec command.
  • Fixed 1.12 Recipe iterator breaking due to unmodifiable list
  • Fixed un-follow sending 2 messages.
Removed
  • Removed FastBoard.
  • Removed spectator description message.

How to update?
There are two configurations changes you must do:

1) MATCH-MENUS.MATCH-INVENTORY in menus.yml. Change POTIONS-BUTTON lore configuration to the following:
YAML:
    POTIONS-BUTTON:
      NAME: '&cHealth Potions'
      MATERIAL: SPLASH_POTION
      DURABILITY: 16421
      LORE:
        - ""
        - "&c<player> &fhad &c<count> &cpotion(s) &fleft."
        - ""
        - " &c❘ &fPotions Thrown: &c<potionsThrown>"
        - " &c❘ &fPotions Missed: &c<potionsMissed>"
        - " &c❘ &fPotion Accuracy: &c<potionAccuracy>"
You also need to remove the potion statistics from STATISTICS-BUTTONlore.

2) Adding tournament hotbar configuration in hotbar.yml. Add the following above the PARKOURsection in LOBBYlayout, make sure to have the same indents and spaces.
YAML:
  TOURNAMENT:
    TOURNAMENT_INFO:
      NAME: "&cTournament Info &7(Right-Click)"
      ENABLED: true
      ACTION: JOIN_TOURNAMENT
      MATERIAL: BOOK
      DURABILITY: 0
      SLOT: 0
      LORE: []
    TOURNAMENT_LEAVE:
      NAME: "&cLeave Tournament &7(Right-Click)"
      ENABLED: true
      ACTION: LEAVE_TOURNAMENT
      MATERIAL: RED_DYE
      DURABILITY: 0
      SLOT: 8
      LORE: []
Added
  • Added pearl removal logic upon player death.
  • Added per player entities cache.
  • Added division mini-logo placeholder.
  • Added a warning for null profile in ProfileHistory.
  • Added configuration for party chat.
Fixed
  • Fixed Boxing combo threshold.
  • Fixed settings menu hook lore placeholders
  • Fixed product not being marked as bought.
  • Fixed party being null for profiles.
  • Fixed another item being consumed with glass bottle removal.
  • Fixed statistics revert logic for win streaks.
  • Fixed fall damage being disabled for bed-fight.
  • Fixed round start resetting match timer.
  • Fixed follow logic being broken when state changes.
  • Fixed ApolloAPI not marking some matches ranked.
  • Fixed TNT Sumo clay not being colored.
  • Fixed MLGRush breaking bed at the same time.
  • Fixed PartyDuelMenu formatting breaking with a few players.
  • Fixed player not being reset when leaving a party which is in a match.
  • Fixed portal and protection radius not saving for duplicates.
  • Fixed TeamFight/HCT not registering to tournaments as a kit.
Changed
  • Allowed using spectator items when in vanish.
  • Update visibility when vanish is toggled.
  • Use player-head instead of nether star for profile menu item.
Added
  • Added {main_color}, {second_color}, {third_color}, with configs in settings.yml. (PAPI: %bolt_main%, %bolt_second%, %bolt_third%).
  • Added Phoenix as a soft-depend for phoenix buyers.
  • Added Placeholder and bordered mode config for Queue type menu.
Changed
  • Allowed empty special locations to prevent arena startup errors.
  • Made nametags update faster.
  • Optimized Tablist adapter to stop sorting every tick.
  • Reverted all performance weakening changes.
  • Updated PacketEvents and NameTagAPI.
  • Updated ImagineBreaker (You no longer need --add-opens arguments to run on modern java).
Fixed
  • Fixed ending scoreboard error spam.
  • Fixed arena allocation logic being broken resulting in stuck-in-use arenas.
  • Fixed menu and hotbar PAPI support.
  • Fixed being able to duel your own party member.
  • Fixed OITQ bow damaging own team.
  • Fixed last being self for arrows.
  • Fixed certain items not being marked unbreakable. (Fixes weird swing animation)
  • Fixed build logic for volatile locations in bedfight matches.
  • Fixed Spectate scoreboard ending placeholders.

Note: Please restart your servers in order for changes to take effect.
Added
  • Added configuration for HCF-TeamFight class limits.
  • Added tournament reset cooldown command.
  • Added proper phoenix settings implementation by @Creaxx.
  • Added vanilla chunk arena reset, extremely stable and works on all spigots.
  • Added an option to toggle chunk caching for chunk reset systems.
  • Added manual selection for portal cuboid. (Make sure to do /arena setProtectionRadius 3 for Bridge arenas.)
  • Added spawn protection radius configuration.
  • Added menu button sound configuration.
  • Added title fade in, stay and fade out ticks configuration.
  • Added kit editor refill button for potions. L @Elb1to.
  • Added Kit description for Queue menus. (<kit_description>, /kit setDescription)
  • Added edge detector for Bots, so they don't suicide.
Fixed/Changed
  • Fixed inventory source null pointer in MatchInventoryMenu.
  • Fixed null pointer in BoltScoreboardAdapter#getLines.
  • Fixed Infinite pitch error in SquidLauncherEffect.
  • Fixed Hotbar Cooldown being bypassed.
  • Fixed PartyDuelMenu erroring in some circumstances.
  • Fixed reversed condition in tournament console host command.
  • Fixed bard passive effects not working.
  • Fixed Respawn task teleporting you to previous killers.
  • Fixed match start chunk load lag.
  • Fixed invisible players on certain matches.
  • Fixed block liquid replace logic for matches.
  • Fixed pearl launch sound still being sent when cancelled.
  • Fixed explosion damage bypass not working.
  • Fixed Party nametags not being reloaded.
  • Fixed divisions sorting in Tablist when Phoenix is enabled.
  • Fixed match cancellation still allowing start task to function.
  • Only assign Diamond classes on party join.
  • Decreased HCTeams ticking task.
  • Don't allow bots in special game-modes.
  • Made chunk arena reset partially async.
  • Recoded arena reset type configurations.
  • Forced chunk reset system on modern versions.
  • Auto set queue slots according to kit size.
  • Prevent interaction if profile is null.
Removed
  • Removed ProtocolLib dependency.
  • Removed NameTagAPI thread system.
Note: Please restart your servers in order for changes to take effect.
Added
  • Added XP Taken message if exp is removed.
  • Added an option to disable loser exp.
  • Added event hotbar items.
Fixed/Changed
  • Fixed double bots being loaded into match team.
  • Fixed Liquid listener not killing if no movement is detected.
  • Fixed Winner/Loser XP message being invalid.
  • Fixed RandomQueueButton having issues with duo logic.
  • Fixed Null pointer in MatchHandler#terminateMatch.
  • Fixed parallel portal score.
  • Prevent liquid from flowing outside the arenas
  • Sort by division if rank is same in tablist.
  • Allowed leaving event if its started.
Removed
  • Disable spectate matches menu for now.
Note: Please restart your servers for changes to take effect.
Added
  • Added Phoenix Settings implementation. (Properly)
  • Added <tab_player_slot> placeholder global. (tablist.yml)
  • Added <tab_player_formatted_slot> placeholder global. (tablist.yml)
  • Added an option disable tablist for 1.7 players.
  • Added a config option for formatted tab name.
  • Added death stats tracking and it's placeholder.
  • Added an elo reset command.
  • Added <your_skin> placeholder to BoltTablistAdapter.
  • Added Kit#isAntiDrop kit rule.
  • Added Kit toggle command.
Fixed/Changed
  • Fixed Tablist ranks sorting not working properly.
  • Fixed arena resetting logic for water/lava.
  • Fixed Disguised name being revealed on leaderboards.
  • Fixed coloring mistake in KitCommands.
  • Fixed spectators throwing away items.
  • Fixed hotbar interaction logic.
  • Fixed party size limit logic.
  • Fixed sumo event teleportation bug.
  • Fixed Bow timer returning arrow outside of match.
  • Reset match timers on match terminate.
  • Fixed Kit setup being broken.
  • Fixed "Comparison method violates its general contract!"
  • Fixed fly remaining after match for some players.
  • Improved Tablist API CPU usage and general performance.
  • Used proper conventions for sorting.
  • Header/footer now updates periodically.
  • Don't reveal disguise names with Follow command.
  • Clear item flags on StatsButton.
Note: Please restart your servers for changes to take effect.