Giter Site home page Giter Site logo

ruinedequipment's Introduction



Grieving equipment owner? Tools and Armors break into Ruined forms for repair or memorial purposes.

Fabric API

Curseforge Modrinth GitHub

With this mod installed, Tools and Armors break into Ruined forms (for players). The Ruined equipment can then be repaired in either a Crafting Grid or Anvil, upgraded by "Empowering" it with a Netherite Scrap or, if you're like me, kept as a keepsake. You may also use Name Tags to apply Lore to your Items in an Anvil - this allows you to commemarate them however you wish. May you never forget your fallen tools and armors & the adventures you had with them.

๐Ÿ“– About

ruined_items_toast

  • Ruined varieties of the following Items:
    • All vanilla Tools/Swords
    • All vanilla Armors (including Turtle Shell)
    • Shields
    • Misc: Shears, Flint & Steel, Bow, Crossbow, Trident, Fishing Rod
    • All modded tools/armors: These will drop a "Ruined Item's Ashes" and do not have special "ruined" textures
  • Tools & Armors will become "Ruined" when their durability reaches 0 (and you hear the break sound).
  • Ruined equipment keep all their NBT data - this includes (but is not limited to) name, enchantments (although the enchantments no longer functionally do anything), dyes (if leather armor), and banner pattern (if shield).
  • Ruined items with Mending are repairable when held in hands while collecting experience.
  • You can apply Lore to your Ruined Items by combining them with a Name Tag in an Anvil!
    • The Lore will carry over to your Item if you choose to repair it, enabling you to apply Lore to your Armors and Tools in Survival in a vanilla-friendly way!
    • Lore can be applied to Ruined Items multiple times, adding more lines each time.
    • You can remove all applied Lore by combining the Ruined Items with a Name Tag named "clear".
  • You have 4 choices when you receive a Ruined item.
    1. Keep it as a keepsake, remember it always.
    2. Combine the Ruined item with either another Ruined item of the same type or the corresponding non-Ruined item in a Crafting Grid in order to repair the item, but lose all other features (name, enchantments, etc).
    3. Repair the Ruined item using an Anvil with either it's corresponding repair material or the corresponding non-Ruined item. This will apply all features (name, enchantments, etc) to the resulting Item.
    4. Make your Ruined item "Empowered"...

empowerment_toast

  • By combining your Ruined Item with a Netherite Scrap in an Anvil (v2.2.0 or prior use Smithing Table), your Ruined Item will become "Empowered"
  • When repairing the Empowered Ruined Item using an Anvil, all the existing Enchantments will become max value.

โ›“ Dependencies

๐Ÿ“ธ Media

Photos!

Place them in Gravesites

A plain Ruined Diamond Pickaxe

A Ruined Diamond Pickaxe with a custom name & enchantments

Repairing a Ruined Diamond Pickaxe in Anvil #1

Repairing a Ruined Diamond Pickaxe in Anvil #2

Repairing Ruined items using Crafting Grid

Shield with Banner pattern being repaired

Empowering a Ruined Wooden Pickaxe

2023-06-10_13 13 40

Repairing an Empowered item in an Anvil

All Enchants become max level

Applying Lore to a Ruined Item with a Name Tag

2023-05-16_21 15 44

Repair Ruined Item with Lore and Keep Lore on regular Item

2023-05-16_21 58 29

All the Items

Repairing "Ruined Item's Ashes" #1

2022-07-14_19 12 32

Repairing "Ruined Item's Ashes" #2

2022-07-14_19 14 54

Empowering a "Ruined Item's Ashes"

2022-07-14_19 16 18

โš™๏ธ Config

The mod is highly configurable and offers in-game config editing with ModMenu. See the current config options here!

๐Ÿ“ƒ Changelog

Changelogs are available at the GitHub Releases section

ruinedequipment's People

Contributors

k0-rr avatar pepperoni-jabroni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ryleu xypercode

ruinedequipment's Issues

Method of adding lore to equipment

It'd be a cool and immersive way to add lore to ruined equipment which should also transfer over when the item is repaired. Currently, I think combining the ruined item with a written book would apply the first page as lore.

Ruined gear with Mending voids any XP gained

What if a feature made it such that if you have any ruined gear with Mending in your inventory, any XP you pick up will be voided, but every XP you pick up has a chance of turning the ruined gear back to its original form?

Parsing error loading recipe ruined_equipment:ruined_smithing_set_empower

