Advanced Perks Recode | GUI, PlaceholderApi support | Citybu
3.4.1Powerful system to enable per player perks to enhance the gameplay of your server.
3.4.1latestSupport for 26.2Aug 13, 2026 This update adds support for the Minecraft Version 26.23.4.0Maintenance UpdateJul 21, 2024 Fixed: · Plugin showing the incorrect Plugin Version · Problems with the Bird Perk related to switching the World and Gamemode3.3.0Major Update with BugfixesMar 3, 2024 Fixed: · Automatic reconnect from the database when it loses its connection · Bugfix for deprecated inventory interactions causing errors in the server log · Fixed problem with the update checker not working on older java versions · Fixed the annoying error with the inconsistant skull meta error message spamming the server log Improvement: · Better datastructure for perks caching for faster future development3.2.0Added a /perks setprice commandDec 17, 2023 Features: · Added the command /perks setprice <perk> <price> to set a price for a perk without the need to dive into the configuration3.1.1Fixing the perks migration process for sqlite file based datasourcesDec 17, 2023 Bug Fixes: · Fixed a bug that would fail the perks data migration process when migrating old perks data from a filebased datasource Maintenance and Code Quality: · Improved the plugins sourcecode test converage with unit tests · Rearranged source code for better clarity3.1.0Phantom Perk, toggle and migrate commands, enhanced GUI, optimized configuration, bug fixesDec 5, 2023 New Features: · Reintroduced the Phantom Perk. · Added a /perks toggle command for efficient perk management. · Added a /perks migrate command to migrate the database related perk data from the older version to the newer versions · Enhanced the GUI toggle element for clear perk unlock status indications. Optimized configuration loading for increased operational efficiency. Introduced a clear indicator in the GUI for locked perks. Bug Fixes: · Resolved an issue with the SQLite insert or update statement for improved database operations. Maintenance and Code Quality: · Implemented a SQL migration script for systematic database evolution. · Integrated Sonar Lint for comprehensive code quality measurement. · Finalized Checkstyle configuration and adjusted code accordingly.3.0.0First Version of the full Plugin RecodeDec 1, 2023 The plugin has undergone a comprehensive recode to significantly accelerate future development. The previous codebase had become excessively messy, prompting the need for this overhaul. Unfortunately, this recode necessitates a complete reconfiguration of the plugin from scratch. Numerous configuration files, keys, and data structures have undergone changes. If migrating old perk data is a major concern for you and prevents you from updating to the new version, please reach out to me on Discord. I'll examine the possibility of assisting you in migrating your old advanced perks data. It's important to note that this update may contain bugs since thorough bug checking was limited due to time constraints. If you encounter any issues, kindly report them on the support Discord through a ticket. Rest assured, we'll promptly address reported bugs until the plugin achieves complete stability.2.9.1Major improve for /perks info bugfixing related to the bird perkJul 13, 2023 Changes made: - The bird perk will now correctly enable and disable when switching worlds on a multi world server. - This update makes major improvements to the /perks info command. Now you can see enabled perks aswell and you can view perk information of players who arent online. Be sure to update your message.yml file with the following new lines Code (Text): Command: Info: Player-Does-Not-Exist: '<prefix> &cThe player <player> either does not exist.' Text: - '<prefix> &7The player &6<player> &7has bought the following perks:' - '<prefix> <bought_perks>' - '<prefix> &7The player &6<player> &7has enabled the following perks:' - '<prefix> <enabled_perks>'2.9.0Codebase modernization and bug fixing 1.20 SupportJul 6, 2023 Upgraded to a modern codebase using Java 17, resulting in improved performance and compatibility. Plugin can now officially be used with 1.17-1.20 but should still run on lower versions. Changes made: - Added the new command: /perks info <player> which allows you to view the list of perks bought by a specific player. - Improved the perk saving and loading system, ensuring that perks are accurately synchronized and maintained across multiple BungeeCord servers. - Addressed reported errors and fixed various bugs to enhance stability and overall plugin functionality. New lines that need to be added to the message.yml Code (YAML): Command: Info: Player-Offline : '<prefix> &cThe player <player> either does not exist or is offline.' Text : - '<prefix> &7The player &6<player> &7has bought the following perks:' - '<prefix> <bought_perks>' Syntax : '<prefix> &7The command syntax is : /perks info <player>' Sorry for long time without updates. A new major release (3.0.0) of the plugin is already in the works featuring a long requested gui system and some more bigger improvements.2.8.5Overall stability improvements to saving/loading perksApr 1, 2022 This update features some overall fixes to ensure optimal saving and loading of perks. A often encountered bug was fixed where the plugin wouldnt load all perks from a player when he quickly changed server on a bungeecord network. Thanks to @uharn and @Plattio for the neccesarry insight to fix the bug.2.8.4Some internal changes and a more efficient update checkerMar 28, 2022 There are some internal changes to the plugin aswell as to the update checker to make everything a bit more fluent.2.8.3Fixes to the AdvancedPerksApi to properly register perks and load perkdataMar 28, 2022 See above.2.8.2Important HotfixMar 25, 2022 A wrong reference in the code currently makes it impossible to save or load perks from the database. This hotfix is suggested for everyone using the Database feature of the plugin.2.8.1[HOTFIX] Fixed random sql error popping upMar 21, 2022 See title2.8.0Kind of huge refactoring of the plugin and /perks reload commandMar 21, 2022 This plugin features a lot of under the hood changes primarily done to improve the time it takes for me to update the plugin in the future. Also this update features a basic /perks reload command which currently will only reload the messages and the settings config but not the perks config. Later today will follow a small update which will bring back the update notifications but this time with a changelog ingame to see the new stuff added.2.7.0Added /perk buy CommandMar 18, 2022 This update features a often requested feature. You can make the process of user getting perks more easy, the plugin received the feature to interact with vault and your economy plugin to make it able for player to buy perks with /perk buy <Identifier>. To specify a price you need to add a line to the perks.yml file with the name Price (EXAMPLE): Code (YAML): Telekinesis: Price : 35.0 Display-Name : '&5&lTelekinesis Perk' Description : - '&7&oActivating this perk will grant the player the ability' - '&7&oto teleport mined items directly into the players inventory.' Permission : 'advancedperks.use.telekinesis'Telekinesis: Display-Name : '&5&lTelekinesis Perk' Description : - '&7&oActivating this perk will grant the player the ability' - '&7&oto teleport mined items directly into the players inventory.' Permission : 'advancedperks.use.telekinesis' If you are upgrading from a lower version be aware of two things. First the database schema has changed this update and will most likely change in another update in the near future. You dont need to do anything but saved perks will not be transferred to this version of the plugin. And second you need to add the following lines to your message.yml file: Code (YAML): Command: Buy: No-Eco-Support : '<prefix> &cThe plugin is missing either an economy plugin or vault to use this feature.' Perk-Not-Found : '<prefix> &cThe perk <perk> was either misspelled or doesnt exist.' Success : '<prefix> &7You &asuccessfully &7bought the perk <perk>.' Error : '<prefix> &cThere was an error while buying the perk <perk> contact the administrator of the server for further information.' Already-Unlocked : '<prefix> &cYou already have that perk unlocked.' Not-Enough-Money : '<prefix> &cYou dont have enough money for that perk.' Cannot-Be-Purchased : '<prefix> &cThat perk cannot be purchased.'2.6.0New Perk "Farmer"Mar 5, 2022 This update introduces a new perk that i recently had in mind. To properly include it when updating you need to add its properties to the perks.yml file. Changes to add2.5.1Internal update to the configuration systemMar 5, 2022 This update introduces a new internal configuration system which will increase the efficiency and stability with the plugins configurations.2.5.0Two new Perks and Support to disable Bird Perk in LavaMar 4, 2022 Changes to the config file: click here Added two new perks. The Smelter Perk. Mined ores will turn into their ingot equivalent when mined. The Telekinesis Perk. Mined items will under the condition that the player has space for them in his inventory be teleported into his inventory when mined. Also this update adds the posibillity to disable the bird perk when the player is inside of lava. This is to prevent users to exploit the Bird and Fireresistance Perks inside the Nether to gain huge amounts of Netherite(Thanks to @uharn for reporting it). To do that you need to add he following to the perks.yml: Code (YAML): Bird: Disable-In-Lava : true2.4.6Removed debug messagesFeb 17, 2022 This update isn't neccessary. It will just remove some debug messages left in the code i forgot about.2.4.5Reconnection support for the databaseFeb 9, 2022 As written in the title the plugin now features support to reconnect to the database once it lost connection to it.2.4.3Minor fix for database useFeb 9, 2022 Fixed a bug that would prevent the database from saving enabled perks correctly.2.4.2Startup fix for some spigot forksFeb 4, 2022 This update removes the need of apache commons-io as some spigot forks for whatever reason decided to not include it in their jar. You only need this update if AdvancedPerks wont start on your environment. If the plugin currently works as expected this update isnt mandatory for you.2.4.1Migrated command system to use sympel-commandFeb 4, 2022 This update merely brings a technical change that neither fixes any bugs nor changes any funtionality. Its just a under the hood improvement for the plugins command system.2.4.0Some small bugfixesFeb 4, 2022 This version adresses some bugs that were found: · Proper PlaceholderAPI support · Migrated to sympel-database for perk saving and faster database operation · Fixed a rare bug that made Advanced Perks misbehave with PlaceholderAPI and Worldguard's pvp DENY flag2.3.1Huge improvementsJan 29, 2022 Sorry for the quite long time of no updates. I completely rewrote and recoordinated my whole plugin backend and infrastructure. Its still not to a point i would say that its finished but im getting closer. Meanwhile i fixed some bugs reported by user and upgraded some of the internal workings of the plugin to be more efficient: · Fixed a bug that on rare occasions would make it possible to have more than the wanted amount of perks enabled · Implemented a custom configuration engine more on that later · Implemented a custom way of handling multiversion compatability · Made the compatability checking aware of player world changes to prevent perks being able to be used in worlds where they were not supposed to · Improved performance of the plugin in general (dont worry it was already really lightweight before)2.1.0Multiple Bug FixesDec 26, 2021 This Update adresses three recent bugs: - Aftert reload of the server you could take items out of the perks gui when still in it - The perk command needing a permission to be used - The amount of the permission advancedperks.maxperks.X was ignored until the player relogged2.0.1Introduction of Metrics againDec 23, 2021 This update isn't mandatory but highly suggested if you want to help me with developing the plugin by including useful metadata for me.2.0.0Kind of big recodeDec 22, 2021 This update features a big recode of the code base to make it more modular and scalable. Also the recode of the base will allow me to post bugfixes more quickly. For now the Npc feature was ditched in favor of a better version following soon. I also updated the overview page. I will also start to write full documentation of the plugin in the next weeks. Beware all of your old configurations will break when used with this release. You need to fully regenerate new configurations sadly.1.4.1Added PlaceholderAPI supportNov 17, 2021 This update add support for the plugin PlaceholderAPI. From now on you can use the following placeholder: %advancedperks_< PERK_IDENTIFIER> which returns true if the player has enabled the < PERK_IDENTIFIER> perk or false if not.1.4.0Fixed a few potion effect related bugsNov 16, 2021 In this update the following bugs got fixed: - https://github.com/Fabilucius/advanced-perks/issues/12 - https://github.com/Fabilucius/advanced-perks/issues/14 You need to add the following to your config.yml otherwise the plugin will automatically disable the feature when starting the new version without adding it to the config.yml (reason is that i dont have enough data of the performance impact of the feature so it should be considered as WIP): Code (YAML): perks : #Warning this setting could have impact on the server's performance, but normally it shouldn't #This setting will periodically check if the potion effects the player should have from his perks have #desynced through other plugins. checkForPotionDesync : false1.3.0Command to toggle perks !!!!Api Changes!!!!Nov 14, 2021 This Update will break all current custom perks because theres a new field that need to be filled in the constructor when creating a custom perk called "identifier" which is a String that should uniquely identify a Perk. This Update also requires all perks of the perks.yml that you want to be able to use to add a new value called identifier: (identifier you want to use for the perk normally the perk name in camel case "fireResistance") This Update also introduces a new subcommand to the perks command called toggle. The usage is /perks toggle <Player> <Perk_Identifier> [On/Off] where <> is mandatory and [] optional. The use of this command should be self explanatory. When no on off argument is provided the perk gets toggled to its other state.1.2.2New Insomnia Perk added aswell as a new Developer Api Perk Type called AbstractTaskPerkNov 5, 2021 This update adds a new Perk based on feedback of you. Its called the insomnia perk and when enable will prevent phantoms from spawning for the player. This perk also uses the new perk type available for developer that work with the custom perk api. Click here for more information about the new type. You will also need to add the following to your configuration files: message.yml Code (YAML): insomnia: displayName : '&e&lInsomnia Perk' description : - '&7&oWhen activated this perk allows the player to avoid the spawning' - '&7&oof phantoms even when he has not slept for a while.' perks.yml Code (YAML): insomnia: enabled : true permission : 'advancedperks.insomnia' disabledWorlds : [ ]1.2.1Fixed duplication bug with the KeepInventoryPerkOct 30, 2021 This update fixes a duplication bug with the KeepInventoryPerk. Its more than recommended to update to this version if you use this plugin in a production environment.1.2.0Added a customizable NPCOct 3, 2021 This update adds a fully customizable (name and skin) NPC that can be used as decoration and to open the perks gui. There are changes that need to be done in order to update to this version successfully: config.yml Code (YAML): npc: enabled : true facePlayer : true skin: data : 'ewogICJ0aW1lc3RhbXAiIDogMTYzMjAxNDE4MjQxNywKICAicHJvZmlsZUlkIiA6ICI3MzgyZGRmYmU0ODU0NTVjODI1ZjkwMGY4OGZkMzJmOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJJb3lhbCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MmU4YmZjNjBkNDMzMmVmYTVlYWM4YjkxZmY5NjdiOTc5ZTFhOTRjZGQ4MmVmMjliMGQ3MWMyZjhiOGNlNDM4IgogICAgfQogIH0KfQ==' signature : 'W7C9c0sAqthZoZEo2TSjxUFFRYvLMJ+NaZmHVNFfx5w7eN0Y6mJCNptAHu8yiN1A9zWz75MWa2dc+Ou2bL3+eWs6krD0XZjywYoL+dPWgQUva5ox/imvbPKuayruwMZe5arWGlnRshpRdhGQMgk555GpZZHErIPPm4v8sndNCgbBSQBQtK+ViJQs24xloDB6o97OXjySVkdXG6MDlD2BHOu7YM7nu191C4aOqLgaMlS8cLAS0Iqw1Td0aogELSTf2DDYme/t/7swcBEEYuKUAm8QYsLB2QpJhUKFVWQlNB/RxLjVkiJ2Uu35Wjivqa6lJKFcVw2wL30zRYKyfR73BsCIYQJo1tHQWTyEypidhgJEsWZuZw7PyjOjEpieCecqanztdEWv6+TJYSNRhalT5jQaucebNQB87hoff3uImJTLkovgSce0IBRqPFQFBPoJJ0lM9/OOXGe6CtN5Zm+ErbNAOFATnWyOcL+VOD0B1WOee6ONjK7O2zvGHU1ExhCqTX1g4he4jHmjMQ/If2uRYXb1uIs4y0BQMXpSvK4ogU2ZuiyJdjxRRkqsdb1gFb9OizIruBBVafulpx20sZuSAhRFMK3YJgPrq/uExtE0FujbK4yTTwxaCKzpRwvdilDZcIVTcItxxH06jUwbzP9PDbKnZDYn3URcBEC14x9Epp0=' location: == : org.bukkit.Location world : world x : 0.0 y : 0.0 z : 0.0 pitch : 0.0 yaw : 0.0 message.yml Code (YAML): npc: name : '&6&lPerks'1.1.7Added a dynamic way of handling the max allowed amount of simultaneously enabled Perk'sSep 23, 2021 Previously the Plugin had a static hard limit of how many Perk's a player could have enabled in parallel. That now has changed. You can assign player a permission called: advancedperks.maxperks.<amount> to dynamically overwrite the maximum amount of Perk's a player can have enabled where amount is the new max amount of Perk's.1.1.6New Perk called "Bird"Sep 20, 2021 Per request this update features a new Perk called Bird. When a player toggles said perk he will be able to fly until the Perk is toggled off again. You need to add the following to your message.yml: Code (YAML): bird: displayName : '&f&lBird Perk' description : - '&7&oWhen activated this perk allows the player to fly even' - '&7&owhen he is in survival mode.' and the following to the perks.yml: Code (YAML): bird: enabled : true permission : 'advancedPerks.bird' disabledWorlds : [ ]1.1.5Fixed empty page bugSep 17, 2021 Fixed a bug that would occur when the amount of loaded perks was able to be divided by 8 the next page icon would be visible and when pressed show an empty perks tab. Code (YAML): No additional config changes1.1.4Changed Plugin's api-version from 1.17 to 1.13Sep 16, 2021 I was aware that spigot was kind of " against" supporting multiversion Plugin's but not that they were "if api-version is higher then server version don't even try to boot" kind of against supporting multiversion. Anyway I made a fix to the api-version that the Plugin now will boot again from Spigot 1.13-1.16.1.1.3You will now receive your updates faster and you can choose your messages more freely:DSep 16, 2021 Not but seriously the previous method of checking for Plugin updates was really slow as the api i used was deprecated and slow. The new method will show updates faster and more reliable. But the best part of the update you now can edit the " Activated" and " Deactivated" Messages for the gui toggle button. You just need to add the following to your message.yml if you upgrade from an older version. Code (YAML): perksGui: guiElement: perkToggle: activated : '&aActivated' deactivated : '&cDeactivated'1.1.2Added toggleable Update CheckerSep 14, 2021 The Plugin has a new Configuration Value inside the confg.yml file Code (YAML): checkForUpdates : true With that value you can now enable or disable the Plugin from checking for updates and notifying Operators on server join when an update was found.1.1.1Disable Perks for configurable WorldsSep 13, 2021 You now have the option to disable perks for configurable worlds. For default perks edit the perks.yml file and add the names of the worlds to disabledWorlds: Code (YAML): examplePerk: enabled : true permission : 'examplePermission' disabledWorlds : - 'exampleWorld1' - 'world_the_nether' For custom perks just invoke the method setDisabledWorlds(String... worlds) with the names of the worlds. Code (Java): CustomPerk customPerk = new CustomPerk ( ) ; customPerk. setDisabledWorlds ( "exampleWorld1", "world_the_nether" ) ;1.1.0Multiversion Support Now The Plugin Supports 1.8.x-1.17.xSep 13, 2021 · As the title above said the Plugin now supports all Minecraft Version from 1.8 up to 1.17.1. · Tested itself are only the Versions 1.8 1.12.2 and 1.17.1 but all Versions in between are expected to work without any problem. · The Plugin is now build with Java 8 instead of Java 16 so expect more Compatabillity1.0.0Added MetricsSep 12, 2021 Added Metrics to the plugin.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.9MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
4.7MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta