v2.26.0
Details
-
FilenameShopkeepers-2.26.0.jar
-
Uploaded by
-
UploadedFeb 21, 2026
-
Size2.18 MB
-
Downloads17,705
-
MD550cbf60a481b2b6aaf30d91da9185104
Supported Bukkit Versions
- 1.21.11
- 1.21.10
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
Changelog
v2.26.0 for MC 1.21.11, 1.21.10, 1.21.8, 1.21.7, 1.21.6, 1.21.5
I only list the primary changes here. For information on API changes, internal changes, and changes to the language files, you can find the complete changelog on Github: https://github.com/Shopkeepers/Shopkeepers/blob/master/CHANGELOG.md
- Permission: Add
shopkeeper.create(default:op).- Only players with this permission can create shopkeepers via command (both admin and player shops).
- Config: This permission replaces the previous
create-player-shop-with-commandsetting. The setting is automatically removed during config migration 10. - Compared to the previous setting, this permission offers additional flexibility: It is now possible to only allow admins to create player shops via command while still requiring normal players to use the shop creation item.
- The "no-permission" message for the shopkeeper creation command includes a note now about using the shop creation item to create player shops.
- Manual migration: If you previously allowed your players to create player shops via command, you will have to assign them this new permission now.
- Add shop creation items that create shopkeepers with a pre-defined shop and/or object type.
- Command: The
/shopkeeper givecommand optionally accepts ashop-typeandobject-typeargument now. When specified, the created shop creation item only spawns shopkeepers of the respective type. - Only player shop types are supported in combination with the shop creation item.
- When a player tries to use the shop creation item with a pre-defined shop or object type, we still perform the usual shop and object type disabled and permission checks. I.e. shop creation items can become useless if the respective shop or object type gets disabled or the player misses or loses their permission to use it.
- The shop creation message was slightly adapted to omit the non-relevant instructions for switching the selected shop or object type.
- Internally, the shop type and shop object type ids are stored in the item's
custom_datainPublicBukkitValueswith the keysshopkeepers:shop_typeandshopkeepers:object_type. In combination with theshopkeepers:shop_creation_itemtag, you can use third-party item editing plugins to create custom shop creation items that spawn specific shopkeeper types. - Debug: Extend the output of the
checkItemcommand to include whether the held items specify a pre-defined shop or object type.
- Command: The
- Add end crystal shop object.
- Permission:
shopkeeper.entity.end_crystal(default:false, but included inshopkeeper.entity.*). - Config: Add
enable-end-crystal-shops(default:true). - Config: Add
allow-end-crystal-shops-in-the-end(default:false). - Placing end crystal shops in the end is disabled by default, because they can for example affect dragon fights.
- Permission:
- Config: Rename some settings, since they might also affect non-mob entities.
- Rename
silence-living-shop-entitiestosilence-shop-entities. - Rename
mob-behavior-tick-periodtoentity-behavior-tick-period. - The config is automatically migrated (version
10).
- Rename
- Disable the gravity for flying mobs.
- Certain mobs can now be placed in the air without dropping to the ground due to gravity: Allay, bat, bee, chicken, blaze, ender dragon, ghast, happy ghast, parrot, phantom, vex, wither.
- When spawned, we still adjust their spawn location within their spawn location block, but we no longer automatically place them on the block below that, like we do for other mobs, allowing them to hover one block above the ground.
- We periodically check if the mob is still in the air and update their onGround state accordingly for some of these mobs to play their flying animation.
- Also: Entities tick their AI now while falling.
- Prevent placing mobs in midair that are neither flying nor shulker.
- Add an item with shopkeeper information to the editor UI. The item's lore includes: The shop id, unique id, name, shop type, object type, location and owner (for player shops).
- In the regular villager editor, we show entity information instead (entity id, unique id and location).
- Config: Add
shop-information-item(default:minecraft:paper).
- Add an editor option to temporarily close the shop: Players cannot trade with or hire the shop while it is closed.
- Config: Add settings to disable certain aspects of normal villagers and wandering trades per world:
disable-other-villagers-worldsblock-villager-spawns-worldsdisable-zombie-villager-curing-worldshire-other-villagers-worldsdisable-wandering-traders-worldsblock-wandering-trader-spawns-worldshire-wandering-traders-worlds
- Even when disabled, allow normal villagers and wandering to still be spawned manually via command, similar to how they can still be spawned via spawn eggs. However, during chunk loading, such villagers are still subsequently removed.
- Fix: Immediately delete shopkeepers again if they fail to spawn, e.g. if placed in a protected region and
bypass-spawn-blockingis disabled.- This only applies to player created shopkeepers (
ShopkeepersPlugin#handleShopkeeperCreation), not shopkeepers created via the API by other means (ShopkeeperRegistry#createShopkeeper). - We only check if the shopkeeper was able to spawn once immediately after creating it. We do not automatically delete shopkeepers that later fail to spawn.
- Note: From brief testing, Citizens NPC shopkeepers seem to bypass region protection plugins like WorldGuard currently, since they don't call the usual Bukkit entity spawn events that WorldGuard listens to.
- Also: When a shopkeeper is deleted, we now immediately try to reuse the last id again if there is no other shopkeeper with a larger id existing.
- This only applies to player created shopkeepers (
- Add detection and cleanup of unspawnable shopkeepers:
- Each shop object whose spawning is handled by us (i.e. excluding Citizen shopkeepers) now keeps track of whether its last spawn attempt failed. During plugin startup, we log a warning for each shopkeeper that previously failed to spawn.
- Command: Add command
/shopkeeper deleteUnspawnableShopkeepers.- Permission:
shopkeeper.delete-unpawnable-shopkeepers(default:op) - Checks for shopkeepers that previously failed to spawn and optionally deletes them after confirmation.
- Permission:
- Config: Add setting
delete-unspawnable-shopkeepers(default:false) to automatically delete unspawnable shopkeepers during plugin startup.- Since automatically deleting shopkeepers is potentially risky, it is recommended to keep this setting disabled and instead use the newly added command to manually check for and optionally delete unspawnable shopkeepers.
- Fix: Bat shopkeepers are awake now unless they have a solid block above them.
- Fix: Prevent copper golems from accessing protected copper chest shop containers.
- Config: Add setting
prevent-copper-golem-access(default:true) that controls whether to prevent copper golems from accessing protected copper chest shop containers. - Note: On Spigot servers, this is only supported on the very latest builds. On older 1.21.9 to 1.21.11 server versions, players will need to place their copper shop chests somewhere where they cannot be accessed by nearby copper golems placed by other players.
- Config: Add setting
- Server assumption tests: Extend the tested item data.
Known potential issues: See here.
Donations
If you like this plugin, consider making a donation.
Thanks!