Cannot add Spell Powders to Crystal Staff
EntropyParadigm opened this issue ยท 9 comments
Minecraft version & Mod Version:
Inclusive Reborn (Inclusive Reborn-v0.0.13 - 1.20.1 - Forge 47.1.3)
Single player or Server:
Server - inc.playcdu.co
Describe problem (what you were doing / what happened):
Attempting to put any spell powders on the crystal staff does not appear to work. Tried adding spell powders with 0 potency, or +3 potency, just keep getting a message saying: "Ritual found, but brazier ingredients are missing or not lit".
Trying to use Spell Powder with the following types:
- Acceleration (potency 3 and potency 0 - tested separately and individually)
- Shining Ray (potency 3 and potency 0 - tested separately and individually)
- Time Stop (potency 3 and potency 0 - tested separately and individually)
- Growth (potency 3 and potency 0 - tested separately and individually)
Oddly enough, if you add no spell powders and just the crystal staff and the verdant sprig, the ritual will start and give you an empty staff, but no combination of the following powders above even one at a time appears to work.
Triple ensured braziers were all lit and even tried to add them and light real quick while the empty ritual was started to no avail.
Updated to include new modpack version and provide additional details:
Unlit Brazier:
{ForgeCaps:{},InventoryHandler:{Items:[{Count:1b,Slot:0,id:"rootsclassic:spell_powder",tag:{"rootsclassic:effect":"rootsclassic:radiant_daisy","rootsclassic:efficiency":0,"rootsclassic:potency":3,"rootsclassic:size":0}}],Size:1},burning:0b,id:"rootsclassic:brazier",progress:0,x:6,y:1,z:6}
Lit Brazier:
{ForgeCaps:{},InventoryHandler:{Items:[{Count:1b,Slot:0,id:"rootsclassic:spell_powder",tag:{"rootsclassic:effect":"rootsclassic:radiant_daisy","rootsclassic:efficiency":0,"rootsclassic:potency":3,"rootsclassic:size":0}}],Size:1},burning:1b,id:"rootsclassic:brazier",progress:2329,x:6,y:1,z:6}
Empty Brazier:
{ForgeCaps:{},InventoryHandler:{Items:[],Size:1},burning:0b,id:"rootsclassic:brazier",progress:0,x:6,y:1,z:6}
Casting Altar:
{ForgeCaps:{},InventoryHandler:{Items:[{Count:1b,Slot:0,id:"rootsclassic:crystal_staff",tag:{"rootsclassic:effect1":"","rootsclassic:effect2":"","rootsclassic:effect3":"","rootsclassic:effect4":"","rootsclassic:efficiency1":0,"rootsclassic:efficiency2":0,"rootsclassic:efficiency3":0,"rootsclassic:efficiency4":0,"rootsclassic:potency1":0,"rootsclassic:potency2":0,"rootsclassic:potency3":0,"rootsclassic:potency4":0,"rootsclassic:selected":1,"rootsclassic:size1":0,"rootsclassic:size2":0,"rootsclassic:size3":0,"rootsclassic:size4":0}},{Count:1b,Slot:1,id:"rootsclassic:verdant_sprig"}],Size:3},id:"rootsclassic:altar",progress:0,x:6,y:1,z:4}
Casting Altar (empty crystal staff):
{ForgeCaps:{},InventoryHandler:{Items:[{Count:1b,Slot:0,id:"rootsclassic:crystal_staff"},{Count:1b,Slot:1,id:"rootsclassic:verdant_sprig"}],Size:3},id:"rootsclassic:altar",progress:0,x:6,y:1,z:4}
Might be related to a missing tag - looking for incense but it's not there?
https://github.com/Lothrazar/RootsClassic/blob/b3b92b154daf2b8e148e157304bfaf355fd0e331/src/main/java/elucent/rootsclassic/block/altar/AltarBlockEntity.java#L69C3-L69C3
Crash log (if any):
N/A
Same Problem on ATM9 0.1.17, empty Staff ritual is working, but no luck with adding accelerate +3 potency
Same problem on my world ATM9 version 0.1.7. No luck with trying different brazier litted etc.
Also ran into this issue with the crystal staff on AllTheMods 9, version 0.2.6, on a server.
Seems to me the Imbuer ritual is broken when evaluating if the brazier ingredients match the recipe, in particular I think the size checking in RootUtils.matchesIngredients
is the offending line:
public static boolean matchesIngredients(List<ItemStack> inv, List<Ingredient> ingredients) {
if (inv.size() != ingredients.size()) return false;
Removing that different-size check (or changing the comparison from !=
to <=
) would "fix" this logic for RitualImbuer
, but I think requires some consideration of the handling of items unrelated to a particular ritual/recipe (I believe the current behavior is they're voided / all the nearby braziers are set to Empty, per AltarBlockEntity.java) - eg, if you mis-clicked a pickaxe into a brazier for an Imbue ritual, lit it, triggered the ritual, what should be done. IMO, an item that's an invalid incense for the ritual is an invalid ritual recipe, so the ritual should be prevented in that scenario, which requires some work to make happen, as AFAICT the existing code assumes no optional components of a ritual.
Adding this exception to the if makes it work:
AltarBlockEntity.java
156 if (ritual.incenseMatches(level, pos) || ritual.getIncenses().isEmpty())
I believe this doesn't break anything, it just checks if the incenses list is empty, skip the validation. This would give issues if there are wrong rituals loaded in the modpack, but fixes the crystal staff issue for now.
A new version for 1.20.1 and 1.21 has been uploaded that implement the suggested fix
Hello!
This bug seems to also extend to adding bark to the engraved blade, currently using the latest public build: RootsClassic-1.20.1-1.4.1.jar. I am trying to add 2 dark oak and 2 acasia bark to the crafting recipe. Removing the bark begins the craft. I am not a coder unfortunately, could anyone check if that is indeed the case?