@@ -62,46 +62,42 @@ object PolySprintConfig : Config(
6262 var toggleSneakState = false
6363
6464 @Switch(
65- title = " Seperate Keybind for Toggle Sprint" ,
65+ title = " Separate Keybind for Toggle Sprint" ,
6666 subcategory = " Toggle Sprint" ,
67- description = " Use a seperate keybind for Toggle Sprint."
67+ description = " Use a separate keybind for Toggle Sprint."
6868 )
6969 var keybindToggleSprint = false
7070
7171 @Keybind(
7272 title = " Toggle Sprint Keybind" ,
7373 subcategory = " Toggle Sprint"
7474 )
75- var keybindToggleSprintKey = KeybindHelper .builder().key(InputConstants .UNKNOWN .value).action(Runnable {
76- if (keybindToggleSprint) {
77- if (isEnabled && isToggleSprintEnabled && ! PolySprintClient .isSprintHeld) {
78- invertToggleSprintState()
79- }
80-
81- PolySprintClient .invertSprintHeld()
75+ var keybindToggleSprintKey = KeybindHelper .builder().key(InputConstants .UNKNOWN .value).action { pressed: Boolean ->
76+ if (keybindToggleSprint && pressed && isEnabled && isToggleSprintEnabled) {
77+ invertToggleSprintState()
8278 }
83- }).build()
79+
80+ true
81+ }.build()
8482
8583 @Switch(
86- title = " Seperate Keybind for Toggle Sneak" ,
84+ title = " Separate Keybind for Toggle Sneak" ,
8785 subcategory = " Toggle Sneak" ,
88- description = " Use a seperate keybind for Toggle Sneak."
86+ description = " Use a separate keybind for Toggle Sneak."
8987 )
9088 var keybindToggleSneak = false
9189
9290 @Keybind(
9391 title = " Toggle Sneak Keybind" ,
9492 subcategory = " Toggle Sneak"
9593 )
96- var keybindToggleSneakKey = KeybindHelper .builder().key(InputConstants .UNKNOWN .value).action(Runnable {
97- if (keybindToggleSneak) {
98- if (isEnabled && isToggleSneakEnabled && ! PolySprintClient .isSneakHeld) {
99- invertToggleSneakState()
100- }
101-
102- PolySprintClient .invertSneakHeld()
94+ var keybindToggleSneakKey = KeybindHelper .builder().key(InputConstants .UNKNOWN .value).action { pressed: Boolean ->
95+ if (keybindToggleSneak && pressed && isEnabled && isToggleSneakEnabled) {
96+ invertToggleSneakState()
10397 }
104- }).build()
98+
99+ true
100+ }.build()
105101
106102 @Switch(
107103 title = " Fly Boost" ,
@@ -126,26 +122,25 @@ object PolySprintConfig : Config(
126122 addDependency(" keybindToggleSneakKey" , " keybindToggleSneak" )
127123 addCallback(" toggleSprint" ) { syncToggleSprintToVanilla() }
128124 addCallback(" toggleSneak" ) { syncToggleSneakToVanilla() }
125+ addCallback(" keybindToggleSprint" ) { syncToggleSprintToVanilla() }
126+ addCallback(" keybindToggleSneak" ) { syncToggleSneakToVanilla() }
129127
130128 KeybindManager .register(keybindToggleSprintKey)
131129 KeybindManager .register(keybindToggleSneakKey)
132130 }
133131
134132 fun syncTogglesFromVanilla (persist : Boolean = false) {
135- val options = Minecraft .getInstance().options ? : return
136- val vanillaToggleSprint = options.toggleSprint().get()
137- val vanillaToggleSneak = options.toggleCrouch().get()
138- val changed = toggleSprint != vanillaToggleSprint || toggleSneak != vanillaToggleSneak
139-
140- toggleSprint = vanillaToggleSprint
141- toggleSneak = vanillaToggleSneak
133+ syncToggleSprintFromVanilla(persist)
134+ syncToggleSneakFromVanilla(persist)
135+ }
142136
143- if (persist && changed ) {
144- save ()
145- }
137+ fun syncTogglesToVanilla ( ) {
138+ syncToggleSprintToVanilla ()
139+ syncToggleSneakToVanilla()
146140 }
147141
148142 fun syncToggleSprintFromVanilla (persist : Boolean = false) {
143+ if (keybindToggleSprint) return
149144 val options = Minecraft .getInstance().options ? : return
150145 val vanillaToggleSprint = options.toggleSprint().get()
151146 val changed = toggleSprint != vanillaToggleSprint
@@ -158,6 +153,7 @@ object PolySprintConfig : Config(
158153 }
159154
160155 fun syncToggleSneakFromVanilla (persist : Boolean = false) {
156+ if (keybindToggleSneak) return
161157 val options = Minecraft .getInstance().options ? : return
162158 val vanillaToggleSneak = options.toggleCrouch().get()
163159 val changed = toggleSneak != vanillaToggleSneak
@@ -171,16 +167,31 @@ object PolySprintConfig : Config(
171167
172168 private fun syncToggleSprintToVanilla () {
173169 val options = Minecraft .getInstance().options ? : return
174- options.toggleSprint().set(toggleSprint)
170+ options.toggleSprint().set(toggleSprint && ! keybindToggleSprint )
175171 options.save()
176172 }
177173
178174 private fun syncToggleSneakToVanilla () {
179175 val options = Minecraft .getInstance().options ? : return
180- options.toggleCrouch().set(toggleSneak)
176+ options.toggleCrouch().set(toggleSneak && ! keybindToggleSneak )
181177 options.save()
182178 }
183179
180+ fun reassertToggledKeys () {
181+ val options = Minecraft .getInstance().options ? : return
182+ if (keybindToggleSprint && toggleSprintState) {
183+ (options.keySprint as StickyKeyBindingSetter ).`polySprint$toggle`(true )
184+ }
185+ if (keybindToggleSneak && toggleSneakState) {
186+ (options.keyShift as StickyKeyBindingSetter ).`polySprint$toggle`(true )
187+ }
188+ }
189+
190+ fun resyncSprintKeyState () {
191+ val options = Minecraft .getInstance().options ? : return
192+ (options.keySprint as StickyKeyBindingSetter ).`polySprint$toggle`(toggleSprintState)
193+ }
194+
184195 fun invertToggleSprintState () {
185196 toggleSprintState = ! toggleSprintState
186197 (Minecraft .getInstance().options.keySprint as StickyKeyBindingSetter ).`polySprint$toggle`(PolySprintConfig .toggleSprintState)
0 commit comments