[Worker-Main-10/ERROR]: Parsing error loading recipe ruined_equipment:ruined_smithing_set_empower com.google.gson.JsonSyntaxException: Invalid or unsupported recipe type 'ruined_equipment:ruined_set_empower' at net.minecraft.class_1863.method_17875(class_1863.java:122) ~[intermediary-server.jar:?] at java.util.Optional.orElseThrow(Optional.java:290) ~[?:1.8.0_282] at net.minecraft.class_1863.method_17720(class_1863.java:122) ~[intermediary-server.jar:?] at net.minecraft.class_1863.method_20705(class_1863.java:54) ~[intermediary-server.jar:?] at net.minecraft.class_1863.method_18788(class_1863.java:35) ~[intermediary-server.jar:?] at net.minecraft.class_4080.method_18790(class_4080.java:13) ~[intermediary-server.jar:?] at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:670) ~[?:1.8.0_282] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_282] at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[?:1.8.0_282] at net.minecraft.class_4014.method_18365(class_4014.java:71) ~[intermediary-server.jar:?] at net.minecraft.class_4014.method_18367(class_4014.java:70) ~[intermediary-server.jar:?] at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:543) [?:1.8.0_282] at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:667) [?:1.8.0_282] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) [?:1.8.0_282] at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) [?:1.8.0_282] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1609) [?:1.8.0_282] at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1596) [?:1.8.0_282] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_282] at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_282] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_282] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) [?:1.8.0_282]

