
Repair Shop
RepairShop, a Minecraft plugin that turns a Citizens NPC into a blacksmith. Players right click the NPC and a menu lists every damaged item they're carrying, each priced on how worn it is, what it's made of, and what's enchanted on it, paid through Vault
2.2.1
Compatibility
Changes
Changelog
2.2.1
Repairs take time
A smith no longer fixes everything the moment the money changes hands. Once paid for, an item stays with the smith - it leaves the player's inventory - and the player comes back to the same shop to collect it when it is done. The bottom row of the repair menu is now the smith's bench: everything the player left there, counting down, with a click to take back what is finished. Owners are told in chat when an item is ready, and on login if any are waiting.
How long a repair takes is set per tier - by default 30 seconds for a broken wooden tool up to 15
minutes for netherite - and, like the price, scales with how worn the item is. Gear priced above
its tier (tridents, custom items valued by their stats) takes its time from the same value ladder.
Each shop has a repair-time-multiplier: a slow village smith, a fast city forge, or 0 for
repairs on the spot. A player may leave up to bench-size items (5) at one shop.
Items on the bench are saved in orders.yml as soon as they are handed over and survive restarts;
the timer is real time and keeps running while the server is off. The file is written atomically,
and is never overwritten if it could not be read - timed repairs are suspended instead.
This is on by default. /repairshop time off (or repair-time.enabled: false) brings back
instant repairs exactly as before.
Opening hours
Each shop can keep hours, on the Minecraft day (game, the default - 06:00 is sunrise) or on the
server's own clock (real). A closed shop turns customers away with when it opens next, and a
player in the menu at closing time is sent out. Hours are off for every shop until set.
Set up in game or in the files
/repairshop time- the tier table, the master switch,minimum,bench,scale, andtime shop <shop> <multiplier>. Writesconfig.yml./repairshop hours [shop] [06:00-18:00 [game|real] | always | on | clock ...]. Writes the shop file./repairshop orders [player] [finish|return]- every item on every bench, and an admin way to finish them or hand them straight back. Players can run/repairshop ordersto see their own.- The shop editor has two new buttons: Repair time (clock) and Opening hours (daylight sensor).
/repairshop quotenow also says how long the repair would take.- The repair log records where each timed item went (
> on the bench until 14:35:10) and when it was collected (< collected).
Minecraft 26.3 support
The supported range is now 1.9 through 26.3 ("Wilderness Bound", the newest release). No gameplay change: the same jar was booted on Paper 26.3 (build 181) and a test player repaired a diamond axe for cash (319.51, exactly as on 1.21.11) and an iron chestplate with iron ingots. Every feature takes its modern route there: Adventure text, per-item max durability, the work-penalty counter, namespaced enchantments, stat-based custom-item pricing and Paper's chat event.
Paper 26.3 removed a large batch of long-deprecated API. None of it is anything RepairShop calls, and every method the plugin looks up by name at runtime was checked against the 26.3 API as well, since compiling cannot catch those.
Clearer startup message when Citizens is switched off
If Citizens is installed but disabled - which is what an older Citizens build does on a Minecraft
version it does not support yet, 26.3 included - RepairShop used to log
Failed to hook into Citizens: net/citizensnpcs/api/CitizensAPI. It now says that Citizens is
installed but disabled, and that /repairshop open still works. Update Citizens to a build that
supports your Minecraft version to get NPC shops back.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:FdM5pvQV:MxdfJD4K"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:FdM5pvQV:MxdfJD4K"
}
