|
14 | 14 | import net.atlas.atlascore.util.ConfigRepresentable; |
15 | 15 | import net.atlas.combatify.config.impl.crit.CTSCritImpl; |
16 | 16 | import net.atlas.combatify.config.impl.crit.CritImpl; |
| 17 | +import net.atlas.combatify.config.impl.crit.fixer.CritImplFixer; |
17 | 18 | import net.atlas.combatify.config.impl.food.CTSFoodImpl; |
18 | 19 | import net.atlas.combatify.config.impl.food.FoodImpl; |
| 20 | +import net.atlas.combatify.config.impl.food.fixer.FoodImplFixer; |
19 | 21 | import net.fabricmc.api.EnvType; |
20 | 22 | import net.fabricmc.api.Environment; |
21 | 23 | import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; |
@@ -147,188 +149,251 @@ public void handleConfigInformation(AtlasCore.ClientInformPacket clientInformPac |
147 | 149 | public void defineConfigHolders() { |
148 | 150 | attackDecay = createObject("attackDecay", AttackDecay.DEFAULT, AttackDecay.class, AttackDecay.STREAM_CODEC, false); |
149 | 151 | attackDecay.tieToCategory(melee); |
| 152 | + attackDecay.getFixer().addOldCategory("cts_booleans"); |
150 | 153 | attackReach = createBoolean("attackReach", true); |
151 | 154 | attackReach.tieToCategory(melee); |
152 | 155 | attackReach.setupTooltip(1); |
| 156 | + attackReach.getFixer().addOldCategory("cts_booleans"); |
153 | 157 | autoAttackAllowed = createBoolean("autoAttackAllowed", true); |
154 | 158 | autoAttackAllowed.tieToCategory(client); |
155 | 159 | autoAttackAllowed.setupTooltip(1); |
| 160 | + autoAttackAllowed.getFixer().addOldCategory("cts_booleans"); |
156 | 161 | bedrockBridging = createBoolean("bedrockBridging", false); |
157 | 162 | bedrockBridging.tieToCategory(client); |
158 | 163 | bedrockBridging.setupTooltip(1); |
| 164 | + bedrockBridging.getFixer().addOldCategory("cts_booleans"); |
159 | 165 | bedrockImpaling = createBoolean("bedrockImpaling", true); |
160 | 166 | bedrockImpaling.tieToCategory(melee); |
161 | 167 | bedrockImpaling.setupTooltip(1); |
| 168 | + bedrockImpaling.getFixer().addOldCategory("cts_booleans"); |
162 | 169 | bowFatigue = createBoolean("bowFatigue", true); |
163 | 170 | bowFatigue.tieToCategory(ranged); |
164 | 171 | bowFatigue.setupTooltip(4); |
| 172 | + bowFatigue.getFixer().addOldCategory("cts_booleans"); |
165 | 173 | canAttackEarly = createBoolean("canAttackEarly", false); |
166 | 174 | canAttackEarly.tieToCategory(melee); |
167 | 175 | canAttackEarly.setupTooltip(1); |
| 176 | + canAttackEarly.getFixer().addOldCategory("cts_booleans"); |
168 | 177 | canSweepOnMiss = createBoolean("canSweepOnMiss", true); |
169 | 178 | canSweepOnMiss.tieToCategory(melee); |
170 | 179 | canSweepOnMiss.setupTooltip(1); |
| 180 | + canSweepOnMiss.getFixer().addOldCategory("cts_booleans"); |
171 | 181 | chargedAttacks = createBoolean("chargedAttacks", true); |
172 | 182 | chargedAttacks.tieToCategory(melee); |
173 | 183 | chargedAttacks.setupTooltip(1); |
| 184 | + chargedAttacks.getFixer().addOldCategory("cts_booleans"); |
174 | 185 | chargedReach = createBoolean("chargedReach", true); |
175 | 186 | chargedReach.tieToCategory(melee); |
176 | 187 | chargedReach.setupTooltip(1); |
| 188 | + chargedReach.getFixer().addOldCategory("cts_booleans"); |
177 | 189 | creativeAttackReach = createBoolean("creativeAttackReach", false); |
178 | 190 | creativeAttackReach.tieToCategory(melee); |
179 | 191 | creativeAttackReach.setupTooltip(1); |
| 192 | + creativeAttackReach.getFixer().addOldCategory("cts_booleans"); |
180 | 193 | ctsMomentumPassedToProjectiles = createBoolean("ctsMomentumPassedToProjectiles", true); |
181 | 194 | ctsMomentumPassedToProjectiles.tieToCategory(ranged); |
182 | 195 | ctsMomentumPassedToProjectiles.setupTooltip(1); |
| 196 | + ctsMomentumPassedToProjectiles.getFixer().addOldCategory("cts_booleans"); |
183 | 197 | dispensableTridents = createBoolean("dispensableTridents", true); |
184 | 198 | dispensableTridents.tieToCategory(ranged); |
185 | 199 | dispensableTridents.setupTooltip(1); |
| 200 | + dispensableTridents.getFixer().addOldCategory("cts_booleans"); |
186 | 201 | hasMissTime = createBoolean("hasMissTime", false); |
187 | 202 | hasMissTime.tieToCategory(melee); |
188 | 203 | hasMissTime.setupTooltip(1); |
| 204 | + hasMissTime.getFixer().addOldCategory("cts_booleans"); |
189 | 205 | hasteFix = createBoolean("hasteFix", false); |
190 | 206 | hasteFix.tieToCategory(fixes); |
191 | 207 | hasteFix.setupTooltip(1); |
| 208 | + hasteFix.getFixer().addOldCategory("cts_booleans"); |
192 | 209 | iFramesBasedOnWeapon = createBoolean("iFramesBasedOnWeapon", true); |
193 | 210 | iFramesBasedOnWeapon.tieToCategory(melee); |
194 | 211 | iFramesBasedOnWeapon.setupTooltip(1); |
| 212 | + iFramesBasedOnWeapon.getFixer().addOldCategory("cts_booleans"); |
195 | 213 | missedAttackRecovery = createBoolean("missedAttackRecovery", true); |
196 | 214 | missedAttackRecovery.tieToCategory(melee); |
197 | 215 | missedAttackRecovery.setupTooltip(1); |
| 216 | + missedAttackRecovery.getFixer().addOldCategory("cts_booleans"); |
198 | 217 | percentageDamageEffects = createBoolean("percentageDamageEffects", true); |
199 | 218 | percentageDamageEffects.tieToCategory(melee); |
200 | 219 | percentageDamageEffects.setupTooltip(1); |
| 220 | + percentageDamageEffects.getFixer().addOldCategory("cts_booleans"); |
201 | 221 | projectilesHaveIFrames = createBoolean("projectilesHaveIFrames", false); |
202 | 222 | projectilesHaveIFrames.tieToCategory(ranged); |
203 | 223 | projectilesHaveIFrames.setupTooltip(1); |
| 224 | + projectilesHaveIFrames.getFixer().addOldCategory("cts_booleans"); |
204 | 225 | resetOnItemChange = createBoolean("resetOnItemChange", false); |
205 | 226 | resetOnItemChange.tieToCategory(melee); |
206 | 227 | resetOnItemChange.setupTooltip(1); |
| 228 | + resetOnItemChange.getFixer().addOldCategory("cts_booleans"); |
207 | 229 | snowballKB = createBoolean("snowballKB", true); |
208 | 230 | snowballKB.tieToCategory(ranged); |
209 | 231 | snowballKB.setupTooltip(1); |
| 232 | + snowballKB.getFixer().addOldCategory("cts_booleans"); |
210 | 233 | strengthAppliesToEnchants = createBoolean("strengthAppliesToEnchants", true); |
211 | 234 | strengthAppliesToEnchants.tieToCategory(melee); |
212 | 235 | strengthAppliesToEnchants.setupTooltip(1); |
| 236 | + strengthAppliesToEnchants.getFixer().addOldCategory("cts_booleans"); |
213 | 237 | sweepWithSweeping = createBoolean("sweepWithSweeping", true); |
214 | 238 | sweepWithSweeping.tieToCategory(melee); |
215 | 239 | sweepWithSweeping.setupTooltip(1); |
| 240 | + sweepWithSweeping.getFixer().addOldCategory("cts_booleans"); |
216 | 241 | swingThroughGrass = createBoolean("swingThroughGrass", true); |
217 | 242 | swingThroughGrass.tieToCategory(melee); |
218 | 243 | swingThroughGrass.setupTooltip(1); |
| 244 | + swingThroughGrass.getFixer().addOldCategory("cts_booleans"); |
219 | 245 | tierDamageNerf = createBoolean("tierDamageNerf", true); |
220 | 246 | tierDamageNerf.tieToCategory(melee); |
221 | 247 | tierDamageNerf.setupTooltip(1); |
| 248 | + tierDamageNerf.getFixer().addOldCategory("cts_booleans"); |
222 | 249 | tridentVoidReturn = createBoolean("tridentVoidReturn", true); |
223 | 250 | tridentVoidReturn.tieToCategory(ranged); |
224 | 251 | tridentVoidReturn.setupTooltip(1); |
| 252 | + tridentVoidReturn.getFixer().addOldCategory("cts_booleans"); |
225 | 253 |
|
226 | 254 | aimAssistTicks = createInRange("aimAssistTicks", 0, 0, 10, true); |
227 | 255 | aimAssistTicks.tieToCategory(melee); |
228 | 256 | aimAssistTicks.setupTooltip(1); |
| 257 | + aimAssistTicks.getFixer().addOldCategory("cts_integers"); |
229 | 258 | shieldDelay = createInRange("shieldDelay", 0, 0, 2000, false); |
230 | 259 | shieldDelay.tieToCategory(defense); |
231 | 260 | shieldDelay.setupTooltip(1); |
| 261 | + shieldDelay.getFixer().addOldCategory("cts_integers"); |
232 | 262 | instantHealthBonus = createInRange("instantHealthBonus", 6, 1, 1000, false); |
233 | 263 | instantHealthBonus.tieToCategory(defense); |
| 264 | + instantHealthBonus.getFixer().addOldCategory("cts_integers"); |
234 | 265 |
|
235 | 266 | baseHandAttackSpeed = createInRange("baseHandAttackSpeed", 2.5, 2.5, 20); |
236 | 267 | baseHandAttackSpeed.tieToCategory(melee); |
| 268 | + baseHandAttackSpeed.getFixer().addOldCategory("cts_doubles"); |
237 | 269 | fistDamage = createInRange("fistDamage", 2.0, 1, 1024); |
238 | 270 | fistDamage.tieToCategory(melee); |
239 | 271 | fistDamage.setupTooltip(1); |
| 272 | + fistDamage.getFixer().addOldCategory("cts_doubles"); |
240 | 273 | projectileUncertainty = createObject("projectileUncertainty", ProjectileUncertainty.DEFAULT, ProjectileUncertainty.class, ProjectileUncertainty.STREAM_CODEC, false); |
241 | 274 | projectileUncertainty.tieToCategory(ranged); |
| 275 | + projectileUncertainty.getFixer().addOldCategory("cts_doubles"); |
242 | 276 | fallbackShieldDisableTime = createInRange("fallbackShieldDisableTime", 1.6, 0, 10); |
243 | 277 | fallbackShieldDisableTime.tieToCategory(defense); |
244 | 278 | fallbackShieldDisableTime.setupTooltip(1); |
| 279 | + fallbackShieldDisableTime.getFixer().addOldCategory("cts_doubles"); |
245 | 280 | minHitboxSize = createInRange("minHitboxSize", 0.9, 0, 5); |
246 | 281 | minHitboxSize.tieToCategory(mob); |
247 | 282 | minHitboxSize.setupTooltip(1); |
| 283 | + minHitboxSize.getFixer().addOldCategory("cts_doubles"); |
248 | 284 |
|
249 | 285 | critImpl = createCodecBacked("critImpl", new CTSCritImpl(true, -1, 1.5F), CritImpl.CODEC); |
250 | 286 | critImpl.tieToCategory(melee); |
251 | 287 | critImpl.setupTooltip(1); |
| 288 | + critImpl.setFixer(new CritImplFixer(critImpl)); |
| 289 | + critImpl.getFixer().addOldCategory("cts_enums"); |
252 | 290 | eatingInterruptionMode = createEnum("eatingInterruptionMode", EatingInterruptionMode.FULL_RESET, EatingInterruptionMode.class, EatingInterruptionMode.values(), e -> Component.translatable("text.config.combatify-general.option.eatingInterruptionMode." + e.name().toLowerCase(Locale.ROOT))); |
253 | 291 | eatingInterruptionMode.tieToCategory(melee); |
254 | 292 | eatingInterruptionMode.setupTooltip(4); |
| 293 | + eatingInterruptionMode.getFixer().addOldCategory("cts_enums"); |
255 | 294 | knockbackMode = createEnum("knockbackMode", KnockbackMode.CTS_8C, KnockbackMode.class, KnockbackMode.values(), e -> Component.translatable("text.config.combatify-general.option.knockbackMode." + e.name().toLowerCase(Locale.ROOT))); |
256 | 295 | knockbackMode.tieToCategory(melee); |
257 | 296 | knockbackMode.setupTooltip(6); |
| 297 | + knockbackMode.getFixer().addOldCategory("cts_enums"); |
258 | 298 | foodImpl = createCodecBacked("foodImpl", new CTSFoodImpl(true, true, 6, 7, 21, 0.5F, 2.0F, 2.0F), FoodImpl.CODEC); |
259 | 299 | foodImpl.tieToCategory(defense); |
260 | 300 | foodImpl.setupTooltip(1); |
| 301 | + foodImpl.setFixer(new FoodImplFixer(foodImpl)); |
| 302 | + foodImpl.getFixer().addOldCategory("cts_enums"); |
261 | 303 |
|
262 | 304 | armorPiercingDisablesShields = createBoolean("armorPiercingDisablesShields", false); |
263 | | - armorPiercingDisablesShields.tieToCategory(extras); |
| 305 | + armorPiercingDisablesShields.tieToCategory(defense); |
264 | 306 | armorPiercingDisablesShields.setupTooltip(1); |
| 307 | + armorPiercingDisablesShields.getFixer().addOldCategory("extra_booleans"); |
265 | 308 | attackSpeed = createBoolean("attackSpeed", true); |
266 | 309 | attackSpeed.tieToCategory(extras); |
267 | 310 | attackSpeed.setupTooltip(1); |
| 311 | + attackSpeed.getFixer().addOldCategory("extra_booleans"); |
268 | 312 | attributeSwappingFix = createBoolean("attributeSwappingFix", false); |
269 | 313 | attributeSwappingFix.tieToCategory(fixes); |
| 314 | + attributeSwappingFix.getFixer().addOldCategory("extra_booleans"); |
270 | 315 | canInteractWhenCrouchShield = createBoolean("canInteractWhenCrouchShield", true); |
271 | 316 | canInteractWhenCrouchShield.tieToCategory(defense); |
| 317 | + canInteractWhenCrouchShield.getFixer().addOldCategory("extra_booleans"); |
272 | 318 | configOnlyWeapons = createBoolean("configOnlyWeapons", false); |
273 | 319 | configOnlyWeapons.tieToCategory(extras); |
274 | 320 | configOnlyWeapons.setRestartRequired(RestartRequiredMode.RESTART_BOTH); |
275 | 321 | configOnlyWeapons.setupTooltip(1); |
| 322 | + configOnlyWeapons.getFixer().addOldCategory("extra_booleans"); |
276 | 323 | tieredShields = createBoolean("tieredShields", false); |
277 | 324 | tieredShields.tieToCategory(extras); |
278 | 325 | tieredShields.setRestartRequired(RestartRequiredMode.RESTART_BOTH); |
279 | 326 | tieredShields.setupTooltip(1); |
| 327 | + tieredShields.getFixer().addOldCategory("extra_booleans"); |
280 | 328 | delayedEntityUpdates = createBoolean("delayedEntityUpdates", false); |
281 | 329 | delayedEntityUpdates.tieToCategory(fixes); |
282 | 330 | delayedEntityUpdates.setupTooltip(1); |
| 331 | + delayedEntityUpdates.getFixer().addOldCategory("extra_booleans"); |
283 | 332 | disableLoyaltyOnHitEntity = createBoolean("disableLoyaltyOnHitEntity", false); |
284 | 333 | disableLoyaltyOnHitEntity.tieToCategory(extras); |
| 334 | + disableLoyaltyOnHitEntity.getFixer().addOldCategory("extra_booleans"); |
285 | 335 | fishingHookKB = createBoolean("fishingHookKB", false); |
286 | 336 | fishingHookKB.tieToCategory(legacy); |
287 | 337 | fishingHookKB.setupTooltip(1); |
| 338 | + fishingHookKB.getFixer().addOldCategory("extra_booleans"); |
288 | 339 | improvedMiscEntityAttacks = createBoolean("improvedMiscEntityAttacks", false); |
289 | 340 | improvedMiscEntityAttacks.tieToCategory(extras); |
290 | 341 | improvedMiscEntityAttacks.setupTooltip(1); |
| 342 | + improvedMiscEntityAttacks.getFixer().addOldCategory("extra_booleans"); |
291 | 343 | instaAttack = createBoolean("instaAttack", false); |
292 | 344 | instaAttack.tieToCategory(legacy); |
293 | 345 | instaAttack.setupTooltip(1); |
| 346 | + instaAttack.getFixer().addOldCategory("extra_booleans"); |
294 | 347 | letVanillaConnect = createBoolean("letVanillaConnect", true); |
295 | 348 | letVanillaConnect.tieToCategory(extras); |
296 | 349 | letVanillaConnect.setupTooltip(1); |
| 350 | + letVanillaConnect.getFixer().addOldCategory("extra_booleans"); |
297 | 351 | magicHasIFrames = createBoolean("magicHasIFrames", true); |
298 | 352 | magicHasIFrames.tieToCategory(extras); |
299 | 353 | magicHasIFrames.setupTooltip(1); |
| 354 | + magicHasIFrames.getFixer().addOldCategory("extra_booleans"); |
300 | 355 | mobsCanGuard = createBoolean("mobsCanGuard", false); |
301 | 356 | mobsCanGuard.tieToCategory(mob); |
302 | 357 | mobsCanGuard.setupTooltip(1); |
| 358 | + mobsCanGuard.getFixer().addOldCategory("extra_booleans"); |
303 | 359 | mobsCanSprint = createBoolean("mobsCanSprint", false); |
304 | 360 | mobsCanSprint.tieToCategory(mob); |
305 | 361 | mobsCanSprint.setupTooltip(1); |
| 362 | + mobsCanSprint.getFixer().addOldCategory("extra_booleans"); |
306 | 363 | mobsUsePlayerAttributes = createBoolean("mobsUsePlayerAttributes", false); |
307 | 364 | mobsUsePlayerAttributes.tieToCategory(mob); |
308 | 365 | mobsUsePlayerAttributes.setupTooltip(1); |
| 366 | + mobsUsePlayerAttributes.getFixer().addOldCategory("extra_booleans"); |
309 | 367 | shieldOnlyWhenCharged = createBoolean("shieldOnlyWhenCharged", false); |
310 | 368 | shieldOnlyWhenCharged.tieToCategory(legacy); |
311 | 369 | shieldOnlyWhenCharged.setupTooltip(2); |
| 370 | + shieldOnlyWhenCharged.getFixer().addOldCategory("extra_booleans"); |
312 | 371 | sweepConditionsMatchMiss = createBoolean("sweepConditionsMatchMiss", false); |
313 | 372 | sweepConditionsMatchMiss.tieToCategory(extras); |
314 | 373 | sweepConditionsMatchMiss.setupTooltip(2); |
| 374 | + sweepConditionsMatchMiss.getFixer().addOldCategory("extra_booleans"); |
315 | 375 | sweepingNegatedForTamed = createBoolean("sweepingNegatedForTamed", false); |
316 | 376 | sweepingNegatedForTamed.tieToCategory(extras); |
317 | 377 | sweepingNegatedForTamed.setupTooltip(1); |
| 378 | + sweepingNegatedForTamed.getFixer().addOldCategory("extra_booleans"); |
318 | 379 |
|
319 | 380 | shieldChargePercentage = createInRange("shieldChargePercentage", 195, 1, 200, true); |
320 | 381 | shieldChargePercentage.tieToCategory(legacy); |
321 | 382 | shieldChargePercentage.setupTooltip(1); |
| 383 | + shieldChargePercentage.getFixer().addOldCategory("extra_integers"); |
322 | 384 |
|
323 | 385 | projectileDamage = createObject("projectileDamage", ProjectileDamage.DEFAULT, ProjectileDamage.class, ProjectileDamage.STREAM_CODEC); |
324 | 386 | projectileDamage.tieToCategory(ranged); |
| 387 | + projectileDamage.getFixer().addOldCategory("extra_doubles"); |
325 | 388 |
|
326 | 389 | arrowDisableMode = createEnum("arrowDisableMode", ArrowDisableMode.NONE, ArrowDisableMode.class, ArrowDisableMode.values(), e -> Component.translatable("text.config.combatify-general.option.arrowDisableMode." + e.name().toLowerCase(Locale.ROOT))); |
327 | 390 | arrowDisableMode.tieToCategory(ranged); |
328 | 391 | arrowDisableMode.setupTooltip(7); |
| 392 | + arrowDisableMode.getFixer().addOldCategory("extra_enums"); |
329 | 393 | armourPiercingMode = createEnum("armourPiercingMode", ArmourPiercingMode.VANILLA, ArmourPiercingMode.class, ArmourPiercingMode.values(), e -> Component.translatable("text.config.combatify-general.option.armourPiercingMode." + e.name().toLowerCase(Locale.ROOT))); |
330 | 394 | armourPiercingMode.tieToCategory(defense); |
331 | 395 | armourPiercingMode.setupTooltip(4); |
| 396 | + armourPiercingMode.getFixer().addOldCategory("extra_enums"); |
332 | 397 |
|
333 | 398 | enableDebugLogging = createBoolean("enableDebugLogging", false); |
334 | 399 | enableDebugLogging.tieToCategory(debug); |
|
0 commit comments