BeansGalaxy / Beans-Backpacks-2

1.20 inventory management mod. Designed to solve inventory clutter and transferring items while belonging in vanilla Minecraft's aesthetic.
MIT License
23 stars 0 forks source link

Item list removal configuration feature unable to override elytra in disable_chestplate #58

Closed Alvin21Bon closed 7 months ago

Alvin21Bon commented 7 months ago

This change should retain the exact same functionality, but allows for datapacks to override the elytra in the disable_chestplate item list.

This differs from adding the elytra to disables_back_slot since it allows for the elytra to not disable backpacks, while additionally ensuring that overrides supersede any other modification.

BeansGalaxy commented 7 months ago

I'm adding a separate list called elytra_items and it disables the Back Slot while any items in the list are equipped _(similar to disable_chestplate)_, but doesn't stop items from being worn in the chestplate. This should make the elytra's more modular.

In a previous update I added the ability to use ! to remove items in a list so soon you'll be able to add !minecraft:elytra in elytra_items from your data pack to entirely remove elytra functionality soon.

Also I see your fork and I'm kinda embarrassed someone else had to go through that code lol

Alvin21Bon commented 7 months ago

Your mod is actually the first time I have ever modded or even built something with gradle, so your code is much better than anything else I could make lol. This is why I didn't just make an addon that has your mod as a dependency because I am just so inexperienced and have no idea how mixins work. Though I did feel bad for the downloads I am potentially stealing because of this lack of knowledge, so I was hoping to just tell the friends I am making this modpack for to download your mod also.

Anyways with the elytra_items list, is this just the disables_back_slot list but for the elytra? I was a bit confused by that. This PR was actually made based off of me seeing that new ! configuration feature you added, but I saw that adding !minecraft:elytra to disable_chestplate did not work since it was getting added by default through DataResourcesMixin which bypasses that.

BeansGalaxy commented 7 months ago

elytra_items basically does 4 things,

  1. Allows to be worn in the chestplate & backslot
  2. If it's worn on any armor, trinket, or curios slot then it disables the backslot
  3. Allows flight for the player while the item is equipped
  4. Also doesn't need any code overriding it so !elytra works

I needed a modular system to implement the Winged Backpack we talked about and I figured I'd put in a little extra work incase other mods added elytra items or I wanted to do more with elytras.

And don't worry about stealing downloads bc you were nice on the internet.

Alvin21Bon commented 7 months ago

I see so that would be a great extension of the system that allows compatibility with other elytra type mods. Thank you for the explanation. I will make this as closed then if this will already be addressed in a future update.

Also just as a side note I replied to the issue thread with something about configuration and was unsure if you were able to see it, so I will paste it here just in case.

I can't be 100% about this since I have never worked with it before, but I believe it (cloth config API) can be for both (client-side and server-side). For example, the library Valyrien Skies uses it for its configurations, and it has different tabs in game (via mod menu) for customizing both its client-side and server-side configurations.