• Display Shops | A New Approach To Player Shops •

MC Plugin • Display Shops | A New Approach To Player Shops • 2.0
Create immersive simplistic shops with animations, efficient transaction handling, and much more!

All DisplayShops 1.7.x data and configurations OUTSIDE of the "menus.yml" will be converted. Backup all data before updating.

• Changes •

  • Added 1.20.3 and 1.20.4 Support
  • Added general ItemsAdder and Oraxen support
  • Saving mechanics are now performed in parallel (much faster data saving)
  • The recipe for the creation item can now be reloaded using "/displayshops reload"
  • Reworked most logging messages. All items that are changed are included in the logged message
  • Shops now have a multi-currency feature, allowing users to select a specific currency for each of their shops individually
    • Switching currencies now automatically formats all balances, costs, etc. with their identified symbols/names (REMOVE ALL CURRENCY SYMBOL REFERENCES IN ALL CONFIGS)
    • Custom economy/currency integration documentation can be found here
    • Along with this change, many new configuration options are available in the config.yml
  • The shop creation item now has the "DisplayShops" NBT tag for easy 3rd-party identification
  • All menus were split into their own configuration files and moved into the "menus" folder
    • The "menus.yml" will remain for reference, but will not be utilized
  • All menus were reworked from the ground up granting new features and abilities
    • The appearance menu now only shows the heads of existing assistants
    • Most menus now have a graphical way of user entry alongside a text-related way of entry
    • Text-related entries are presented with an AnvilGUI thanks to the library by WesJD
  • All amount selectors now have a more fluent experience by starting at the amount set in the shop and allowing the player to add or remove from that value rather than entering negative values
    • Page-based menus now load pages asynchronously alongside conditional properties for updating buttons in a reactive format
  • Everything related to "base-blocks" was rebranded as "appearances" and moved to the "appearances.yml" (menu configuration file)
    • This includes default materials such as the "shop-block-material" and base-block offsets for hologram positioning
  • Many new messages were added/removed to/from the "lang.yml" (All will be added/removed automatically to/from the "lang.yml")
  • Enhancements to existing features were implemented, including the addition of new config.yml options like "fix-above-blocks", "force-single-stack", and "editor-prevention"
  • Added the ability to use TEXTURE:<base64> as a material to use base64 custom texture for item heads
  • Player head caching was implemented for REAL player profiles allowing menus to load quicker where heads are present
  • Replaced the "/ds copy" command with "/ds id" command. The new command sends the ID into chat and is now clickable to copy to clipboard.
    • This change also adds the "shop-id" message to the "lang.yml"
  • The "/ds reload" command now has the ability to enable/disable Vault based on the configuration value without a server restart
  • Implemented configuration synchronization
    • When the plugin enables, all configurations have their keys compared against the latest configuration found inside the JAR. Keys will then either be added or removed based on the comparison result
    • This feature simply will allow the config.yml and lang.yml to remove old options and add new options where suitable
  • The "{buy-price}", "{sell-price}", "{base-buy-price}", and "{base-sell-price}" placeholders now reflect the unit count when increased or decreased
  • The "displayshops.edit" permission is now a general permission that allows the player to edit a shop they have access to. The new "displayshops.adminedit" has access to edit all shops regardless of ownership
  • Player recovery (when a shop is deleted while the player is offline) was reworked and handled in the "recovery.yml"
    • For now, the items are dropped to the player when they come online
    • The dropped item that didn't make it into their inventory are protected until next reload or server restart
  • The values of "-1" are now shown as "Disabled" throughout the plugin
• Fixes •
  • Fixed an issue allowing container base-blocks to open the block's inventory. The fix simply closes the inventory 1 tick after its possible appearance
  • Fixed issue causing some shops to get stuck in a currently being edited state
  • Fixed an issue allowing non-store-owners to set the shop item of an empty shop
  • Fixed several issues causing the shop item to not show set stack sizes set by the shop owner or assistants
  • Fixed an issue causing holograms/displays to not update when the shop is updated (only effects "always-display" mode)
  • Fixed an issue causing notifications not to be sent to a shop owner when a player makes a purchase
  • Fixed an issue with the SuperiorSkyblock2 hook causing shops to not delete properly
  • Fixed an issue that closes all GUIs any player has open when a shop is deleted
  • Fixed an issue causing transaction menu items to show incorrect prices when unit count is updated
  • Fixed an issue causing the sell-all action to send an incorrect message
  • Fixed an issue causing buying/selling to not calculate the unit count off the paper display item
  • Fixed an issue causing buying/selling actions not to function without the displayshops.edit permission
  • Fixed a few issues with deposit/withdraw features causing improper values to be or incorrect calculations to be used
  • Fixed an issue with the stock balance too low message (improper balance amount displayed)