{ // When 'true', Ruined items will be set in-hand when they break instead of going into the inventory. "enableSetRuinedItemInHand": false, // When 'true', repairing Ruined items using the Crafting Grid will be enabled. "enableCraftingGridRuinedRepair": true, // When 'true', repairing Ruined items using the Anvil will be enabled. "enableAnvilRuinedRepair": true, // When 'true', 'Empowering' a Ruined item using the Smithing Table will be enabled. "enableSmithingRuinedEmpowered": false, // The Item to be used for applying 'Empowered' to a Ruined item in a Smithing Table. "empowermentSmithingItem": "minecraft:netherite_scrap", // When 'true', the 'Ruined Equipment' Creative inventory tab will be displayed. "enableCreativeInventoryTab": true, // When 'true', Ruined items with Mending held in your hands will be repaired when you collect XP. "enableRuinedMendingRepair": false }

Crash when fixing tools with an anvil on server

The server crashes every time I attempt to repair a broken item in an anvil even when Fabric API is the only other mod installed. The crafting table works fine though. Not sure if there's something specific to my configuration or not, but I'm using:

  • Minecraft 1.16.5
  • ruined-equipment-1.2.3
  • fabric-api-0.30.0+1.16
  • fabric loader 0.11.1
  • OpenJDK 64-Bit Server VM 15

And crash report:
crash-2021-02-09_22.17.07-server.txt

Idea: Upgrade a broken Diamond tool to Netherite to revive it with ~470 durability.

In vanilla Minecraft, upgrading a Diamond tool to Netherite adds 470 to both its current and maximum durability (from 1561 to 2031 as it uses Damage internally instead of a Health-like). This should be preserved such that when you upgrade a ruined Diamond tool to Netherite, it revives the tool, leaving a damaged Netherite tool in the output.

The same should apply for Diamond -> Netherite armor and (if possible, in general) any smithing recipes which boost the max durability of the tool.

question about rules on "ruined" status

Hey!

First of all i love the idea of the mod and for me it is a really great way of how item mechanics work ingame and which could be a huge improvement to the vanilla game.

The question i have is:

I want to make only a selected "rarity" of items ruined. As an example i want items that are above the rarity of diamonds ruined, while making iron or less grade weapons/tools/armor break like normal.
In the source code i found a "SUPPORTED_VANILLA_ITEMS"-list that covers all of the vanilla items. Is it possible to just remove items that i dont want to be ruined here, or do i need a specific exception as they still have an attack value. Because i dont know exacly how the code works im scared of breaking things as it is not in the configs.

It would be an extremly nice addition to the configs/functionality to be able to add items from mods and also remove items from the vanilla list.

Thank you for your time and the mod itself!

crash when opening a chest, log mentions ruined equipment

heres from the latest.log:

net.minecraft.class_148: Rendering screen
	at net.minecraft.class_757.method_3192(class_757.java:954) ~[client-intermediary.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1219) ~[client-intermediary.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:802) ~[client-intermediary.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:250) ~[fabric-loader-0.14.23-1.20.1.jar:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468) ~[fabric-loader-0.14.23.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.23.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.23.jar:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1887.method_8179(int)" because the return value of "java.util.Map$Entry.getKey()" is null
	at pepjebs.ruined_equipment.item.RuinedEquipmentItem.appendRuinedTooltip(RuinedEquipmentItem.java:54) ~[ruined-equipment-2.3.1+1.20.1.jar:?]
	at pepjebs.ruined_equipment.item.RuinedEquipmentItem.method_7851(RuinedEquipmentItem.java:38) ~[ruined-equipment-2.3.1+1.20.1.jar:?]
	at net.minecraft.class_1799.method_7950(class_1799.java:647) ~[client-intermediary.jar:?]
	at net.minecraft.class_437.method_25408(class_437.java:225) ~[client-intermediary.jar:?]
	at net.minecraft.class_465.method_51454(class_465.java:183) ~[client-intermediary.jar:?]
	at net.minecraft.class_465.method_2380(class_465.java:178) ~[client-intermediary.jar:?]
	at net.minecraft.class_476.method_25394(class_476.java:29) ~[client-intermediary.jar:?]
	at net.minecraft.class_437.method_47413(class_437.java:110) ~[client-intermediary.jar:?]
	at net.minecraft.class_757.method_3192(class_757.java:945) ~[client-intermediary.jar:?]
	... 6 more

and from the crash log:

java.lang.NullPointerException: Cannot invoke "net.minecraft.class_1887.method_8179(int)" because the return value of "java.util.Map$Entry.getKey()" is null
	at pepjebs.ruined_equipment.item.RuinedEquipmentItem.appendRuinedTooltip(RuinedEquipmentItem.java:54)
	at pepjebs.ruined_equipment.item.RuinedEquipmentItem.method_7851(RuinedEquipmentItem.java:38)
	at net.minecraft.class_1799.method_7950(class_1799.java:647)
	at net.minecraft.class_437.method_25408(class_437.java:225)
	at net.minecraft.class_465.method_51454(class_465.java:183)
	at net.minecraft.class_465.method_2380(class_465.java:178)
	at net.minecraft.class_476.method_25394(class_476.java:29)
	at net.minecraft.class_437.method_47413(class_437.java:110)
	at net.minecraft.class_757.method_3192(class_757.java:945)
	at net.minecraft.class_310.method_1523(class_310.java:1219)
	at net.minecraft.class_310.method_1514(class_310.java:802)
	at net.minecraft.client.main.Main.main(Main.java:250)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)

im not sure how to replicate it unfortunately. the chest is normal and unmodded, it is a double chest filled with different tools including some ruined items (i believe all of the ruined items are vanilla). every time i open the chest it crashes without fail. let me know if i can provide any more details to help. thank you! the mod list is quite extensive since i am playing on a server but i am happy to give it if needed.

Just a question

Hi,
I love the principle of the mod and I would simply like to know if a version for forge will be made or not.

Good day / evening

Repair cost inconsistencies

Repair costs are not balanced with vanilla repair costs. For example.

  • You can repair a broken sword fully from broken to max health (significantly more expensive)
    OR
  • Fix the item slightly, (using one item) and then repair the nearly broken item to max durability (Much cheaper)

ruined diamond sword full repair: Costs 6 diamonds & 15 levels
ruined diamond sword Alternate repair: Costs 5 diamonds & 6 levels (using 1 to slightly fix it, and 4 to fully fix it)

Adding models from other mods

We need a way to add ruined models for other items.
Let's say, it's a config array of item IDs ike "modname:item_name". If a broken item is there, RuinedEquipment looks for a broken item model in "modname" folder

Support for ruined modded tools (aka data-driven ruined items)

We should have a generic "ruined item" that can drop when non-vanilla tools/armor breaks and then have a config entry that enables players to say: "copper_mod:copper_sword/minecraft:copper_ingot" and allow the generic "ruined item" to be repaired this way.

Modrinth versions labeled incorrectly

Modrinth compatable versions for v2.0.0 for 1.19 is set incorrectly. Labeled as 1.19-1.19.1. CurseForge labeled as 1.19-1.19.2.

Modrinth:
image

CurseForge:
image

how to add multiple entrances in config file?

im trying to configurate the mod but i don't understand something, i want to put 2 items in this list:

// Codes for which repair items to use for which Ruined Items Ashes (e.g. 'copper_mod:copper_sword/minecraft:copper_ingot;')
"ruinedItemsAshesRepairItems": "",

when i try this:

// Codes for which repair items to use for which Ruined Items Ashes (e.g. 'copper_mod:copper_sword/minecraft:copper_ingot;')
"ruinedItemsAshesRepairItems": "sculkhornid:sculkhorn_sonicboom/minecraft:sculk_shrieker;",

its works, but when i try to put 2 items:

// Codes for which repair items to use for which Ruined Items Ashes (e.g. 'copper_mod:copper_sword/minecraft:copper_ingot;')
"ruinedItemsAshesRepairItems": "sculkhornid:sculkhorn_sonicboom/minecraft:sculk_shrieker;", "sculkhornid:sculkhorn/minecraft:sculk_shrieker;",

it doesnt work, i dont know how to type properly the code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.