Fix Duplicate Secspression Logging #7409
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes the issue where, if a secspression's section contains errors, the first error is duplicated.
Error Screenshots
It turns out this issue was not related to secspressions (or Kenzie) at all! The issue was caused by a missing check in
TypePatternElement
. It was fine to omit this check previously, as it was assumed that if errors were logged during an Expression's parsing, the Expression would fail to init (and thus parsing would fail). However, with secspressions, it is possible for the Expression itself to parse/init properly, but a child element to error. As a result, bothprintLog()
andprintError()
were called on the same LogHandler, causing the duplicated error. This can be simply resolved by checking whether the LogHandler is stopped (i.e. whether it already printed logs).Additionally, I have gone ahead and made two minor tweaks to the Secspression loading. The
handler.close()
call was unnecessary, as closing is already triggered byhandler.printLog()
.Target Minecraft Versions: any
Requirements: none
Related Issues: none