v1.1.2
Features
- Alpha slider in color editor: RGBA four-slider layout replaces the previous RGB-only UI; hex input already supported 8-char alpha values
Bug Fixes
- Jongyeol
song.timelog spam: added_lastMusicTimeSecguard toUpdateTime(), preventing per-frameAudioSource.timeaccess whensong.clipis null (r142+ levels without standard audio clips); log no longer flooded with Unity warnings - v136 XPerfect per-player fallback: when XPerfect doesn't provide
GetPlayerXPerfectCountmethods (v136), per-player getters now redirect to main static values instead of always returning 0 - DetectApiVersion static property binding: fixed
CreatePropertyGetter<T, F>→CreateStaticPropertyGetter<TField>forADOBase.playerManager(was throwing on r14x, causing version detection to fall back to v136 path and breaking judgement/XAccuracy display)
Refactors
- PatchManager thread safety: added
lock (_lock)to all public methods;List<Type>→HashSet<Type>for O(1)Containslookups - Cached reflection utilities: added 9 helper methods (
GetMethodInfo,GetFieldInfo,CreateFieldRef,CreatePropertyGetter/Setter,CreateStaticFieldGetter/Setter,CreateStaticPropertyGetter/Setter) with dictionary caching; used byVersionSafev136 path andShadowManager - VersionSafe v136 bindings: replaced bare
GetField/GetValuereflection with PatchManager cached variants; missing fields now log a warning before falling back to defaults - Settings JSON migration: replaced UMM default XML serialization with
Newtonsoft.Json; existingSettings.xmlauto-migrates toSettings.jsonon first load, then deletes the old XML file
Full Changelog: https://github.com/2228293026/JipperOverlayer/compare/v1.1.1...v1.1.2