(1.12) Hiding an achievement via Triumph doesn't allow it to be used with Patchouli
Closed this issue ยท 9 comments
I have a hidden achievement that I created. A related patchouli entry unlocks when the achievement is completed, however, the page never unlocks. After removing "alwaysHidden()" from Triumph, the page unlocked. However, we need this achievement hidden from the achievement UI.
We need the Patchouli entry to unlock if the achievement is completed, whether the achievement is hidden or not.
Thanks <3
Triumph seems to combine the concept of visibility to the client, and visibility in the GUI - vanilla will send all completed hidden advancements and all advancements that should be visible in the GUI.
The coremod that Triumph uses injects an event into the method determining if the advancement should be made visible, and Triumph makes it ignore that fully hidden advancements (without any display info) should be still sent to the client.
Workaround: Editing BNBGamingCore.cfg
to include advancementVisibilityEvent
in the S:"disabled modules"
config option makes it work as expected, however it might have side effects with some more complex advancement appearance conditions. Please ask them for assistance if this isn't a sufficent solution for you for this reason.
Unfortunately, the workaround hides nearly all of our achievements. Triumph has been pretty inactive for a while, but I'll send them this GitHub issue on their Discord and see if we get a response.
I started investigating a proper fix, actually. It shouldn't be too bad, on your side will just require removing icons from all hidden advancements you depend on for your Patchouli book.
@Hubry You're amazing. Thank you so much. It's a breath of fresh air to still see people fix issues for 1.12.2 when there are so many developers who refuse to work on it (cough cough Triumph)
You've made our lives so much easier <3
I just tested the new Patchouli version. The entries are still not being unlocked with hidden achievements. As soon as I unhid the achievement, the entry appeared. Is there anything special I have to do to make it work?
@CalaMariGold Looking at your advancement files, you are gonna have to strip any of setIcon
, setTitle
, or setDescription
on all of the hidden advancements used for gating - this way they don't actually have any display data, so they will never show up when sent to the client's list.
Sadly doing the fix a different way was not really feasible (well, without actually making a coremod...), because if we override the visibility of advancements with display data in the event they will actually show up in the GUI.