Blacksmith is a Citizens 2.0 character trait that gives Citizens NPCs the ability to:
- Repair weapons, tools, and armor for a fee.
Most up-to-date source code available here: https://github.com/remremrem/blacksmith
- update to latest everything.
- Fix blacksmith not returning items.
- Added price-per-durability-point option on a per-item basis.
- dded session timeout if player asks for price and does not reforge item.
- Fixed Random-enchant algorithm.
- Compatible with 1.3.1 builds of C2
How to Use
- Install Citizens 2
- Place Blacksmith.jar file in /plugins directory.
- Start Server
- Create NPC and give the Blacksmith trait.
/npc create Smithy --trait blacksmith
/npc create Smithy /trait blacksmith
Blacksmiths have a variety of settings that can be per-NPC or global. The settings under "defaults" in the configuration file are the default settings that a blacksmith will be given when it is created. You can override these settings by using the commands from the Commands section below. You can even configure which items a blacksmith is able to reforge in-game using commands. By default, a blacksmith is able to reforge all items.
Interacting with a blacksmith is simple:
- Right click the NPC with a tool or armor in your hand. It will tell you the price that it costs to reforge it.
- Right click again within 10 seconds and the blacksmith will begin reforging the item.
- Depending on the configuration, the reforging has a chance to enchant or damage an item.
Prices are determined by the damage of an item, the number and type of enchantments, and the prices defined in the configuration file. Basically, the formula for determining the price of a reforge is basePrice + durabilityRemaining + enchantments.
The default base price for a reforge is the base-prices.default value in the configuration file. To add new base prices for each individual item, add the item to the config file under base-prices
Durability is the amount of damage that an item has taken. Generally, the more damaged an item is, the cheaper it will be to reforge. Trying to reforge an item with no damage will be significantly more expensive. The price per durability point is price-per-durability-point.default in the configuration. Per-item values may be set by adding to this section.
These are the items names to use with custom base and per-durability-point prices.
base-prices: default: 10 diamond-sword: 45 price-per-durability-point: default: 1 diamond-sword: 3
The price of reforging an item with enchantments is more expensive than one without any. For each enchantment, an amount is added to the total price based on the "enchantment-modifier" and the level of the enchantment. Enchantment modifiers can be configured in the configuration file by adding the enchantment name and a value within the enchantment-modifiers section. The default modifier, enchantment-modifiers.default, is used if the enchantment name is not found. Here are valid, case-sensitive names for enchantment modifiers:
- arrow-damage - Provides extra damage when shooting arrows from bows
- arrow-fire - Sets entities on fire when hit by arrows shot from a bow
- arrow-infinite - Provides infinite arrows when shooting a bow
- arrow-knockback - Provides a knockback when an entity is hit by an arrow from a bow
- damage-all - Increases damage against all targets
- damage-arthropods - Increases damage against arthropod targets
- damage-undead - Increases damage against undead targets
- dig-speed - Increases the rate at which you mine/dig
- durability - Decreases the rate at which a tool looses durability
- fire-aspect - When attacking a target, has a chance to set them on fire
- knockback - All damage to other targets will knock them back when hit
- loot-bonus-blocks - Provides a chance of gaining extra loot when destroying blocks
- loot-bonus-mobs - Provides a chance of gaining extra loot when killing monsters
- oxygen - Decreases the rate of air loss whilst underwater
- protection-environmental - Provides protection against environmental damage
- protection-explosions - Provides protection against explosive damage
- protection-fall - Provides protection against fall damage
- protection-fire - Provides protection against fire damage
- protection-projectile - Provides protection against projectile damage
- silk-touch - Allows blocks to drop themselves instead of fragments (for example, stone instead of cobblestone)
- water-worker - Increases the speed at which a player may mine underwater
If you want a player to be able to use a blacksmith, give them the
- blacksmith.reforge permission node.
The configuration file for Blacksmiths is found in /plugins/Blacksmith/config.yml and is generated automatically when not present.
The blacksmith config.yml contains the default settings for new blacksmiths. All of these options can be changed on existing blacksmiths in the Citizens/saves.yml. Mouseover each section to view it's description. All settings under defaults can be overriden by individual blacksmiths in the Citizens 2 saves.yml.
# Blacksmith Configuration base-prices: default: 10 price-per-durability-point: default: 1 defaults: messages: busy-with-player: <c>I'm busy at the moment. Come back later! busy-with-reforge: <c>I'm working on it. Be patient! cooldown-not-expired: <c>You've already had your chance! Give me a break! cost: <e>It will cost <a><price> <e>to reforge that <a><item><e>! Click again to reforge! fail-reforge: <c>Whoops! Didn't mean to do that! Maybe next time? insufficient-funds: <c>You don't have enough money to reforge that item! invalid-item: <c>I'm sorry, but I don't know how to reforge that! start-reforge: <e>Ok, let's see what I can do... successful-reforge: <a>There you go! All better! drop-item: true percent-chance-to-fail-reforge: 10 percent-chance-for-extra-enchantments: 5 maximum-enchantments: 3 delays-in-seconds: maximum: 30 minimum: 5 reforge-cooldown: 60 enchantment-modifiers: default: 5