This will be the final 1.7.x update of DisplayShops. If any further changes are made to the 1.7.3 update, builds will be released within the discord in verified channels (be sure to verify to gain access).

Once resources have been created, DisplayShops 2.0 will take over and be the new main branch of the plugin.

• Plugin Changes •

  • Added 1.20.1 and 1.20.2 support.
  • displayshops.edit is now a general permission that allows the player to edit a shop they have access to. The new displayshops.adminedit has access to edit all shops regardless of ownership.
  • Implemented additional depth and configurability for explosive protection.
  • The shop visit items within the visit menu now will remove buy/sell price lines if the price is set below zero.
  • Shops with a sell price will now show in the visit menu regardless of current stock.
  • Added the "not-applicable" message to the lang.yml for global usage.
  • Added entity block changing protection for shops.
  • The shop creation item is now entirely checked by NBT.
  • The Material translation section in the "lang.yml" can now accept the format <material>:<durability>: "<translation>". To allow for durability/data values for older MineCraft versions.
  • Fixed an issue preventing the shop advertisement message from properly showing a preview of the item it is selling.
    • Additionally, the player must now click the "[Click To Visit]" text to initiate the teleportation process.
  • Fixed an issue with the SuperiorSkyblock2 hook causing shops to not delete properly.
  • Fixed the visit menu not properly determining when to show a shop.
  • Fixed the "HIDE_DYE" attribute throwing errors for MC versions under 1.13.
  • Fixed an issue that prevented visiting a shop surrounded by snow (Quarter Block Height).
  • Fixed the advertisement message not allowing new lines (\n).
    • In addition, when the buy/sell price is below zero, a single currency symbol in front of the placeholder will now be removed (color codes will break this process).
  • Fixed an issue with time formatting within the market region messages.
  • Fixed an issue allowing the base-block page memory to be empty.
• Plugin Changes •
  • Added 1.20 Support.
• API Changes •
  • The "getVisitPageMap" method was replaced by the "getVisitContents" method which now returns a "Pair<Shop, ItemStack>".
  • The "getShopVisitItemList" method was added to the "Manager" interface which contains all managed shop items that are only added or removed by the respective task.
• Plugin Changes •
  • Added the "/sw" and "/swfilter" command aliases alongside additional logic form the to act like "/ds visit <args>".
  • The shop visit feature now uses a global item list to handle consistent sorting.
    • PlaceholderAPI is no longer support for the visit shop items. Due to the global change.
    • Paging is handled through a list of globally, alphabetically, sorted items based on their corresponding shop.
  • Shops now have their visit menu icon updated when their last changed timestamp is updated or an important value such as the stock is updated.
  • Ported the "editor-prevention" option/feature from v2.0.
  • Fixed an issue with sorting and indexing in the visit page menu with many shops that don't pass a defined filter check.
  • Fixed an issue with memory usage involving the visit shop menu.
  • Fixed some areas where the change timestamp was not updated for shops.
• API Changes •
  • Fixed an issue causing the new VISIT_FILTER_ENTRY to not fire the ChatInteractionStageEvent with StageType set to FINISH.
• Plugin Changes •
  • Added 1.19.4 Support.

  • When visiting a shop in Minecraft 1.13+ the shop's base-block material will be taken into consideration to prioritize teleporting the player to the "front" of the block (front of a chest, as an example).

  • Additions to the base-block menu can have their material set as the ID of a block from ItemsAdder to form custom base-block models/blocks etc. This also goes for menu items, by setting the material to the ID of a ItemsAdder custom item.
    • These ItemsAdder IDs are CASE-SENSITIVE.
  • Added the "/ds balance <deposit|withdraw> <amount>" command alongside the"displayshops.baldeposit" and "displayshops.balwithdraw" permissions.

  • Added the "balance-command-usage" message to the lang.yml file.

  • Added the "type-item" item to the "shop-visit-menu" in the menus.yml.
    • This new item toggles between the types buy, sell, and both each representing the shop which inherits the current cycle shop type.
  • The base-block menu now displays all valid options regardless if the players meets the requirements or not (even if they have unlocked it before and simply had their permission for it revoked). Instead, the player will be sent the no-permission message when clicking it (again, whether its unlocked or not).
    • In addition to this change, a {requirement} placeholder was added to the "unlocked-item-format" under the base-block-menu section from the menus.yml. Ensure to add - "{requirement}" there if desired.
  • The visit menu was reworked again to properly handle pages.
    • In addition, a refresh button was implemented incase a server is unable to load items fast enough for it to render to the player (please refer to the default menus.yml to add the button to your existing configuration).
  • The "/ds visit" command now allows multiple arguments. For example, "/ds visit golden apple" will open the visit menu with the filter "golden apple".

  • The {unit} placeholder can be used in menu items to get how many item's makes up a single unit for the shop associated to it.

  • Fixed an issue causing the hologram description to not retain configured color codes.

  • Fixed a compilation issue causing version 1.16 - 1.18.2 to handle packets incorrectly.

  • Fixed an issue with the Visit menu causing the filter to default to None when switching pages under the same instance.

  • Fixed an issue causing the chat interaction for the visit menu filter to not properly exit the player from its process upon completion.

  • Fixed an issue where decorative items were not working correctly causing original items to override their placement.
