Issue with Ritual of Purification
pupnewfster opened this issue ยท 5 comments
Blood Arsenal version: 2.1.0-26
Blood Magic version: 2.4.0-102
Forge version: 14.23.5.2811
When trying to activate the ritual of purification, it says "A rush of energy flows through the ritual!" but it does not seem to actually activate. I used the ritual diviner to build the recipe and put the stasis plates and tanks in the same places the picture shows them on the CurseForge page. The top tank contains life essence, and the bottom one is empty. Is the ritual broken or is there something I am doing wrong?
I can confirm that it is in fact broken. I compiled it and added some debug lines and it turns out it is unable to match the blood infused glowstone dust. So I am looking a bit to see if I can come up with a fix and then PR it.
Ok, the first issue is that EnumBaseTypes.BLOOD_INFUSED_GLOWSTONE_DUST.getStack()
is being added as AIR to PURIFICATION_1. I believe because it does not actually exist as an item when the ritual is registered. Moving it to performRitual (if it has not already been set) causes it to properly start. Still doing some testing to see if that is enough to get the ritual to start properly or if there are some other issues remaining.
After testing I can confirm the ritual works properly, as long as EnumBaseTypes.BLOOD_INFUSED_GLOWSTONE_DUST.getStack()
is not added to PURIFICATION_1
until performRitual
. Adding it where it is now, or in the constructor causes the ritual to not start as it believes an item is missing.
Edit: Would you like me to make a pull request, or do you want to see if you can fix it slightly differently?
My current changes are below, PURIFICATION_1
could also always just be made a local Set rather than being private and static, as performRitual is the only method that uses it. (The other option is just initialize it in performRitual if it is not yet initialized instead of only adding if the item is missing.)
private static final Set<ItemStack> PURIFICATION_1 = Sets.newHashSet(new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.REDSTONE), new ItemStack(Items.BLAZE_POWDER));
public void performRitual(IMasterRitualStone masterRitualStone, World world, SoulNetwork network)
{
if (PURIFICATION_1.size() == 3)
{
PURIFICATION_1.add(EnumBaseTypes.BLOOD_INFUSED_GLOWSTONE_DUST.getStack());
}
//Rest of performRitual as it currently is
}