• API Changes •
  • Minor name changes internally were made, but nothing that will break API usage.
• Plugin Changes •
  • Added 1.19.3 support.

  • Backported display packet changes to 1.10-1.18.2. Older versions will likely not get a backport due to absent API features.

  • Added the "/ds deposit <amount>" and "/ds withdraw <amount>" with their permissions "displayshops.deposit" and "displayshops.withdraw".

  • Added the "transaction-cooldown" option to the config.yml. When clicking a buy/sell button in the transaction menu, the player must wait X seconds before another calculation operation is made. This is to hopefully resolve auto-clicker issues. (GitHub Issue #22)

  • Added the "clean-inactive-duration" option to the config.yml. Upon loading shops or executing the "/ds cleanup" command, all shops with owners who have been offline for the defined duration will be deleted.

  • The shop visit menu is now per item asynchronous and now loads one page, as needed. This will allow the items to build on their own threads to resolve some issues with long load times. This change has NOT been applied to the other menus. If this change deems worthy, the other menus will get a similar treatment!
• API Changes •
  • The "getPacketManager" method has been added to the "DisplayShopsAPI" interface containing all NMS functionality from the new layout.
  • Removed the "getSerializeUtil" method from the "Manager" interface.
• Plugin Changes •

  • Implemented 1.19 support.
  • Reworked display packets and applied many new fixes for versions 1.19+.
  • 1.8-1.8.6 are no longer supported due to drastic differences from 1.8.8+.
  • The entire project was rebuilt on maven with heavy module usage.
  • Swapped the "getShop" method to utilize a smaller algorithm.
  • Moved the piston check boolean to a global variable to resolve any possible usage hitch when disabled.
  • Implemented a direct Towny Advanced hook. When nations, towns, are deleted or un-claim land, shops will properly remove themselves.
  • Fixed an issue causing the sell operation to an admin shop while item-for-item mode is enabled to fail.
  • Fixed an unsupported operation issue involving piston retraction.
  • Fixed an array out of bounds issue with 1.8.8 - 1.12.2.
  • Fixed a "NoSuchMethodError" error for the "removeRecipe" method in versions 1.9+.
  • Fixed an issue involving creation-item enchantability.
  • Fixed an issue involving quick withdraw item stacking.
  • Fixed an issue with duplication on withdrawing.
• API Changes •
  • Added the 'VISIT_FILTER_ENTRY' to the ChatInteractionEvent.
• Plugin Changes •
  • Added the 'visit-filter-prompt', 'visit-filter-count', & 'visit-filter-none' messages to the lang.yml.

  • Added the 'filter-item' to the menus.yml for the visit menu.

  • Adjustments were made to the "onPlace" event to reduce its footprint.

  • Optimized some functions to attempt and reduce footprint.

  • Signs of all types may now be placed directly on the base-block of a shop.

  • Fixed an issue allowing pistons to move the base-block of a shop into a non-protected area resulting in duplicated blocks.

  • Fixed some issues with PlaceholderAPI placeholders.

  • Fixed an issue where the visit command would throw an error if a non-UUID was entered.

  • Fixed an issue that through an error upon shop iteration.

  • Fixed an issue with shop placement.

  • Fixed an issue where one enchantment was always left out of the description on shop creation.

  • Fixed an issue where display packets were not destroyed on Island deletion in some skyblock hooks.
If you currently use the plugin, before operating this build, run this build on 1.17.1 or lower to ensure all shops move to the data structure system. Once saved, continue on with 1.18.1! Merry Christmas!!

• API Changes •
  • Minor parameter changes were made to some functions (the functions were not significant and likely unused by others).
• Plugin Changes •
  • Added the "%displayshops_mrowner_{region}%" & "%displayshops_mrtime_{region}%" placeholders for PlaceholderAPI.
  • Added 1.18.x support.
  • When shop items or currency is dropped in item-form, the items may ONLY be picked up by the shop owner (done via MetaData, lasts until server restart or reload).
  • All features returning some form of item to a player now will default to dropping it at the shop's location (this also removes the simulated calculations that were required).
  • Fixed an issue preventing the shop-creation-item from being accessible in * Hopper GUIs (The item is still NOT accessible in other GUIs like anvils and droppers).
  • Fixed an issue when a shop is created under a block the above block was set to air. Instead, the block is broken naturally.
  • Fixed an issue preventing single & double quotes to be parsed when saving shop/trade items.
Top Bottom