From 98c4bf2a97d8e453185310a82105225b3e1b3f8d Mon Sep 17 00:00:00 2001 From: TudbuT Date: Sun, 3 Mar 2024 21:06:47 +0100 Subject: [PATCH] public release. <3 --- .gitignore | 31 + LICENSE | 22 + README.md | 18 + build.gradle | 127 +++ gradle.properties | 15 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 172 ++++ gradlew.bat | 84 ++ lib/TuddyLIB-javadoc.zip | Bin 0 -> 868886 bytes lib/de.tudbut.api.jar | Bin 0 -> 487859 bytes ...powered.asm.service.IGlobalPropertyService | 1 + ...rg.spongepowered.asm.service.IMixinService | 1 + ...powered.asm.service.IMixinServiceBootstrap | 1 + ...ls.obfuscation.service.IObfuscationService | 1 + .../asm/bridge/RemapperAdapter.class | Bin 0 -> 2825 bytes .../asm/bridge/RemapperAdapterFML.class | Bin 0 -> 2936 bytes .../asm/launch/GlobalProperties$Keys.class | Bin 0 -> 1040 bytes .../asm/launch/GlobalProperties.class | Bin 0 -> 2092 bytes .../asm/launch/MixinBootstrap.class | Bin 0 -> 4766 bytes .../asm/launch/MixinInitialisationError.class | Bin 0 -> 850 bytes .../asm/launch/MixinTweaker.class | Bin 0 -> 1593 bytes .../launch/platform/IMixinPlatformAgent.class | Bin 0 -> 305 bytes .../asm/launch/platform/MainAttributes.class | Bin 0 -> 2496 bytes .../asm/launch/platform/MixinContainer.class | Bin 0 -> 4693 bytes .../platform/MixinPlatformAgentAbstract.class | Bin 0 -> 1878 bytes .../platform/MixinPlatformAgentDefault.class | Bin 0 -> 2118 bytes .../platform/MixinPlatformAgentFML.class | Bin 0 -> 11122 bytes .../platform/MixinPlatformManager.class | Bin 0 -> 9332 bytes .../asm/lib/AnnotationVisitor.class | Bin 0 -> 1569 bytes .../asm/lib/AnnotationWriter.class | Bin 0 -> 6132 bytes .../org/spongepowered/asm/lib/Attribute.class | Bin 0 -> 2776 bytes .../spongepowered/asm/lib/ByteVector.class | Bin 0 -> 3723 bytes .../spongepowered/asm/lib/ClassReader.class | Bin 0 -> 35414 bytes .../spongepowered/asm/lib/ClassVisitor.class | Bin 0 -> 3129 bytes .../spongepowered/asm/lib/ClassWriter.class | Bin 0 -> 21979 bytes .../org/spongepowered/asm/lib/Context.class | Bin 0 -> 821 bytes .../spongepowered/asm/lib/CurrentFrame.class | Bin 0 -> 1020 bytes sponge/org/spongepowered/asm/lib/Edge.class | Bin 0 -> 458 bytes .../spongepowered/asm/lib/FieldVisitor.class | Bin 0 -> 1565 bytes .../spongepowered/asm/lib/FieldWriter.class | Bin 0 -> 4742 bytes sponge/org/spongepowered/asm/lib/Frame.class | Bin 0 -> 13395 bytes sponge/org/spongepowered/asm/lib/Handle.class | Bin 0 -> 2047 bytes .../org/spongepowered/asm/lib/Handler.class | Bin 0 -> 1177 bytes sponge/org/spongepowered/asm/lib/Item.class | Bin 0 -> 2767 bytes sponge/org/spongepowered/asm/lib/Label.class | Bin 0 -> 4549 bytes .../spongepowered/asm/lib/MethodVisitor.class | Bin 0 -> 7299 bytes .../spongepowered/asm/lib/MethodWriter.class | Bin 0 -> 30796 bytes .../org/spongepowered/asm/lib/Opcodes.class | Bin 0 -> 6862 bytes sponge/org/spongepowered/asm/lib/Type.class | Bin 0 -> 10004 bytes .../org/spongepowered/asm/lib/TypePath.class | Bin 0 -> 2253 bytes .../spongepowered/asm/lib/TypeReference.class | Bin 0 -> 3238 bytes .../asm/lib/commons/AnnotationRemapper.class | Bin 0 -> 1972 bytes .../asm/lib/commons/ClassRemapper.class | Bin 0 -> 4832 bytes .../asm/lib/commons/FieldRemapper.class | Bin 0 -> 1818 bytes .../asm/lib/commons/MethodRemapper.class | Bin 0 -> 6806 bytes .../asm/lib/commons/Remapper.class | Bin 0 -> 5200 bytes .../asm/lib/commons/SignatureRemapper.class | Bin 0 -> 3756 bytes .../asm/lib/commons/SimpleRemapper.class | Bin 0 -> 1989 bytes sponge/org/spongepowered/asm/lib/package.html | 87 ++ .../asm/lib/signature/SignatureReader.class | Bin 0 -> 2802 bytes .../asm/lib/signature/SignatureVisitor.class | Bin 0 -> 2068 bytes .../asm/lib/signature/SignatureWriter.class | Bin 0 -> 3019 bytes .../asm/lib/signature/package.html | 36 + .../asm/lib/tree/AbstractInsnNode.class | Bin 0 -> 4776 bytes .../asm/lib/tree/AnnotationNode.class | Bin 0 -> 5521 bytes .../asm/lib/tree/ClassNode.class | Bin 0 -> 7220 bytes .../asm/lib/tree/FieldInsnNode.class | Bin 0 -> 1751 bytes .../asm/lib/tree/FieldNode.class | Bin 0 -> 4359 bytes .../asm/lib/tree/FrameNode.class | Bin 0 -> 3230 bytes .../asm/lib/tree/IincInsnNode.class | Bin 0 -> 1488 bytes .../asm/lib/tree/InnerClassNode.class | Bin 0 -> 874 bytes .../lib/tree/InsnList$InsnListIterator.class | Bin 0 -> 2765 bytes .../spongepowered/asm/lib/tree/InsnList.class | Bin 0 -> 5583 bytes .../spongepowered/asm/lib/tree/InsnNode.class | Bin 0 -> 1390 bytes .../asm/lib/tree/IntInsnNode.class | Bin 0 -> 1558 bytes .../asm/lib/tree/InvokeDynamicInsnNode.class | Bin 0 -> 1803 bytes .../asm/lib/tree/JumpInsnNode.class | Bin 0 -> 1921 bytes .../asm/lib/tree/LabelNode.class | Bin 0 -> 1721 bytes .../asm/lib/tree/LdcInsnNode.class | Bin 0 -> 1464 bytes .../asm/lib/tree/LineNumberNode.class | Bin 0 -> 1673 bytes .../tree/LocalVariableAnnotationNode.class | Bin 0 -> 2868 bytes .../asm/lib/tree/LocalVariableNode.class | Bin 0 -> 1356 bytes .../asm/lib/tree/LookupSwitchInsnNode.class | Bin 0 -> 3038 bytes .../asm/lib/tree/MethodInsnNode.class | Bin 0 -> 1935 bytes .../asm/lib/tree/MethodNode$1.class | Bin 0 -> 912 bytes .../asm/lib/tree/MethodNode.class | Bin 0 -> 17281 bytes .../asm/lib/tree/MultiANewArrayInsnNode.class | Bin 0 -> 1567 bytes .../asm/lib/tree/ParameterNode.class | Bin 0 -> 730 bytes .../asm/lib/tree/TableSwitchInsnNode.class | Bin 0 -> 2717 bytes .../asm/lib/tree/TryCatchBlockNode.class | Bin 0 -> 2650 bytes .../asm/lib/tree/TypeAnnotationNode.class | Bin 0 -> 969 bytes .../asm/lib/tree/TypeInsnNode.class | Bin 0 -> 1597 bytes .../asm/lib/tree/VarInsnNode.class | Bin 0 -> 1554 bytes .../asm/lib/tree/analysis/Analyzer.class | Bin 0 -> 13570 bytes .../lib/tree/analysis/AnalyzerException.class | Bin 0 -> 1546 bytes .../lib/tree/analysis/BasicInterpreter.class | Bin 0 -> 9527 bytes .../asm/lib/tree/analysis/BasicValue.class | Bin 0 -> 2020 bytes .../asm/lib/tree/analysis/BasicVerifier.class | Bin 0 -> 10571 bytes .../asm/lib/tree/analysis/Frame.class | Bin 0 -> 12771 bytes .../asm/lib/tree/analysis/Interpreter.class | Bin 0 -> 2643 bytes .../lib/tree/analysis/SimpleVerifier.class | Bin 0 -> 7038 bytes .../asm/lib/tree/analysis/SmallSet.class | Bin 0 -> 2331 bytes .../lib/tree/analysis/SourceInterpreter.class | Bin 0 -> 7730 bytes .../asm/lib/tree/analysis/SourceValue.class | Bin 0 -> 1604 bytes .../asm/lib/tree/analysis/Subroutine.class | Bin 0 -> 1927 bytes .../asm/lib/tree/analysis/Value.class | Bin 0 -> 155 bytes .../asm/lib/tree/analysis/package.html | 67 ++ .../spongepowered/asm/lib/tree/package.html | 192 +++++ .../asm/lib/util/ASMifiable.class | Bin 0 -> 348 bytes .../spongepowered/asm/lib/util/ASMifier.class | Bin 0 -> 29057 bytes .../asm/lib/util/CheckAnnotationAdapter.class | Bin 0 -> 2988 bytes .../asm/lib/util/CheckClassAdapter.class | Bin 0 -> 17891 bytes .../asm/lib/util/CheckFieldAdapter.class | Bin 0 -> 2662 bytes .../asm/lib/util/CheckMethodAdapter$1.class | Bin 0 -> 2863 bytes .../asm/lib/util/CheckMethodAdapter.class | Bin 0 -> 23870 bytes .../asm/lib/util/CheckSignatureAdapter.class | Bin 0 -> 4572 bytes .../spongepowered/asm/lib/util/Printer.class | Bin 0 -> 8842 bytes .../asm/lib/util/Textifiable.class | Bin 0 -> 315 bytes .../asm/lib/util/Textifier.class | Bin 0 -> 30244 bytes .../asm/lib/util/TraceAnnotationVisitor.class | Bin 0 -> 2082 bytes .../asm/lib/util/TraceClassVisitor.class | Bin 0 -> 5045 bytes .../asm/lib/util/TraceFieldVisitor.class | Bin 0 -> 2305 bytes .../asm/lib/util/TraceMethodVisitor.class | Bin 0 -> 8541 bytes .../asm/lib/util/TraceSignatureVisitor.class | Bin 0 -> 4858 bytes .../spongepowered/asm/lib/util/package.html | 40 + .../org/spongepowered/asm/mixin/Debug.class | Bin 0 -> 485 bytes .../org/spongepowered/asm/mixin/Dynamic.class | Bin 0 -> 565 bytes .../asm/mixin/EnvironmentStateTweaker.class | Bin 0 -> 1844 bytes .../org/spongepowered/asm/mixin/Final.class | Bin 0 -> 404 bytes .../spongepowered/asm/mixin/Implements.class | Bin 0 -> 450 bytes .../asm/mixin/Interface$Remap.class | Bin 0 -> 1508 bytes .../spongepowered/asm/mixin/Interface.class | Bin 0 -> 794 bytes .../spongepowered/asm/mixin/Intrinsic.class | Bin 0 -> 456 bytes .../org/spongepowered/asm/mixin/Mixin.class | Bin 0 -> 619 bytes .../asm/mixin/MixinEnvironment$1.class | Bin 0 -> 252 bytes ...ixinEnvironment$CompatibilityLevel$1.class | Bin 0 -> 1008 bytes ...ixinEnvironment$CompatibilityLevel$2.class | Bin 0 -> 1008 bytes ...ixinEnvironment$CompatibilityLevel$3.class | Bin 0 -> 888 bytes .../MixinEnvironment$CompatibilityLevel.class | Bin 0 -> 3198 bytes ...onment$MixinLogWatcher$MixinAppender.class | Bin 0 -> 1910 bytes .../MixinEnvironment$MixinLogWatcher.class | Bin 0 -> 1668 bytes .../MixinEnvironment$Option$Inherit.class | Bin 0 -> 1468 bytes .../asm/mixin/MixinEnvironment$Option.class | Bin 0 -> 9930 bytes .../asm/mixin/MixinEnvironment$Phase.class | Bin 0 -> 2182 bytes .../asm/mixin/MixinEnvironment$Side$1.class | Bin 0 -> 728 bytes .../asm/mixin/MixinEnvironment$Side$2.class | Bin 0 -> 1082 bytes .../asm/mixin/MixinEnvironment$Side$3.class | Bin 0 -> 1153 bytes .../asm/mixin/MixinEnvironment$Side.class | Bin 0 -> 1788 bytes ...ixinEnvironment$TokenProviderWrapper.class | Bin 0 -> 2004 bytes .../asm/mixin/MixinEnvironment.class | Bin 0 -> 18224 bytes .../org/spongepowered/asm/mixin/Mixins.class | Bin 0 -> 4249 bytes .../org/spongepowered/asm/mixin/Mutable.class | Bin 0 -> 394 bytes .../spongepowered/asm/mixin/Overwrite.class | Bin 0 -> 563 bytes .../org/spongepowered/asm/mixin/Pseudo.class | Bin 0 -> 389 bytes .../org/spongepowered/asm/mixin/Shadow.class | Bin 0 -> 572 bytes .../asm/mixin/SoftOverride.class | Bin 0 -> 403 bytes .../org/spongepowered/asm/mixin/Unique.class | Bin 0 -> 475 bytes .../IEnvironmentTokenProvider.class | Bin 0 -> 368 bytes .../mixin/extensibility/IMixinConfig.class | Bin 0 -> 593 bytes .../extensibility/IMixinConfigPlugin.class | Bin 0 -> 744 bytes .../IMixinErrorHandler$ErrorAction.class | Bin 0 -> 1693 bytes .../extensibility/IMixinErrorHandler.class | Bin 0 -> 860 bytes .../asm/mixin/extensibility/IMixinInfo.class | Bin 0 -> 802 bytes .../asm/mixin/extensibility/IRemapper.class | Bin 0 -> 374 bytes .../asm/mixin/gen/Accessor.class | Bin 0 -> 500 bytes .../asm/mixin/gen/AccessorGenerator.class | Bin 0 -> 1447 bytes .../mixin/gen/AccessorGeneratorField.class | Bin 0 -> 1056 bytes .../gen/AccessorGeneratorFieldGetter.class | Bin 0 -> 2003 bytes .../gen/AccessorGeneratorFieldSetter.class | Bin 0 -> 2144 bytes .../gen/AccessorGeneratorMethodProxy.class | Bin 0 -> 2707 bytes .../asm/mixin/gen/AccessorInfo$1.class | Bin 0 -> 852 bytes .../gen/AccessorInfo$AccessorType$1.class | Bin 0 -> 1218 bytes .../gen/AccessorInfo$AccessorType$2.class | Bin 0 -> 1218 bytes .../gen/AccessorInfo$AccessorType$3.class | Bin 0 -> 1218 bytes .../mixin/gen/AccessorInfo$AccessorType.class | Bin 0 -> 2892 bytes .../asm/mixin/gen/AccessorInfo.class | Bin 0 -> 12006 bytes .../spongepowered/asm/mixin/gen/Invoker.class | Bin 0 -> 498 bytes .../asm/mixin/gen/InvokerInfo.class | Bin 0 -> 2123 bytes .../throwables/InvalidAccessorException.class | Bin 0 -> 2001 bytes .../asm/mixin/injection/At$Shift.class | Bin 0 -> 1269 bytes .../asm/mixin/injection/At.class | Bin 0 -> 834 bytes .../asm/mixin/injection/Coerce.class | Bin 0 -> 309 bytes .../mixin/injection/Constant$Condition.class | Bin 0 -> 2429 bytes .../asm/mixin/injection/Constant.class | Bin 0 -> 1004 bytes .../asm/mixin/injection/Group.class | Bin 0 -> 526 bytes .../injection/IInjectionPointContext.class | Bin 0 -> 383 bytes .../asm/mixin/injection/Inject.class | Bin 0 -> 1012 bytes .../injection/InjectionPoint$AtCode.class | Bin 0 -> 553 bytes ...jectionPoint$CompositeInjectionPoint.class | Bin 0 -> 1432 bytes .../InjectionPoint$Intersection.class | Bin 0 -> 2370 bytes .../injection/InjectionPoint$Selector.class | Bin 0 -> 1372 bytes .../injection/InjectionPoint$Shift.class | Bin 0 -> 2716 bytes ...ctionPoint$ShiftByViolationBehaviour.class | Bin 0 -> 1456 bytes .../injection/InjectionPoint$Union.class | Bin 0 -> 1706 bytes .../asm/mixin/injection/InjectionPoint.class | Bin 0 -> 19404 bytes .../asm/mixin/injection/ModifyArg.class | Bin 0 -> 862 bytes .../asm/mixin/injection/ModifyArgs.class | Bin 0 -> 839 bytes .../asm/mixin/injection/ModifyConstant.class | Bin 0 -> 820 bytes .../asm/mixin/injection/ModifyVariable.class | Bin 0 -> 981 bytes .../asm/mixin/injection/Redirect.class | Bin 0 -> 835 bytes .../asm/mixin/injection/Slice.class | Bin 0 -> 543 bytes .../asm/mixin/injection/Surrogate.class | Bin 0 -> 409 bytes .../injection/callback/CallbackInfo.class | Bin 0 -> 2574 bytes .../callback/CallbackInfoReturnable.class | Bin 0 -> 5032 bytes .../callback/CallbackInjector$1.class | Bin 0 -> 892 bytes .../callback/CallbackInjector$Callback.class | Bin 0 -> 7396 bytes .../injection/callback/CallbackInjector.class | Bin 0 -> 20431 bytes .../injection/callback/Cancellable.class | Bin 0 -> 322 bytes .../callback/CancellationException.class | Bin 0 -> 888 bytes .../injection/callback/LocalCapture.class | Bin 0 -> 1771 bytes .../mixin/injection/code/ISliceContext.class | Bin 0 -> 316 bytes .../injection/code/Injector$TargetNode.class | Bin 0 -> 1530 bytes .../asm/mixin/injection/code/Injector.class | Bin 0 -> 13018 bytes .../mixin/injection/code/InjectorTarget.class | Bin 0 -> 4349 bytes ...hodSlice$InsnListSlice$SliceIterator.class | Bin 0 -> 2917 bytes .../code/MethodSlice$InsnListSlice.class | Bin 0 -> 2807 bytes .../mixin/injection/code/MethodSlice.class | Bin 0 -> 8334 bytes .../mixin/injection/code/MethodSlices.class | Bin 0 -> 3381 bytes .../injection/code/ReadOnlyInsnList.class | Bin 0 -> 3237 bytes .../injection/invoke/InvokeInjector.class | Bin 0 -> 5632 bytes .../injection/invoke/ModifyArgInjector.class | Bin 0 -> 6390 bytes .../injection/invoke/ModifyArgsInjector.class | Bin 0 -> 6485 bytes .../invoke/ModifyConstantInjector.class | Bin 0 -> 10118 bytes ...rectInjector$ConstructorRedirectData.class | Bin 0 -> 688 bytes .../invoke/RedirectInjector$Meta.class | Bin 0 -> 1105 bytes .../RedirectInjector$RedirectedInvoke.class | Bin 0 -> 1889 bytes .../injection/invoke/RedirectInjector.class | Bin 0 -> 22840 bytes .../asm/mixin/injection/invoke/arg/Args.class | Bin 0 -> 769 bytes .../invoke/arg/ArgsClassGenerator.class | Bin 0 -> 11727 bytes .../InsnFinder$AnalysisResultException.class | Bin 0 -> 894 bytes .../util/InsnFinder$AnalyzerState.class | Bin 0 -> 1430 bytes .../InsnFinder$PopAnalyzer$PopFrame.class | Bin 0 -> 3240 bytes .../invoke/util/InsnFinder$PopAnalyzer.class | Bin 0 -> 1429 bytes .../injection/invoke/util/InsnFinder.class | Bin 0 -> 2275 bytes .../injection/modify/AfterStoreLocal.class | Bin 0 -> 923 bytes .../modify/BeforeLoadLocal$SearchState.class | Bin 0 -> 1993 bytes .../injection/modify/BeforeLoadLocal.class | Bin 0 -> 4498 bytes ...nvalidImplicitDiscriminatorException.class | Bin 0 -> 765 bytes ...lVariableDiscriminator$Context$Local.class | Bin 0 -> 1422 bytes .../LocalVariableDiscriminator$Context.class | Bin 0 -> 5727 bytes .../modify/LocalVariableDiscriminator.class | Bin 0 -> 5523 bytes .../ModifyVariableInjector$Context.class | Bin 0 -> 1176 bytes ...bleInjector$ContextualInjectionPoint.class | Bin 0 -> 1993 bytes .../modify/ModifyVariableInjector.class | Bin 0 -> 10522 bytes .../mixin/injection/points/AfterInvoke.class | Bin 0 -> 2321 bytes .../injection/points/BeforeConstant.class | Bin 0 -> 12083 bytes .../injection/points/BeforeFieldAccess.class | Bin 0 -> 5017 bytes .../injection/points/BeforeFinalReturn.class | Bin 0 -> 2899 bytes .../points/BeforeInvoke$SearchType.class | Bin 0 -> 1338 bytes .../mixin/injection/points/BeforeInvoke.class | Bin 0 -> 8045 bytes .../mixin/injection/points/BeforeNew.class | Bin 0 -> 4657 bytes .../mixin/injection/points/BeforeReturn.class | Bin 0 -> 2619 bytes .../injection/points/BeforeStringInvoke.class | Bin 0 -> 3584 bytes .../injection/points/JumpInsnPoint.class | Bin 0 -> 2479 bytes .../mixin/injection/points/MethodHead.class | Bin 0 -> 1677 bytes .../struct/CallbackInjectionInfo.class | Bin 0 -> 2160 bytes .../injection/struct/InjectionInfo.class | Bin 0 -> 19989 bytes .../struct/InjectionNodes$InjectionNode.class | Bin 0 -> 3989 bytes .../injection/struct/InjectionNodes.class | Bin 0 -> 2175 bytes .../injection/struct/InjectionPointData.class | Bin 0 -> 9034 bytes .../struct/InjectorGroupInfo$Map.class | Bin 0 -> 3582 bytes .../injection/struct/InjectorGroupInfo.class | Bin 0 -> 4688 bytes .../InvalidMemberDescriptorException.class | Bin 0 -> 863 bytes .../mixin/injection/struct/MemberInfo.class | Bin 0 -> 13825 bytes .../struct/ModifyArgInjectionInfo.class | Bin 0 -> 1601 bytes .../struct/ModifyArgsInjectionInfo.class | Bin 0 -> 1297 bytes .../struct/ModifyConstantInjectionInfo.class | Bin 0 -> 3950 bytes .../struct/ModifyVariableInjectionInfo.class | Bin 0 -> 1604 bytes .../struct/RedirectInjectionInfo.class | Bin 0 -> 1269 bytes .../asm/mixin/injection/struct/Target.class | Bin 0 -> 12219 bytes .../injection/throwables/InjectionError.class | Bin 0 -> 860 bytes .../InjectionValidationException.class | Bin 0 -> 879 bytes .../InvalidInjectionException.class | Bin 0 -> 2101 bytes .../InvalidInjectionPointException.class | Bin 0 -> 2034 bytes .../throwables/InvalidSliceException.class | Bin 0 -> 1871 bytes .../asm/mixin/refmap/IMixinContext.class | Bin 0 -> 869 bytes .../asm/mixin/refmap/IReferenceMapper.class | Bin 0 -> 488 bytes .../asm/mixin/refmap/ReferenceMapper.class | Bin 0 -> 6911 bytes .../refmap/RemappingReferenceMapper$1.class | Bin 0 -> 1676 bytes .../refmap/RemappingReferenceMapper.class | Bin 0 -> 6197 bytes .../asm/mixin/struct/MemberRef$Field.class | Bin 0 -> 1905 bytes .../asm/mixin/struct/MemberRef$Handle.class | Bin 0 -> 2794 bytes .../asm/mixin/struct/MemberRef$Method.class | Bin 0 -> 1912 bytes .../asm/mixin/struct/MemberRef.class | Bin 0 -> 2138 bytes .../asm/mixin/struct/SourceMap$File.class | Bin 0 -> 2800 bytes .../asm/mixin/struct/SourceMap$Stratum.class | Bin 0 -> 2303 bytes .../asm/mixin/struct/SourceMap.class | Bin 0 -> 3753 bytes .../asm/mixin/struct/SpecialMethodInfo.class | Bin 0 -> 1558 bytes .../ClassAlreadyLoadedException.class | Bin 0 -> 836 bytes .../mixin/throwables/MixinApplyError.class | Bin 0 -> 762 bytes .../asm/mixin/throwables/MixinException.class | Bin 0 -> 851 bytes .../mixin/throwables/MixinPrepareError.class | Bin 0 -> 768 bytes .../asm/mixin/transformer/ClassContext.class | Bin 0 -> 3885 bytes .../mixin/transformer/ClassInfo$Field.class | Bin 0 -> 3222 bytes .../transformer/ClassInfo$FrameData.class | Bin 0 -> 1582 bytes .../ClassInfo$InterfaceMethod.class | Bin 0 -> 1153 bytes .../transformer/ClassInfo$Member$Type.class | Bin 0 -> 1353 bytes .../mixin/transformer/ClassInfo$Member.class | Bin 0 -> 4601 bytes .../mixin/transformer/ClassInfo$Method.class | Bin 0 -> 7538 bytes .../transformer/ClassInfo$SearchType.class | Bin 0 -> 1292 bytes .../transformer/ClassInfo$Traversal.class | Bin 0 -> 2495 bytes .../asm/mixin/transformer/ClassInfo.class | Bin 0 -> 28956 bytes .../asm/mixin/transformer/Config.class | Bin 0 -> 2172 bytes ...nnerClassGenerator$InnerClassAdapter.class | Bin 0 -> 2796 bytes .../InnerClassGenerator$InnerClassInfo.class | Bin 0 -> 3486 bytes .../transformer/InnerClassGenerator.class | Bin 0 -> 4934 bytes .../asm/mixin/transformer/InterfaceInfo.class | Bin 0 -> 6240 bytes .../asm/mixin/transformer/MethodMapper.class | Bin 0 -> 5351 bytes .../MixinApplicatorInterface.class | Bin 0 -> 4485 bytes .../MixinApplicatorStandard$1.class | Bin 0 -> 1023 bytes ...xinApplicatorStandard$ApplicatorPass.class | Bin 0 -> 1469 bytes ...torStandard$InitialiserInjectionMode.class | Bin 0 -> 1484 bytes .../MixinApplicatorStandard$Range.class | Bin 0 -> 1594 bytes .../transformer/MixinApplicatorStandard.class | Bin 0 -> 30458 bytes .../asm/mixin/transformer/MixinConfig$1.class | Bin 0 -> 911 bytes .../transformer/MixinConfig$IListener.class | Bin 0 -> 347 bytes .../MixinConfig$InjectorOptions.class | Bin 0 -> 918 bytes .../MixinConfig$OverwriteOptions.class | Bin 0 -> 712 bytes .../asm/mixin/transformer/MixinConfig.class | Bin 0 -> 21742 bytes .../asm/mixin/transformer/MixinInfo$1.class | Bin 0 -> 1353 bytes .../asm/mixin/transformer/MixinInfo$2.class | Bin 0 -> 1533 bytes .../MixinInfo$MixinClassNode.class | Bin 0 -> 1952 bytes .../MixinInfo$MixinMethodNode.class | Bin 0 -> 2932 bytes .../transformer/MixinInfo$Reloaded.class | Bin 0 -> 3021 bytes .../mixin/transformer/MixinInfo$State.class | Bin 0 -> 11667 bytes .../MixinInfo$SubType$Accessor.class | Bin 0 -> 4170 bytes .../MixinInfo$SubType$Interface.class | Bin 0 -> 3294 bytes .../MixinInfo$SubType$Standard.class | Bin 0 -> 4200 bytes .../mixin/transformer/MixinInfo$SubType.class | Bin 0 -> 3957 bytes .../asm/mixin/transformer/MixinInfo.class | Bin 0 -> 17827 bytes .../transformer/MixinPostProcessor$1.class | Bin 0 -> 1861 bytes .../transformer/MixinPostProcessor.class | Bin 0 -> 9033 bytes .../MixinPreProcessorAccessor.class | Bin 0 -> 889 bytes .../MixinPreProcessorInterface.class | Bin 0 -> 2923 bytes ...inPreProcessorStandard$SpecialMethod.class | Bin 0 -> 2686 bytes .../MixinPreProcessorStandard.class | Bin 0 -> 27373 bytes .../transformer/MixinTargetContext.class | Bin 0 -> 34278 bytes .../transformer/MixinTransformer$1.class | Bin 0 -> 1523 bytes .../MixinTransformer$ErrorPhase$1.class | Bin 0 -> 2735 bytes .../MixinTransformer$ErrorPhase$2.class | Bin 0 -> 2490 bytes .../MixinTransformer$ErrorPhase.class | Bin 0 -> 4056 bytes .../mixin/transformer/MixinTransformer.class | Bin 0 -> 29775 bytes .../asm/mixin/transformer/Proxy.class | Bin 0 -> 2240 bytes .../transformer/TargetClassContext.class | Bin 0 -> 12274 bytes .../debug/RuntimeDecompiler$1.class | Bin 0 -> 1261 bytes .../transformer/debug/RuntimeDecompiler.class | Bin 0 -> 6774 bytes .../debug/RuntimeDecompilerAsync.class | Bin 0 -> 2748 bytes .../mixin/transformer/ext/Extensions.class | Bin 0 -> 6904 bytes .../transformer/ext/IClassGenerator.class | Bin 0 -> 199 bytes .../mixin/transformer/ext/IDecompiler.class | Bin 0 -> 187 bytes .../mixin/transformer/ext/IExtension.class | Bin 0 -> 419 bytes .../asm/mixin/transformer/ext/IHotSwap.class | Bin 0 -> 250 bytes .../transformer/ext/ITargetClassContext.class | Bin 0 -> 312 bytes ...CheckClass$ValidationFailedException.class | Bin 0 -> 1035 bytes .../ext/extensions/ExtensionCheckClass.class | Bin 0 -> 2315 bytes .../extensions/ExtensionCheckInterfaces.class | Bin 0 -> 8627 bytes .../extensions/ExtensionClassExporter.class | Bin 0 -> 6958 bytes .../mixin/transformer/meta/MixinMerged.class | Bin 0 -> 484 bytes .../mixin/transformer/meta/MixinRenamed.class | Bin 0 -> 502 bytes .../InvalidInterfaceMixinException.class | Bin 0 -> 1759 bytes .../throwables/InvalidMixinException.class | Bin 0 -> 2059 bytes .../throwables/MixinReloadException.class | Bin 0 -> 871 bytes .../MixinTargetAlreadyLoadedException.class | Bin 0 -> 1354 bytes .../throwables/MixinTransformerError.class | Bin 0 -> 804 bytes .../asm/obfuscation/RemapperChain.class | Bin 0 -> 2874 bytes .../obfuscation/mapping/IMapping$Type.class | Bin 0 -> 1344 bytes .../asm/obfuscation/mapping/IMapping.class | Bin 0 -> 747 bytes .../mapping/common/MappingField.class | Bin 0 -> 3440 bytes .../mapping/common/MappingMethod.class | Bin 0 -> 4600 bytes .../mapping/mcp/MappingFieldSrg.class | Bin 0 -> 1608 bytes .../asm/service/IClassBytecodeProvider.class | Bin 0 -> 454 bytes .../asm/service/IClassProvider.class | Bin 0 -> 520 bytes .../asm/service/IGlobalPropertyService.class | Bin 0 -> 563 bytes .../asm/service/ILegacyClassTransformer.class | Bin 0 -> 360 bytes .../asm/service/IMixinService.class | Bin 0 -> 1276 bytes .../asm/service/IMixinServiceBootstrap.class | Bin 0 -> 252 bytes .../asm/service/ITransformer.class | Bin 0 -> 135 bytes .../asm/service/MixinService.class | Bin 0 -> 3642 bytes .../service/ServiceNotAvailableError.class | Bin 0 -> 484 bytes .../asm/service/mojang/Blackboard.class | Bin 0 -> 1626 bytes .../mojang/LaunchClassLoaderUtil.class | Bin 0 -> 3635 bytes .../mojang/LegacyTransformerHandle.class | Bin 0 -> 1309 bytes .../mojang/MixinServiceLaunchWrapper.class | Bin 0 -> 14298 bytes .../MixinServiceLaunchWrapperBootstrap.class | Bin 0 -> 1368 bytes .../asm/transformers/MixinClassWriter.class | Bin 0 -> 994 bytes .../asm/transformers/TreeTransformer.class | Bin 0 -> 1718 bytes .../asm/util/Annotations$1.class | Bin 0 -> 1114 bytes .../spongepowered/asm/util/Annotations.class | Bin 0 -> 12866 bytes .../asm/util/Bytecode$Visibility.class | Bin 0 -> 1427 bytes .../org/spongepowered/asm/util/Bytecode.class | Bin 0 -> 25017 bytes .../asm/util/ClassSignature$IToken.class | Bin 0 -> 655 bytes .../asm/util/ClassSignature$Lazy.class | Bin 0 -> 810 bytes ...gnature$SignatureParser$BoundElement.class | Bin 0 -> 2172 bytes ...e$SignatureParser$FormalParamElement.class | Bin 0 -> 1519 bytes ...ure$SignatureParser$InterfaceElement.class | Bin 0 -> 1190 bytes ...ure$SignatureParser$SignatureElement.class | Bin 0 -> 794 bytes ...re$SignatureParser$SuperClassElement.class | Bin 0 -> 1194 bytes ...gnature$SignatureParser$TokenElement.class | Bin 0 -> 3885 bytes ...ature$SignatureParser$TypeArgElement.class | Bin 0 -> 2937 bytes .../util/ClassSignature$SignatureParser.class | Bin 0 -> 2228 bytes .../ClassSignature$SignatureRemapper.class | Bin 0 -> 1514 bytes .../asm/util/ClassSignature$Token.class | Bin 0 -> 6582 bytes .../asm/util/ClassSignature$TokenHandle.class | Bin 0 -> 2529 bytes .../asm/util/ClassSignature$TypeVar.class | Bin 0 -> 1628 bytes .../asm/util/ClassSignature.class | Bin 0 -> 10370 bytes .../util/Constants$ManifestAttributes.class | Bin 0 -> 813 bytes .../spongepowered/asm/util/Constants.class | Bin 0 -> 1360 bytes .../util/ConstraintParser$Constraint.class | Bin 0 -> 5559 bytes .../asm/util/ConstraintParser.class | Bin 0 -> 1815 bytes .../org/spongepowered/asm/util/Counter.class | Bin 0 -> 637 bytes .../asm/util/ITokenProvider.class | Bin 0 -> 197 bytes .../spongepowered/asm/util/JavaVersion.class | Bin 0 -> 1210 bytes .../org/spongepowered/asm/util/Locals.class | Bin 0 -> 12934 bytes .../util/ObfuscationUtil$IClassRemapper.class | Bin 0 -> 320 bytes .../asm/util/ObfuscationUtil.class | Bin 0 -> 2190 bytes .../asm/util/PrettyPrinter$Alignment.class | Bin 0 -> 1206 bytes .../asm/util/PrettyPrinter$CentredText.class | Bin 0 -> 1171 bytes .../asm/util/PrettyPrinter$Column.class | Bin 0 -> 3141 bytes .../util/PrettyPrinter$HorizontalRule.class | Bin 0 -> 994 bytes .../util/PrettyPrinter$IPrettyPrintable.class | Bin 0 -> 311 bytes .../util/PrettyPrinter$ISpecialEntry.class | Bin 0 -> 241 bytes .../PrettyPrinter$IVariableWidthEntry.class | Bin 0 -> 278 bytes .../asm/util/PrettyPrinter$KeyValue.class | Bin 0 -> 1178 bytes .../asm/util/PrettyPrinter$Row.class | Bin 0 -> 1997 bytes .../asm/util/PrettyPrinter$Table.class | Bin 0 -> 4946 bytes .../asm/util/PrettyPrinter.class | Bin 0 -> 17422 bytes .../asm/util/ReEntranceLock.class | Bin 0 -> 1412 bytes .../asm/util/SignaturePrinter.class | Bin 0 -> 7798 bytes .../asm/util/VersionNumber.class | Bin 0 -> 4551 bytes .../asm/util/asm/MethodVisitorEx.class | Bin 0 -> 826 bytes .../asm/util/asm/MixinVerifier.class | Bin 0 -> 2939 bytes .../asm/util/perf/Profiler$LiveSection.class | Bin 0 -> 2756 bytes .../asm/util/perf/Profiler$Section.class | Bin 0 -> 3110 bytes .../asm/util/perf/Profiler$SubSection.class | Bin 0 -> 1911 bytes .../asm/util/perf/Profiler.class | Bin 0 -> 9551 bytes .../ConstraintViolationException.class | Bin 0 -> 2751 bytes .../InvalidConstraintException.class | Bin 0 -> 897 bytes .../throwables/LVTGeneratorException.class | Bin 0 -> 703 bytes .../SyntheticBridgeException$1.class | Bin 0 -> 1152 bytes .../SyntheticBridgeException$Problem.class | Bin 0 -> 3430 bytes .../throwables/SyntheticBridgeException.class | Bin 0 -> 11437 bytes .../tools/agent/MixinAgent$Transformer.class | Bin 0 -> 5211 bytes .../tools/agent/MixinAgent.class | Bin 0 -> 3142 bytes .../tools/agent/MixinAgentClassLoader.class | Bin 0 -> 3701 bytes .../tools/obfuscation/AnnotatedMixin.class | Bin 0 -> 17051 bytes ...xinElementHandler$AliasedElementName.class | Bin 0 -> 2080 bytes ...MixinElementHandler$AnnotatedElement.class | Bin 0 -> 2753 bytes ...ixinElementHandler$ShadowElementName.class | Bin 0 -> 3104 bytes .../AnnotatedMixinElementHandler.class | Bin 0 -> 14773 bytes ...notatedMixinElementHandlerAccessor$1.class | Bin 0 -> 982 bytes ...lerAccessor$AnnotatedElementAccessor.class | Bin 0 -> 4160 bytes ...dlerAccessor$AnnotatedElementInvoker.class | Bin 0 -> 1903 bytes ...AnnotatedMixinElementHandlerAccessor.class | Bin 0 -> 11018 bytes ...ector$AnnotatedElementInjectionPoint.class | Bin 0 -> 3117 bytes ...lerInjector$AnnotatedElementInjector.class | Bin 0 -> 3176 bytes ...AnnotatedMixinElementHandlerInjector.class | Bin 0 -> 13781 bytes ...rOverwrite$AnnotatedElementOverwrite.class | Bin 0 -> 1401 bytes ...nnotatedMixinElementHandlerOverwrite.class | Bin 0 -> 7644 bytes ...HandlerShadow$AnnotatedElementShadow.class | Bin 0 -> 5062 bytes ...erShadow$AnnotatedElementShadowField.class | Bin 0 -> 3787 bytes ...rShadow$AnnotatedElementShadowMethod.class | Bin 0 -> 3770 bytes .../AnnotatedMixinElementHandlerShadow.class | Bin 0 -> 6235 bytes ...tedMixinElementHandlerSoftImplements.class | Bin 0 -> 8605 bytes .../tools/obfuscation/AnnotatedMixins.class | Bin 0 -> 19939 bytes .../Mappings$MappingConflictException.class | Bin 0 -> 1358 bytes .../obfuscation/Mappings$UniqueMappings.class | Bin 0 -> 4850 bytes .../tools/obfuscation/Mappings.class | Bin 0 -> 5002 bytes .../MixinObfuscationProcessor.class | Bin 0 -> 3059 bytes .../MixinObfuscationProcessorInjection.class | Bin 0 -> 4893 bytes .../MixinObfuscationProcessorTargets.class | Bin 0 -> 6201 bytes .../tools/obfuscation/MixinValidator.class | Bin 0 -> 3934 bytes .../tools/obfuscation/ObfuscationData.class | Bin 0 -> 3521 bytes .../obfuscation/ObfuscationDataProvider.class | Bin 0 -> 12710 bytes ...ObfuscationEnvironment$RemapperProxy.class | Bin 0 -> 1319 bytes .../obfuscation/ObfuscationEnvironment.class | Bin 0 -> 11744 bytes .../obfuscation/ObfuscationManager.class | Bin 0 -> 3681 bytes .../tools/obfuscation/ObfuscationType.class | Bin 0 -> 5885 bytes ...ceManager$ReferenceConflictException.class | Bin 0 -> 925 bytes .../tools/obfuscation/ReferenceManager.class | Bin 0 -> 9279 bytes .../tools/obfuscation/SupportedOptions.class | Bin 0 -> 1973 bytes .../tools/obfuscation/TargetMap.class | Bin 0 -> 8025 bytes .../interfaces/IJavadocProvider.class | Bin 0 -> 238 bytes ...otationProcessor$CompilerEnvironment.class | Bin 0 -> 1511 bytes .../IMixinAnnotationProcessor.class | Bin 0 -> 1044 bytes .../IMixinValidator$ValidationPass.class | Bin 0 -> 1449 bytes .../interfaces/IMixinValidator.class | Bin 0 -> 797 bytes .../interfaces/IObfuscationDataProvider.class | Bin 0 -> 2448 bytes .../interfaces/IObfuscationEnvironment.class | Bin 0 -> 1412 bytes .../interfaces/IObfuscationManager.class | Bin 0 -> 691 bytes .../interfaces/IOptionProvider.class | Bin 0 -> 219 bytes .../interfaces/IReferenceManager.class | Bin 0 -> 1419 bytes .../interfaces/ITypeHandleProvider.class | Bin 0 -> 409 bytes .../IMappingConsumer$MappingSet$Pair.class | Bin 0 -> 1942 bytes .../mapping/IMappingConsumer$MappingSet.class | Bin 0 -> 1008 bytes .../mapping/IMappingConsumer.class | Bin 0 -> 1332 bytes .../mapping/IMappingProvider.class | Bin 0 -> 698 bytes .../obfuscation/mapping/IMappingWriter.class | Bin 0 -> 953 bytes .../mapping/common/MappingProvider.class | Bin 0 -> 2882 bytes .../mapping/common/MappingWriter.class | Bin 0 -> 2595 bytes .../mapping/mcp/MappingProviderSrg$1.class | Bin 0 -> 3025 bytes .../mapping/mcp/MappingProviderSrg.class | Bin 0 -> 2772 bytes .../mapping/mcp/MappingWriterSrg.class | Bin 0 -> 5804 bytes .../mcp/ObfuscationEnvironmentMCP.class | Bin 0 -> 1377 bytes .../mcp/ObfuscationServiceMCP.class | Bin 0 -> 2019 bytes .../obfuscation/mirror/AnnotationHandle.class | Bin 0 -> 7311 bytes .../obfuscation/mirror/FieldHandle.class | Bin 0 -> 3658 bytes .../obfuscation/mirror/MemberHandle.class | Bin 0 -> 1246 bytes .../obfuscation/mirror/MethodHandle.class | Bin 0 -> 3424 bytes .../tools/obfuscation/mirror/TypeHandle.class | Bin 0 -> 11741 bytes .../mirror/TypeHandleSimulated.class | Bin 0 -> 5707 bytes .../obfuscation/mirror/TypeReference.class | Bin 0 -> 2903 bytes .../obfuscation/mirror/TypeUtils$1.class | Bin 0 -> 1592 bytes .../tools/obfuscation/mirror/TypeUtils.class | Bin 0 -> 10046 bytes .../tools/obfuscation/mirror/Visibility.class | Bin 0 -> 1246 bytes .../mapping/ResolvableMappingMethod.class | Bin 0 -> 3034 bytes .../service/IObfuscationService.class | Bin 0 -> 438 bytes .../service/ObfuscationServices.class | Bin 0 -> 4959 bytes .../service/ObfuscationTypeDescriptor.class | Bin 0 -> 2019 bytes .../obfuscation/struct/InjectorRemap.class | Bin 0 -> 1803 bytes .../tools/obfuscation/struct/Message.class | Bin 0 -> 3810 bytes .../validation/ParentValidator.class | Bin 0 -> 2465 bytes .../validation/TargetValidator.class | Bin 0 -> 6284 bytes .../tudbut/mod/client/ttcp/CoreModTTCp.java | 45 ++ .../java/de/tudbut/mod/client/ttcp/TTCp.java | 584 ++++++++++++++ .../mod/client/ttcp/events/EventHandler.java | 462 +++++++++++ .../ttcp/events/ModuleEventRegistry.java | 18 + .../mod/client/ttcp/events/ParticleLoop.java | 46 ++ .../mod/client/ttcp/gui/GuiPlayerSelect.java | 242 ++++++ .../mod/client/ttcp/gui/GuiRewrite.java | 177 +++++ .../de/tudbut/mod/client/ttcp/gui/GuiTTC.java | 435 ++++++++++ .../mod/client/ttcp/gui/GuiTTCIngame.java | 221 ++++++ .../mod/client/ttcp/gui/lib/GUIManager.java | 59 ++ .../client/ttcp/gui/lib/component/Button.java | 26 + .../ttcp/gui/lib/component/Category.java | 59 ++ .../ttcp/gui/lib/component/Component.java | 109 +++ .../ttcp/gui/lib/component/EnumButton.java | 64 ++ .../ttcp/gui/lib/component/IntSlider.java | 93 +++ .../client/ttcp/gui/lib/component/Slider.java | 93 +++ .../ttcp/gui/lib/component/ToggleButton.java | 65 ++ .../ttcp/mixin/MixinClientConnection.java | 26 + .../ttcp/mixin/MixinEntityPlayerSP.java | 122 +++ .../ttcp/mixin/MixinEntityRenderer.java | 138 ++++ .../ttcp/mixin/MixinFMLNetworkRegistry.java | 47 ++ .../mod/client/ttcp/mixin/MixinMinecraft.java | 71 ++ .../ttcp/mixin/MixinParticleManager.java | 75 ++ .../client/ttcp/mixin/MixinSoundHandler.java | 29 + .../mod/client/ttcp/mods/chat/ChatColor.java | 86 ++ .../mod/client/ttcp/mods/chat/ChatSuffix.java | 126 +++ .../tudbut/mod/client/ttcp/mods/chat/DM.java | 61 ++ .../mod/client/ttcp/mods/chat/DMAll.java | 52 ++ .../mod/client/ttcp/mods/chat/DMChat.java | 60 ++ .../mod/client/ttcp/mods/chat/Spam.java | 107 +++ .../mod/client/ttcp/mods/chat/TPAParty.java | 52 ++ .../mod/client/ttcp/mods/chat/TPATools.java | 140 ++++ .../mod/client/ttcp/mods/chat/Team.java | 261 ++++++ .../client/ttcp/mods/combat/AutoCrystal.java | 428 ++++++++++ .../ttcp/mods/combat/AutoCrystalRewrite.java | 34 + .../client/ttcp/mods/combat/AutoTotem.java | 534 +++++++++++++ .../ttcp/mods/combat/HitCorrection.java | 34 + .../client/ttcp/mods/combat/HopperAura.java | 522 ++++++++++++ .../mod/client/ttcp/mods/combat/KillAura.java | 501 ++++++++++++ .../ttcp/mods/combat/LegacyAutoTotem.java | 339 ++++++++ .../mod/client/ttcp/mods/combat/PopCount.java | 163 ++++ .../client/ttcp/mods/combat/PortalHand.java | 163 ++++ .../mods/combat/PortalInvulnerability.java | 75 ++ .../mod/client/ttcp/mods/combat/Reach.java | 38 + .../client/ttcp/mods/combat/SmoothAura.java | 168 ++++ .../mod/client/ttcp/mods/command/Api.java | 57 ++ .../mod/client/ttcp/mods/command/Bind.java | 74 ++ .../mod/client/ttcp/mods/command/C.java | 36 + .../mod/client/ttcp/mods/command/Cfg.java | 65 ++ .../mod/client/ttcp/mods/command/Dev.java | 108 +++ .../mod/client/ttcp/mods/command/Dupe.java | 103 +++ .../mod/client/ttcp/mods/command/Friend.java | 88 ++ .../mod/client/ttcp/mods/command/Msg.java | 39 + .../client/ttcp/mods/command/Password.java | 48 ++ .../mod/client/ttcp/mods/command/Prefix.java | 32 + .../mod/client/ttcp/mods/command/R.java | 33 + .../mod/client/ttcp/mods/exploit/AEFDupe.java | 60 ++ .../ttcp/mods/exploit/PacketLogger.java | 59 ++ .../mod/client/ttcp/mods/exploit/Ping.java | 50 ++ .../client/ttcp/mods/exploit/SeedOverlay.java | 403 ++++++++++ .../mod/client/ttcp/mods/misc/AltControl.java | 751 ++++++++++++++++++ .../ttcp/mods/misc/AltControlRewrite.java | 53 ++ .../mod/client/ttcp/mods/misc/AutoConfig.java | 160 ++++ .../client/ttcp/mods/misc/BetterBreak.java | 37 + .../mod/client/ttcp/mods/misc/Break.java | 218 +++++ .../mod/client/ttcp/mods/misc/Crasher.java | 68 ++ .../mod/client/ttcp/mods/misc/Debug.java | 62 ++ .../mod/client/ttcp/mods/misc/Fill.java | 257 ++++++ .../mod/client/ttcp/mods/misc/Flatten.java | 36 + .../mod/client/ttcp/mods/misc/Highway.java | 318 ++++++++ .../mod/client/ttcp/mods/misc/Locate.java | 63 ++ .../mod/client/ttcp/mods/misc/MidClick.java | 250 ++++++ .../mod/client/ttcp/mods/misc/PacketLog.java | 49 ++ .../mod/client/ttcp/mods/misc/Reconnect.java | 25 + .../mod/client/ttcp/mods/misc/Timer.java | 111 +++ .../mod/client/ttcp/mods/movement/Anchor.java | 73 ++ .../mod/client/ttcp/mods/movement/BHop.java | 61 ++ .../ttcp/mods/movement/CreativeFlight.java | 52 ++ .../client/ttcp/mods/movement/ElytraBot.java | 591 ++++++++++++++ .../ttcp/mods/movement/ElytraFlight.java | 361 +++++++++ .../client/ttcp/mods/movement/PacketFly.java | 326 ++++++++ .../client/ttcp/mods/movement/Scaffold.java | 127 +++ .../client/ttcp/mods/movement/Takeoff.java | 49 ++ .../client/ttcp/mods/movement/Velocity.java | 39 + .../client/ttcp/mods/movement/ViewAnchor.java | 61 ++ .../client/ttcp/mods/rendering/Bright.java | 32 + .../client/ttcp/mods/rendering/ClickGUI.java | 169 ++++ .../ttcp/mods/rendering/CustomTheme.java | 291 +++++++ .../client/ttcp/mods/rendering/Freecam.java | 145 ++++ .../mod/client/ttcp/mods/rendering/HUD.java | 49 ++ .../mod/client/ttcp/mods/rendering/LSD.java | 104 +++ .../client/ttcp/mods/rendering/NewChunks.java | 84 ++ .../ttcp/mods/rendering/Notifications.java | 49 ++ .../client/ttcp/mods/rendering/PlayerLog.java | 218 +++++ .../ttcp/mods/rendering/PlayerSelector.java | 221 ++++++ .../ttcp/mods/rendering/StorageESP.java | 92 +++ .../ttcp/pluginapi/PluginForgeEvent.java | 13 + .../tudbut/mod/client/ttcp/ttcic/Account.java | 26 + .../tudbut/mod/client/ttcp/ttcic/TTCIC.java | 217 +++++ .../de/tudbut/mod/client/ttcp/ttcic/Task.java | 54 ++ .../mod/client/ttcp/ttcic/TaskQueue.java | 54 ++ .../tudbut/mod/client/ttcp/ttcic/UserMap.java | 61 ++ .../client/ttcp/ttcic/task/DoNothingTask.java | 19 + .../ttcp/ttcic/task/EntityFollowTask.java | 25 + .../client/ttcp/utils/AutoCrystalUtil.java | 168 ++++ .../mod/client/ttcp/utils/BlockUtils.java | 376 +++++++++ .../mod/client/ttcp/utils/ChatUtils.java | 126 +++ .../mod/client/ttcp/utils/ConfigUtils.java | 177 +++++ .../ttcp/utils/DebugProfilerAdapter.java | 64 ++ .../mod/client/ttcp/utils/FlightBot.java | 136 ++++ .../mod/client/ttcp/utils/FontRenderer.java | 61 ++ .../mod/client/ttcp/utils/FreecamPlayer.java | 106 +++ .../mod/client/ttcp/utils/InventoryUtils.java | 157 ++++ .../mod/client/ttcp/utils/KillSwitch.java | 128 +++ .../mod/client/ttcp/utils/LSDRenderer.java | 132 +++ .../tudbut/mod/client/ttcp/utils/Login.java | 96 +++ .../tudbut/mod/client/ttcp/utils/Module.java | 223 ++++++ .../tudbut/mod/client/ttcp/utils/Setting.java | 113 +++ .../tudbut/mod/client/ttcp/utils/TTCIC.java | 92 +++ .../mod/client/ttcp/utils/TTCWorld.java | 70 ++ .../mod/client/ttcp/utils/Tesselator.java | 145 ++++ .../mod/client/ttcp/utils/ThreadManager.java | 14 + .../tudbut/mod/client/ttcp/utils/Utils.java | 437 ++++++++++ .../mod/client/ttcp/utils/WebServices2.java | 83 ++ .../ttcp/utils/WorldGeneratorProvider.java | 162 ++++ .../client/ttcp/utils/WorldGeneratorV2.java | 320 ++++++++ .../client/ttcp/utils/category/Category.java | 12 + .../mod/client/ttcp/utils/category/Chat.java | 18 + .../client/ttcp/utils/category/Combat.java | 12 + .../client/ttcp/utils/category/Command.java | 17 + .../client/ttcp/utils/category/Exploit.java | 12 + .../mod/client/ttcp/utils/category/Misc.java | 17 + .../client/ttcp/utils/category/Movement.java | 17 + .../mod/client/ttcp/utils/category/None.java | 12 + .../client/ttcp/utils/category/Plugins.java | 17 + .../client/ttcp/utils/category/Render.java | 12 + .../client/ttcp/utils/pathfinding/AStar.java | 256 ++++++ .../ttcp/utils/pathfinding/BlockCache.java | 36 + .../client/ttcp/utils/pathfinding/Node.java | 70 ++ src/main/resources/mcmod.info | 19 + src/main/resources/minecraft_obf.srg | 0 src/main/resources/mixins.ttcp.json | 17 + src/main/resources/pack.mcmeta | 6 + test | 0 ttcic/task/EntityKillTask.java | 61 ++ 668 files changed, 19523 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 lib/TuddyLIB-javadoc.zip create mode 100644 lib/de.tudbut.api.jar create mode 100644 sponge/META-INF/services/org.spongepowered.asm.service.IGlobalPropertyService create mode 100644 sponge/META-INF/services/org.spongepowered.asm.service.IMixinService create mode 100644 sponge/META-INF/services/org.spongepowered.asm.service.IMixinServiceBootstrap create mode 100644 sponge/META-INF/services/org.spongepowered.tools.obfuscation.service.IObfuscationService create mode 100644 sponge/org/spongepowered/asm/bridge/RemapperAdapter.class create mode 100644 sponge/org/spongepowered/asm/bridge/RemapperAdapterFML.class create mode 100644 sponge/org/spongepowered/asm/launch/GlobalProperties$Keys.class create mode 100644 sponge/org/spongepowered/asm/launch/GlobalProperties.class create mode 100644 sponge/org/spongepowered/asm/launch/MixinBootstrap.class create mode 100644 sponge/org/spongepowered/asm/launch/MixinInitialisationError.class create mode 100644 sponge/org/spongepowered/asm/launch/MixinTweaker.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/IMixinPlatformAgent.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MainAttributes.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MixinContainer.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MixinPlatformAgentAbstract.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MixinPlatformAgentDefault.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MixinPlatformAgentFML.class create mode 100644 sponge/org/spongepowered/asm/launch/platform/MixinPlatformManager.class create mode 100644 sponge/org/spongepowered/asm/lib/AnnotationVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/AnnotationWriter.class create mode 100644 sponge/org/spongepowered/asm/lib/Attribute.class create mode 100644 sponge/org/spongepowered/asm/lib/ByteVector.class create mode 100644 sponge/org/spongepowered/asm/lib/ClassReader.class create mode 100644 sponge/org/spongepowered/asm/lib/ClassVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/ClassWriter.class create mode 100644 sponge/org/spongepowered/asm/lib/Context.class create mode 100644 sponge/org/spongepowered/asm/lib/CurrentFrame.class create mode 100644 sponge/org/spongepowered/asm/lib/Edge.class create mode 100644 sponge/org/spongepowered/asm/lib/FieldVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/FieldWriter.class create mode 100644 sponge/org/spongepowered/asm/lib/Frame.class create mode 100644 sponge/org/spongepowered/asm/lib/Handle.class create mode 100644 sponge/org/spongepowered/asm/lib/Handler.class create mode 100644 sponge/org/spongepowered/asm/lib/Item.class create mode 100644 sponge/org/spongepowered/asm/lib/Label.class create mode 100644 sponge/org/spongepowered/asm/lib/MethodVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/MethodWriter.class create mode 100644 sponge/org/spongepowered/asm/lib/Opcodes.class create mode 100644 sponge/org/spongepowered/asm/lib/Type.class create mode 100644 sponge/org/spongepowered/asm/lib/TypePath.class create mode 100644 sponge/org/spongepowered/asm/lib/TypeReference.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/AnnotationRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/ClassRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/FieldRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/MethodRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/Remapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/SignatureRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/commons/SimpleRemapper.class create mode 100644 sponge/org/spongepowered/asm/lib/package.html create mode 100644 sponge/org/spongepowered/asm/lib/signature/SignatureReader.class create mode 100644 sponge/org/spongepowered/asm/lib/signature/SignatureVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/signature/SignatureWriter.class create mode 100644 sponge/org/spongepowered/asm/lib/signature/package.html create mode 100644 sponge/org/spongepowered/asm/lib/tree/AbstractInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/AnnotationNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/ClassNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/FieldInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/FieldNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/FrameNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/IincInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/InnerClassNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/InsnList$InsnListIterator.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/InsnList.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/InsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/IntInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/InvokeDynamicInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/JumpInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LabelNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LdcInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LineNumberNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LocalVariableAnnotationNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LocalVariableNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/LookupSwitchInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/MethodInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/MethodNode$1.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/MethodNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/MultiANewArrayInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/ParameterNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/TableSwitchInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/TryCatchBlockNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/TypeAnnotationNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/TypeInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/VarInsnNode.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/Analyzer.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/AnalyzerException.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/BasicInterpreter.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/BasicValue.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/BasicVerifier.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/Frame.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/Interpreter.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/SimpleVerifier.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/SmallSet.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/SourceInterpreter.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/SourceValue.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/Subroutine.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/Value.class create mode 100644 sponge/org/spongepowered/asm/lib/tree/analysis/package.html create mode 100644 sponge/org/spongepowered/asm/lib/tree/package.html create mode 100644 sponge/org/spongepowered/asm/lib/util/ASMifiable.class create mode 100644 sponge/org/spongepowered/asm/lib/util/ASMifier.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckAnnotationAdapter.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckClassAdapter.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckFieldAdapter.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter$1.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter.class create mode 100644 sponge/org/spongepowered/asm/lib/util/CheckSignatureAdapter.class create mode 100644 sponge/org/spongepowered/asm/lib/util/Printer.class create mode 100644 sponge/org/spongepowered/asm/lib/util/Textifiable.class create mode 100644 sponge/org/spongepowered/asm/lib/util/Textifier.class create mode 100644 sponge/org/spongepowered/asm/lib/util/TraceAnnotationVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/util/TraceClassVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/util/TraceFieldVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/util/TraceMethodVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/util/TraceSignatureVisitor.class create mode 100644 sponge/org/spongepowered/asm/lib/util/package.html create mode 100644 sponge/org/spongepowered/asm/mixin/Debug.class create mode 100644 sponge/org/spongepowered/asm/mixin/Dynamic.class create mode 100644 sponge/org/spongepowered/asm/mixin/EnvironmentStateTweaker.class create mode 100644 sponge/org/spongepowered/asm/mixin/Final.class create mode 100644 sponge/org/spongepowered/asm/mixin/Implements.class create mode 100644 sponge/org/spongepowered/asm/mixin/Interface$Remap.class create mode 100644 sponge/org/spongepowered/asm/mixin/Interface.class create mode 100644 sponge/org/spongepowered/asm/mixin/Intrinsic.class create mode 100644 sponge/org/spongepowered/asm/mixin/Mixin.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel$2.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel$3.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$MixinLogWatcher$MixinAppender.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$MixinLogWatcher.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Option$Inherit.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Option.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Phase.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$2.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$3.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment$TokenProviderWrapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/MixinEnvironment.class create mode 100644 sponge/org/spongepowered/asm/mixin/Mixins.class create mode 100644 sponge/org/spongepowered/asm/mixin/Mutable.class create mode 100644 sponge/org/spongepowered/asm/mixin/Overwrite.class create mode 100644 sponge/org/spongepowered/asm/mixin/Pseudo.class create mode 100644 sponge/org/spongepowered/asm/mixin/Shadow.class create mode 100644 sponge/org/spongepowered/asm/mixin/SoftOverride.class create mode 100644 sponge/org/spongepowered/asm/mixin/Unique.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IEnvironmentTokenProvider.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IMixinConfig.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IMixinConfigPlugin.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IMixinErrorHandler$ErrorAction.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IMixinErrorHandler.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IMixinInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/extensibility/IRemapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/Accessor.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorGenerator.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorField.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldGetter.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldSetter.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorMethodProxy.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$2.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$3.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/AccessorInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/Invoker.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/InvokerInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/gen/throwables/InvalidAccessorException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/At$Shift.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/At.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Coerce.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Constant$Condition.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Constant.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Group.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/IInjectionPointContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Inject.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$AtCode.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$CompositeInjectionPoint.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Intersection.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Selector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Shift.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$ShiftByViolationBehaviour.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Union.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/InjectionPoint.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/ModifyArg.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/ModifyArgs.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/ModifyConstant.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/ModifyVariable.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Redirect.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Slice.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/Surrogate.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInjector$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInjector$Callback.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/Cancellable.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/CancellationException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/callback/LocalCapture.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/ISliceContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/Injector$TargetNode.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/Injector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/InjectorTarget.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/MethodSlice$InsnListSlice$SliceIterator.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/MethodSlice$InsnListSlice.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/MethodSlice.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/MethodSlices.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/code/ReadOnlyInsnList.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/InvokeInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgsInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyConstantInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector$ConstructorRedirectData.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector$Meta.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector$RedirectedInvoke.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/arg/Args.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/arg/ArgsClassGenerator.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$AnalysisResultException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$AnalyzerState.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$PopAnalyzer$PopFrame.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$PopAnalyzer.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/AfterStoreLocal.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/BeforeLoadLocal$SearchState.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/BeforeLoadLocal.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/InvalidImplicitDiscriminatorException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator$Context$Local.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator$Context.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$Context.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$ContextualInjectionPoint.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/AfterInvoke.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeConstant.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeFieldAccess.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeFinalReturn.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeInvoke$SearchType.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeInvoke.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeNew.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeReturn.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/BeforeStringInvoke.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/JumpInsnPoint.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/points/MethodHead.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/CallbackInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectionNodes$InjectionNode.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectionNodes.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectionPointData.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectorGroupInfo$Map.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InjectorGroupInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/InvalidMemberDescriptorException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/MemberInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/ModifyArgInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/ModifyArgsInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/ModifyConstantInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/ModifyVariableInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/RedirectInjectionInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/struct/Target.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/throwables/InjectionError.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/throwables/InjectionValidationException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/throwables/InvalidInjectionException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/throwables/InvalidInjectionPointException.class create mode 100644 sponge/org/spongepowered/asm/mixin/injection/throwables/InvalidSliceException.class create mode 100644 sponge/org/spongepowered/asm/mixin/refmap/IMixinContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/refmap/IReferenceMapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/refmap/ReferenceMapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/refmap/RemappingReferenceMapper$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/refmap/RemappingReferenceMapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/MemberRef$Field.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/MemberRef$Handle.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/MemberRef$Method.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/MemberRef.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/SourceMap$File.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/SourceMap$Stratum.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/SourceMap.class create mode 100644 sponge/org/spongepowered/asm/mixin/struct/SpecialMethodInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/throwables/ClassAlreadyLoadedException.class create mode 100644 sponge/org/spongepowered/asm/mixin/throwables/MixinApplyError.class create mode 100644 sponge/org/spongepowered/asm/mixin/throwables/MixinException.class create mode 100644 sponge/org/spongepowered/asm/mixin/throwables/MixinPrepareError.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Field.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$FrameData.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$InterfaceMethod.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member$Type.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Method.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$SearchType.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Traversal.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ClassInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/Config.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator$InnerClassAdapter.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator$InnerClassInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/InterfaceInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MethodMapper.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorInterface.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$ApplicatorPass.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$InitialiserInjectionMode.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$Range.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$IListener.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$InjectorOptions.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$OverwriteOptions.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinConfig.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$2.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinClassNode.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinMethodNode.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$Reloaded.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$State.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType$Accessor.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType$Interface.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType$Standard.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinInfo.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorAccessor.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorInterface.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard$SpecialMethod.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTargetContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$2.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/Proxy.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/TargetClassContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompiler$1.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompiler.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompilerAsync.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/Extensions.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/IClassGenerator.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/IDecompiler.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/IExtension.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/IHotSwap.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/ITargetClassContext.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckClass$ValidationFailedException.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckClass.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckInterfaces.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionClassExporter.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/meta/MixinMerged.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/meta/MixinRenamed.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/throwables/InvalidInterfaceMixinException.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/throwables/InvalidMixinException.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/throwables/MixinReloadException.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/throwables/MixinTargetAlreadyLoadedException.class create mode 100644 sponge/org/spongepowered/asm/mixin/transformer/throwables/MixinTransformerError.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/RemapperChain.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/mapping/IMapping$Type.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/mapping/IMapping.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingField.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingMethod.class create mode 100644 sponge/org/spongepowered/asm/obfuscation/mapping/mcp/MappingFieldSrg.class create mode 100644 sponge/org/spongepowered/asm/service/IClassBytecodeProvider.class create mode 100644 sponge/org/spongepowered/asm/service/IClassProvider.class create mode 100644 sponge/org/spongepowered/asm/service/IGlobalPropertyService.class create mode 100644 sponge/org/spongepowered/asm/service/ILegacyClassTransformer.class create mode 100644 sponge/org/spongepowered/asm/service/IMixinService.class create mode 100644 sponge/org/spongepowered/asm/service/IMixinServiceBootstrap.class create mode 100644 sponge/org/spongepowered/asm/service/ITransformer.class create mode 100644 sponge/org/spongepowered/asm/service/MixinService.class create mode 100644 sponge/org/spongepowered/asm/service/ServiceNotAvailableError.class create mode 100644 sponge/org/spongepowered/asm/service/mojang/Blackboard.class create mode 100644 sponge/org/spongepowered/asm/service/mojang/LaunchClassLoaderUtil.class create mode 100644 sponge/org/spongepowered/asm/service/mojang/LegacyTransformerHandle.class create mode 100644 sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapper.class create mode 100644 sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapperBootstrap.class create mode 100644 sponge/org/spongepowered/asm/transformers/MixinClassWriter.class create mode 100644 sponge/org/spongepowered/asm/transformers/TreeTransformer.class create mode 100644 sponge/org/spongepowered/asm/util/Annotations$1.class create mode 100644 sponge/org/spongepowered/asm/util/Annotations.class create mode 100644 sponge/org/spongepowered/asm/util/Bytecode$Visibility.class create mode 100644 sponge/org/spongepowered/asm/util/Bytecode.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$IToken.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$Lazy.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$BoundElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$FormalParamElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$InterfaceElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$SignatureElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$SuperClassElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TokenElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TypeArgElement.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$SignatureRemapper.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$Token.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$TokenHandle.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature$TypeVar.class create mode 100644 sponge/org/spongepowered/asm/util/ClassSignature.class create mode 100644 sponge/org/spongepowered/asm/util/Constants$ManifestAttributes.class create mode 100644 sponge/org/spongepowered/asm/util/Constants.class create mode 100644 sponge/org/spongepowered/asm/util/ConstraintParser$Constraint.class create mode 100644 sponge/org/spongepowered/asm/util/ConstraintParser.class create mode 100644 sponge/org/spongepowered/asm/util/Counter.class create mode 100644 sponge/org/spongepowered/asm/util/ITokenProvider.class create mode 100644 sponge/org/spongepowered/asm/util/JavaVersion.class create mode 100644 sponge/org/spongepowered/asm/util/Locals.class create mode 100644 sponge/org/spongepowered/asm/util/ObfuscationUtil$IClassRemapper.class create mode 100644 sponge/org/spongepowered/asm/util/ObfuscationUtil.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$Alignment.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$CentredText.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$Column.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$HorizontalRule.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$IPrettyPrintable.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$ISpecialEntry.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$IVariableWidthEntry.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$KeyValue.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$Row.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter$Table.class create mode 100644 sponge/org/spongepowered/asm/util/PrettyPrinter.class create mode 100644 sponge/org/spongepowered/asm/util/ReEntranceLock.class create mode 100644 sponge/org/spongepowered/asm/util/SignaturePrinter.class create mode 100644 sponge/org/spongepowered/asm/util/VersionNumber.class create mode 100644 sponge/org/spongepowered/asm/util/asm/MethodVisitorEx.class create mode 100644 sponge/org/spongepowered/asm/util/asm/MixinVerifier.class create mode 100644 sponge/org/spongepowered/asm/util/perf/Profiler$LiveSection.class create mode 100644 sponge/org/spongepowered/asm/util/perf/Profiler$Section.class create mode 100644 sponge/org/spongepowered/asm/util/perf/Profiler$SubSection.class create mode 100644 sponge/org/spongepowered/asm/util/perf/Profiler.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/ConstraintViolationException.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/InvalidConstraintException.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/LVTGeneratorException.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/SyntheticBridgeException$1.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/SyntheticBridgeException$Problem.class create mode 100644 sponge/org/spongepowered/asm/util/throwables/SyntheticBridgeException.class create mode 100644 sponge/org/spongepowered/tools/agent/MixinAgent$Transformer.class create mode 100644 sponge/org/spongepowered/tools/agent/MixinAgent.class create mode 100644 sponge/org/spongepowered/tools/agent/MixinAgentClassLoader.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixin.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$AliasedElementName.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$AnnotatedElement.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$ShadowElementName.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$1.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementAccessor.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementInvoker.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjectionPoint.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjector.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerOverwrite$AnnotatedElementOverwrite.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerOverwrite.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadow.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowField.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowMethod.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerSoftImplements.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/AnnotatedMixins.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/Mappings$MappingConflictException.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/Mappings$UniqueMappings.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/Mappings.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/MixinObfuscationProcessor.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/MixinObfuscationProcessorInjection.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/MixinObfuscationProcessorTargets.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/MixinValidator.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationData.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationDataProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationEnvironment$RemapperProxy.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationEnvironment.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationManager.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ObfuscationType.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ReferenceManager$ReferenceConflictException.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/ReferenceManager.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/SupportedOptions.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/TargetMap.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IJavadocProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinAnnotationProcessor$CompilerEnvironment.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinAnnotationProcessor.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinValidator$ValidationPass.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinValidator.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IObfuscationDataProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IObfuscationEnvironment.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IObfuscationManager.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IOptionProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/IReferenceManager.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/interfaces/ITypeHandleProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer$MappingSet$Pair.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer$MappingSet.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/IMappingProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/IMappingWriter.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingProvider.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingWriter.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingProviderSrg$1.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingProviderSrg.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingWriterSrg.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationEnvironmentMCP.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationServiceMCP.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/AnnotationHandle.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/FieldHandle.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/MemberHandle.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/MethodHandle.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/TypeHandle.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/TypeHandleSimulated.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/TypeReference.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils$1.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/Visibility.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/mirror/mapping/ResolvableMappingMethod.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/service/IObfuscationService.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/service/ObfuscationServices.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/service/ObfuscationTypeDescriptor.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/struct/InjectorRemap.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/struct/Message.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/validation/ParentValidator.class create mode 100644 sponge/org/spongepowered/tools/obfuscation/validation/TargetValidator.class create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/CoreModTTCp.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/TTCp.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/events/EventHandler.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/events/ModuleEventRegistry.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/events/ParticleLoop.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/GuiPlayerSelect.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/GuiRewrite.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTC.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTCIngame.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/GUIManager.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Button.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Category.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Component.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/EnumButton.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/IntSlider.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Slider.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/ToggleButton.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinClientConnection.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityPlayerSP.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityRenderer.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinFMLNetworkRegistry.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinMinecraft.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinParticleManager.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinSoundHandler.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatColor.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatSuffix.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DM.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMAll.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMChat.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Spam.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPAParty.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPATools.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Team.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystal.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystalRewrite.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoTotem.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HitCorrection.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HopperAura.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/KillAura.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/LegacyAutoTotem.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PopCount.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalHand.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalInvulnerability.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/Reach.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/combat/SmoothAura.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Api.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Bind.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/C.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Cfg.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dev.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dupe.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Friend.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Msg.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Password.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/Prefix.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/command/R.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/AEFDupe.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/PacketLogger.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/Ping.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/SeedOverlay.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControl.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControlRewrite.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AutoConfig.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/BetterBreak.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Break.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Crasher.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Debug.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Fill.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Flatten.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Highway.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Locate.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/MidClick.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/PacketLog.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Reconnect.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Timer.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Anchor.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/BHop.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/CreativeFlight.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraBot.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraFlight.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/PacketFly.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Scaffold.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Takeoff.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Velocity.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ViewAnchor.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Bright.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/ClickGUI.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/CustomTheme.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Freecam.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/HUD.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/LSD.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/NewChunks.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Notifications.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerLog.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerSelector.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/StorageESP.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/pluginapi/PluginForgeEvent.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/Account.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/TTCIC.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/Task.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/TaskQueue.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/UserMap.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/DoNothingTask.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/EntityFollowTask.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/AutoCrystalUtil.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/BlockUtils.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/ChatUtils.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/ConfigUtils.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/DebugProfilerAdapter.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/FlightBot.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/FontRenderer.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/FreecamPlayer.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/InventoryUtils.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/KillSwitch.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/LSDRenderer.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/Login.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/Module.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/Setting.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/TTCIC.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/TTCWorld.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/Tesselator.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/ThreadManager.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/Utils.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/WebServices2.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorProvider.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorV2.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Category.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Chat.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Combat.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Command.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Exploit.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Misc.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Movement.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/None.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Plugins.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/category/Render.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/AStar.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/BlockCache.java create mode 100644 src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/Node.java create mode 100644 src/main/resources/mcmod.info create mode 100644 src/main/resources/minecraft_obf.srg create mode 100644 src/main/resources/mixins.ttcp.json create mode 100644 src/main/resources/pack.mcmeta create mode 100644 test create mode 100644 ttcic/task/EntityKillTask.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27d9227 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + + +# other +eclipse +run + +# Files from Forge MDK +forge*changelog.txt +*.txt + +*.patch +*.orig +*.rej \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..80984f0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2020-24 Daniel H. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, and modify copies of the Software: + +Copies of the Software are not allowed to be used commercially or sold. +Permission is given to use the Software for personal use. Permission is also +given to repackage parts of it as long as a publicly visible reference to the +original work is present. + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2158d89 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +TTCp Client +=========== + +DONT ACTIVATE ANY OTHER AUTOTOTEM ALONG THIS ONE, it will glitch it out! + +ClickGUI opens with COMMA + +TudbuT Client Premium + +--- + +This is the first public, free release of TTCp. Feel free to take and use. The authentication is deactivated. +Code quality is not great in some parts and there are some memory leaks, but it's completely usable and most +code is alright. + +I ask you nicely not to take code from this without giving me *some* sort of recognition. Thank you! + +Thanks for the awesome time developing this. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..d521c0e --- /dev/null +++ b/build.gradle @@ -0,0 +1,127 @@ + +buildscript { + repositories { + maven { url = 'https://files.minecraftforge.net/maven' } + maven { url = "https://repo.spongepowered.org/maven" } + jcenter() + mavenCentral() + } + dependencies { + classpath 'net.minecraftforge.gradle:ForgeGradle:5.+' + classpath "org.spongepowered:mixingradle:0.7.+" + } +} + +apply plugin: 'net.minecraftforge.gradle' +// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. +apply plugin: 'org.spongepowered.mixin' +apply plugin: 'eclipse' + +version = mod_version +group = mod_group +archivesBaseName = mod_id + +sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. + +repositories { + maven { url = 'https://repo.spongepowered.org/maven' } + mavenCentral() +} + + +compileJava { + options.encoding = "UTF-8" +} + +configurations { + atj +} + +minecraft { + mappings channel: 'stable', version: '39-1.12' + // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + + String myJvmArgs = "-Dfml.coreMods.load=${mod_core_plugin.replace('${mod_group}', mod_group).replace('${mod_id}', mod_id)}" + String[] myRunArgs = ["--mixin", "${mod_mixin_configs.replace('${mod_id}', mod_id)}", "--userType", "mojang", "--username", "TudbuT_dev", "--accessToken", "fuck no, this is going on github", "--uuid", "b8dd8777a0744f3da5b90b19def1b1ac"] + runs { + client { + args = myRunArgs + jvmArgs = [myJvmArgs] + workingDirectory project.file('run') + property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + property 'forge.logging.console.level', 'debug' + } + + server { + args = myRunArgs + jvmArgs = [myJvmArgs] + property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + property 'forge.logging.console.level', 'debug' + } + } +} + +dependencies { + minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2860' + + //implementation('net.minecraftforge:mergetool:1.0.12') + implementation atj ('org.spongepowered:mixin:0.7.11-SNAPSHOT') { + exclude module: 'launchwrapper' + exclude module: 'guava' + exclude module: 'gson' + exclude module: 'commons-io' + exclude module: 'log4j-core' + } + annotationProcessor('org.spongepowered:mixin:0.8.5:processor') { + exclude module: 'gson' + } + + implementation atj (fileTree(dir: "lib", include: "*.jar")) +} + +processResources { + inputs.property "version", version + inputs.property "mcversion", minecraft_version + + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + expand 'mod_id': mod_id, 'mod_name': mod_name, 'version': project.version, + 'mcversion': minecraft_version, 'mod_description': mod_description, + 'mod_author': mod_author + } + + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} + +mixin { + debug.verbose = true + debug.export = true + dumpTargetOnFailure = true + defaultObfuscationEnv 'searge' + add sourceSets.main, 'mixins.ttcp.refmap.json' +} + +jar { + from { + configurations.atj + .collect { it.isDirectory() ? it : zipTree(it) } + } { + exclude "LICENSE.txt", "META-INF/MANIFSET.MF", "META-INF/maven/**", "META-INF/*.RSA", "META-INF/*.SF" + } + //from { fileTree("sponge") } // not sure if this is needed, i will see when i get a complaint from a FutureClient user + + manifest { + attributes "FMLCorePluginContainsFMLMod": "true" + attributes "ForceLoadAsMod": "true" + attributes "TweakClass": "org.spongepowered.asm.launch.MixinTweaker" + attributes "TweakOrder": "0" + attributes "MixinConfigs": mod_mixin_configs.replace('${mod_id}', mod_id) + attributes "FMLCorePlugin": "de.tudbut.mod.client.ttcp.CoreModTTCp" + } +} + +//jar.finalizedBy('reobfJar') + + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..ddbc056 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,15 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. +org.gradle.jvmargs=-Xmx3G +mod_id=ttcp +mod_name=TTCp Client +mod_group=de.tudbut.mod.client.ttcp +mod_version=B1.9.0 +mod_author=["TudbuT"] +mod_description=TTCp Client +minecraft_version=1.12.2 +forge_version=14.23.5.2860 +mappings_channel=stable +mappings_version=39-1.12 +mod_core_plugin=${mod_group}.CoreModTTCp +mod_mixin_configs=mixins.${mod_id}.json diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ae04661 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/TuddyLIB-javadoc.zip b/lib/TuddyLIB-javadoc.zip new file mode 100644 index 0000000000000000000000000000000000000000..2d2860dbc429e5950c4896242f6f1c9229ccd1ea GIT binary patch literal 868886 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 z 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%0D|1EmZy{MmYW+Hi#Mq;A&lA`F3VRZ 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%0Ah&!s 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�C`HZ01 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¡q?#>6 zB&|^UF+3%WG*12@Y{N?b^uwP!bDroaEzZyy#u1nB)uBb?*965KwAd*_5k7iF9r%?S z;@hF}FPB$m#8qHu!@L3rbLRU8Br6t$uR}^mIzHtoi6PtgOB-T*mbAF2l@5tJAHK1k z08D!y2~277cb{DjA#>-cx!_yIC*vi7Ut0b3u6|BBje#g%FH2m1FHU}N#vbJ3KBleK z&g$jQIHM`n4)2@&L_(z)^Q|%nP^T;#z9JlA6av#>24SY>3o+1PubE}m!⋙`}cD`@K*@4VTs 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΂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

{PSGd7%q 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⪚2gJsKCIob#EDXB|J-c0afc?7O6?+( z(EmIQRjjXAVy7tAa#iQIT)Nq4yIF*tQu=yn)P!bHp*U8$!5s%7Mk3el4G+g~qh#2; z@PLN>kSf+!(SKZRy0gEFgQO8&Um3}g)zM%&(B4AFoD?B5YroS+?|gTF;d2PhA;pdN znl%TrvD@JuV3+myyPE=;Dek14?u7QyAOWkNq9Aaqwu))vQG5M^mzQG=-HeF?5aUqH zZ^<7_aw6d%Ej5bu8Yhk4OCbiW4~r#{Jfst;WaNJ*ZAH7LnZCc;iFlpqPr05vGKXwc z6y_pL%?v{{K=pgDO=y}SUX(;t6gp5n59|k2eiKi9Lnb5wNuM@Kuc5Q=UqhqaUH_i~ z!LI&L9(4sN)=2j{MB)zJFKqrjch~;o zfPnN+{~2g5W9Q=ZUnCCy&xocP)|XtJL7ag&8+#xS7>Eqp2uM;=TqrG+UyzJIT(FQ$ z>bYzjVS47p6pa||>Y@krLxp1bZkU(~ybg$Y;ie()sm|3~SEGs*?MHWW{DzDx;YaGb z&();o)!XORM`tre7S9`yZ#k++zb0-OKdo-bj!26)*=0{Am2O2Y?C-FPI6Z z0;DwpG@9W-d%-~o#%$!-Uq!onhO!Ym4FG%XK`c16y^3%r?8WWB;c_L<1>q3NUXp%x z^E}5CCD2!_k6674R)hYXqIp6BBH66C?CZ+2%J!4{b5j#crUM}Xxh+=k>7&sdl@CpL z%u#N`TzLs_q*07S^P_h^1kAcc!Y6qRlZRQ2T*nxHN2Zusr(dX7nGB;*5Q5bQ8$IeT zJ8CoAl9gu5RiLp1=bHj#L?D!G0fm_4%hW)jEctWcT9;g4g_Slx3a;w%ix|ek)7cA# zz$cBn88P={WtO8cYk`R^!Wx@ToWy9LOKUP{4|{DrewkZtHwmm6}oRoOOsQNT10Zf-c!mBxScCF~?KD(TZplLQHHYHkBJPfs1!wn*|o7 zasA7}I86_Iink<-N?3~9ush?Ez6iT2%0%^kV$nX?v`e=ESWOB`sojDb<9)R^jSgL8 zi6uF*@wB(I?}==2bxagd3`%;2L2|~Lu1Z0}Vx@HPv5Fp8HyhfJZea_Rv#4TA(xFcA z#M*^Awvm`~0KKPaUAJYL+vjrX@LNei9ZyX?03JsxFVjwYSbZCq+TBf)h|BPB_sWV^ zlm3QjxC3lBq57jDAr0W%`>M8Pvis?eq9L@k0s{-Dw8OBB0u=I19N8Kw^kF9|_*N99 z$&{edI(GO6q(d!V>9C)iA6Ci#KrArneXuU|d~cb|=qlUHSPCILhCV zSx?s^foL!Ai#Oiy{KKNwvo}KT;)5|R>!CVSK6!h^&#B?xDcxX?$1PZ%n1j26IlIYR zK0$hC&rz6yEjfG5#~5_)nbBK&2wb0`K44CCsq0*yB*(O{C(99pNs|Xo(!-dTe!pOb zrzU@Y!lQR~c8^ChtL;|h@6kV(M|X#{eBynj^mH0m9X}V_Te(y%*)e6r>drLW3O2gf z)6=Q}w53Pwo0w@k3g9@?z?96%cH{C(=vvH|X}sL{-rUwyw|GYsF+Tk zJ0iovR&5U!yGdy&{t_85rlPa;+j!Y+F5Y!;XmmEd3ZZ-xluot&0UL@GCHvrZlf)+Q zbLEVDxk%XX#AJ1c1n5svMK&LHV~Hed=9&#WR%uH5M)`QRZimjQiquVzfUe?CuWt{( zDPcRIMRctv21tW6!p~J>x_U+k;3_x9*;ae(> z3J(VpLi*UK@UDtc8@GwSiy3NT5nCqF(T)Riv~8khsnEXn_DY3Yd&wM?t|r&Z)oY%roN((}>&Pqq=^T%ZH3x(v}YB9AR-q z4hdO))q&GthwlgO35AS%kjh((&yrW8ZolE^>N68uKqh7Q(AsXjVwBpEJdH-y=B6XyrKLB!ZPNrlOLlH=$ z&=MS#RL2bIp_IYRaA9PP@A%_)n-LkL!MkpGg27N=_gaXef`*Gprc{w}Fz-X#Q-2#a z8{kGXW%Tdr__1ihJE=Q9vn1h9pJpO0ihaD+U*6<`BMFmsg%Kh+H0}!+SX?AU!lepT zHw-K>h#HG%YJ}>(YRWSbNUhGb#04GTh@D|IBpMEfQF3hra$#o&R80#mndLs|!nfVW z0gwd6iv932H|?#k`;F#=28#W*)46Z}$P$D8Y8Lvw?xnJg)T6VGw}=lkdGI(;VQw&` zOrd5H#L#v19|8>oy|a&Z=2tpNLv@x1Gx-z<*LPT{2S%HYoRk4#3=s*vy0x`LYQKR` zfzCt1ePm6Mx3@a!)Og4{X(Yf)6c1t}%vrZ`j`IN!!x?m}Ma zP1LG|GyqdlL6C)Nq5HY9w>|1>Y63_onCJAr)P<&H9Ql-#3IT|G6z zAb^?+Si)_8W(8|&(~qKi7J35L5^RiZE;kKGV95E^gv!|sEwXI-f(Yk5Su z24mW9-hsk$28-E~cu$UcW7WODC!5@GqrLQj{`Uswk*+|r_4|hN7d#LU_CK_Pf(B0i zMW*pWl9dvQ8s_j9wIAFX7$_*Pzzx1a7`yy{hk$|tC}^NyW19pzWUzJH%1=wJ@}@^i zEzfidv)3xwvv$`al1#3-Wbc{jSvi2~>gV(&SzwK2=2XKR#>!pBk!#i+_w>r-^q==@ zVqe~8WdR^!CQ&q+esM~+JZb>Mpg=o&ALGpkfMM#VB5}J~c z35ntw$k=x& zqdt$maO|6c$YiJm>A}>g{3Zv5jDg1e8b;>)L1G?cUb-?&Y`(=gc6-~DLkB1mp(OM! zFHxywv@tgkL8om8>+=CC{4*jRNphF+Et5{JnuD8$59do)-(-dJxg*C~YRofWL6?p7 z5=U9jU08cfenBC&iE`cqLSmC(mk_5?{w*pmmGeQkV7@lx#N;{|5$;uW0iQn+0B@?M zoS@>JjU6i8LErGo<)U4($I+I;T{hkLnmT(=olOB zh!*l$Zwh>Z(q+F)Dn9h@prxGk0So+mwSFn}u9~M$Km-1vpBjCM<7C&!jNiZ}LMUJP z_9y`qX_WfdECfpgXJUaZ9_wxrzFE^)P)o1!did1!09x=q8EeGrxJm>@P?GrZ?xOWm z+q0DNW$KFB@`&p3+|hka;H2D0&9!TpcHV@QO$g^3X?5crENnH58#ZXsDOmg)7uxFW zdFS|H)yT$bMG>7{qZdqaIf9!O^rBOBCg9Z~CX}62PA)>YCTS}c=$DI+a#*`isiZby z^tiCusu2KhMdfkiviZXe<)U^2A5DB0dUmsSMdq0T7>^c9oED+hnkFF6{TY40Fr3s# zi}~--PO&!E;w|301qBulGs1(GXX%F*+w~f>GLr%4uPn3-H3O8g)_G{>S;aG&z#net zHH85j1BUQQj}AP2dKl4MK@xZqhxrGU-E}%2ZvFI?4nNt)v)8x&ZQL)X+f;?D$20MAMLC4(;~BlkAWE4FbPr~DgLLv`2(gFh zZ;5bvh9!PR&Sx7jHS6c}dfM>m=#@pc$MY)dVL#iZ4*dO!bp3f?`)+nU1a-x;qw}*P zV*Q!455@tVj3@KD2$EjXZ7%S4>a}4^;L;=NwTC-@+{Y}uBPy>JjpP^E69`>xVsK~5 zDMw3$1dm$v_HN&Hftmd;t-crSbH{)Wx}LsgYWEu-cD_FdX1vU-?#6AOfzsbl(?T3g zy_Cb?qu^khYNtQ{!{hz#^MN3N{$-~f=|K8}`CSa=zT1Die<%k3HEzgTRqHp33hJjU zQ!3O+Lr{Z-4CRPS8d+g1G#E^iV4N>^z}$Ybz4$! zP(={m%eLNi%yz)ym9!DP#h7Mls?+19S@zZ2BOmk2-Ig8!Fh}4O@p70NO9!?9P%7=R zUl_xbFd%A_Van2t)}Mh1X?1#ZO&Rp)#shPX$&f6PegDqCLnonG%AkWX+irAiO~wr( znV5kAM*zJQQhGu{OE>zERUNy^yoCyp2GhiEaRP0xEw;)nDKm>#(hxOM2boJx&kH6W`}l{0k_{F z<@AUysn4&>=`G~YjJ8Whm+~ZxXf$gF=xR}@;Mi?LwGE( z(1ESbUKWmzl6V%H6BS4C@RJ%vnejZT8_}F*bJ_Uubfwy(F?!PlNddaQeiR}>QrWyt{bWg^WW$mgmdrdZnaBsqF zR&AGQDhBl_PG&SKlW=m=B1wURxU^`z^&<(~D4nTXyvagx9MQEsOs+PUCfPW)HmFkf zY{xc_8Sa&a%a>#}GAxA6)>@#mbC5QB2~8RkQvN(vdtQ4ji5kshJ~WJ*H5kNIW*oXQ z$UQF4R~avKt1UhR zF4hMI>lj9{@_VwZmW^>PaGa;fIq&E-T`{{Ze04PKkxlPZXAQIbJxv!Ccn zI@pN=A)E4oa2klhC|+lx@jbYb=7{}tdk9Eli30hewFr|q;LJI49Q>U7hM#EYyLgir z!|7I8JZvld#1Lgvj#KA_xAJ$kbC8u>*ZZ~gq_Hre2Zd%1sWdNlt+k`I%9pWmOANJ+ z9noe8S*t|X%FMe1E)QZoAZA+122_G6TB!_$EN{&ysHyi(e>j6O)|Z45Bwbc9$;B}O z!pJNELkPbSNPmgX3{yOdNZKkKrZ>>f&g~6T-+xEW?N`q-^?xBzo{Ac>x~y(*Gk{y2 zo(I(hUO>K_;_k>@gS{eDz)}1wwiz?}>r0 zde5*W%5ZWoSMpS0HkF9L%v-{*=u3i+&m?`7AqnyFi={e{Vleu*3v&C_7=kZ^e?NOC zNm>Wzd~d$z-#>zX*lra~oEFMN9WDQ(EBceSPuIX+k^kOJHIWFZvJHQ9l|36J$>M(6@59m}L%%Hka*3mYX*txM%=r~iDg>g=$=4w<`v7AiwVZif_cZE}5UA>k|mE#jzp5@+Cwdi^owRG&`ik&GF zTs!zFw|vdKr?;A;j?Z!0EB1p$)G4Lb?PV8bY$^+y^ePeXZ!N$0r=ot^Maf&Y83qVa z+0!~P77Z9bv??}sm>)sg;_LiwzDdyv@%!lvR}9DF5A`F&LAXC396#WaN(lM&>km3I zmoWEY#jfOO>3dn{@p4z9Z!F{v-5&pRrW(iq8Eq79&y;e8Y2>71-Z72dcyL zH<7ldMb*()9?UkT=_l2Drg}pRa7vYX`Q|^@vRED(R+8AFcFgrzapIT_n9n^Csz*}c z>jQFV%!o__^<(||=(PvIf={;j`hOx_%0YVGisJ3{#VgMaQ0|bTukM&rP(~LH#x~f) zAJylYx5rL5EfMW+a5ut_v0EC9C2MJjxEHu}nF2VJtnztO<|t#JS08okYVV0Sfgc5r zeA`xbd>+|)tN2EIqU+;hl+q2J4p*9qxLt#?5FAjK%-4#pn6p~L_MVfTe6~NbF^|-S z-hOB>w%fQq;wHJ5M|A!Qpt^E(s4E^lG7>iM*d)*2<>8HPW{^hR{jljZ4&eDvWN3~0 zyaJ1NG5y351)b)sN2kW7Rb|nvFmF(wF|W;=F%-!k{7!vDqmyI~@ZEMt-_fDicdTi& z%~$IZdh5RK7`FfXlh+=UI_S`QIP;%pYx_pFq(wL&pnSaVxSD_1>_yz1O>B)#jQ=}` z)TEl{cK`|+Uwr1q$_7m}B1k%@I#{1+Y+$jz8wH6lGKe~IDWY=lxp93>s)VZ|NNCoL|VYudI${vqLs) zarBG`bF_2@dw)cd6WjFaFsFn)$Ot5=6pE_QgQtbAD)}@GJuH!KwSd}E9*XWewwx2h zWVm5Ow2*Cmy-zjjcBvwneXI~k11@p#bfyM7O-WZpTaQ*gX?9HdAvG9Ur`$wxEPcO( zU$B+`($swpniM_e*j}K-pPf<1$}jqLVOcd{x`w?Z5qo#0B=1(OA_2R<3|9kGNw%I{ zB}bsKZN0{zbiMD1Y=)k+O+Ak)EU9NcPXbP&r7r927ehD<%9BR`ou>gthsnGBc(zYY8ii@l!t?L!DRy8yL{) z9xd(p2^**-3+q5&S@{cHWbarg*$<|W?z+0N7G&s~de#sXGIhP)3K#=lto?Q{2wRkc zLTTZWZNv2vOjRr~jRzHJzYa=?gwB1IAR!sa$jXRe%WXYrGb`$ru!?QvMQI@v(@qAD zsv+?f69E<~JM@vOYB@pum$nDV0KQ_5eoW=Dp|~9^vrJ7A^V12bsE0{f)sCg51%Y`L z9Qe{Y{20R#_U5XJ>b4gjG7am{_I%0up}t?B+QQv_+J9|?qEDzBTCiDy{k(d^TgpPx z6RBK?4S%pd+e zFl~8zv=|6Y9A)!t6;s)CL2IbJ50bX277jUUEX*KKzA|Yn7=G>=>S-xqN~zx_38((y z)7k8Co zO6Wbx{{SO>%@3(6_~m}=(zYlhQ&4YO8KS9Cow&Gre*?g|Hyd#1UZzV_;T*6OS$s_i z*(_)V#a=(-D#yith3SmCO^n{}bK^iZrUvT{`INk>Ika=5egw4N|CT?@Wxmf6{?dp3 zJjwkt)7?ADzq6hDWWlC%2Mh|q<*c~P8pmWZVvjhp#2uKUnm6MXQ3XotS+eu7+lSIl zO2ke9LxkjKYF0AfEf)R;-+ChSiqKB?j80q*im|A8- zHx>oF*EgBLzDGhc31oN!WD&DxmX8}oJ&ps0y+c3kOLr?fq%dr`uv!KDn# zaxoA!5SceGqnRWEHU*{ZjNXn;(eE)V4@neWQ5XNmrLKZ=YTVFDJ9=Qbiy7Cq1q9B* zk2G`3@-#10u_^cTlbvLy82?pzb4qAv>1utv}UJ{+B zY*nxYG*V1Wo*! z<^P~HF24U_w@ATtvvJs3apXiUg*)T$0Bz?-;al=iJe48iJu12C3el&N8NojxUd2_hTAOiJeG2 zANWQI-Sh6dy2KWD9{s3Z2F_=@Jbqz;v|)=X=w(R?-i9%zkSW4V6YMYbCz}~`##b@g zht?Ek+7xU^QP%8ZZ|bwpqRRurO;yztKk%xrRBwk&$Aw9itf&*XQmm*TLTaPRaex9! z^><-?=Dg-Zx`P24W~#s!(%@w{OfYZ#DefF5tQThvws}3hT@e%s$?bwWAqB?(Tm{Dq zgiC?gZvMCO-X0rgymih!`0qi(xHFdqWwb?nuB7!$P->GO78QzEcHG!GR5&gfk}i@o zst2C#n?#RQ>^{p;Mp!Fh7-x0Lz}%azCzo8~wgu_S_9kc>EJ19!1=YfjElk9DKYiTf z2(6OXCMD*L@YuDNq$NzPnx=Krn|W~B2#%jN8H_kflb9$524I+4U|EtqI7Sn|R*4ym zP)#5ijO1q4G)5J%+8K-ibqf*+aFRmJn+4X4L)Pd0?DF!EQ^Bi6_%eIe7+b#6f9u$` zo7lG5*#DOOi7NdPjI5nBfq)JMXU17hM@3yp@;i?daA-Yf!pmR3$Q9U%0<6UrxqNAC zRPl=zwt16QvRaMt%-N`YCi&Cqu$&JGS)3vi3D?1bMvCi(;PdG%!_6tH1fWeUXlHBb z0z^2w7{?ajbXdG57K1N3Uv>`DE<^TzNTfOCzCc%TVx*Rh%4Eme2B zk8^DHt)xR&tHl(&cyd6&7qJ>!z}>uP#}B64L&2xNc7uFO-1Yg|oEkcO9`~GhnlBIZ z9GB`Ov_EsD12&yZcNM64Z~38S7%SW$!FCPIy+Utem7&_?tN=Y>$0FeKLX< z#I}cxyx&K5eaz<#Uur1^5qj_QAMUnemk97Hoe> zsP!7HC-w%e+8x&Rg&sZEtaMv8IkBw0YJ7q6sC{0s0vi~`RKGP*bK@tA{XpSvWevVc z3=-tAeXq&LQEIPAEB2nr53vNW`qDu?WL`e=ph~NA z$pK5W^egKNi|Y$T$@oLTT152Em=a6ZJYV1)pJX~#c?|#>-GFfLt5vC~ye3!V2#*s6 z=)MpMjC=uSypZhDW+l}}5w_zs!KHKx8pekMG&Gwn?6E?xDi=>~iml5egks815(x+0 zvR#7%q7D9vCKzX8ANE0WYMKq{ty3$DHMpcgn~7OAhl^ZgDSw8)q`5JLxwfu)>%v?vSYkIIY?vbx zsR267LfW2dg-Iy`1ITQh7c3AW;0gu~)`af%7IVDC? zdqa=C2I>%IxZxe@p=;-TOEh9yEQAuY129*@F;~DdTz%Iv`MnWxRwBk6ftVo(T`-?X z=%{<})Kau&aDqQQGI)`NBJ`v~pOzPdws~C(Om8+#OnJHc=&6aWurN}3M+)ucZ1kfU zS>iIXXBon5F+#kh6ZbM;NLP1WLo;%Y;Un@g$wcr;PNTk4}oWH~FOQh(0fZ zMFJ5{>AwxrL>6wy5_sqmc<)6N*Sh`%@DcxadCp2;XT_3u0jHB}K*gV1dJ+YZv|A++ zPaEvd_IZp^Mya?^l;r|F51=|2un6PHQ~Z?L{y@vN@mt9bMm))i2?w$RCF4Z5ee%kcC9Lv@W zOaEt`*mFtsztshjw!ge|iZSp>fSw{*AA7`J22OJ$U9KW3Kkb;^cbPrFYjx&3e@C|d z`}JUmf6JWFw;JR8-8EwUL&qp2BmBQ#3{EEgk0EyWODf*B&GxFHp%5Lh(W0fG5YiFJ zT&g^AQ;UL<%C>%u4R9Vj2@YMNB8=os&djujaa}pJJQRzi_u4nTOD-?=k-Z^r z!PPaA<&?F?Ieq0mH7eKr=j(@W|Fd$huJl-nVh!A!iW@xhu9NN%7+7KoYJ>(B#voB{ z&RG0J*a|6_-L}k)yVMBXxSLjRkv_fz7#sj?z8^6Sj8F@;o)n7`OKsrwo5VmvZ7!l| zE^S~FCS)vpZpCDcr2&;2G+#%UYq}rqsuNLM@r<}cPNGb+%udn}c`Uj3Mx2Co* zuAf)d|}axgfjf3%1c>yO1lINN|!ARB9l}GV{zk13_Tc zKap;BB{9J^YQ66;m^Qxy;qMPkoKK=Rca^O0HW<;6j8&K;gZ`0k)@n7tIGdWAaMWeN z4K=ncIXl8ZIX*F_kBsIzl>orCZ{T!b3)32vpw3*B&O~FBb_hL5t?xHNIWjBBikIiT zFdr??*Bs)_iOdMxm?6(~_;KZt7gkfE$&%qf;3C#=Hd;f>f`9L(=EP-Mf$H5n#|{*D zn*O58stup+e9gr#sMSkb!ku72ZAK0k;}p1$0Ih@;0+5=nl%t}lDi6)q5 zyW!E*XY_y58idPGx*_6HsmM_S&)?{?LA%=4L4&aWo7L-0pWB#Yue9$6OM7u*+)-?Z zb`=rt{gdyvvhYmdt`K2FF7;1KBn5$;+{Zo-NwnWLv5-%-&)z~j!a@iGeC zJM4+fnaXJ{%EyY@EWC@XUFtkPhr(kM09ek+Ke8iUW%}Yw@BT_GE6iGxLbo*w|3D)e z9D+;y>VmS6*&#zUTtdH65SUf0(<%*KYZMJ&HFh1LJaeFB+P}A-Ck$!~$L*$B*dY#{8DlQoSt@f|rEBwZ%yaV+!`bv|nPVP#vUG&R-ja`VE8Owgk&S+}y#>No z7(J=|d7rS53gbAB5LrdDT^&xPdp^Q3=&Lk0)8K-1!;q~vKT>asph=NEL54Y~5iX~h zH=~)wp!wT_Y?QX7K06nwOo&Ve;t|SB_mlBV=vObS{dd*ZtG&lbGs*Y}k|+2!GJ|#T ze%X2P4lGG|g+QG`-r$i&8x8!Un}@z8Thf$iilkZY`e9YNZBy)o?> z<==Ph#=geYp6{$x$q5U8LzWUraNTO#Xg(RV$jr*B z9maY)vlF!m;ymgqEQ=Ep=HA-tbh_ev>i$kxn`%8mt;YAb1@g7HcL0*`%HJaZHh(7b zW%I)6`OTs1+Yee4>O9+$&I5d_nAPD0{49Zy^^5-n6;d7;i)dCVtuyG9m`DKWlG^*@ zw)7XAK6FTd1_jZNJBz=k`Mt9=W5tA~P9@(-Epztu8Z?tgFD$dx(Q${zUf4!#F|mis zUf5=A!&3Dm*<>k`e_5nV3QcBdk`IO5Wp;Juj18n`9Ll5DoY$-N;PHN+E*Ba#NAm)w zNe+)$rA2qTGkn31Z=V2X*^2s-bIPVMAFxW@tI+wP-IgVEt=w|yl4TLkYv;-$T4u?s z2&%xS5YKz%S_W|`lz<5?K&jBrO9;}UTE@ypnCM6e4@(u=rFJBZmth;LMD?i?Rwr^* zLjNQ>!p_YeDVJDmZS!3OjB;fXF%?TbSqNs*RWqys-~6tWo#bjn^s3LlF}H;8RbnzA z?bXUO4?}#Vi5w!1Sew?wv9N-zj&hLe4hlQ`whXt>QrVQxrLQ8&AP3W1he=B|Hdoll z$w-nS*X|btLyiyT9f|FoQA52*l#dDxCDZT_d&#;f(%|a-vKU=uCYmfAtH?T4=SZ!{ zs3{7sWL{s#l_1NvB-4}`(ZYxta2plTxV4FOVGK@Drl!dXN3NT zRo3YZTF8kQ#iIvlwQd!Y?M=c>Y&;LCdfxqL%bSFs-0_=p$~85UU@ce`Cfx8e)~*g# zZh4W$&)s&}Efy(u;i@!KnfO)BIhz(vwkwgzRwIa$ceb~q?1@89?2HPXnD{NSH`Att z&!>6tbQO$O#gr^vGKW?^_uJU)L`4YynI!#Xx%A6k(COjMShbIlw}Q_KR^&ww?+XT{ zfwlZVg|r&nU1hvnR`=nyELM$nO_&Cm{9bR*RP5pFUbY_HtOQP_c3ilR$H-vx6lw$F z&LQ0pM+qsm)G?9p$Qg%?WL1%9d7Exo|A(p_WOJByV>>SOaP|J_E_78@NF%NEz*2;C zCpW59GymuU$!g*iYSMg*)FKBPwp8FkL*u1?BU?eKY##^4FMB*q0P<+K*bk}2eTsR` zcDcc$ z6C0@F!m7S3W@76! zmtS;1ZA8%yO47~c%i|>3A@mj}`G1lI{OuhBC|S!ruN3H_>h~s^Jk-Y&^bY)jg*~;H z_3G=+^;PLu6b4fDPz*ZRLzIw4O_Q33m1gRRsPm~7QZZu46%AY#q%LE7rz1;Q{t9vz zGjFh2Z!^E+ki&szN-)Y2!g59If*%Qc4fR$@vDyRE&7W8Y zxJ@x0_+>9&rjIQk@gC;K(~eJO71Ob0+fYw{n|QGvwll4c*)|eS+1vy820uHt8*C=m z1mMYgZ-!KL-M?Bd8h9BNU(Q8h(@Y z7|CP4$J1>qXSigp2jUr!GfZi-P3&b2K)EmQ`_p>`>k9%&^p{fH?_RE|7@$X>&(i z)u6$LElUg`4O@84-lQJY8oFKwT2EzJPBXc`NF!q|o}|R3=drr7uC47q6FZIU!d9<* zP20;E6&hzGUcB?bCAJRc3z6%Ma?&;=L_4Bnq>h{tObDMq2X)b|ntw04B^E(8Nc9;a zl#V%oQQO=^gtZtmJpP>0e>F>my`o*uh_linbCR$+cUa(jGpY}(NLJv(U*Mgqg;+SS z9-H`WjGsI)jIWrD0&@ONt`|8;i%}P{uz%b)7AlNkI~vOy8c&=FH_aoD0Q2Y1;blvn zzSaymh4F61qA(9~vvlv^Y^8-UISld5Ln+*4_pkZZDRgUvbUW$L!?L`%eD_vs1Cs|` za-4l>+N`=aE0HU%_7JSdA$-pC5hxt6n{VI2z11apUq%pUoJKGYz~o~r_P)TT#g<5= zOka-6^^|N*zdwcSge))bFTKS|cDisToZ)JEx_D>kJ~{K^0hzK9{W237d#Yya4as0| z*O6Ia1xJFB%^_z?b~nAFtEal58-pnpzfqrVZ8EhE+t;ST90)ebB2}k0X?@U}VN#=m zyh;0Ysl93KN~!nG;-Ywmh+(tTg^k%|$47$Fk7tf2+rLqdw4+m!t>sKdb*fArR0bM8 z5@F*pm?+wRmbX`nSFSd5gAO;@w9V)f>*BxJ2UCU_TFqdC;OI z{dri97&OM=yv&hY$>1+BgV;zGuG)w>z;+W-w~p+skpFN}3+f&_0EDE?Ig+>d7BqbC zo^4VJ^h!#c>f@AT1>UL#WU zZ#()tp+AfMIv2-gi~fxAA2vwoL!UJ~d@Q?0cSo2Qxtq8~dxgGpB~;$0y_cy3MBK~X zXYJ7M?s$(y+{#5vqF;n!_}`<0bp!#@5Xdg@jI!o%SBP z@~&VJ+4M4<`p&rWZZwN&b@w~{-C^bZ#v)<)T}tLN(3&q@xOCEv?Zsrpi!CCIty}Xs zGo=A#&w7s+++=|_8z>|LJq-Xs@?gLp&5Qc7DZ0g87Ol_ zHgx}F_W*~^I!r!36K?qgbsS2`3K^wG7Q{5t?#bA#p^vphGYHXWhOe<#7v^LfHv(4p$^<{j|DN6shb%XCL$srYb$39!|b#SUbYzZ`fD~V7&7nXwwL9 zZFSeg?xR77+dL1BamMueE&vdGkVh)hutT=$@Q%y7>O5>~(@;ycDvn}9_Dd{=ZL-!8 zCW?m^ig||WU#}9;5G&@1WUHVkm2uhmV(Gij=|RC?OfzHB z4J-fpobfQXO~V?P%!|2^1@`dts6TdA1dA62nWn9FtXhH^Rf^LjnJ$ z_3h!U)BSk*sasbo&+wN8%NrAi?2!Y>aljl0cE*$eN90~jk`X_q)QmrPML(r_3?$pN z4EDjX54fiWYBOOl_si6B2q?Y)wQlc3b)LmN_?F{+T`J)`A*!~(?uP^bQ zatkASk1Fazm%4{llkrbXZ{w<)cC}0|+$zm_32m=zB^0{_<7d+jdL>@7MY=TXt8)s!Og&Q z4W|GOu1$X}&M9lhSE8~jwoA{A6HnoX4R{2&+BbEa+20UPHukScC0*RD)pIB9Di0U_ zVs~8L+2vgu>&@$zdmEBl_?K%T22}rtvv&-#wdvAzSJf)pwr$(CZQC|id6jM3wr$(C zUA61$-Y3rPFWw#9=S0lRIU}BbPmDP-bL2g)d+5l#*^Y^|Rg+ETJDfb`sgQ9`klCPm zKt-0VUQx%Omb@{skcgt$;00ew1@+D84TG@Z8g7oB zP!J~>-_&G89lee~P{m|q6@@)IC1qkj4BN4=TJzv~XT%rvs!3r0W$^bKB`A6wVq5cX zokOxX3HLgLq0oASp|6Sn=_O%Ch&BBOK-}a|R0>OODpnL!0F`)4yjSOiH2XGYLx1*s zZbcW1wNz$BfN7^{3F+(ofzhB6V_-;IwX6WJx9RJM{`4d!_fR*fG2r`AstNtbSHC_l zIM`3b6wr1(o(ekL-h7m!QIsR4%>k?nJ&-_@)a2CB<$ftz(@Ca8(>C?V2Q zJPhA{{_n2<5?On@BjDe5eMg1TTYEc35fhX!NoobvY;1D`k9#|M5f7-Kfhg!k;N8;a zgE;Y0`DN#QTVon(DX32^8fqA_YLMw;b9HpzElg#v8fP3|ul;&aW-$Cjwn*Nl$q0PGCZUXpwvD4 ztE35_B^<-#c4Sen+WfrJ_9?oK1C0EiQ1;AO{r4SnKf5__Db%`Jpp^DNe#`oZN>aPL zA%`y}6e=2T@UJ_W1!^i)=jEA-wsDkwPNyzyb7i;j!iBx|yB?@)(-55!)Hj#h2C{0o zY>i#oJIT^S-GLGB@D5>yx~>u36xzn5spReU!c>d007~*5U$-bz6Fff!j;EwbgxJ37qK2?OX2yMGdtckhQVJWF^^GDt4vAdY@HVodL-* zk2U>a>bk5&rQCl2QX^2W*7wKFkm!_rF=mQU=Vvbxi;z5WcUcju0Z zu~KXoVdF$a#7swbolGgdulj+qK-gQUI89n-iPGFc<1&R2tO@Z&6sR|w@C zxA8CyY{AN|VMQ_(SA2P5fwPeq;AQ8ykjUH}khIW+;@0K94=Zq2fe2V79zkiFIDEC*w94v8`Dosk# ztgNmz_NbMec|oB#L?caE5M4!9=8(xF;Z;>3<*;_T-q@(DSoJo|9KWme;`(d|b~RYh zx-|Wr<>HyfMPbT7hD8~WlVv;-LwWAC`Y?i{0aegt(}{@AcUmu^u7@S$qV7~o@0B}{ zT0Iqj5^_~}KDOu114Of_4^)&DkIQ1}!)f!_0In(R~wfzUBF_E6GfjviI z1+ZqV3->liHb@U6#xmXmK@51hO>1LR^`MmVGEDNryCKbB&dh00X1OZzD4rfIs=O`O z=v4PP$_Ame-ZzAtR|Fs3(q#H18{oS4ud~hQdG;-Kw$0JI3J#HSKrr~CnEbor&4{IQ zm6@W_%wQ@_ETDr=jW|NPQRhkpU2&B_rl0&jl`S=AIo zVT$6R>t!tpoSQp#+0HGplr*aHFB3-!wCR!ngNYs%;r-f|cBi(U*^qE}zTc78v-687#v1`KGBre*H+!N#~RMOtoTUfrq*?SO%sJ>XTXRl0UuT*ER z49`$8ma%M_PlF=w>*`foeET-2q+toCfbc!On!0jnbjq>GZRw#%_=~ME8UngdGCMFN z#I);=$7NPdK!N;F8Kq|+5J-;?{~;bpB7i7J_r+z#5+|?=5Qq;X4Fo~qOJ9&M6Oh0w zuhH#!e04E_)F1!mWO9}HQ>A;(V1ItUny~V8eMW;)zJnhLvCo;=Hh{5i{=dd1y??WAL$h@UgSH<8`R&d)InbLf=IFD z1v&W1W`N9VjEo96sMuhzd}(!$WnDNaY0hX*xo&n?|2I)U?{KPTO#Z{FvZL4KQ^|5r zqPaaM!lZ4}UHh_O{&Ff;N*;x5K0%R;F@dJAoRi@#fIF<}iPoUYOIo)J{B;iF<<4$r zoc4uzpcx7^k2a!P_+7OY?K=9VP$DuWHgxbsWmf6Kv^z3t+j0Ju)NU^N+5~xSn=P#+ zhO3#do$i)TNB0r$_%Py?A&V8t6a} zKP?}k40^q}6zS)>f$q(Eu1(I6uPo;2oGm}XM6+ZZHA%&%+g_-+)sls;=C{5Hvl(C> zDRVjMxOlk^UH#q@>nP=sCQD+iL0IYxo%~hAEj#vJmK$2tLw>A72p05Ff-p_WJe9_# zK@yWJ4F_D7B1;rw#ys{=ey?7tcTAcA&fcf%`HZp0xdP2|)K-{vUX<(Vh^LsLchZ$F1|4wTzIB6q#a_zq%v*ZP4J@jd zXcfSH#T?Nchf^6wy5B(}ffIXK5Q~7>8v@ zMtmmY+5B+n^Z||&`q&oJI2tBm$xrEcD&#Syuw>3^r00ws?K>&dr&1V{(6mVfn~@<> z1)-l}<Xo@07(v>fBg-rRN6TS>Ist5{J3XRyZB73Rv>_2|c)ZkBmWHqQC7 zPLUBZ3m(HQCn18xP^Y2W%)@jCNO&cSHjR8Av?Joa~+(`3Qu6#j7% zd-8{RsS^6FV>`~ufiX%boo6f$;0onu1*vea_=#~U%Cr$mGAeL1)vEEvl=zOc z>n`NP+oh+8vKeIXB^jn6bvt6Vg*ziUT6Br5gzYJ*-JuSPwykE8ax%E*H9%1#x(>b= z+q$C1&Lr*GrO71^b**gy|NV__ zRQ$ONqWq7sbLdvnI7DHR0um&0LXsx3JQ5r-QX|UCFMN8RH5XVX@petuW(=I(fomRM z5N55sFxVYN^!kv1cef8oZWDA)k`pLRX?PW@@ zq+D-NO63dY;khX4kSiye_-&Q#($zW(E8}yEJBZZ|GYkx11NJwo*ov@p2Z|IiiPlEV{+ksmnA5jg=NMz>Ki{h)RJg}$+{MPknSQ|8-@`} zlSzs@V(kYE6nhdO9^lTFzCWxUQ$@NZr^Zp55LtVva7c-hWNy)@5Fmdcb_)Zrbm$u{ zq5jSUk%7yjgW*@}p;JQDnlPagkdCTAu6KwzgDhGkVq)~Wy>W%zS9G5Jk=L!4&qyI2 z=EBjS+H^9Bt>@rx)L1Gl*)?fo%3L_b<811ugwo!E5*i=(Xr)?;U||eJvUcp#zW?Q4 z4Dh!@qM9mG%1jidw`-;l+M6h_YA)20D6#E#+(|Jb70B-Az3trF$wovI^|#;kBmRdW zC>W6;n95nUP_`DkA3~>4$Zw~Q>1%69AJo^6X&Ng5?xy7v#<0KZl`&KDVruzcTY^KR z4f~AFG;cBSw2yzz(VS8*48T~$P=}3X;sip4U;0> zsh&0URu>7z%^<00b$b||Y?Eefrd?pnA~jA)a_j-u1o;qw8c?^*&Sm_rSp9sge@*HQ z{4VR&jd2Qk5ug|?{(ajMiob8DAbqXcG+vbA&7cQX7RpbDJ-x4Fyw za$j2^G7@mYn?RGYI_^uJ7!w-eh=|mh-otuBdlIo^azlLy?-(qJLL|x1^cUHFYGD&l zt+=hpROj=Ca&WY|ib5 zd$glA7;DUSy7{`FT)8}Tv~0WTvl=rNlE|)J{;%;C zNwB?gO`6e|jhc(dE{92hE;%Ydb1v@jj4FgNpTMkU@3i}wA={!S~ zd|9cgb?c9v9yNj<^(cdxMc)K7^+O;TkZU2qj%>0{C-<#NUBRGa>TFT={$YqJdisE- zR1>Fpp>9UI^hs1owI9jmHCT|catJAJ)r|goHHP`Mm#m3?{Gg$0QQYW5UqhT{HOu3} ztg_2<_b=4e&urq2A4%$WCl?y8+g#mFV$sr*G2>o*!d=Zs-%ik<`NB2q{G_qFspSS4 z1PY>QqL`^JIH$dobtYOiDnCEi|LnRFokhA$dzsU(zxNp$#Od zei&6%&o75ab1ecrC%xm2gbs5Is~RN?3g*e>(H?9Jva`u?Azy_pgi_@{tMJXRfBSR3 z*Yo&TVDa^D?R*{feaTcmLE8A!*~b14dY%9DxK;e$_rJytN`f*(O73>XKaBgI9zQ2z z2O{?WKKp0JOWMx!{bc|17JEc23Bi*HR%l{aJYl&43T0&^eh(7Of&h{5PW9Og1vv2byde&V>ysu0KjXnAV#9@Adk8@TV}Ni@eo8Acnt z>4Cy12e%7SzHcWB!F5Wg(%UCm3!@wnG&Wx<5OYKlxE&R}u6n=dN36zRt&$=#Tt^6zK)>uGmaj%eHfIvkDXW4lY(1s`_8GNWj zhJi&CZRoGQoRK=CN{s~Npqs3U@#>L8c=>+b7&7t8^QNPuG zLX-Q)YT=(ymNL#(R{t|MyTn9ITTEf3;qU$Rw>tX`wlKxywnoYD%LELw9O?bGga-0t zCh}Tvp*`b$t9}$$RtJ~z2XOE%xLCeirMwt1FS3Eu&09C?YHNJStW?LTjC;=H+V9ur z>F!?@2E5?NQ9yYu)jRVuytES*=8pROGF^lwB(NM&yV4ZCK90q6If0b7{KQ&bKP79#b`qIgu-D!q;OuE3pVzrxSsvH+IT{>}W1PRc< z=y*AAw0jv}RC3g^uvw?FWKa~PliHwI0!bo9>^?yylX~c> zWfdG7RcfQ!6q#FI;%1u-6J%bWx4Vj3uBCucZAO7sN7%_wj_jweq)R?*R>sNz- zz@1fTcJ@RT0t=eQbuC96hS_sb;z*f4k09Wj8fFeTc4>iQ%$T+AMH|2T!5n;;Z}O2! z&+uh)#h!QK9O)cx-xHzK8Yo6kK%@4$&CA@U)Z7+R3>Kv%5K>RPV<{H8|;bS<71 z966IIyy0l3C)Tl);F^})Xi9Tgri%$lKNTO%)3OCN#$0$dns;ck_MYE~$~X;f8>Lp( z>S+o`FF=R*EZ;aPHBM>T@;;COKkTVtiq`0j4oApxuyus!QmGwZE(%9!LiWnv11W=e zQu2zpMq}uYWQsH9u}vo7(g``|=gs4P1!+Cy#!mCByqx^pI1xewi}I=oEy`G$u;VT zbbphXhp3DBTMXo`o-?0kDs2g4=bH6g2(T$!IzBSuzNX#BNpLlNkf@1T-i`mjs$dJZ z#VdMni7E7~+H%2cfS)1wnixsIlL3X)mt6?-#wHx5IADwfVi%4OdS3PSsw^EZ9a&2l zA(3dAHlX~#zBD7$KC)CV0w{^FgBVv$JRnh|M*^XO2`uT>U%S5@@Pc%<uC&bDfryzyT*$di z%-jb4EXGxM6&KQEv|}3YUyQ5gkm~K*Sf63xn!h)l(QWNp@Bg-(l81zlvHd`b@qU(6 z%zs!;|HIMmzh5w|<;G?DV|e^uF8^zy9>!Dli=kFlYUQ5z)y15WNr(G(z# zx}9;o)azB)08PlVMHP-Iz#wTSCuaJfg<9av)UkqV%l5QLlVnsu_p`N3XMNx~7vdg5 z#??l0rG{{PQ)8UbXFxiI#P`Ur4ooNH#}TD*X1NS{Upg<1-{am}aTdxZ|Gu0jnen;k z^6Wfys<~`jA{(8vw?nn?rc7>MFjP)qE6oeS=J7mN@qhE>#+kVCU^}ja-qOj*1x6d6 zfGB~x?W+0Xs(ymNG;t2ZzKjS2Mi{EFUf85C&_y`};-CK&An~J|a{9HAVkA<{Y{Q z30^QUSDXy97_8TfeGBo7^HPccbyx}^jnTZ4seDvi3rH}%M{%@L($KVZkz@Qd9gU_z z-O~H(WQm-3k07vk10xST%up@hmJo#FtoC?gwm@#7_35% z>6#dT6f7XuJNGH=P^)TSGul6F+KQm{0^pOt7Dhwy#|`wz-ef9ux68Mq3xG{zx)*}Q z%E`(Kp#m|n#7k&p?cR2<^Tr@{!)@NZ3|9zleD^C-FWQ+1Tw0g-F0TdBh=bZQsHs{I zep;w(>zwVLqEDGB z%c$)=o{MNfK;Ecg>+?|}z_BudDdD(`E4PuzS!t@BPQHGY80xD#ai-LT{8E}GdFGOr zXeP9GTa(9Nzw&~*N+c2!tFpHj@+6h*GEugEl3_Pe`Vd= z#ND~dxcOAF$;iFQIJI&=`MlcD^KrcOOp%yVbbOv_dt@oK*|yI4ymkM5yy2+x`V@v5 z1Bey~+m9AutEPwp_#;eXm9&>cdu>q;UoTjp7-T_j(GI^<*x22fq9b@ILgFk~K_B`N zL|HtuwWxMo#~-@{*J3_PUILKgB>0C4_4PB%;13ecc`1bt7r1ToDu8Ua?s+|OCDS(QKm?pw&IU7`k0ZYsQ6FWtPS0Hx*v$;= z+gT_JK*}!NvyFSKtm?MdYPu$SCd!-qhD4YQBU!7!DkPmh*Z(af77Jwo+*+I0St>py zBEfW0tyRTrY~7K_Sd4y@{Qb)3mQ*mHXGT#Lot*-|=I$qq{6Mr;F)`*sFbWLrUV@($ zPMl_@v?i3c++YFtYy`(F>EXg$Tf|J+3f~wsRGU-S*~p_457(W%e!AU7!a%?VyHAkv zrwnY#P!K5eRsl$~fQ@2sT)|2}5U9McL>M{qNR=9=cYB0zJ9ZDb<7}r9OlKIgZYrIr zy{ar?huTXuWXt8I6RgV?<64Xr*B8}RM2>d+>({mLjUamEU;!A4xIKGSj%{8h`^!3* zPY|vsoS-&P@~He&zbw`VQ$Y5vxBJa8MBu}ibgj|;NUF5-?U34h!qU*wksE_@XBSTw zNun9Pa5xGnh5{w%P#pAc(*eXNO2yxp8gYV(ztas%-x5tDR=OQ;p5Z?LyCdOp$w<>!Kg|tAOAT}${P!K?evDmO3ZUN-iN3OIFmw7a3%12!U zp@wH{Qj}t-1lOa3M+JYJgAzZDIdEwbzE-|qlW_w*Qc?0K)ipSq!jRNNrhv2IqTX-{ zab_Rzc=3E>zye9WAHUDt@XlYpZoR$EPhv?8A$9uW6&YX*3o9hX9;ElGz~p!pnyWc} z8djDt@8JQCZ-!qgV^t$8B=VdM!yZ6S5489p#<6fxv9_7!@Zsdm(bNcs z`c(EKlj)_(PCge-$q3>K*^@M~r@+AsqeE>&mb8B@=;LF^1u>)fmD{7Z=;1xV-Pr2G zeV*ub1R8kxIo{yE`%JQT?{D~;4t$_X*vG{IBR98qRBsQDucA%7!<&RCP}K$q^@867wtlo+acLiulPd;-Q~pOIumej8EvcN&3S!@`T=nMbWF4dR(zEOP7grEEIs)OXl+I7G%jRQ7+ zNaoReyQuPxeqhh^)@DP*(_CZGq%tJrU}u1Dr5X=gAS2M=C&ZP$jNV0drKu|D)sz?RRWjm&x@=lhOr6aTR5iqp9FLlT843)KBUI876g^B7UZkt%S^`v>y z@5r5fvjav=0=jnz5Pv}N!B5)lHlQk2$eu45 zr65p~)?R{3KNT_tsm%}{S93@iLr-R?rS{GkST5*BER>xnL-Of8jUDmI zDt1e+wjbo}wbG81t?Et{eGm0s*FxDI zAThWOlDuPu{wkL_~$mSK(n|3;tKuAb{>O&n(;AFg%G`Yr>i8)U;L)JX5! z(+)vn8Fij%PNk!S)GEH8iH6g0tg09@b|^>2Lwm{&z9m}DDoCnlKK1YR zK#(gWxXW)A2P?#|Cd_8MD9u~LjUhUF%D@)uv7yVdU+ar@8@VLAGR)cD$p+w@Lc{S zf%Pw<9>HSO#0AU8W|J1?b?&31K&l3W{+4_j-(JQIq}aJ`}oFbUJ9D&!9j!)d5K&yJ6%am|=j z!(8#7ET+~YRAefw>%RQ@=wT~-wmL=Rtu+-jc_n#sbJ4XmBa*Ho+`a&r`g)Q+_6k&T z7)|S7V*U1*O-uo8xwgTd>E2YX$qEKq;V$7U8e%;!GCd;Bc5)$d5%>@}YA? zXOQP?cTj;?4o3?8sXrMdaHbocb#@-XI~R+(Pyw)mPe{H{NfsGdxeS@Ps6kQwM|ths zC+mmX{s9-F1TqE@A%whk89}hM6z)bY34d&7?AHtl1JBqOgKCyc>#!c`-oUhZhR<=F zpW2^112VB&OsCEmnhZ39)dh>)<@!SWHj;Cot^utcdTrQIkL8oW?#1oMu%DUi2tV3O zS#PU2&e^q*WsyV1cO{d!EFN2d8RsKOBO=+SPmZn4pbGmkaIGG*BcDyQU2#Db$xsf9 zBAhxGn%Aq{!h*3D49$Ul%-u3vdXhDWd*)z8EW#rr=+Aj%XV{fj@YIUt=@h0qWGvIO zUg6Xx>iiwT8oq2#vDzRh)zzstb}TU2CfvA4Y5M><$xLc z2j&5YQbdwmQ|^+lAWkucFYl1q5bJX8rq}OyY7ao&{p7ky)?vf+>i}94O`Q|4yVFcC zGmPUKi^q}299f<7nz~N8`*Jb~m=NgRzV^R!2L$6PqWvMp&LPIRW-aFk?7;pd(mH6I zs5Xag{Mkjy(WnpRB0rv@3H=S052VvuTgjU9M!cHP#`>-ImC zNY^aZzsFGrskzjzg7Hqxu}l(?a_eA?+PO`X3ogNHRdVZy7M=puvL)VSa>HQGTDj4b z3--YrRdU0KXKn)6vL%jXGdb`WPQf7Bx%{eTGsqYZK_J|@{IX_rnk6sVqEhpxOq2WD z@bg?>R!Qbp$J7vBV)Gw=ieBlZ@0XcEwr@y2MG-!;&3<(o<2+Ay1o?>8ePxN<(MHC6 zC7L{fIhS^%&!_1L!Hn?-9>|pMsJuB(*ZedC@b+2~mtj$<&Yc0=U zBfS=Rgj}UxqqkMhGCFPNQ3+7rK|UFflh|U{;7RmkKD{wn&goD%kF0n zAYMdGLeZLjp03KlG{oS8Gq-;BA5y);1#Smr2J<4%c zd5Fne`*_$Vh4*apH7f5{!g!B-=fycAN`>T#Ev%ZSj11)uC6F&nw9Nq5M%gG4 zrKsLt&NLxqwP@8-{YYEejEinMiN^-?!!(M=`SRL)glR#}77Q#Ur8EPgSl`sg-g!qmK-e;J+68Z=5sP@t;)!(f_gW)vB4Z&G zriK;i37P!EdU17uXjP(tPS*Vm@nH0|sfEYvPPCGbT<-OMix`>AwMs>4mY`bG?1K&x zm5P;MWr!BU7h2`*M>;>(1-DO_R*%0Lwk`Hu^)^%MW2}q z*2{4l{}gLRYMCsUmT4du{oJAz5{)oSC@06FHI^K!2~ZDfAooX=MGuq=2bSUQV}^re z`cq`%XZeS7*mt(XxNeE`<$?9-Y+(TYxEbDBED_0i0WH^<*wa3rPvGa|V*HYv`HQRO z^+Bp0?}smwx5gG`$xWKe!}3~qmaVA02AcjtYQj-oQP0!Prl64|@*3V|@rj6gp7gvl zERD_~=<+%!JFL3O9UWa;=NZ5;HTGafj9qORft5H>tyZ`UF}&)w8 z#+jSD5BdR&)gXHGikHf1(&&@Hj>E-VSFBZ*?H(3PFFU$IB6Ix}OdDVLc z_wpRtqt(pW_7@{-$cJK)W1GPz3YoyAvW=P~AV(DygwG6_JkGj+*4hUvIadb4RsSyw z(vXsNGcMPCKxbHsh0YeS%}~h&8jRV`g+m!4cG^Omr8l&G#7O&XLN%sbcOASSHIhV~ zb6|mmp`of$ClWZ0kccR5t?N?I{g;|AfDWd=BJvo(?z>D7?VaojF~*-ATkG0n1Csk9 zs-v6}=L#3sRRdu>>P8e zfn9H$mQuytZ_I8a07>uf9@yVM_z0K@9>9B`_|e})&+#Qnvifx%7^vl@HCo(~cv=0I zXYLnAZlK4P%I1}^=v>akXB$dRc+3Vm`q?4asj4gQjMqI+jALnq&Mn!fo6>KfA)fU* z`qRPQSjFzPg|c}|Elh`lm3L2ValR5d7RN5Q4UBu|FvFu)o+#m z{ZlvA{JEy3_=noDpuVA*G0}g_{~y@EQS#FNk_>pC195I!3+~^2q6?%6IPUt1El3tf zkmV+(ks%CAcUWw;xg4&+3+&ty1V?b$gDg?=dSZ(t-xx>9N z5h#+HDfT*+pNBiCIUO*ks~ptb|k^msShmKwEMXQdw{8#Jj0~bk+5c7s7(OdV~TVW zoZ+L4gHb=V5{TZZY%&)mQbBN~kfhM{b+>Hb!+vBt@WF6<4W9<^9_;-4neZ4EEZZ3N zRxC4S6xJ;3LsR+S@#5c90RHxOJJdgT|9+HzE{XFyIOx0o4=pV#Rn0vSmyvx$*H_|t zhSWd;q4A4E((ME2;nr&*+5G-QDOS|6=O!NZf*C~-#NauJv&OMVuRGb!cRJ;Ijw%=m zoE2!!6>Yyg2)@_y=6nKhNv}O`p+}*_1dJ;trE(r;d0u&L)o+xuZh4r4_sD###z?zm z<6aMgDp{f8;zI4%dx=HzTnvle$n)}qj00E=AyQ;1-P-d4z69aQ?#BCYMajP2ntO>1 zGWswdA1_#3aNg7eF+J-Eqh4{x23$n zUVsv$Bm*OHV6UvyL!ILhb=u5@L z>_X#=znCt4XyQp)G;MBfXh$6Pr=J5@BIFwpqJz9PGoUeA1E;pruE+e!V2G_er*f@T z(tW+R)F{rv=2eT?ykPElSkc|G&YpoWT@rl|aClR2)c+6@Ds<4}UUz`0QNn;*ZsvH1 z;XWjQTi;QAcErdt*lea3-1M1S-8{E-=@`HM`+1JDQZ_}PEw9D| zdMf*+nhB2}#M6;OTPy>EN3?iNRo{-$S)>SyVz4^=_fCZgSm<+_JjZ1U&?BQ+d1@== zap5eR<_v8bJ%lnDk)*-di%F%!iAL{~l4*f6ylJwGs$sJ(VTq)SSY4_hVjz_*@E0hK zq@{aAb%P-k$(hOQcTMpM9RUv2K|@x14sv9HPmq5bAMBFyEN>YqFn(;Q{L*RUM@lt0 zkz{Zoi{N*$h_V!gnyxW%EMtQ@0&=PWvj+ovAd5yOQjmX8I3ko(qQ7@C6o3J)qHCHU zjc&b_M#X0F9z0;C*^#ZWs(m0kpmOZWXTZp*K0C2vq3ghGv(f1POALFj*>PlDHRZvB%>+6ET41~w_}&< z1e`}GL?bPrJEfMP{cqE1d(%cN%6>I;*YR8p=-1SB)`LV&-(x-sjZcf-?OLU#5_M}& zrj7|4caOuMS6ZbNEg$<5x>CLIb*bd&y3WUx_RTp6-OqTB+P_OMMgw89N+y==HJAgN zCwq_7f3Ei=;I{jpl|S(Q;O<$#@%F_ie-Qo24u75wcwzT}AE335!d}>2k*~?6YLroU z7lK>oD&Bj=)9Hzz@If8`tSVQ7+5^!s;G`n$%U$?TClQ2Wy{!w^1&tkw3s((rL+;kE z2j6Rc!L|i%gooLCei4ML-gQRyh1!$-16g7Vr}XJm%3!E4Ub4Z`={8+}pd*;8lh2>Kgf$VcHrP z;9f2HmA3jdztE|SD=qBDFG`(Uo?w&5&)qM)zO|xnUL$dl%U(o?23~zj*{#uq=LrnI z>uiUDc2ZySDuUQppYC9lEC9 zv3i3L=YG5@{GU!3WhmPA#PaV~%?FHR4~nMy@yon~SNQ#Hw#j)mj~Z=)ZRv(*vB}Mr zWI|LIJFn!*MN`YmhDH~Ka$S$hSJn@SP>+bLi#VUFqw6E?mYDHiT2eCm+fBHrO}}Me zfGKSNn?|5zlQX?vfe!T`Q1BT9{t3rd&Bt$SrdKSH@Z(FIuRai-wK35Srh}qFJYynx zlDEJwC^rCrBSn+>Z&PJ+CHQ3wyHeHS{b>Y~SNWq>f)wkL1SAM6LAhSdV=|awPK}7)eEecZLVSNqU|nZMosqJEs9rDe)5gSTJfaP>KWuin)A{jmR=HDp3)Jcno z&NTzC7x+n+A6NKEo@aXOA^R*zh|Fp-Yics=dgdjAa|soJ#-!Pw19cJGKT|PG5;>QZ zp?d+yxH;sw=Z#J|E0?W4dRy30{Bo^G4}5C}`%>*l$V{)6PPra@B`ci6e#^j9jGCmT zQ`meFm5L11rFJf1a3mCc7IL5~4`&6WIZeDyULM1}C z?jZW!w!z_M#lsI@JCuM6g^HMpcc>BvHO3XeERtIWr7%oQsYq1iU!N04-zZgfWK`!h zsrmH_j?1GEJ!_^Kjx==;&D4N(v?Vaau9&*_ln~HVyG@lE0+q^eo>j}|Q6L7DN|Fi< zYrS~*Db*+O+@FxktZ!s0mmONctL_&&g>$Wac?2_ktV3Kc z%ac$hgRC$wX7WUW%F$(_x0d|Fptv|Gi`(Q&CeEkss-+Xw${qnz{iQf-Dc|LYVvySy7N41ql(b zR1^Mevo&YZpmFo6B;uRz0xIqTY833(FW-dQ2^YmRh5VNEOvk5;d+%cgMqXd6 zro6xQwBcBH@T$~%|woS-DoJ_j?i?73JdmnD@)N*JSf!}0{wo!IcX6=}+U%z%hJZ!zB zU3`#IWRo0yR@|{mmhs|LDQQj-x{4otp^{owk1ffl0Y%w*R=OrH*=Et;WyQ{`r_jMB zK&QCiL7r41C5xGRXa8ysW&*4D=qQv%(wyD6{>Coo@ptmPIm34n&f>(Pd7RF9bexWx zOTuCe*VKc_t-VI@)_zbP(-wB22^U4aAt{%mO89M}@BxsJ;txfUCG!iUG#`WEP$z|7 z!=k5%AglG+g&!xW31bLY9s`Sklh2&NYUD0G3K|J50ynF6bzIc<$|8QAPDdoElTg(} zqwms^d7q)xx#|%{nZzw@=7zj;GH&PVd+I54(33=2r$_5>%>yj39<+X278IhBD)F1y z)q`tP1A@2+gVGDcQ)84je!e?m`~ODuzqC(f3Ub1~f6lLtKLhU{&aXn|j)t}lMhbF*|3~otU$jona=jA$ zd`KDAb3%qz7Qp>sfzl3N!-+WafF>YxN>~3---f`d##D)f!aCNNU=?=jCJs^)u+-q zH-iQk2DQ?@VGf;nfY2tgR))PUWEiVJn@?qoYh2m{qkmX#=j59eERuEfr;-R6iU{?B z*+%T<2s-4KdcjV|_3h_&JpK#ca3+HAhvn=GVnw(&-!F3=Uc26mS-A;*^KZq0el962 z&YzUw^HUrk`-hh+Xr=GyC}pc}WbD9iq;L1rPw;=dWVRnM*}ulW3(DfwZGK7vA>Yn( zY%UoMDNU#Tf*Kkl02VYYmZeI{K>iyJv1O`j zkiw~|O@G{JKN#D)eZF77chIxWlcy zQy@(QF`Uryw0`{owHJcdphXjcnMR0P`oO)@@ytdG_MaBtR7ZG;MfLF^cZq~cSM856 z+={9n8Mjn$XdK3V{)}aeBg{p_m+oYf)au6k1HWi0T1!|1LUDpNlT+?ywFB+~rKV=?5)6JU?R(O`u<%Aidj(sG_-^;c2O(__kW|%)xgdJxc*-WG$P3R=VxKj; zkX)Vmpy@v+FqX)^k`qxLkSkS9o>nBOP1Ft;xI}T;CU*kx@Z?(Ka*UZk+n^|y-xvZ| zX*@P#bj5X3k`1p?(W$wdw?!j^sZ8dP7g8MsVA*-vVnEjxhQhJ-xwxJb^9S_4W1u z+yj+l^pN}4kHQdP5U5BfOD2bCw+sp#7``gZPJ3eG?`#A*I4kjn!Jp~$rc-J>S+Ol5BEZYU|>I3%ZM(r~9 zD)Z{^g-urKpEOK3ERnpXXly|$IJfu2Vf_v)KI#1TOrxWB z#{C+3SAvG} z33+0_+8<;?!4@|Hq8`m?EBl`2B7xnkJqLPOJnxy_1J(&-WYG6$ROG1F^4&C}%U$qra0&)=?{ z$P2Cqhj!L2yyUb>Fb!OB6X=~c0BjCv|0miIdboJU4|FJ5X?-|>-94&uI0qpnY%{z! z6f%rL1F8qkjlX}TqyW!-FW*Rq9b}AvL9)bn$E4q+*#S^V3ouL(Xv1KK4SwE8X;4YC zdLefKd-&8r-Pwo=KC-p+U%&sq6Y(F8 zn(g*qN#@^qq5hp0)c+8rc(2^QUgFq z_{bo!q~(JeS%X$uSRM9QgU>hp6iFC(yn8?|NZdd1b}H@Ewc)BMr_(mG*i1|~Ki}@> zQGYNo($C0>5rkxzMT#X1)ITH_wcvLlBfEo=ZD0)GD=R4~Re}$`ce|1PVLrWbx0d0( z)$%)NKUDn`KyCq9C_Zn}Op#kF-cQ{Mwt9Fs))~U~Q*>2ER;6xkFTR3pzx1nlueNx8 z6e+&W*xE0mH4R*JH_Nccv|dI^HC2m#b)2!t*n%vuaxiH>bcXU+zoBe{VcGxeUgTNa zpB$GvTso`Nb5RsHXf*$;SWP^>PAMc+MW^ISepTOTd;Z#M_o*l!u~8x?JwvSrUYX6N zpzAr#!d{b&7NSSMpmEiEo+>3l-ALR6nX!Y&{u?xjBKb6InwG0c1`sgz* zTO{l3~_!IX+J6ghi^qB~n;D_mnDRQfKoNhb>kMZrN&m=_MGOP`Ja`E@%)j^pyXao`Di81gN2WE&ibPA(Bg2H~9A$KO%ict z+PJl1iv~ZLYfeG+AvtAe_t=RFEq4W*dD}1(DduDZUi|`Jq^&@Tc8-kZe3|*qFs9=0 zMQoB;g(nad20`}l?a0zTq5n0a*Fl*0)4wCy;{SPaVf@d*{m;oo4(=01tKD)FqH&{Z z2c!<9NK=UtPBcI);TN%$=)2W7;#bwdY{U(T+Ntd6Iw4k7mo&<6-{_siZk?UWjG zQOj?;1TK@Q3D50`w6y!b)5|tLlI!3FaOLR==@17faR%Xr1fr7JkkOIv$x#$3=>(T0 z*B@BW@XH>!1L7UX{quTs*YsPw6;Z6iQmEz#A)@=Lyspyku*i|WdLI-kX$K`pnBp8R z40hl8jb`qfzXbz_xMWno0W0E$G%VwW{rz0mE(N4@#2y9 zCXrhsLFeEIl)g~O6~aG7#E4(!kN{2Emn+mGrCYos2sjAP|q z8KZ|A(uZm@(33cd z2ZfrG!i2=Utl2G&dyor6aIVmKj3n_VAQiEtY3!L8!b?UQG?>1M?=9E*1-d(Tv!4&> zPMkvs9Ay!FBq$w#7H6(9gb`y_a4VC~tmJJ`u!yOY@w>0#b;4#DAua>HoTFfSNAI!; zql5SQt>gwvbcfga4sv=;JZBid7?zPr_+B+URCL5F=JLys5NEY8|2Mcap1+45W7PZ4 z_a9Z@ZzLo1zCuve(F%u$%Oa=L`fTNY|Hl~bGBK;Z@U7;+{w>ju^>51iH?`N;%;Z1E zd(^jIGNuahr*I2;3~`Itfh$%=q1hREGZqOsoe*_#SVppMRjah&^xtRPZiGZCA1szwnFZ)_)sUueXNEp zk|l0d6U{1+wHfb{0EGT?htM*na;zw5xxZE>I_tjD#@@tCo&y9vL6I5G2HhD-mgVIr zS&98pc6`Oeto#&pW&=faC1wWvb-squ3?2I=lxx#zSvt#3l6cTrZzwJ>w(y;`t$PFu z$oiD4^HmsK$Hn#$$;~fBR<;y}v1|=;WhGA?KG)$}q=&}vmc^o3P4D7N<=S_CiYodN z-lCz_OD#eSWI(nvImDA?uUY?gQ4@QU`OGXMtK9f;Rye~ZBgB1s@OnWdcyd5^!bY|D z%5x)F2h+{0gma#7p?(TQbqiDR{bx1qe0kqeDuytn3JR4}*hZ;_5t@j4eoJ&Cg;7bJ zPp5oc4VXMNPsvMON%eYKz4U2$`x*IazY-+*hdRXz$pb@?I?*vOGA1nfaV-|@N;;3M zZY6;4DH>gLUmJ*Kj|hlnp9ti#Do%IPYDm_)m3ROaz3+446Ay@|zfP(c5qhgd6N~iV zg#y$&G6(Jt{*Aw1&Ysc~11QQ(y1y)J!56wWbpsiCaoK`V{C**zmxi!`c9UYI13eRw zsbz=54ZDZ&CYbfKlj$c!BP2)(>%NxfMlX0|=}VHI&c4)J+aHyWU_^6oidwF3`_G;M zC*q}c1LOEenlFXCrR0Jf@?GxaIO5&q%Fo14K9Jr8X?uPKvf$ zxp;z(7BzEJ4F^ohea#O1XA7@wx zXF}BiiD_Fxq+JqVQcqO)A1L@;JtBqCCrnsi#&!1+vLq?FQe*D$RuMCkuGquS*)aP+ zSRC;CXd=L%&UfPti0gK~+l9D;)*B*H9y?*@P&?DXwmb!|aK{|Em9p^ibd`Gp8?L@N zU`c>iy=CBC@|ZcL%=A|xOAFw7FH3L^Vugs6w96U;6=Hp%PvFJK@j=G(m8>xJS;>iT zD%kQ}KB_#T1(3`}eQ>HQvxc<^F8zEBch*f6kv$`<#s|?g%aj6-Nf^0nCaMO7LGFf# zy|>Qd&hEQt`>r(CbZ{VSEGoj<7@y4#c-!AF2%p~kH?&v%tSYE42|H%hHTb7M^nJKg z`=YyinSs(32CkvLjbh$Xu}5t*f6!A0L~O%Z31$05Zt32(exnvF2%j8s4!cS${AP$6 z>0m9zuh?Up)$GG*1nFgdR*byYk@Nl98SHVj=GyWM#&E5%wZUX!S>DY;?tBkx`9m2h zBIJnp!LgJiLQMRqKcq^Gz8DUg7#rq`FgXYOamdHTi6%3M`1VV z!@bozhv&S0f#@Pfb1*Ae4)C+>gcsYT4)}PV@BlV>3^BN9%q~1})#wUw=_wT(U$Q|< zu*6IbIJlVRjI~vHKy8U!G>lJl-7ZxSCbpK~kJ+RL5Yp zn-8uAvA3sQ_lvK>Ctfv=O~&5DO?f1VzipN9**HKmEo+xj@b9)~`oP1dNzM_N!ApUR zL!wJ(Si=kJyCqu99+ntMnCnuB_I=qjeto}0lT!OK!)Ix@7;kxBYm&Q{8fR@AC62+* z-!;SZ&-jTZDYh)&r|6KdF3-#(r-;^9YKO$H%rI2BJWYJ-<9Qv?+zgA16$L)rk|-(i z7FLVWU$KUvqVcJb^3t|Qk{+iz$8U(PnM;v{VW+F0#TZmPVKQ|3eM7t_J~K+5>aQ%1 z=MD9Aiz8=M!pdsK3F_LtmjTjFCFiUczyCffx0NJs5C5RDwj49bjN|g>9xFKTjJ&Nr zLe#ISI!dtm{w#^2u-#!D%m>f-!0Xe8un;m#x`9o7{ruOqvG9s>3HN&~i1pn%ivF9E z@}H{#LPcSPe|-Oo68VoGvU-lD(l(C5_BK}XHa3p`_1}L!Rg2`LBnG~LFY`4kXjRJR z$6{deT&WQ(LjjAvvf(Q;5hYR`Gf9jTqrx8=-%G@Qti4$=xgK)yTOk|nw=&!qYHhA* zYJNo59p;BO2Qd9U4;(HNPhulb?D$Q02otVG*&sRy&T!d{6Jbb5Z*+^Q z#-NbIv9fbTiiOZw!I-2*1Mf!d5G<+99evm($4+!X--%+(K0`e5a3O5LP@?@nLQgwH zNG++`D1G;*e)gEyXAAH(bQrh;;}jQVRC?iUZD!|4f)f~maTa+01&ep_H96QvtoII3 z=Rekf_9(r9T@~j9pkJWD5hpt zHC!~7_*ml`H}(D>4BvpEB4^)kU`W$9U-I8=aO91QEsYEu|G}30&u_j-LPepnx(~Q`Kz#}nT^Y-=b6!$_m_jaG;9cq%~r>_OOMO7SAoZu+cC2**GmWN zA?x*kvgS?RFVvw6HC*R?HaZXOAtGEwP32oX+)lQ>7_g+6@|V=#DvF+(rC$9Zs5fHB zIr6t=$T_!p>Y>#G5&AEcwYJ(r$DNGtZpb<}I}!Y+65Nb?p)eal`e zfi|VCqX8*FJ^#Roz-|w_434`5eNgDXWdBxC^4t!<4Shsa>O32u?kwI*_dgR@L;uUm zSzR(eEGmDEoi?-I{L6qV}{RouCvM@+0dVU~ZJomhq6{8oQZ=TmAyUyct*HwtwznYD_+e5lRi$P>Ag z)F(6$v6`1GE&x2t64qh0L=k!=##o#Jl_i>4H0u>3T|l|Wm@23D@!xFkIW>5 zHFrXz^J@GB2PrDhm*KOOV;UPwSR0DK9}Yr6T9^QM>)C^TZ3XpTLc39{Q68LNy*0zY z%l1?aO+T0>L}T0Z&?V1ZL=L?oj>B53Z2|wZ062C`(-$*pq$IP`g#OVl3-s3Jqtt}6 z-{PkxgK&#lM1>%eMe8l@j8dg9i!mG3jK=1~T_zzShe*dK3RksV7aZQFwcklZV;C2; zRn~&@5|nK#j!pFY89W(pa9Q?(M-g~frd#Tj+ccvm!gteu5wP#lIe7N^r{|RD1^aXR zg({J3iWPE+h%fV_2Y7@IwZLYfanD_4PV&~ZIVc5O#z;RSd1`Nb*>-F_b0)W0Cm~^lgVHh>cF)Os( z97}MAw0XZ}=oEv3lo5E6OoK*-v4~L7;;u zhvXH$E!sVJ8&xz=)B%qdViV% z(niJR>%Xtf$Z1gpI>QAVY;lHdR)3(5(r%HPOa}HL7VQcsTwAx>ok4JV;AWoy$KuPw_98H{#W{s~C6$kzO4K2r`tW zHmZi*QRwx~?Ik*o64!N!Zd1*Lt!i*K5?D=%q)~8zyx&7Vu0Jp@F?SOFZa^oXYMhif zeD$z22d#L9lDnqxcX3Tq5n&^ky1u@;0f$fB7Co-HYe>LlO@f5g?-R*K)T?tfhA~be z!yaGOE+L^=>{+e$NwRTqyt27{JgcuX?^OE@+B58wI~+v_>wE5l^4@mMjvY9u za7llSg;kxPdONpjU!we{f6$ru1at! zd#5MDr|aZ+g37GS?x~%2$Mk8Jbs3oN(srAq0S7sNJo})OlssGB^obi|N2|3`9}G*n zGp61LK__}yPoFakmaQ{8{~1~H+My{?TzlN#s6|6jC4yuJyi}!*Miu3T@z@oy(;6mG zn+&gyi`BA5cy(T#u z44Vf7)-xN{@qvtjcI{@G0Y{87_Yqi3zlvcA>9GuALoj@auXc&cZbew&d&QW}5HXwD zsXHpNnxgOv<+T3dn!M|w(~ zJ_b48(pFn=*i}m{bN^SllhS#^O6-vE*dp?X)6>LAP^w$?(a^yXj?pc5W55^3D^HY^ zfKrBy{&*JV9a4o_9-p!)hXw6Oqy(I4EQb}nPdOV5!c{`#Em^metb6F(z(i}p$^g4* z2;Zc_f@eBguANgL^ROAw6rCTTqh$P#42l$6VS9AFmwm&9TrN~5j#h5IbaS$l1Ib!9 zbdxyyl?||_c7>o<8_Qi*pC_8N+qnS-m^QuaxIfF)YwAr=7fvj-QyBQrg+?BSJk*=~ zT<1|Vabsf=G>7w!vNKntabrOK8?jjRrn$x_9N}eE7jcnS6LjkM6iSXA#=~6PmI2?QQ{cl< z6#v+XPN7G1c%+w9)ee^&4QB(OfchWAaBB~H?7Y+bYwt~9B8-ar-FJW6zyDh$9R)`{ z1B?IM)MX`Z+sw%#0eVnLXV%*MFr6HxbQB=xndrFL`0FX}!zR#15WFZ3K{@JL{4^N8 zD7;n?q&|Q?3L=l2jldEO*Fqemr@4+Dyf=z_ynVjFcZjfnj5y`>mwkf);+$l=Wpm94 zj|do0L&dl+^+T~O=Os`<1hdCb6;?buB;TIdxK5i}v7C#|HygWU9CwQzXOttbpQ(N3 z&us(+-Zb&iNcybK>~oLYIJ67K4c&nW6PFi>#w{K*`JGfA;PQ{9QAwk@E+2e5W2S-gs+FEdn$x|sLNVyR2hVk7LX z#f}xd4XzQ|$fiTPjK*dSjH$xJ)5h9`P$Ev}8^#vZf~J;6r}P4Z%lgF6rPh0RKhHJa zDVEK7`nHHKjES3RW2!z8lgq}X>i~mtbZ@Yx*QUEeZjFzq>N>pV3@4XO0{q)rtpLcx zqq^5~N38vNlp7z`i@_YwzZ76;j-ENrl@9|v{~B|^4_!aozjbT=fc^V%;{Q?^gsdIy z-TrgrMJZa?U@F0JEl;m(vRjGrXE77{Ei`R17ZU}^XWW2M5!xx3$_Km-4r|X@X>zF7 z5Io}EKm#Mxh|6jt;EoSO{XyXI{p!`>%WTu`fMHH1xXfyEIJP^Q81(sj56Jm}A{VI- zB>_KpQ;$_Ma%+wRs*Px+7QKAf>JHq{O1y@7_hyVnfuGW^3Q2%FL|QHK+KMv_9kjDp ze!ihVt6Z)$u2!A;*si2|;Sb)#g(uevLOKDMf~u7zK3Se^@~TAj4IYPwae zeje4Kk=$Trtwf1epiEBzGGBLig${IOmEkD$1^Y|NT6u*P$-|}v+s9p27ghhO`H(!4 zMBy)S{u5HPb*r)2aeLc25e%_{JI?v&R;c#)nXMuuPf7xn;y{q2`pkm2Y@G|T@yd{H z`xMmE2pz#a1Pwu({1B!Nb&GRRO9Madx;zg;0cKOMLVfjWzqX=^1{@2JNh~96%seQ9 zedZt;kj;LvA3CSipJ*{4M0-o!`Ci6sdRxc~=gw^&UbJh{OspA97qi~;4-mimYOEBb z=)Wz{L9cqj{A(BOxpiai=i3GYhwATY!kiOR4_ZUKL1tv}6!bS?-KI#!2|%cSlzOpz za))0kP=$F%g8CCWUv2%LU6;MWU0?#;c}th$4Ng0GfVkMLWK7Wuhr{LwhBW+GgxHd| zLd3s*>CoML*4!}dex)h%%yAkd_L4k&paE{lrtXXz^KD^{$xva`=-byCT6^E*_qq4I z5>e-S@NU5RYGQLy_E3*l?l|zh4-TVr9tK2MCY6E@`F*GHtIE}il}zF3vt6Tf87Z?AtnNVcy(9@Wd1uS)bP9}s*ImM+2(AGzms>|sNo;~1H!~8McQ=u4{p=91SQMASpxk>h1CCCDvFdf zR4|p0KBo*vB!m4x1q&HbfYteP1+Q9s18pOU#f(VPo3(>!i}LXLVs#^2s@@J@Z-zp; z7XZvkd<_?81>-t9us3}w178MF@tRL4Z2N?Kio z0@=q;ow5o;tjtoW*jIaJ#*nbpbT=O73czau2X!O*LC3WkoE|ZK>--I*iQR+885sjmf);wN5k*jswtylE}-61H@UK?WT0m zIxkF>uCN&t4ldE3T-X$13EG$8dTG}<<_#wBHKD7G_FIbUtQ2JU|EtB zFNT>vIPj2C^D{9Dbc?HVSXwS>PvZRDG8@ttWyuY`^r?BS$2SPp99H*?NBk&h)EVrD zJjc>y?!z;pM^6v$Pg0MTbyNZGFT8yrP+l=yS~F1e$lQaD4+gz)qCL_soec{=u?1ihemg;NNMg^??a?}^0!jxK;IR#06hxdNzaP%i z^(k1u+BgQ|iL`{VUbj*5bbnThz{n7#N%Oz^#1@UlZ1DrM_ChR(ABXp^)VyQ4EZ8hK zI-8Q(MkzSlhqThK3VQDTbVV!5*-Lx1Fl6 zK6@1Qc+~X>irXNarWHPXq7Ww=As7x)Z|%4n!8Pm4U&x8QEjOYsSP*G0Hewf3Iy?;8 zos`7Z#dml?coGaVMPSlm4W@a=40HaZ`ALSGrhN!da?&Kpc5;R-20<9(H*kKOY3M5V2f6iM0jc-%~0-V_4TOBU7i z4E~%HBhoZR?_n1RhP<(x+Tz!EcbR`Yy0WjsoRefN2oDj?q70S5qlD+Q_#5IB#aXQg z7ZKJX3sXuPfCoXqLNA!E0ya5T?0>G&>+0nDT@Flp^M?KnguFnltkba*kiSh^2wacH z^=O>@T>VkAqvThU7juKql{7B8tH%C=E5C}oi(aL6U|1Q`i*{}D$vZCR*3?ZYSdeM{i6zhd#*$-*ibA9|eq+ha z{x6n%lR588#Os#NYxd>4n4+eoqD@m~%q0_tcC50QOtWpfP&3@$Pe0@S$lg%{#=sGb zarh z8p~cI<*QrHDaKJ`z#v%lv5`nTc@@5y!ZP@z+6Goapv2VvbIXVC$&Tn|-Z zE6ai6)Pf&6J=2j`+?a#2BU*!6#tvw5Y8b6eCBwakp+VcQd|T0Po>siw1M8zyI}cLL zujjN19RnDN;H5H%E{?-ntM=_`ZEN@@kCgY-1pGYNiSYbEgF?Fo zS{;sQ0x2ndFqAm8&Z7LbK|`Ttqu=5*Em=6LNLh!v|BA&O2b(=KL@UTBpA%6i>9Ht8 z7Nw8x+fb>UE(C@vVj_&XK-Di4nf_&q4IU3AR_J--5dZUZ+(%$%9`2>(cQz;FO`m)R zA9I=m#5{p%A|6J4OmSLYrHBJ!%Ls`Xuo!yMgpc1F%&sT?3r_mm&+@z3^Y=`~6_NCd zIAS|Yhl8GZ3w8CYc;{&Wayp}k-ENf~PNYIEtDg}#9+^wvZ^omDC2i3*lW@Y^1`jB; z2oV3BCh-qI`Nh?^`sw!+vHQPF5&un0^S_1g|AHt_Qnt{*5JB?(-8bvhC1`;!mq0v+ zlo%>zL4&upSJjkXm`^;o1?rq{k*t-ySrpY%s0!z5Unn=Aya=UKe#V91)xrp#EWFBK3>gLFU6 z{h+5sr9*ZJ9Zd-!2B3&Y50GZtdQR3&(k7N+6gTXL&yABLvnEpqbX%{_X*CBPi^b^u z;jQc@9}Tx*XBK!im}mYg6kP49AA{FJLG`L-rasdpDoos?uVj;=27I?{8URW3 zG?B8Q-?o9sHO(+kPcdZHojgCdzoMkht+Vq9{R8CXZDNAvrZSC%v;f2LS>X@%ORf*4{wv%%Q5%Oa0+LqQ=cmeP| zYmalE9v5~nc%jIn>cjMT~n01VE!Pwggxm)(DBF7V-i{ix=zc$lP}C9aS65BhKu?|I`x3o z(U0AzCZ_~8RzdJYI?jeyou>G##ZjW z;WG5(LUOJ2q6AN$jG%jk5R%WSxlj6e@4?7PF2@ocaOR6Bd1h{1RTr0y^II>JQbJoClJ|niF z`#{n@5@-NV8g6{P)E|U{06sdNKB;_{FwFcv`G(GkC#-VN5}}Axd!n;G|KsL4=d3{5 z>0#)Gg=r8p#7w8_PZ&l~ zKuWWMDOmTnx#?PTk%>nwV?neq+#K_!>73Vg?rAdhRXp{Ks z!n2FX0f>ez>)+h>E061~cW;-)kNX~%tzWi3d?N6{6##-rc&SY%!s;T#;b*!9j*?^S zMF#515+g=&Sz+BcPpa^meN6W5 zvV9Hq?kc|LVl5+M2n=RzjBZP9x&*cPZ1L#Vk}iz?Y=^N~I1MkiYSZ;2LFL3aC~QBj+n^T)Ws-4At%lgf_XmGIN^qh2yMK z(j}49^r+hDftZijYIeFjwUb4(dh;PRiNC8k@}S&w(?!` zpI&SdZrjggO354rv*U34n%k}jj584~1}=xSiFeiyC@&F##?8@i&=U=H)WF*oI{F9tvc`ky4Nx;rKP ze8kaP!>^|X4-Z23qfqYM0FR2sYH%nnedsI6oZ-rOTRZBDl^rY z3wFc);9r`R4H8^}dIzb1yL9+|H2JB04ENg5zzpIpMpKTA zHR%`}-HV6&*m!#RI9GF!n zkXrq8#c-HxjNhGClgq3*GMmt#>R?YU>BDI0(TLUDfSxc@8?%isMX&W5Hc!~Fpu;BpH)(%ehb^h?Eb)3sZqC5> z3ICaivnwk#Bw3Z$)DuU^0W6`4ScBm=*X*5(;E^nag(HkpeejX4A~pn|Ka54U^AV$Y z90M}tQ6xZ12K;e(VC`bh$MhqN=vF-(cDO&JJP0*u#1&t8)A=`a?=Ot99z7XwDJe`b z{au7~iO|XY(OKS1W|miGiI&iI2!Pn{I={xBdT51@D`V4b*qjnG$2gXPxaqGU2m>H@ z(*}r=mVQ!Xs8m>g-&u8Ac2J1kO^rftSwmT+cL*=rBGq`>%neQPSPd#^eHDDCxds>} zk3ny}y-6Wh0+Hgpd_5`pBN$bx_5;$R^`hdRYu~xe8$Hm98NZJFId=v$homVs7bI3Z z5g!juy#G?>|7Z@OgXUIJ}s5+TODo?61rJMI*dbG66-84F||835_wvpG%Z)4efdmNcQ^bh#dInJoXX>l zp8_Y?B4nVq!|er*W5B1;%UnC`Fg5!8@O)emgedeRb)b;I(LH?sWM|?sIhd$)1uu&M`+Nn5yw!;JUYE82)=H;m-S;< z0ktrM5SD6UV2P-hyVXjky~^U$4RM`mg1Vby&K(F9wbr3?Ls1Ibl6180j4Ks{rx4Nm{3^X&=MTT{+`aSRtak_6AYLb;*{W_B<;sv-bBg@?C^pe@NQoL&2YMbWM_mH0otA6L@z>6T26--G>(rLp7ENx)IEdr& zwff|7a5AJR5W#zVbj${TXwD-vr1VLShYNRrbD31>=!RJJWF#rUP+^!4XX@*JAd@Wo zz%fa`hXCDgp!L5suCXz5Fp|=<{cjV%|3Y_MRFp79ltbd8NiZ~?Q?_ujOlVwtv-$v0 zAj`*p2@+oviXa6UB}6}8aFmY^Q({7uGNkzQ@zSo~b!M6ccjif>y zu0HLN7P=ioaogwdyx}q3;c&Fca(^*i0Qj+_Cj}+vcxoD>2af`%1(tB4oUhaT(?0sB z>C@o5l(j|zx1~(Z`m5nxYkE}ydy?&tk3+?}p5pHxv?tgOWIsWlKC$;j z{_3-mzw%|OV%KDC$R;gZ&2oR3FI=TppRy*L{erK!ndAioG(ZMfO>mFtq+{lhLlrmn zr#^decA{s^XI%i{)e7400V(jb<=Gyk$)y6qLTNMwXDrY!&YxgLq;2f&WyZORRL5Ca z)rs4RDQ(7s+~zF&A$bIgp~$Lb21*3V18}DA^Bv%f<5s8nm(V58N5Yw%G;s0LR$p%8 z(FWc7$eI1t>pT+#H0#=VjAJebW`%Fwr3|#%x7fw}18$CZ{mrBB{;_+l=?`;_{>=4z zc!OR^(RNYgxxt{-QB1$A5Uaw}Qnl8xw)#oY_xSN&f%9g9OP4A%-1QN()NAz6N5vWk z3zD|4*1_}`K&U_6?F5Rs?Tep<#MPF}PIwc?~oL(%I6AaihJf97S@CmP0SH zrIY_E$e*X2AIongn9gsPU&{}UpY6vQM7ZWw!hzNmI5llL1CNlCnl{{N_U&(&of#lG zIii4ME}FkXLU;*9^npaIdPAX+pf{J{Bk(0E>SP5S?weOW5tx=71zpWc^rYpXxO{oo+c9KhV1 zd@UsnV`+s^`Bg>H^mugvIA$Vq{pKQDS%>t}mcIdE8Z2D~SR_)L0!}q(>v4feyz7P0 z8HLZAtu7WVQV!qBg)B~$-ZoE2>OU|2w>sUfd$zxPu5)O5p3jVaXdD)>NAEac_XN;X z>{4KKmk&g2FW!2*cwzha@<81@#w^?b*gt`N%8h-BgL#&3P}xz)js#vLnBFO%b>{1U zYb;y^0P-JA(b6AL>aXiRl=rR~Ke~c_W^Q6IKE(j!9}QEBEQ>eE(Quza0Eo`AT^**6 zjOa&mkF5B*UpmWj5kAYe&`h3)+jBQoO?SBAI~?IV9p+Ct7~Lh>TT8b(r%5gg7ngsg zc6t`i*O49Fl8+!rB?x=f!iaIO*OO4U;cC|I%hGfZrMM)Rz)$ieYJcHJ1jrK~V%;NR7@JqiL=UaWM705PxhrE!;i@M`G_#$I5|Ub?y9R_TeT1*=T?$nw74r61Ss$2 z;-e@&tOyui#HNLoKTqT@qel^gP`KkO7bJv36=wcN3EH&WLJuD}!c08}k$q_O$OkM2%-HDImt1Wb^>XCdHOwKE z=Oq)-Z0q0s$MP*BHRi-rk5YGz82J{gEjjj8tHJ`^ifIlbOA?_8W$ow);x=bflQ>Or zFSlyMqH-Ha(j6;XhyI{#+HtQNkSm}yYVBrn4$aHk4nOVO4*w-?7>!gidDV!XBvKhA z9FX*F8=q)MMLt$$X&|wVZc9@dbl|e)*tA<#ZAZfnTL(|#WYf#?>TsAP{#Itrj(~IN z*blPy2q_@$&K27&KQh~HsV0SE z(o*Hveyf$+5KTtssU8{6zHgos1p&{i3>X(p_R?*Xhy~zf7&hQV@pp&6?#R%$NhMGP zZ%}J6x#i$Vq0t|}aGH-WbC!=f1EmzL#-cRU1H~XX-N|3@t<%w#vR)ynJIpi5#g}Gn zZp)C4Rgyzq(Ho{TV$2a=20M}xRn#cmtX}d9IW!Brp5aNkKl&O8BO$3E6I=dFfmop- zH(-ZerP4BQCOMzw59R+umZ;on1Q+y-Vc*i&K?}!RDDreG8L=Ndw`3ujbHQ?e!=@|R zgJsBsBw#3TrSx0FVgzr)WJHgx|G=`rDx^s_`nn-gjw7D(ew?=rYj@w2tqXsV4yeR# zD)#-r8wiLsooTZRL%ji7(ga_R1j?<4Q+EdyX+PkO_i06Q>=%P1`ou6v$|^ZTNd9Q) z{4s)A|3ql05J&L1(O|4xSUn0f8#T#M=%iMA@L(aWT>HB{2FUq6)Mi~Olm4(eB0(9Q zzPq2AT^+RKnCntsrj=!f^n+0-4#J*#7M_?Llvo%;Oly`=HW4>j2{7jIRR)ZW!ja0_ z;nGD0UP;jM_}v~?2C)gWo2pPF=e5}OjvWet&5EX46ApLky-0#X=V!GSdTkf!L_gcy ze2TXoFXVZlJ~y=yq#<{waYc3Q{CQ+fB=JQn`>#H7{zeZsl+CR91LV9v6DbwN*47?v z?3x}`pbC&K_a(WF=0EYTWX(gEEQ|G}JFs!1qYDv?iF3l!7(;@|mozi{pRo^HjNUA8 zcsxt;;gJDDuL>*2pi3eK7ONR$P`5GavvG34Mr41PuqiH`JJ_Vq5Fr6)5#tXcT zyGidC{8D7j9^UY5>BN`O@&!=al^K{Yn5eayzGGQ-xIAA?0l_}F;9h1Dl-JTJt*#pHDIhoijIkpXVi_7c`FbC-Z1Y zP&J9vs86e2mKQjIoGAyP&K-Hzk*zZnJ69w~31Tl^-f?9)b?2pK9fV(TGtfJ6Y+1)d zRZN-xe1|!`3-#pv7R{o~3R<>G2BMo{pn8wjlseEj(oNjX28U=#0{Pfd%*i>uibe!X zIU=p@Xm9FLWx?*B6-uYk?K$eqav!TsduIPSu_@E4eN^zi53eC7R~A~dfgyWAblkKJ zQ7W}!MaGpUh8x@$(}pGYUaQSIVGI$zx4QjRDBkmyd@d6eLqfR~5$EZw^H;5m{lM-$ zab2<QAnm#7A3s}lX0Na_3g<+tUGN&&$b!Ix zBE%8^P;Q#pv^PSFM_PS06Q?Bkw+T<+*?#MG4Po>llaU;KbsrhTGV~lCmhXb$e}_~c z=kW>tZ2DZ%?ZYd}I;GbeaU)O-mU6Rv`DB;DC2@+R^kTtCp9&bi2H z{e!)<3m5$(_71sx`M?rh&@0xqGsh;%6C$U(ooqx%TKvX4+S{cL3)Yr#4%iirIOpeM zT%4YFf+I%G5~DcrZkq?_)=yX;g`3BPON-Xd`T2vYhph)rc1-dvjdU-(ZNiU)ne@Mp zcwZExN&-85?lAK+JQ2Pf7>WUT%Fr&0tk+3lt7&hjWh46-EjUG36{YSV$@qa9wFoVG z$nCZ1#zCfA7|S>8u5DYsV3Zi{kmOO`x;3Csy%Fs8NDl)spVwGwAlM1Tq7g>GmSCuLpn8mV_ z26xi>1`Rw1KG4VfoHgmjlk19WGgx3C)GVjj#kxkd@;*42{C;CQ$;JeRl6%Rq%wabm zz?@P=h+vtpcOzS+lwH1Su{NMhKzLRVP6?&3ZY)yY%Qvzcvcw?I49+A!G0XJSzwW|^ zgBSCY>7~br=0$aRYLI3r8RA@0eq+2wr}wN#bL2o8=}w1Yq9qiQeUZPigbf{m%l4Q2 zhzTkNMox5}Hc=p?^(DMSdji)bY`J+EbY#ypXz0VUT+tI&CJ5wjzi2IfPvG#V^j9Wa zuJ~)UW+`3^z&ez{y3j^6-x4-6yiK~MUdQZ8-(3#M#NW-E4%Orb(07nFAE~?)g><_EZA2!SAiN0tc?zcmn9p)Wbz?ekSjeygu=9 zjyYWEaq|QN(q_FT?qKV>CCUH+_pbgHHhDoyoMC_NU9-mZWY4WV1LYl)@LotwY)!tw zN{V~-PXn&$YDXoXxP1Up3QF$}QtwE))#&S8z%62BuGR~&*9Y0~QAxv(-LV(f;`rdQ*}_$6+qUgW+qP{Rm8!IDJG0WZRcTb(wrza7Zol{4)2Hu!-91LGJ@VHcd#$k| zR?Ha@GdwArj(vY z-~9a9t_AFcM@uoJ&lZ_kx+UQk{^P}UYVM<1S^c>qMB=;Hl+@A#&FD#Y;1*01GE{o? z96Hg#FK)voZ342F;@W_qqK!-LGoqcvlR0OgjqC`zy*mbQS5pK>W|^;Myy+SuTUF%F zo3dNB2FVRKoe|r1y)8os7X>-xt&vaaFZbOy^0dqP?tl1)qT-%zrw@c1>Yov?u_?LFubD#lvuY8UTM z6d6;wq}`2MinlX;)vJFbf-i`3>Bwr-2#Sgnc`3CWgYb^J?Ti8U9^iSptthC1VVWyF z>BTTYIUFZjbj@gFgC0t{T<8fOjDz}J9>&i zz*+S;BGbb$De0g?To%V>-37S8jDJwh@Ojc^q4#jJEf zOZ;nt#S;ymJ%pN4T4ofJ_z6~-?t7->9FO$e1vTqfjoW>~?9n&IC~r9vy|bx3x}&@K zdkh($Ou9_^pGlT|v!sjnmK~C6Qracl2mzL6SFMpNPRiwyCPFe#X@@mGO@r9EndVp- zUv(yVKf=cQAke#%5*FJs4M1iWr+QM5C(BZMP9Y4J_ljFGA7G!j%}6iKn9Pp1Uc^;Y zb*sv=S&T;1S_&sCWK66sSzhS$WpupzNzdpBS9wT}Y?cPHfM<`)Xsa^Yi(KJkcXd^Y zI*+M36Ka-{7+Zc-hJskJ9&a3DyQj=uiEfT^y~}2j?qjN+_P63dF>?9LPDEAiz0taf zj;(q5aVdQxxj2KiWy`Y1X0w}cbg9cV(i_iH=v=MU_nBpvpS}x=04tk)I@ca*nP2~! ztc;UBux*y-ah!E%Vx6(cQ*5MZc(${Msq56-E$sUPYI1T|H1i&OPw2+ro7`qsjzs(? z;d%Sh*A1zufmo5hi-&tp*>*Mn%0TD=G}-?`YUY0c+>?}76=&s9bV`~V2vI7`6{ti+ zX!jL8d$G4bYr+?(`-U?tAhBp56N)20qUpOvVIm900kbE=bGA56I0=93MjE9`Pp*)g zT{gNdjEpSiCqZbua z4U~v>Q5_w@2}TXaQ-)w~1*leHmTCPIiVP&N?0n8TLt`b=1anea$*wUn*x>T&B2K{ZPT=|(3UAQ-H6=X`P*c+pi_q_v$X9rEH0-e z+X~+E<}Fagpmm>w5Olr$@*IV|K--yXSz94L_s&h1EVQ_B-ikRSJ_}GpKEUGN^a2s% zGI}Y9nuq!mV{*^Q3GCzJq7mq~ls|}tecYk*YywF|n-G&QR)gzC0uf#~@Wc{#X(Vig zgiv`}0$?s~lCAI%t7*1GfH`C^{g^TC_Dz>lV_Tn#Xm9KUJOr|E2U33KJk?YeeAj+_ zW@3%eTCKck^$@k+Fsq1HI3TSug`?JUq0)y zPIe?t#5T#~KLXF+;rgD&a^Rw?pTiHyIHS|gs91=3kHi)BKEQEJqd=NXd=M&BJMa%- zLMXt%+Am-J)RFw-pa1g#|DOv_J?u^BRg@vW0RO2P2^+=zyF}i9=EBx%Z8fz3M)n<0 z#riic`p*|BIosLW|Idb~M=Ae@Dt|_?!%mwX29)ntXOm|c>~?0>pHI*G)IY!}tkh) zAo0FVMSGq^Ri1Xx0VRAKnJ87VO|o7b$u5;qDKxCNgBQ+3$P&8uYG`#4kWkDKUm!IcZ2luz*sNoBr* zumW4C?Pc&TGXTRQ9;>;#++ZHhA&oaU33YCtN4BwyYMQF#x4vW?KX8Ng#YAQuK?hkI zUX(LUnL<`bkWtQmC=M-aT7;m9FmDfceb;UXnkD?6q6Hkrbpi&7g-&+NWuPu!kb4j0 z!Kf{q`B0xq%q15mc?67%k3d~4wv&T+X>><0Ko>i2q2h{Tq+XcC$iIt37jlMa7#<{D z-cVM*M~GC-EAYy;CocR=?0JO3Hw;fjkFbgW+u}Q(#V8C*RA72Ma7oOZ+mUxxTt42rYANELrg&Drv$(7;)C_OX++VtX{@nd= zA=Y&xz}>e8EZqNk_ay+m_2vL=zQ6Fd|E7M5>)vjW7Yqyx8O+rcOw|>PO%$wZ>un}~ zPq}$KQ&|*DSFZalK61RnxwB%RPFNJ|I#KyOekQSS2I)P1)L+>g3Ju0$EMPJH=l(rX+8(Tr_rhN zwo;t>fJdg+z4!n1^ZLy08r_}$&<0x(#)18E!gF(+eRKTmqvPoYw}+U!Caym`NCn%i z)-=z!zpo7z_>sn1y+v;LVx&tM)?cI46(X%fft~<`dl^2Pyu=5gIS8Lg@h-m#f{Q5m zg%^zZqzDH=wL^EStniS0RHeVZ#|BR2iX?h)Isv#*DpmD2=|F|#eT@Xc$SEehKq}W= z^dR+iaK3M1U79d&@3bE?EomD$_zsOqV-5ds^PYm+HE@|vG#l2`ax7ZMw)K1C9nqz%vRB)9!9P0vE^$)%Nz-KEeA{yD)dC0I;r31m-gCLvJEn?Ugi|A9$rhf_hXwe+ z#M#GRSvIws23*S?AnzDmxH`;~ru$$nCn>(vQ`C^I^{l17p<(*?Wu-sE{xVDD15DsK zOnph`V!$@>{vKl3*`ed(9&P;^C2{%rR_3c8oK{9t2iJlUQa@3zn#Rhuyr3aKy~yDS z2~APAILEn*g;TLh=IOqt-bWkFV4raf6bYS3V@$J_w|T~(F4)`~kEc0&dh8pj;N~zuqckJ1Z00|Nb^bDQzkttD$_@vKjZ+K@^f;K_WC-B0*h)H!gsb z5v(NgXZq#!U(LwW^;xb>ShGcUxfL^e-_hH9Z8utCXYL$1y{0tKzXNAl9J@6`+dOZl zre%6gc0PI?a&5N0p6c;+e`N^c!ZK``i{jNzHdX8|X(5_0qpB)<(hdlhQqWGY5=hTy zQNkihP2NDKseQ?8Dm3Vg)b{^w^qhp3rosM|Ec`Wm+@M za@E0NcI+3|kK?km1%*DfnekJMe)75pNX+ErX@irW>eIEM;ryT7TS+H8^#|{ER%%J& z{SAwqu-#^|^+Qgk>@bhPr&uwi4rJ|QIf=im(_MA+-)d5v_P&59rp>&@m~Fb@e9HM| zxAWEqRI>cv=pcrVSCJCp#Qsg&}k)l3{uYs_k?6)(jfw z={Ie4PEKKj8+gn&XkkJ{8ekTB=o3ivUNvXDzZ$!=_Uw&(Y$L4NoL6N_h;@3wZ=?v$ zgL|ZPEt=Sr(WrbUX!MT9G{-o35A{+T_!Z__H2pDQT-+dad<2RZ1JsLt z0!9EJ+j9k1O-VKR^GW^7Wh_h)gfH5me^ZwcC8Rwg0edw{2w2T63~*~6T(mb2%Ey6( zgVSM*&0S@@Q*@+Wo-Z^o-_^xpZ!68R0iFY=nzg46X$CST76r{q^F0hWSDP7Tp1Tp90q%Uyr(WoY9&*a3vu#CF0LhU z7L^D0)xfYUX-1&pkHe=U6)vIQrORk5+XwczRhw8%||dnhP^h ze(L|?8WMmt#90re?Gu+ZepHK;i1Rb6(@%FSp7z&w%7<;{7d}w)JgtLfsk6NP-@DqN z?dAo~f75w1-M9Xp35ar+p#NpqpbF4}v2$cH{)?ylHz%K^@~X5ditw?Q5=nboBlHv6 zB0-Q}70Q-ELNiyshr|LHq_5p>Srx~xmKzXt>dl)L`xT}g?;XA=WL;#z6B;k4jkq_s zH8;PWyR~~BK7PL6(*K}LWxO+Lg*I3-+YyKy5W?iExfa8WF^sLn8HB=COH+^7VZ>fE zTIxxl0NYs_NRB+maIL`>N%y!ISxUK1069+W!to|YBC0nXY&awdoY$tSCnjt#Mumms zp*9^UFD0S6sDqb%f?+ha$N*jB81R@r*&U44y61!u)xJIM72h*nJ0Hm+Sut2QkyRU8}9wa|yv_o_?{)z<8FLq)-kN!VtZjl}-* zfVS`S4iW<6QfEAvDq0ceTE1!*j;aAA6uR?PF1udymqSEijqtO?(qW=MeCCkvn84Mw zrc+6HP;>SWDjyI@v~tC`0t%x#1^LH11g}WlT7FFkk?fM7IurWYzIclQ)a}J>pE6Ci zn9)Rcn9(T2oh$_q55gb{v;(I<91WeFDtPO}iGmZM^&GBH!Sx)r;i2C^Z(yfWr)}S( zzIgX41=0Ztx9ola?^DJmBnR`rB65Hr0C~^VqiL+=wn3|9hoMWGaWS_(s#fV5axno&374&H~ zAv6O=-U17PACiix&m+1=y#}IsK?=SI=GnZeUKB?XQ6MbaT8~J8KF&dpsQE1nq*K^7 zVagbr$U-16o4}8i*6^WA#68C(2$550V3pKOC-Xb5EV6Sf*(5O)UNy*NRILygv+I#o zhXvI}WJGSeyB?%JGOv!q*UW41Y~rnFHXVo6<8X=JsK~f4FIOGa@4&Q*A}PGni+Ws? z+2kKI&iEm|y}5c%eZ0A1J9*So-m=-p^rAm19WQ#Ww1!{JLdn`?5sg|(Ldla3GHpHH zP$2Cf)wHMk;qG+Sh^fIk>2k&RVBWFTb?;!&Uw-m`2CsTa(eJUSbYK?IoQb*jlX`CC zvj1>9@{B4>mTpzehYYBCOup}<!`C*5su^ffdWeDHKUb(BUXs?;0E`T(#J%GFcVB-QtUDxAYYefP^w{ z_MzKTjC1Bm7C~sW*T0%>bfne#>UurHZ874lr1pget+HL{&kGI)2eD#?X)!~B^orDUXyh4nZ3VkD}cuV8?+#^G4PYO9t-G_x9Ce^34T)^8E#kJ$WCn-u{d|lBok;Mu3xB1Y%l!= z7hVJDg#3iIfXmH4A%I&I0Lua~_IdiLmtNioD3TL*z<~|!;_=>d1z--6>k)=037d*u z>#|*B&)+;yz>O+7KdxKAZ(LHn_3&I7w`MqrBtyiZ%iqML|6mTc2>|BcZW>^_^a1i7 zUxT|0f@xsrZ)b+-VNF~@sxopF_KCph?kTqN3An~QfZy|a#CfiM)~VN+FL9$_FT&C)QH87=$r~sxL+_rYAP%(*eX@XUq9;Gv@*8ghqkgjQ_91y^|rVk&3 zBb9mx0nCm`-`m1JC^*?i`!WF+KF=Sfh>vTq;~Z8^XT~Wd4Zb z|Kn=?_s=N+c-YOV0)Pk3YS?bDym;OlhKZF_IzDW}v~2?lR0U0JpO8G_%Glb#$yyMJ zBTgYN(RIpIpH*CwKU?Jrvbg6#lrIP&i|b^g!|a?m_tVS9u2a`*)}`0SV>h4MS8d^W zek}BOjK0Wd4P12C0f(@ZZ@LG_Pa8e(E!O&9BRHABs`Mp>RB#tTl*e2uY5j=#)YvPB zR9h_?*+yBXTr{zvfmZTo9Xm+<;Men31W+`*O zBI@DA5geH&2%HDwBV+Kyx^*71U^ht}3$ad>eKuLTkhqniM^NW#t()jISld!*vXyJO zwBcP3gDQJw&(b(WhAm`9CGX#BXS8EWt8+uN45X_^f$3rJfEKM6R$F#jXwhZ0v8~(8 zt?)G4R&&sJ70Yc~1T#2b49VaK2J^xhLgBpn(`lB4B{BvPq_n~+e#wEO z`~;M5LdxO7`q`6ep?yqo>b;Z_406tLGuil2$AM7F_UVQdm$Y6&7>tn$&NwIJCvvk6 zszc43U9)jWbGu@h#kb%Xmw7iNzZel&G?S@-sG3`G%Zf&})N>>)f6kChO5F5F%V%!w zsENZZ#5~TE`@dw4r{$~T1^pO67Cby2XPShI^o`Y=xbcS@C4M(UG(F(?xCE@fi9!E?EB}>e z`!@lz&HsfeMdgi9`2;?=9e&`Rzmb1Mgq46Hv#!0?mP+N4x=8Iz-Q@oY;OoIR$qW)j za)4*%vfJojZ`a$z&-pUxaF!d43*K&?HjTD~e1vc&l|#oNFpE*$j9J)g#W1l)L1clJWDaING`67r=HOR29UK9KmCtHH z^S2~2Yx=x)qIt_cFj=B|yWb}dZ>Vt9$`VAGJv;cUB|uCO_S(CnyV99fC3d+f9-dhR zJmBT_9Bt4*Y)@bpwua?6T@)dMTvXLR>4tD8MF*Z}NI_1_?GH-E(heK|s!FAwckh2pWhTQrs1{_CX=#h;5>a8sEc0 zQaqjnew^_EBfb!J_KoVo{B7uwJ}NO-nU%Dg-fI{I?T2fBEXwGp&Qho8}yP<%brs?*`T%oWJ zZBo2B+lIYVKRmHaL-0aS$7a$m5-4=3F;xL6O@u{Bjj>@f15*Z*3T$gdhVsLig>c~* zwgV=hO%R(Pq{hARzVu|)s@*I11m=lIaI#;Ckg~||yFgdh=q{NT=wB^?P<4NYQ@dWh zUB~Srf!=@`!7?9%SW_K|xP$onv=*8m)>S=?mo-(9)@jmZaWr;7i6jt9aahq+JJvLN z1q#k;{@zY$`X(i1YTDQ#4n)FsLr|%82+9C4Cc+rE>ngZCo8Q@DK9zj7j3ky{DiQxR zDHP27@UFqMH&twB0n zkp^5;V=}1$N}Tdbwx*n8Qg@$5ef9>)C6Os67-r1&9Ax$=+f602_fwKA*I zQ55w4BL7ylF$~KNu>7>T0h`GLyr<%O!a1Fiqhq zA9%(O#}x@n`OFyJn{J-Tp9%#XUXlboj~Ii3JwksQA)Q-)DV>IypmI(RsplTBAQA3X zJpy|d%_}*w2qH7j5mdU94)rOYesxyLgFg~7uV_589~mxg@%K`Lr*Mwo-PvZlF}hj# zidSuPPvp%fj8AhMUv8+fq{Z z2w`?9F`G`ke{0%1qf`Yff?MF&tim>BxyG@-v+r+${@{#y0hrTzvZ^GQ%5EmDZlx~b z$&4kB;o?hDj#^s>sC+dEtZgjAQIqB5DZDxjyh1t{N|qhh|w| z^Rz0lYC*56QX%-2M^-L0LoDS>a^S$U4K{MAiveBc9T7usRJ`RYsxm(Fz(Iv4SDqXjXLB7bIK7LRDzo zLOZVXDgUpRCz~hk>>*4enq38W@9$MoFSseHi!%W3$RmcKbU+|Vb&N2 z+k`T?Y;k_sQhw-^o)Y+u=ivrJh9@R12l2ff#1AqgJCXyxm^c?9@Od`&EjDJSLgr+1 zsrQw>tRP2$zl-@r4(jQWfS4;b4man<_|6JyoKyI5r5YPQREKT7^I=RU;hfcH{V7)P z=8)tytxInjU+5Vz%b#497|3k8aw=bGs<-`?;hc+wA3E0yZsMBToUX5jG)4nmr&@0y z#fZW13m$JYEB-inqAmrB{D%+^;dcYEMM5~vDz@lKNb4O2heYqjBG=woEFidWVe;NN zUT#n?Qv?)H)#r)YdLvA;`0O+2HtqmfS8=b-GNA!IsXavqR7u!8B=LqJFrz zdY7=_Mqx*nuZMng-Ir(l{8AWCik^^B6ZyhxkIqsdzeUs=38UEFGdn%+2yXP*~J#~pJ)Zp zpTqMb9?iuXoPgP#kJfT8j%2kS>er0MTCkk$ zEaSSa2%^4;OVpAF8P5MEvmVIYEo9s-JRA_&(1MQ$l>*8MoX1Lz}E1 zLdhFgxw)DhOn5RsG}p)Iec|rmfu3y{sWmr%9K*4J#-T=oS=(uua0tokqC_rzfiW%N z(*MaLD~2dEn<8;n$N^Pgtrp1Wq3Oeka?Nk7xH&YL&KdiyKc6q0TP3nj(Bou}T?=%=h3y}o|@0voNs{NtO@wYGb$_yaYIpZc)=(Rdnv*mgax zgZ7N$I3o*CYYv2pabdoa0W_)6CHwIKALy&5SS;Ey!%Dp7`&katB5RK*FxvemdaBX< zFCAxV=j|1Bp_txhyIJKA92J;b^nsQz~hA%Hr{5n^dD69cAVE`^|r{ zwH-d054Uaw#rkU=WhW9O?xZRrY)!?%H2$tE$F^yQ)xoAEpm1*O|a)+O~`)bQ!?+8^bK23uIq z84Q!t2R|LO&G;zv5rS+jzOqZ6zWpUj`-d{I5dj4TLDgO`C`LoIVH$Rv>zy=2a3**0~V1{Q-}?yN}OZ z8()$!7zSW?f_VwOj$RyzpXxmXF)9;hL{kOJ8@VC1FgJPlL*Z8z($-LtNQ8&ZeH6mm z2_l_Fq9&BAT0C?~-JlJYtUHiS#@#F^nT1jtlAeg&r843J++|^7fCPU`7e!0?03BHG zRfJr?|1+oehhq&Cb?#mPY?lk*G5$8i^bbfDwXil3wR5yF_?L4Y{*7}Cl4G<5;L zJpupcvx}nr8L$F4w=+Ni+TTVr{5d-b+y9lHRro*jbi0G4w%}|qP;Vj{MRXXz&sqW8 zETM|yF(E}tHroi5HKXi)McioGC;v_#DxHAf4~|<}udg9})|T?5L>)IB>uKJv8PyZJV}mw=CTb>6}o7K@RKt$-Ujt0^>x*}%P zLRZc_Ri9mC5_A2Ma?{=eepbi)96OA%#rBU8ao2tdIopM6@>&x)DhP_5ew)gIq;{e~ z)aIdUM+iQ=^qS_22kx9rPuLBXnWO&ZiEk^SV$w!FBWM_qQwMdcL9m;?3#vO9InaXO z4dR`evj0Y885t<0PB&t=b@io*_!YW>^32XY-aI^LYNKl%a{P?;RwKf{-E6*s`owrL8Jpo8SNZ{tAD7&{p-?4g#YYgENo01{};87l0SkK zx&fy9XN=3=9{PWLlYo zGVAi0DXa!_U-h@AFZiTjkk?0rv-3%1l8^h}If0J~YzqtvB!`PNkyd2g@NRj`AX5mn zo@ycHV&&8EfNE8Ki(XjIL5Q$Jk*aZ`24>FQa~C*>Zfq@bePAEjI%9=uBx3kF)p3pL zmlo~$5Pf(1mRFA?eVkN{s`Oj4@JvY9+^Ymh)9%E@CYyhFOV>CJ-yn_FjBV`7V+qVe zp5a|sBoVLP>u;tRbK5Gp3^*4hKoImd)BMNTC;^T}!NtVIgygUF*8j$zc`NEz0p_;z zB&?feoG%Ti8u2M=v91_L*issT4yKf0grZptzZ$!VH`|&SFl!z8-iR=S{uzC!u#>ingRkp-*5Y6c3?cUP-!=r&`?eVIopH1joy6{}Rcqh~E z9>Xi)l;nlLDLBc8Mo4F%Krn>!TapJy4fzyC*$YQngB#`oy+QP(%3W7%5KGNrnB*OF z@cSfc%SMG~n-JI|K?JE#XAZ@46$kE!7lA0HO7e>a$xPlbazcv8;*sGNPm!@tZ1{+< zVjJV@%>&*@Ccf1BjUj|=iIkE3jo@-B$di~xoY;+v;S;(qJ1-}qnZI+VqC&b15~~mO zy#t!(k-amby>>s57%cA)5QiA96;8Q&L7Wa@aGrsCzw%E9cMi_DI8*ZvUv8Lk=CmUj zqG<5q;psN+H^-jN3k0nO9K4@jWeW^IfcGTo@9&^i$U;6iu>#vA5hz6&q!Zp_@)&;YHANWuG^m+?1otn9V z=9lOn=NLOEF{ziEm{c2Qd_&w>9m|=XefTuImO=wRMO*Fz^FVK|4a<1QTv!Yr{7Y8o z&r@g$^(YSvsIZs@WQDN*g=H#R7+E>}B>?z0x1~~fOc7fQg{KnJqEG-M@+&Zy;SP5X z5Q-7#ct6P&xL;@ptzc40fkF!R1A~xg0mt(fUx5z-Y*md|Wj|!Kec+C9wLNUbq}W+n z5q==RfFt(zmi5PMC)=DfcHfUT=pR6?*3O12eUVWh#q;(hu=T0+j4`0lZp=qL`B5~y zwbzu%)-*;VeVr^9N;QNpbwXwM4fLor+aM&!RMXbF?iFem^NG{IdN5nN1Pwg$R3uPFzMGy)nxYf%I{07CeJog-nvFE zo^qn3$HDixeX9lKMpi%)jZvTjRKNTAbx<*Ibaxs&w$WcSnwn}i*jgwM2Xoj6>(`l@pg*?w2IGAUa{Ec8@Iq$K>Yr@2 zuwySr@W@A1SFOi}q5B%M14L~X)J>G8YyV#CcBZHvqy0RsR9tg^DqUu%p)JtdQRKl&g=!WnvZZbg+_a=x#f$5NrY;=K`T1FXHTYm7~oi2T;Vok8S zZsM$`!|sNCqVN6``~F($3>|kz#7CQL;Hf(=EC)f*2{3$~>|rCk_?4 zG+UJP5hdle*%pO_C74gajKJ))+~F^oMM0nV z%azLE86~}qv}1bTfGrI0h{b5pY@udB4%aRbhQ_6Sroz?G?xvc%-gBh}f&@Ej6;Fh% zxyN`wc;cTsk%2yDXx5%sf+xLKI{%;%aE@rfrCAuPTc_a)9Z4pNcuRsyAh(#SjWOn2}rL^sa{-v)b+^LKtaX=%N3 z2?rWRcYlIKx^pm#8SA{it%sx%tNV<3Lmq>s@+;skT{#1UT|)l2WBtaRILXH=>MWt^ zfmr(m@fi4BAv1OUKz$nQNp`kilIcms`-B^CP}Jv-AtH$D5CQI1X6UEJlBX5Ws?6XY1es~`8wHoS$5z2+4+qA z#cdlE7B^MpniN(hb=@CvT*66p@Ea^`QIZ%7TTGd|bU?5MqnGwz3Ts1uY*u1;Lofvs zl{Bm;13h@XVG}`A(T*3ktG+@|r2)BP-MRQ~8ApMkgiv?x!!9Ih_Ln`CCz}>jP>bZE z?PYSVqs!UKr|{s_YZZ%Zh3g6+?->VayFRuX59aFJ=P-W_2Glcgf4V^IL_;PDLuK_I1}vrMIRl@LO8HXohZLC?H_r zCMY1}S}+}jk&=zFY4#M0*=e&Wj>KCm`m-6ir4IH7Yr6G+$7R1{ggRaCg(p;rBQh~z zg1&;;`RF+0&QnjJoOM1!f}Trkiqp$tN|~fM*U6}&5aX20?!^0tfGxIuvnfKCv1^d6 zZa6K3&Nk!pS-V=#Op1;HUw_|Yhc$Cn^fCt7%k;m9LZFn{a7#gf@rAKIQ2Esmg$g=a z=)VEG4(oNaY_H|Y3VG6!kS9Mbax1u^eM7rgdLSJO3a^|Tv`im1w@e^&1fP>Kak?Ns zbPH&e+-?c#kcnw5)Vi8E2uL2#w_<&J1(hB;bO@b;)$@yf4?P7)f{kGBRYr3;q(oZ? zENMB}%rs3@7{quk3r72^R_E_BbcwpKNe}x0?@W^7B8yvFy2+n)RS~qQ!sAYDdu%@k zN89ay;%@deqn>qXRGmCUujSSIeQQ8%yYmxcTm{#4MO9$0d+C~f((j;$*I@uS{9QRXj?LTi{7bx4itrJr|Ua(#Xc&{ zP^1)>4w8?{HF-wRX4opZ>^#xuM9rLz#&E`GN^T_&;1FKKuuSC?*mnKwbh8F9xj8+4 z4<*zT2Gl3dMe zet%!roHHw8$9;RNSgz2$z)jVm7}e@(fH>PHmSsn99+$AE`uf4nVSg( zRNuYLff#3e(D#hhYa>&Tn{6b+F-s^=H~WP^;7ojNW;52xNxl%(XpPL}jfo^sB8oGk zS`~^~EAwTpF{_GD+G;S4$C~v)Iohi++DJCxT&Im_?>AlSKH8QP zuJ4eT1sF!vHC}j>^}MoyWDh$1z9Orv=7Dye)DKvF{US&8)nJcE!ElDat4p@zn&_*z zUmewsoiQ~;AGaxLhXNA95jK65>JEa9+m{|hy!0ykU9`Xposh=n05>^4__M-OUa3T zimN+F3mbaTqdIv3O96aKrBEn|0=bm|^dyY=!Lq&Y#hzqo^TEt{AlN_BdX>zV$E-2X zwA{#T1T(SC+1Xaky>60CMhQuJSDe++;C`DukQaKM@>>ndMQ13QeY$e%B+8c*BUcB| zJV+acxO7GpWyxj^Yt8nxRT0dCl4XIIoihIrN|EV=GXIhDrMN0D2lG0O$TcPqUUw*) z=pmh$Fxu7|7#J$s_u3><`QQ~rTh!OYHN!v7{=9|aHZxzl)1h@|D$390!#VLiPL24p z;qJzbFNkaO0|hUj_rvB5`_n*AaxCHv988)ms&`p}&@;`-JJA`w-sp$l>Qp30WP-5x zv}HI~N!T4jZI^fhiQ-#q`Vb6F<{;DLHj>jFDtGvz`868;5MRrOT;Ygiyqn+ntvk3z z$5?IPEeCU3%tkgz8Hu+^Vp%j@+&#-}Eo20T+yOvbwxn&0AVtZ5TfC1gQz=fl2ok*D zQ&54I|HYeSERnppd|qM+B<~i>HYcJpOrUEfPo)M1wt9ju2Ehbj43n4L zW1WzaAWdcU5!p*6I`{`&KutjZq}4t54%A`1X(X8`MOT}J4te|a(gTgDOZ|FZN4`7;2X9uoGSG`;s?_}-j<{P-KU)dYhm7#&A*YL*}NF#IGv zt)#5W*tmp=F@iHq)wq~_Xo4i+G@1X$O|Cu3C&TRtE$VtiL;1`u*g7(u3l}eI=d;N zCF|5>k#1K%fqPvK4p`px;%~(;ZD6vA4<0|<+=Ct*U=054ELPCB!`=9oreb+)NMnn75i`{Rlz(6 z?=;<|h`|IlMO6w~A02V_d1v~5toVz5ge!v-X7N&0bx$l}^noZKjC zX?Gh<4hYpOBpA!Dw@NHdd_i#I916{ z2*XzL;@tM?y&`Wua&`cj9vC$er=PBrFzo*OUXTNOC?~d{?NC=37u$v5{4dbRWek5C zBMf3TQH46j=x^Bdsmu;jzr4q1MKXIc@(Pn+Jmwtqn%x4)G08q?Is29MNU(BVeWY-i zIyk+H4!fJ$;wxV^pGjzsV?4gYip1tKNRpDm@@LQe&IXyub}nc(p2ivy8SN5om)Vmi z@Et6@@5xNVbDT7U_b?kh>b3962TavDU=VQqVaeY~myngqT-HZIdz2+uG8AkvZoE_# z?dN}s*&5^9tG&qZpdbj=KL=|%2w!g)5q`VL&~p_MT9mPwABQfRt3E`b7Pf~t`aM{Y z2xS*~{E;CFp5Z23<^v!V1R_h>-&&luFPa@cEUd=b?N_IIMaG&lLwgKAeY?y4&zt+l zWR)ep5Ul}F^ETqYj&T3ML@66M{SStkRjOL3;VdF{!uGR_vqVfA=D`vgFvAEMX$*(^ z<$gg!OBF!V$1xg_WS;d$6JiIH$^_PvyFT!Y8h#6_PvB7{k|)VYhgl;QNd)Q)fEoL$Acr&wjh<8x<$X(Jj~ zDa;@6Elwwj>3S`XXmduUL+M9FOkiKbur#d9} z@|?Uu>RbjTM>Y54wtQkvW=?m)aiZ!+h)G_+r&rv`TYAu>-VT|m5^6{E{Z&7HSCf%G zUsLkba%x%!8K2$QFhv*JL4d4#bC8o z)X_;PnH{gEyo8vU+2DIq#cf|KpOG2s*(OM0TGBLCr(iTza~Qu6%W3=VZ8CaKCE88l!X2@?02rMx?SQ1v71uHx|oQQ9-6-PoNTffnpz%D6Tu?Ed>(v^X=#qQB^1NmWw z=FRsoHeho^2l|!R&-74|u$)l^{py+Ju-Wo<58hCF=eBxbxrgd9EyXqpo0Em|TE_XaRH(2bU?G&!O5#M@x;IEsa@ke%suw0Y% zm4NvW!R2-WqjSPHreNN*NxFOT{q%O!IDKrk*onTOh9+?OP>0)LKV_-gEHy}A-n=x_ zUzSvI57o{Of6t2~ijcRib0PBI+=ag}`5w}44DYkZW(90e`dH^24pkVsgr{X!K6T?g zX0(KrH(*#K+h|MU<>#yw@S5$nyrfyQOK(=E;ZqxLJl#Os3lV3{O=+Xbb-5f}J?yZ? ztTe}6g9>W7giZZSi>|eui9E+&R5SZc%7-&hTxzYXVZK?o>$W0!gcTH(prp)8oCRm? z#@{3Rt#~&E>?5!pj2EQosk~(z{;W)7we?_9Gt6L6{*3W9Jncru&adNJbK8tV3?qE| zg>|%Tl)&?^d$V!tg`JYE%Rz?Q2Y*{0GtT44BpWz5G`;QADQ#Id8&`SW(9ccNEyvUP zN^G~+32D>uhe|qJfJpO)y!+Fbl@$+5Ex6`WMkCa{VB*^Z)?pcpjn{CRrR<8bU0vMw z1Oe#pxJSrL`yINWN+ZKrC+npfNpt6d?2DJ+4IF|HN-vskbm*7)XZ!6GdV&;Hw0T66 z8tSHP<5aCWgXhCY`PVuO$?`%Hw4^R$OSOS7Pq@MpeNO zCCn&xdcg+anmQ zwT6mnlU9LpM=*~D3kJaFqRZFwo>t%vD*f`d+t@FzC@HIUXfe(-T895UV>vwp75|H>cWN`8)U5=0avujw<@)f z?-5I5%U?Ct`vnxrrSS^5@#4A5x$)X$W;qEjcRwM4PWQPAk>6(l&vV_(g!0zp-NCD?FGrI9h*ge9TefYbDz=S^ZQHhO+qP}nwr$(CQ?Z@Y&FQ{(bf5FONB8@YG4g9C zWAF9tJ=a=u&b45>%e~Tn!;$ShA0kw*&&zaDBymVZ76SvCa(()+R3gwhMxZSeuwYjd zb852NmRDBNi1&N8!#k2i3o|2#IMJ_MG5SKhT+O9#?8}R~xg!${C5q zEub;=uK(Hl;^^eLwvhg3(6;KaYucnCifa|QOO?JE(eh5&xI6TFC*P`|##r$UkQ$}( zGy1B*+07(ec0CxE>4P4%tB0du-=6E)?*fK_CzEwL=-@`R zqC)PzlCDCz%CU&B5oJpY3lt{GsiN^oD7omAWulp@C01*){2}jZhwZl%i-8~+jevqZ z!ax_mYv7IB{PjVG99<#t1|>lguNKi^@j! z7iJ?@4-!+@r;PEx1e^Uielw(YrH`H%lM{{F#~<8_TLg|Th}bV1ksZ0Tl0!PD<`lY; zw>WDsRu{~Y7R<_y&M%x>a79Mx_3bgRnX9iWS9UhftjQ7bI!e_RA7mN@6@W8t;5t*s zhJAP-9hp3%SKWab;q*5CGd=qcxQl*2y>s-1@eRJ(G=HII{|)E=QEvYe!v8l&*D^{{ z><2Gwptj*>UOtf#E;cXkc_e!>FfS@1gTZc!+$WKuaG%KTAKYZi^1{p^!IhUi}?ApU3>71S(R|p?f#k>XgH(2pwsg7_+^l z{|u!i zVS2yhQT&Zvq55BDb~lBpcl)$uYC`73}8L&M>aACWN-l!P#Pv!1G;7l}Gz)!!>q!kqAQNpW*O zv!zVlORiR#d}DgcN9eZu=+vhyl6EawfDL1qKX`!#r#&)uH2sfl z)_=XupP4UztYdHJ;P53Dvj1<^MEp82(7*ZL91x3=$b6-G$zQ1+#sBla{qvgge_x+K z;fqo5-(-E3(qGO{UQ`!fGB2oc0gz`uJf|E5#D$i?Yj_cnqz8VG(LIp4NH%dX@54NyNvew?C!45Z#4nStRp1mDg7OOwm{O12emzs zg?Tx$Gka*$3K6#5C3zzs_CVCAbxxksTWfkT7&zQ6kgratZnHu=k8WDgy%iVkN*U+P zaVw_;U5j^nD=_SwUQScf^c^*P5|fg~)mHPmp2f2@XOLqPmui;A^SUJ6oxszv7z7

4bhfO{gaS73{pDLtD{6a=4^51*}!QW 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

HdM#wS6y>|2&!^8taI^7k`*DL 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∓Oh+Ca`^K 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%0D*17WD99Tz0rMcp`-MkZ% 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

QPMj(=owiM&!`yb8B?B- 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Handler.class b/sponge/org/spongepowered/asm/lib/Handler.class new file mode 100644 index 0000000000000000000000000000000000000000..b520dff3fedf61be7cc4756f35b31220e5cbe266 GIT binary patch literal 1177 zcma)6OHUI~6#i~I(tz_&Ls|{}4B?7fwS3EUbPS-Q4TmwPBiyWUB=}@|dt20v>S$~F zj_Qb@U33`Np^JU|_Z_dow%CkbW9 zGP0_%iSEzx_!R9S=^Vvr!g@0R2V{C!h)NzxX3vR2m?9d+7F4!w7#oPE(qGY2N1Slq z28O1{4wIc!Qes!rTL?!-YS7Z+GZa%}$~!!ch5A2WIi~i%M^7viQ{JLo)VflGX{77u zt6^csovLHFhRY2E7B(?@PD^MaAfbsqbR@x89b*zC>qtsKSt$wPf|{sdBs2ln|6DnT zIN>?E(ha))O>|=cy|{%D+=hWWIE%ZO#ywB8U2Dfnd$5zRd_h_J9EzOeBbZ# zotaPne(yYhRTx!h&CN_C^3%EOgf*SpZ_QZa2{S*H$k^#bs$fm|p%g-U&3$GfV`e83 zThn{3v4S5J3N^C7QnnN-?d-U9KtZJxe1(J4mO_=CEsUBO1%HO%dZvc>mM_fkWtBqx za0zy2VaCo*to62&-fXo(^`x1f+>{$9s4r_BC@8cI|9{j3s#<4f?ZSG6idcL!h^4qT z03RA8yh%Gx6HCc@75p_=gs{T$Sn5isa-iBd&>TdKGiwbZfW-pR7DN!&$n1t7mN>KJ zLDV|46+wiY6EW7wW?*@%P;uzu#fuWmP@KK+#RkRHmg+K?$(gKnLZR+KnU3UknEO-N zLcd+mISj^ALH02jz>SbfX(y-FgMv38cxCMy$jzoRmLIn$EFIT#jX2B>%|i~vhl1$C z+5m3FI(FG{b1(-K`dFq?d~V;aX60XzI4Awss5`_gLf8~QKS&XaT@4=F#|*RPl*nS- z%8xPqbbc!32(dDj(hk+rxx8Jlb6I9$=QlqzYi34r3engVd%c?)vc#W-ZYYn)xdLnB zyMx$*trGJ#M&RhPcG%8ZTV|)y*35{>N{h;KV`gU5oU!HIT@38Z&CZNjgLcMZ;}%hv zpqwCTS>H{7Id6&orVyAMi*d^p5hx20Hdjh>q{t0P{EypM0uDAJfe}7Io=*pK&K@k zEJc%xd79_sWWR@Lbia+3B3i^oiin79FQQ#+w1}wKjv_k5b{5eoHeN)$6pO)}fWwUC zF~;&Z>Tm>MJb`vRi8zk(nmk2GKaGtzrsHgLBJkqu_u}k_!7513U0xOLA+D@68dVY{ z%MdZ@yA1~2wCB-F;;5%5@Ej`fJR>?m{F7yMY4rFSmu96)bHAHRv*8z-=sEP3@`)Z@km*e_y+ys9 zVH3}mF*SQk%~*q*T&9~{rU%@FT8xmcTjx34R!XY#*n(8=vlAci3;H3NalVYI#iMG$ zdTem1Zg;3u1F0%myE$nNbtIzc5ygak)JxNA+`=A?Dh^TO1`fG4eH_*9dyw{Sj*$D_ zD%PlQiqq8n4mLXhvnl$mhbxl{EQNig4MI3qu8%1JpE1bK*^@8$WB3vc_zK(bHFn_} zr134r@EtO^fLVNxefSZF@Dt_wvo1oflb%Upi95VeukO;ts|lktT7c8)*_LB8k|$FyzK}A9IkEIwQop@7}WJ%Ws#eL6xGc z)nbHHP*Xa$xz3}k!(Hy}s+0e&F3vD}t3QhBW9I^>v|Qj<$w*18lm|x}$20Ex8=T8{ z!5v(m-xGg*=7M9rclWG7&97aJ6bKcH*`|*?T`(A;sLRKPNiJZE8 zp`q;LiL&i^v=b1I4xVOXx0id&b3`ve_%H7gp7@vW#J`j1o#p7v$dP}Na)AotxQgJE yisGzVflpKnKPW@_RJU58dekb~r0P|pYK<~gZ|Ux<^n7PIldrS<)OKm?%6|aN#^6=} literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Label.class b/sponge/org/spongepowered/asm/lib/Label.class new file mode 100644 index 0000000000000000000000000000000000000000..678b86b9a4b692de57a8efdd4d22c9059c3441ac GIT binary patch literal 4549 zcma)9`*Rc575?s8(#k^k1;QxUSYSeJ0d~RQfE|+9V1itO6U&eCFhQ2qwusQG(i(6c zU>cgHZ%d~XEuyY)XM0DBBmx5Y9W6~;wl_7mnT&e`@>;_k@@$0L z4)YGJ!V~Ul?r87o4DFP13OQ-iEO*lxpv*bD+yGc9Z$$nj+r0quE8VM(3M2w*f zg%a_k#=9v!6F1^|QlKEM^)pJzsJ2BPN*Yv3Ct;fuA*B4wP&BG#GJ1M$c{3-J_vGXWCoqSB zme_#Q??`G#=#A^ncrtF>#n4t&cYE=5to6Wwbv!o)_G$W@}km0aSu^3!~)@}Ib7bM8H0MPCmlDmbmJUy z&BKP)&1%=vjiKGu-2y9ao~Kz^67o91S)?qsK|O7FalggvpcVaaQe(;7ayS@3mZ`wX zTLU0_MITB>S;d~i@t8JK8)CN?w_~NOj6Ghgu(H$pl}QpF&KTN36%VkgBI$HwII5?H z1%mcmThpd7WJ~`H%M4xweID#bloNn6sKA0U(}x1Zxn`Z^soClhsJZ2!g!VL7@20DI zDyqlms>>>00?!#>hr}WVK`48g8H=Q*#kx}DP+G*99QMt&csj$#R#wfGT&sV*s76o* zk1aRHgf@qRiXksLu{s}zaF}HlPlkv3(oCW`x*S!l61ozP5lAZ&z++AnyU2>U;$Y#C zDx7@@J^G+PA?vtPw<~Z~wK5wVc*(w5Hjx(|igRqvvRGCB-;`A4MXmHl!FRlP6h~!$ zd{(&Dty+9RZ{gy{6HEZ?<9Wc#V{U{ zMxOIx1jps>c}7d7EfrU)r?6AuYB!SW!dCf!dL`+Moc*%p8lY`|ZAWiKTr1qbA@ngIwcfVjxx9CX*AZc_*5<`rL!?IP_#_HNRbg)lL zcSiaWJSb_?qme{+BpsJ@mgxzb!(m%Iq4A+m_>=&P`R4+^EAUHF3LoRe$hXlR((`Pz zm-KuaT|m0fMi-GTw$UY|7ue{9q#@2^PJaTQ#h!HcM~ zLiTHtvPvNwa0n+RNP8_ItT$B%Y(RZhK`Zjiv&F#)Y;+zS!~Dx=*i~}pMcn-kSxpys zTY=PBKuL&2$QPwpAa1kiU7XbmG-FFv?+282@>Y08Z;j7!2BkrzJhplQ+b^PRwK9eK zdd5)~EVpsOC&k5*x8zH1d<; zPCl-8p+hv8aMxRqa&W^Oja{buVRWNM1`T0+lX;-4-0i|{R;41J;jCNlQiH71UV_{E zKIR3BTvt4k*h_MsWL-Un<>p%C+JD8fQ*QItOGGzTiXLnbyU-x^@WWs)_KIH9xgde9#6oENmGFCWZuX*| zF3B?K#Q=BG%|XO1m&9**k72~Myn2U(vC%m)iH*UsNi^lvJAF>V+jkysOO!t638$#3 zciHx;&-DWO%6zU^z1!z59>F=x<9clRRcu(}QysCoVoV>c&-djQ*`MpNN;tJfzs7z0AP@Mmir&ETRXwbF-;mH%rUK z-Wx-LJQe5J+SV!KpUc;^Tv=X|->zo9uHhh(%xfM#fo_(i55Gf-r?Shwg><$+H*=Ml zUcej~??Vla!y~s7IPwAVBkIJ* zY@CmnBY>CY|fSYlQgHnc(FMbx_@oeYU%>W!D5ZNw_jM*^dMS+Ba zO`mOXGfI0IrV(2|FOu03pE5dsL#g?PQUX#eCl^LxcsgOJWkprCh_>H_b?zC8;jjCb*}O0zxrJ!V7Cd_Iur6N z?02o2!V_a?y^NE)F5<}s)vwC)rzi1!zsg9DPT|lg;in8}7aQZb=_*E(;;PmuXs(exZf)`jME}X^IERWg9W$!vaE36W_Zst)I*mX0HvZ?;gTdP?MLViqT x3#^GnC`+#NGG1m5&Xv3}h4J9qcykIrpTb)=bg#0`1Z6$!rCGBAlT@I<`Cl-X>YD%n literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/MethodVisitor.class b/sponge/org/spongepowered/asm/lib/MethodVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..5f61998ed03e6d497a24e4df8f78131a985036cd GIT binary patch literal 7299 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 NQ9geEjxzaB`#)gW`;Pzs literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/MethodWriter.class b/sponge/org/spongepowered/asm/lib/MethodWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..e7fe24ecb6312371b8198b1ef3047bf339cfb1ff GIT binary patch literal 30796 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 ZN6=n%mfEMLpbThK2at6)j`vgj-vRtC&IJGf literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Type.class b/sponge/org/spongepowered/asm/lib/Type.class new file mode 100644 index 0000000000000000000000000000000000000000..3fc711e4cc10d9f1400c9d6d1256a27ac7b6abe4 GIT binary patch literal 10004 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 OH8Y&z=OMa3{Qn2|tU7)G literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/TypePath.class b/sponge/org/spongepowered/asm/lib/TypePath.class new file mode 100644 index 0000000000000000000000000000000000000000..b24aaf59564fc4b2eccce738cf677d3cea95b521 GIT binary patch literal 2253 zcma)6TXPd-7=FGa+tM}AwNg%P6#+5XhK7?BY^|ng!Dw1)o3@53=_c7GVbV<|*{E>g zc;SqW2NV^L38ZR2*qG9F2htfyQ zjNJ^c!0H<|J@S}(WPCi5Oby3}M}|ie0wU&RAPA_j(b3`YR3bSxED;i}nU2MWqLJ~T z)Zn4X(IJU?Bq1$Qk@16*l0brtBGLk$nL&Z3(%f9tv?=r#tb#p2Auux-3r-1m1Hmaj z+OSrI5AA-mLTiBs>;1SF%~IMZ;Is3Es=&7R|JU3n(2_IlxM}6=yu%(7XeKgYn`JTu zVnG5*!OEI13$!*4B9&Zi-n5vYI#(&pPuP`$l@r((h~Mg-3-$%?E{SDrcO9GY5UVaa zdHL}$?pLuL0Ty-png);A<`gGZsx(7)b9Y)5QqheaEUR3zrHw$4W!)jKTSR?+gt1fl z?_xHYyitj;XxWvhAA7J@CiMvWL*`wy&;zl%Cw>(BB=LUoWewZ#qfd^q8~w6ej zV40(}`LtO{80jLBwsEktS!bU#)l)#WT9jmCf zEYnr$_bk)>)K@Rl*U*c1n*WeDn*U9FxCUfQQ%aIkelA+|C9KoCFJXh;c?p{?67nG9 zn94K~OlFdSr?3Xo$P(G?x}gJ|)MOADMmUlThTBs28sPBW*RuR_i;9CW4`+cEyQ*Jri2Q<6izfp%hOhuE3LYfF(p0 zZVoPu4U}K!{=LDSdy`xB790LHTm23KIDy@G7yI!ZqBx1C@jjR61I*wj^T-b=XR~VPbNBuk!pL z-);B{PdTIRz;B2#u3SW3V|PTjMnAdGuW%}(oXS|TL&-1U*%5alrfkQ=S2W;n%zZih znvIt`q@|?fbp3Rwjw82vIKXQI ze8alF<@H&>dR#<5zGH=ptf-C=EHRHCca3^@xtqOs YrLp!3E%@nYG5FB_3`QCfZ=YH=wXE*%$?=LR_ z;09C(T&*|DiQPuMR<;`TXI9hNOqjbniE5>o$n7^Q!`i~NTFDv$LO^)Lh=kP)LNpsI#c3 zT0u4F@;HGQUry=9vYbA;65Wmx7|bmh`YN*;BM?mM3I-KqLz9zfmB!pB5Hi%Po;MV= zYeOb5rmiXKN>0-=-P|Mrzn017vh}AaF$lXqf`KW-eIQWaB}8SX@BhLy0+&Uk%T}|VbPHi1cwTrr#Gj%8a- z=b<8SeOfyM9Ot1yAzE$I+QS0&f|K=DZBwAnA^mLlA|-JAIO4OdhSlt<2ae9+pwGfi=w8g)|XMhrK4>cJh*6sHV)jk)M^rwBLDxf2if;&P$=Sd1w3+OBQZ zI(k58B-O;j%MqV@^ek9t_p0n{Uc4x%0vw1he&=rHOrK}S%J3p$EACg=&&lY)+;niBLm z)UOEoJn9RAzKHsgpkGCOSM*7xY46KEpuYuMAr8XdWl*`T6g=R_93tt3qFu;ylD9ASAI81d&TzO<&ZUJ| z!V_Fr7|pqO5>KEPkHo_d4;JV#;YaafeEOco*BN*)l$Nwzgb1X05tbd^ZO$8Is7$1-0GgBBp@w4qO1$$ds? zPg~F_e-H}D!++>t71nrL>15NQduM-yJJQ4#-{E&*(#T`MkC)FafpsVU7SA81`QZ-_ zBQ2SrFg$MHC&xO9&_I0I&dkntF5jHl{`vdk7l2u;Gt60bS*_PBv#i&w54x@I zsan0NR*a%rvZ__ftgGv$X*INlVVSS=s#dG%b`Xpqd3L2+Q84O8!=eH|!| z4m5@#TL3epa%aPK1a+#j41>#tX*5<(1)%g)1~#a#it!Gr2AC6Rh^D7%wEu5qQE7~VFYkh!XSbn5`T@s zuhk3&w#6`Tz>l9{DxTv9tyVO%tmYfGVV1L=m6yeRz0}BZyeo)ulyL^-{5c5XHf4yS zS>wx$2Nw|xNFz#Sd!VTQyKJHWNO|428vS+_g%>A?pye|blL&!0^X*R12 zi(Uo2hR<9{6c~bJWJ9l)PWTWtiC$e2l1OnMX$c7^+=og&_8g3eqsl#QhWxp-B`y>m z2^l=%#B)3nA)ev|iU5T$+~&7!?IXkbDbyDwTEr43qPrh>X6?~QMRJCz?=-7L-F~eV zE6&+jC9P7>Y=h6mVmNO#?UMf7sOXp^eF6FcGK}!t(rA#zB%Gd4X|_#o{q!4B9(xivtg%`;e~(L{SAh7q9|mGB4?3?Ff5PDJ-w0PoUnPAnQ6pfsx<4RY9A~b{q LGw=AC<6z()B;wJ! literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/commons/ClassRemapper.class b/sponge/org/spongepowered/asm/lib/commons/ClassRemapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c0172e65f6a8cd9f8c2edfa550e4cf0cf2bff40d GIT binary patch literal 4832 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/package.html b/sponge/org/spongepowered/asm/lib/package.html new file mode 100644 index 0000000..2d4a765 --- /dev/null +++ b/sponge/org/spongepowered/asm/lib/package.html @@ -0,0 +1,87 @@ + + + +Provides a small and fast bytecode manipulation framework. + +

+The ASM framework is organized +around the {@link org.objectweb.asm.ClassVisitor ClassVisitor}, +{@link org.objectweb.asm.FieldVisitor FieldVisitor}, +{@link org.objectweb.asm.MethodVisitor MethodVisitor} and +{@link org.objectweb.asm.AnnotationVisitor AnnotationVisitor} abstract classes, +which allow one to visit the fields, methods and annotations of a class, +including the bytecode instructions of each method. + +

+In addition to these main abstract classes, ASM provides a {@link +org.objectweb.asm.ClassReader ClassReader} class, that can parse an +existing class and make a given visitor visit it. ASM also provides +a {@link org.objectweb.asm.ClassWriter ClassWriter} class, which is +a visitor that generates Java class files. + +

+In order to generate a class from scratch, only the {@link +org.objectweb.asm.ClassWriter ClassWriter} class is necessary. Indeed, +in order to generate a class, one must just call its visitXxx +methods with the appropriate arguments to generate the desired fields +and methods. See the "helloworld" example in the ASM distribution for +more details about class generation. + +

+In order to modify existing classes, one must use a {@link +org.objectweb.asm.ClassReader ClassReader} class to analyze +the original class, a class modifier, and a {@link org.objectweb.asm.ClassWriter +ClassWriter} to construct the modified class. The class modifier +is just a {@link org.objectweb.asm.ClassVisitor ClassVisitor} +that delegates most of the work to another {@link org.objectweb.asm.ClassVisitor +ClassVisitor}, but that sometimes changes some parameter values, +or call additional methods, in order to implement the desired +modification process. In order to make it easier to implement such +class modifiers, the {@link org.objectweb.asm.ClassVisitor +ClassVisitor} and {@link org.objectweb.asm.MethodVisitor MethodVisitor} +classes delegate by default all the method calls they receive to an +optional visitor. See the "adapt" example in the ASM +distribution for more details about class modification. + +

+The size of the core ASM library, asm.jar, is only 45KB, which is much +smaller than the size of the +BCEL library (504KB), and than the +size of the +SERP library (150KB). ASM is also +much faster than these tools. Indeed the overhead of a load time class +transformation process is of the order of 60% with ASM, 700% or more with BCEL, +and 1100% or more with SERP (see the test/perf directory in the ASM +distribution)! + +@since ASM 1.3 + + diff --git a/sponge/org/spongepowered/asm/lib/signature/SignatureReader.class b/sponge/org/spongepowered/asm/lib/signature/SignatureReader.class new file mode 100644 index 0000000000000000000000000000000000000000..c4d5f52f8b36eb94498802a510f06af0a03e92a0 GIT binary patch literal 2802 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 aUuEK@rBLf}quBqO)y02T6rWXcsQ(LH3|3VD literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/signature/SignatureWriter.class b/sponge/org/spongepowered/asm/lib/signature/SignatureWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..2782e5ec87a35bd831a17b276a03e9d71f0eb3e0 GIT binary patch literal 3019 zcmb7GOK%%h7(HV!xuZX&@;N$8BPow$L_BAqgo2+)~w%OR0#M*pp#wEzU-ktPD9!WPzmSb^Y&AkMvad_B&iRW|m_&Hc{#zVn^$bAJ8r zhnoNn;Ix5*C2uZWDVN+iyIi_tdv+mhRTk1kXC_^7=3J{<^XzoC{&dcBso>-FrGHh&Vw_SXD!&wif8SXH&OtGIgbF z>mm$nPp(p6SR~tq&4POmE3(RE+btOAPLB7lx?Gpb#GSZHoH89vlZ_kLD({IqIm>gbnIZvIN~4}! z-wl|ob<}rs#l%CZ+J}R5^*l8a^KrgCf-s+ecq-np%+DXud43sPH?ZRy8S?}` zx9|=yLEHgsWwsfd|&SwvGlD*3{r_BEPey2E&1z!%_p4bEY}x^NSd1 znZJRN#weqw+TRgq^|l}tfzpIEB7JBs-;I^c6w`UNZfl1t^Q zfSyV1%`uGop1SDQICx9G-La7m)IO263oHY*>b@oGcVt~8>k{^2nLozg2WlSFH4k!C zD<4kinn$U!SXdoe=M~0NoBJk3{fR+82TJPDCGpqCFKI~H9B31IEn%{;C)ED@B@o}{ z$A`p!4}Sb9Kb-{Qd#-WwhwGdFM6=?`TfcG5|IRi42iN?c0qBH==1;W`J>_>-xR>3% k2DNY`uIzJ5aSiwWMRotCy8lq!e*+Bli8FAD>V?qqKU-@pumAu6 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/signature/package.html b/sponge/org/spongepowered/asm/lib/signature/package.html new file mode 100644 index 0000000..0c07d12 --- /dev/null +++ b/sponge/org/spongepowered/asm/lib/signature/package.html @@ -0,0 +1,36 @@ + + + +Provides support for type signatures. + +@since ASM 2.0 + + diff --git a/sponge/org/spongepowered/asm/lib/tree/AbstractInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/AbstractInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..b104ce57b081ceb063e9791650af2660930d23d4 GIT binary patch literal 4776 zcmc&%TW}lY75;unwqjX{6DKjaI3)=IY{^DROhaoqZWLR_N+j7>ih=_rT}vBfQ+cII z>s(7I5U$}40b1w`%>%sfz$GCh0fwh`h6mbbo_TC(XL@0V2k7_jI@*;?yPfXgX7J=2VWM*=AbpO~)GLndm zR;^p>Xo*L5M&mO4GKPVF;!pCaUk)82qYHut(I#Kn~F0d*- zIk|h!RNV_dQ%UTJr(=<1bZ=yOIx0>1|qU%LNF|?vyVH$B0^?5@pgyLGo2n$5(RKxKlx>@T~_A@*}Ki6yem7;n| zW%aPYmZdz`_nuxox_Z=L$(o*1kFvsHP1lSO>U(2-83A{1U&fEk*y@7^gMQo!ZyQ|r zksl%J=?_I+HQKmsyr3# zxa!Algxj$Tabm>cxUmSB)oI6;3;U78q_mr2dz$XM7t^fPAcWKE0YB0b@)Y)PJ4oG> zVjL9M)Sz4mzO-T*dvUj1JHz~QY9%Ys=}0zZlr=q1t9x*-wECIAtyfOA21GCRb1z9^ zn$yR|Q6S$NyPDh<=drI5J?sdV+vtaaSs#85R<*fN_ZKgf zZIHb=b|t*FPjjPkf@)ko$KBYdh#CmF3kAcqWD7-|du3;@V_+ndQn-<$?;Zbi_-dV# zC5KL2nN7$7xMzQEcDbl zU#>86j>oyo+m*_To4hSdb(T2wXh{IQ{07l7L#E2=JCc()HIbb>ezcn7iGG4jg`l@!V6!jIA6}H<61%WY~YE;!y|1M zy3q>$Lcq(ETv$fA%^~|Jw>xA%<>d}}1?3Khypr-NhuledwL@M*d96d1@vn2p*Hi9x z$UmTTgG272yv`y2kn)WVc|GL~4tXQxn;h~c$~QaYTZjTrv8IXTTLNdX?d__|R#W+r>BesvSZ?^M zYnY2=ZQC)ztIW{pWXC&oPX4^u3718_ckyWb;x862W(H%3GRPW?^KND!f@E9^b*EXz z#Gl}GzXiX1ynqA~b&ss;IfE@yvF-xya^X{?hCJP#V7KQiGV-!dUheaJfZPYjpLC12 zzWWQUHQSR`?@4Ru$?f!HcWN7n4*Zq${u?R#6?*V@QsN&h=qv8xe_{sz!hZZ42k;-v z<7+&_=a=w}3Bm-a5hT?P;TP=mbr?i}8aM4O>y)aFKvcVa8gtMI(^~unMXqoWz!H8* zjYZ2cH)shJaz(cCF5V^C+Jk`$I3|%gA$#IBiDt4wbeic{0cKNSlC`pAZ0e>%YHkNF4=6c z9zL-Fonj+y<~=AjnTZAH*v}1Yp~Db(n43=i4J@SSOK@>Cg#&@ xZiv(6MRLlBH`fVfMj=Q`NU`RNt1WZ;5D?uNTSP0pcz2I+1pv<-dsI&$Ivl literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/AnnotationNode.class b/sponge/org/spongepowered/asm/lib/tree/AnnotationNode.class new file mode 100644 index 0000000000000000000000000000000000000000..9bef4177688753d85a57d5bd870b3281d63674c8 GIT binary patch literal 5521 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/FieldInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/FieldInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..e6f728d63e14e1a52f5600568345f7c9658f6684 GIT binary patch literal 1751 zcmcIjZBG+H5PtUhX6s3zVwD!fciQ9SMDdLh5;P%cQa}S~V)TR8>sk)3cg@`u^q=@6 z{Gf@2L=%62Kgu|}*A$9c(8LeBJ3BKw&oi?#-+z4h24D`04AZXH(EXO{GN_LQczQf;+%>& z5=kgXt2h%%BPx=ibe`OUEz4(^t(=f?Uv5M_?zT*-76U6YBz+#N%e#t;xFq0m42cF0 zHs7_#CsHVqSKKg7-U{eH3Iotqd9dZytCnvCu2&KnP5zl$pK}6N8HRSn%N|=5*Ksz5 zYq-HM65=mAjvE+(=81HSNH%^;M%)8WcqK z+wtz9a=t$nWN`oy8KYvY6*Dz0hRRl~Eyy{pXj zD`_6OhUA9TaEzes(aY3^+xASpV%eN}RiVKJBA{%MAc={|l_$+DoiWnTuh9O0Zg0sy zMrT&bA7DtE?qFD(=^&$xMLQV%L>2`PgQRzX>?hfvsAT{E literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/FieldNode.class b/sponge/org/spongepowered/asm/lib/tree/FieldNode.class new file mode 100644 index 0000000000000000000000000000000000000000..d700994245f4e35dcfe06c3dd1937f7ad8d50d2c GIT binary patch literal 4359 zcmb_g`*Ryt75!*qrY&w*k1r3?(i5Bviy-@U7+8>e`P?7?>h(R?8jFV5z38GAPWgk7+w<5qDdo^?`jw_w}x zV~(Aj9?MVLL5N`2%GTO&!YMj#z7T|8u%`Oyz>t z&oRgyp65B&$;L;WqOu!VHg#}x<#crNHHWGKL&NlOr<1!`w2t!Rsf)9XFpl18%tjB@ zxErf+8x5Fgz;fLJ@Auq7s1bhRq~=^Nsg{FI&T)qYqtS%tq<%qeai+X1JrjNe0Kti9 z;x;-pu>qSx@S&4ST;q-xG>9#NRT1k)<=8l!0X8&6W!PvLKn6Px@!&+*{q$h zvPtsCK6)W-&ng-Pv0dPg_Dra#J44ukU1XR0C}_V)TrbCiAq?S=i8WZOuz!&2pzEw#aimbNE~Ax3R+n8Ft0W z1ya@zS?;-^+prFMRt}>9HzM<7`J`a*{{`qR*r^bb7&p=874u;ecY32qmepl?C+)NB zD>YJy3U<7oatQV{FMDaSo26-Fd;LnsA()%el@>y=G)Xm{CHZ_q$nF(Az8l ztx6N+PVAXzy2sYr2Js0&NW<1jBPiZR@orMK`i-7yT7(-y0dp)8g;(`#qF!{%U2EbA zTu{Zk*h+Dr#NCVgloWnSu)A4x-Yr&Yne+IJ(wHYrJfd_oiO-rigO91v=hcP&AHqkK z|1TrtoyDyutmEs$Co??=oCkvaDq<&qDJ%`ME;cKIUX?Y@_Cq zyWCDlK?FG>z0s=g++y^d8;rhld(n4FHLbqIu@84}L|JWkrZQBY*K!&kA5PsbY#j;pD%LH`fw(Z|{XyBHgI zjn|(u_Aj`+zrTJurjQa@e^slf%-InmU;3d_LGi=A) ztDKwiUQI23RST+^47|;CeFy6pKPkIUm3-EN=F89v z`5_m38G3-f-Tdw4Z$EzrN|-;S;r+zVjy$yNOBY_^`1`UI zOR^2GNd#}ocKn;;{|Zk+a+kD7RMtw5bW2R`<#<^7B`E`PM&jK12E>&;azXZLx}2ee zj8a~ehy-xCI(idfuk)n4GE#)8(2AqW_!{XHmdEgQe1l9sAV=^5Tg)K-W86;oj|slN JLelyW_#aH4FUJ4? literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/FrameNode.class b/sponge/org/spongepowered/asm/lib/tree/FrameNode.class new file mode 100644 index 0000000000000000000000000000000000000000..e3c54fe94f47f053270823ae6ccf2ca9a405739f GIT binary patch literal 3230 zcmcImi*Hj^82_E#Zr!?W4937cIu!K3LTS&JgVDxY>t;Ax7~Hz(e=*u76fBV z3{evk6B9&G1;3&pF@u&Ub#_?|Za& z|M}q-fYlfl2w3UCNM^)J4H_fXNh56xMD)yXBx%MYcG@r^JJR~F(PIr59teTR1GKlq zGj>`}*s)Y5#1IfMfwH8P(31kSUGgZBwasLt%goqOfz}zK z4ria#Q-hJ+@gXB&M?0xjma+B3ae?vw)%#1*= z>j5t0!P0g(5Q`n2{cI_je5@RvO1Q9)VDyaiLST8Ir1A{cqCPCbVlVGL;zI>0rIkh> zs+?6b=~3(yxb8vAlvHuHC7sq!WjuIHU|FC9uS2nC z(6IYd=*TgHSFR@##t6L(2j*b4+pv#W1N~;kw5@bh#-^q?)*gfzo{V|g@L?s|s?d&z zfJe_Lr=&wO!MByb>0>@WAt_uVu;TtPE<)qMIsxwq2~CCFhbK|z#duP<3qKW`*crFCL4D;)k5~V5?$gjUXWb8NOw~lmcWL>)RcEinl4qM0u{^&6;FYs zfw}5JDX}fak?5hsbkfuQ`~~?QEKr=HAA9mz0<(qbEBYH`0B2JW0s{)zA9% zv?=#F;i6(8`&jP4+iPXh31f$uG}sSa{J8)$Ft+e;MbN0^_aN6Uc)4O*F4%i0Wl2zS zj2dgX6P(L~t{bSmrtX;hmK6i+MH%*Ch%29?h51;(o#4JMXW?(YT~3*$ECidbqrT}9 z_lbM_aF*zn|AM&Y-D01RfCDx|4^|`HEKH%7$8G-i^##!{>1E$Sc^x+)#<2+u$1;*lIyn|2h zE|OcSlsFNKPNi&!JqQIAw5Sv_?Dgg z8V*yYV~n0(XC{v`Q*YosOpwn>e2$wu9mn^$rP$lWeB6W2==HR# z*j2UvgxENYo=|gp?->^(_E%_{;3aei_?4#b(51U*#Bc16zq3I9;4i`*tihiOT9A)5 qG8jimkVarD6lv0}btJNqvzL|mvVuEJi#+r4%%Mf6D@pELDEk*I$N>KU literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/IincInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/IincInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..04b6f912f72a52b0d3310dde9b1b96fcf14f653c GIT binary patch literal 1488 zcmcIkU2hUW6g{(05Zr!Hu~l2OeioLtYt=WJYHQMj2qdOW6OAv!GNEIZU9vl1eD_EA zBYe=LABiUZ0DqM6&MvjkD6J;GFn7+Kd+xbsX8Hc(%Qpb4c+61pgO(k3e6J-s{#y}< zrp?2)?aGF&0wL^*^qh(pdUd}k(qIhs83h}SPzBskCq)T{+#t=$8{Xp#i5?FaScM@; zJt$1ANl&VEhOt7WQrsoHK#PeCE@qL0X(EMm1_mZfT!^D7I;8ew$go^JL)V~!GDEs0 z)Xuw(ARUDwX-IL$5go;_R2acj6KcIYLk|H<`#kfxso8ED`h!&Ef!fPW0lQ8)SfVgKG96N@Nl z4MloGt{$8oqZoGmKN-d_IoyZtD*23T*9qx~dbiyW!47Y@giKd`hr7Exkb2(-XNE!g z9QujOwrqJ^bpxu*Zu{N95nIv~xJ82|>94~8O^Y-|On-{BCMlxZpx+hRy`~chTBofX z-XCGynmfRxHGhEIXF?6wIu|iLq3WkFv4I>m@qqA!xRUahXs6HVPArOaFWozj%l%Hv zwCY@9D*KU^m^u|fTM?ZZr~7maGngeri>y;4L(`V5eNwlN+#%+z(jji1h@6PTJSTxw z5?G5EXX2^>feU1emT?<*D5tq!(QukO{}sl|WBMc9w+>-_B0LdU5bJy~z?%QXnnwwG XxK%nG&!CYdLLL%g;4VdvqG;?VWZ!j? literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/InnerClassNode.class b/sponge/org/spongepowered/asm/lib/tree/InnerClassNode.class new file mode 100644 index 0000000000000000000000000000000000000000..801e975cf83129022656e9f0bb2c807ba3b99244 GIT binary patch literal 874 zcmb7CO>fgc5Pg%Fm>BnirYWU-mXDG;6bp$HMO-Q&MGE0iYG`j8XBD<`>}c(TD}MJTH*uR#iKm2fPv$)j_;H!Ct5VsUjQUc)7X8FNTo#KY5?Y!1 z?9e;RCOVccR3fp>MmhX5IpC$?az@5e8`)7C*-wrYzVWfd-+Nqr;Q9i`t>80OgZ3P2 z!NWP$gS|O6f~GUa=11Fe-(Z*-IN})*ztS5l<1HFE##NkPhi{&gOk8hqRpR+iwVBaU zv6)d*wVBal^j^dDGc_-n!JwM$V8%*jEM&$yX4w3M?S&A}f?}*=UZ*+cR^;%-Nbvdx?oIbjBqDi2o;^&0kBrx!S@nhJ@aFxRqmjaEBdL9UzDs1EDYS9lo zvlM6#Q|_F)$fHZ1S`pacsYQ21aS|+8{*jXc>Fu0VV9?2qOO|5=mj#ZeKKN8VJ!@b$ z+L|HJDbSG8>vnX<(TD_b`PL7FLv!B1Ui8G#jC}@n!O#bK1!D6mD40Ie9!hPCwJvc3 z2XIjP>^IO7`aH~N^eJ#UmH!lnNAQ_;cvK+wk!6S>)r>R=Q(PTMu z>bZc(lcWXHpDJsEL_QSgB319Il}Gxwv^wR^ESDC>ZMCSJVElPWEd`eA#4s4g5E2?@ zuYuN(v9o2}_{(;gwCyn0)j$`#73Vc+7X%J&;mX^#nm6s4zzkFkgiCRZXld+XQqxqe z~$-A_3C5e@tSXEWJ#bY)&+Pj7Yu`+r4eMy#VR!^NR>Bv-K~lkMHWfVO4U(6@#R z&A;)a#8-SDK#bG9XqG)_m-~>A`*BG2AtMjqjO@qP+>_v5MnV?HIO-YePaAIsW)R{T z<|z2BMF)9{SmP=h8(z{7hS{M%%4FG{5pIm!u?P6a6*>vHTZc+%C!5&y2ZkQJ#_2bD zSa`iynE5sT{{qd7>tbR1~)hT{uUAHSAV& zM+kl{rv*$h{2?hdhmbNj~K{oR#NsSzg419H}8^vP#aC_cEOPFNQ~JoU~M(j8++b5;5GP;g>0; zRH8JG!gN2G|6$qyX`(`3>TwO@ zn`AU3j@JA-#`U%}+}hGi2%td9ZnLI$SkGw;$h$Qe=BgPMs$ok}*fjkmH;MlL0X)i|#0^zU*H}Z{Y4K1~ihb56SSu z7g|IlAY9$g=urz?E9hO>JS8NP`4=gh5(cHhh@8i`T)<6f)fD7b1dm|wB_0r<;H^~w z`cnjSlwqmup$O=3h~Tld@=3lRt_aL3648{Be~+lcuCs}5kr#(UvRoXK-(pw>xFT0- ckd0Q6jYh~Mo|3dU5lUXoab9d@xtnAE0x;NQz5oCK literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/InsnList.class b/sponge/org/spongepowered/asm/lib/tree/InsnList.class new file mode 100644 index 0000000000000000000000000000000000000000..08dff06de8a3d3af03b8ed92e50e8844545990fb GIT binary patch literal 5583 zcmb_gX>e2575=U)S+*=`_q}`0`M&R*bMMn@|2_YG0BbO)a8o+dAI_dgr}~W(>3fZg(Ho9s2gAukPdJw` zjBtA@o9akpb8aYwvg5Inv2Ze$>JLYIjvH~#7APzje`l3ER#<(ST3D$ zqmVwP&MG*wiTe!&)vn;`OJuS+g*6>>IN8#Z&1GWooLK8h_Zk~$CK;2Zu6QgyKy#79 z*I}cuHIYi>+7t>Jo4UOy!$J?7D5vq<)VFC(?hA= z?DkV}<3uizPPuWT2g_0J#SJKxKt9Dla_KFZOzb{!+%$i}y|@XD9-3;RZV7Qrn&RnH zE|y4MOUc55$U!iytoD{v*u zzV0HPw7YY@-P0(k^E38mQE~yx51zw{A8@#G3?+X52>ioX zDZ{!*-os+Jxbiqjxrc-dq7Er;WGA%8#imt@DB721O`j|qge>33`Az{XG|;fGGdPN} zVBk5F1kWPUdHTwSoNzl&!Lvs~-?0R4WJ3O-2kAJX0$Ogpx>2CUUmxfoM3e>v#! zW~{UP?&er9S4_bdIE(dpUpHu*kFtY3#$0)P0;&qzPle@2$wp#XH!M_D6HtwybsSYb zuT1*BN-)ndkG@7gUnijFCIG6k9aUi?+UUTAa_v$8ZNg@{lH6O(yCiO*zhDHnX#7iqPA6`y5PQG-6Kj3W4*=B~#|Uf1FHO$Syu4$e30Oyjuc2_#-(tf4k;VBZ!uT^w0|kh(dK4WpVU>&H;$4-CU6m-^FKBy;>33CIs3)$@MB zT^SGx@|gXM3HUd!|6$Ypn0P`_a&voF;^q(3!tw=wgP!P<}xFf%I& zMN!b%Y4=S-yN|R-g?56An3~K)yK00-HDRIhW3dWgsS1(yRiu42X=HLc1BczWZjTeIsdaBkh|>`xer^m9%do?b}KF4${7pwBJtJ?;!2F zNPEXTXtx>yzCn?sSGDA`ok_o~B zqf{NiB6XA>n0KQ=#rS>K1HXzh`d&tF;8xYAqcs~@i=7%RcD=S(^;*iRHtSW=<)Bpo zml?M-vIA_Q`3jJMQ~>Y3E?(+eoPwssRpT0i*Do!NfIKxW-P{6#rp8&r))fg&05z!s z+T_fnvXml6DNa&~dr_-S5!8LmrTY<3pCO#)Cn!4OR@=pM1Jo$B9iz6d zphCThYV{i1$m>|9e#(DIe#SodbF5RpK#Te%x%d@x_t(tb-!OOIVD7$&!|L}qrrzQ= z%O56a-)HmEXKhWT?Cp}N4nEndIgrhXA9_}?p5qf~G8^icSJM9E-0Nc^@CYJD1&vKE zkr2VV%NB@q%C~5*fLi|a10zX821bvbh9jC8c%ww&U#^G?m)H}S|m-)fbV8ty5fAbT-!H*N3Y3a{Rk3~E`CpqTX=YNlWR1YmLGA3HPc2WN{bw42S!)M6S_HYboXj{-0*Wke}~E#}t1St$4m8 zJ+V6)_C#>NdoC@(T1PqD?eahxe;O>!2kAacKcx5Nz~g!pP-SLcjRHr!kgmW6360bL z0Q4lipsS7wc}@NCPf}m#KIl2wjwL>3*lF0XaE2J literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/IntInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/IntInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..229bc3f4f82c4a37edaa78807d5978e26eaacc85 GIT binary patch literal 1558 zcmcIk+iuf95IyUp2}w;aA(TQ3lxq{W)LdUkRjD8qMWo@OW1-84gAO0(*QRX1?!UR!1%1k7XdSDQiTTdl;Vl)yv+W$BHzV+mxvuJkRpEg-4_ znPuCx!xe#%Qngxc2&7B==s1OZ9%+o~$RL}8hSLm%TXrC@SUZMEqGp8^yl#s<2;>48 zK8tJ}lQHNS(&@->^IezmRH>{8S*@1rhAdMWQfFO;TVA_i2X^TB6~%l0&!h&Dvp6rH z@2H)9o;qfb%i{uO1t#O_tFG&XR%m-}pyLvz^AzB+fVRCOP(Cp&irR8Km#sZ2)s*;V zFSH$V-Rf3`fkdZ&^fW2t`y(LBLx@BeHLEEdH9wV;XRiDMH8m|1P{U0QT-0$wKY{kJ zgZzE7e=m=Y63U8$!4Yy)-4xM~#_%=*H|W#y)YW;Wpo6QRpGJRFKCq|3<)EoQ`o!aK(-4h7wF!s(?nj!0Z@) zg=>wmj4`u|;vurqA6O&ulL&Px&N@KN^ic)QVycg|$girSr9Y^5#4rwPzt9pe6<1>nU#`bX0SlGkdA)~n0=g=w1Bwi+16%JSxDCbpT3S7f=A}Z|H zlviOFze0QU3w|H-#vT?v(w|E3Y$Q;N2dG6XVu_e{nH~3_Jh$k%M~{XZwC+dN$WPIr Bd;S0b literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/InvokeDynamicInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/InvokeDynamicInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..955dcdbdcf01301edc4fabc09fb95a36bfcfa35a GIT binary patch literal 1803 zcmcIk>rN9v7(LS#Ds|;>v~;h zh!6;87|e^UX6bfCEBLNySF#iZwgN4j0MI8{U`bhZVB&D)dy=ELz!0yC%0Et7!8m$jxQI&(0|Adk+je~2Hyztka0O#AQhk*nRIM|l zk4=!F%di}qMBZy1u-LyJj{*(X1cw>AOqLK%*OLcN<=52z)4&+|_Ttc4Mefts zMZmQA@6PDomUP*_@m zlAxTV%z)4ots+0%-~EY}0JdAYo=FHL2)7^@&SQ)`LQ9dr1wbOBHb_K+G&D#;1EX8G ztY)?_u`8rk5_pASyv8Wr$j62={>3bYB&EP3vdCxl6|veN4M3G}Sd2mk;8 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/JumpInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/JumpInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..18b6f98d409fd46fd689db730fd3ae59b898661c GIT binary patch literal 1921 zcmcIl>rN9v6#iyQTUwT@6pMI45!r5m74KTCfQd;>ffz_5{=jV8v8>tdHoIGlZ{kDv zLlY@R6Cc2bGM?Ejw8hwhi9fn?=FBVp*!(p}PdX8T5T23K`(RP@{xB9-$5H|H9HyPA? z55&B%6Y(<)k!8a&yez|_k~_U$s=&~vZxI776;z3ulkvI!|EvWn=X60dm-^GcUs>)hM3%LT(V zJln|#^2%vT6vYLGev0ZBjbTPfbqVAfWn^5$r8uT=nPKklfjU@4G0iZzFDM>Wg<-a9 zPl8~g2iGtY$5mXXxd`g9YFW0YdxmYfGHzfpPSu-ZkgEF(-S~Gkq7|CB zHZdVBF^u>%ZtECBxhI`J%6s;P$heI=g2P?9My7ZY=*sfWKL4i{F${Ocq3P&*>RJYLze}JLSw3U#d?~s4ALN2R_V-3rsn-0t| zj1k(Aqj;qVOh_VtMDjVZ4&bx2m*^~_P8}f8LKgK0HVApsN1X_)j!`2`RE7zhZ(=Rb zD&mAjq917qC`NqMmJcEa$4wB1Bqm7{WEt`UB+}{^BCO9I%z zI9|0eOB^#xAO)3R=^qdC1S;U)P#z+m)hwjFQqWZHMuj_#u3u zi9*!G_|C)+Wjyz`DJ#)oOnlRa({q3K|3By4{`mR%D}W_DWKdnNqx)Ug>F}=mihF!d zH~d50w%U5&ajrLwHn+FkJ)Q?+(9g-zJvyo=oa60<) z_5n8o+CXOahf2^;E24^dYPBuS0!=Va*6csoWf)2BLzPxM?#J_-*`%{BvMh&h_YT|K z+cnxYMaG-1Y1l2pv&4H8oJa=gh(sR>J66Xrf}Te!l^wU|nf!@mb4<~AX6WBT($g>FplH8QpVQ>I9|t^pwI1UBy@f3&>)Ta)45pg<+KGO%O&R!c)o=xkX9P zY9BFniYX&apOy%-Ovn|9nh4V)6fKm(7~#foA%ZT@UC2t04!xyYs3|8yt9^RXu^u{! z(b5KODVA2W4;cH7vi1d)mnXPFxV~= z_NmFRR-06l$9)D1vB3hSF+&)JJD4SmsQZfuSFCBDu#mzxWQ4M`EPiP8Ss$zz!-~|9 pyM($=*1>XkmVVP-mgq|;xk-K5>hqn8eXmMZ_7{ytkLCaX literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/LdcInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/LdcInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..2fae396ce13acb9d4d94e6a50fc0e9349d553a93 GIT binary patch literal 1464 zcmcIk+fEZf82)Bks4YubD&YBipa)>(x<~>hN=?BFNE0u&+euln>^8eojBnyYc%g|x zqKOaSLm9u>tyoYCnwU*y=0AP&{fF7F-#&c-u#9DaY8Z9xxEBUp*$ZFENOo)|-nV_P zZL3I1yV-FYK^$y_9hrj=u+Q*cYsV^bT=g?3BVY}oEbTc5jzGqZl|ZSfCEIs`uKl9D zCtXz+7+>)MPpt~fmVY%@S_0W}qtY^Q0fhpxm@qMpTpk7{X;QmhEU?f#gXRz+-k9r3 zwez|sNvm9Gkb&d6vPXUk}jOv=${GV?<;he*)fO()J2SiLD5PpB)vb~ zOIGU5DUg*BMAG?j+S1q4Q$N4w>OWA^!|8EQ14=k(TuinZzo6c2HwT06w`)0Cbug$+!iF+{0&OsR+)xJf*LTewX$joV@> z8rS*^+ZZ4Mz?$A}ins1k39-YIvjsZe86W3bEukCM~acjGL1 AEC2ui literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/LineNumberNode.class b/sponge/org/spongepowered/asm/lib/tree/LineNumberNode.class new file mode 100644 index 0000000000000000000000000000000000000000..3d5f920091363fc69c62290466c64ac0ad84dce2 GIT binary patch literal 1673 zcmcIl+iuf95IyVMnqWvtL%Ebop_Dr5#oR$kRjDmPjgN^2)l%pkT}PneeI5u_94dt|Nnu_dTYTGAc|iYqi_5$LwZ|1gupVY`L3F+qVPP zt0|SnS!S0hSd?6Fe(W|VNgxS7_Jv^4L1a){!A28mBTH8;*OGd^g#tC6U!gb zsdC@OodU)&A)syV2qbBY(XynOw&SW^Suz@`cg%iZJLam@t0jSiEqt;c3HIRx$b3Sv zqA@sZy0b?v{F5}9)FCIe{ADGMMn}gKss(oWw3>l)%9>@HIx0IeYTTavRY;_(uN8?UT+~6X=Zg;v?(D(SVu%Emnf-L!RC+BE@~UsvY1$b!?B;%pOXg>C^CtYbnH8Lj9j=Wn7_0Nn9b3 zreLS5yHvM}(mrnP?JjYwqUf-YA4BQ7&=U{CId|BTf8inPkr&p2iLMtys&)sSNKcReP%+qM1ozu_`tBwIs5vZZ|{@e|NLnkKp#pB zLq)rgD3^*>ftQN!bDQTAdU-Bk8rg(nbDl^SbGn()Z9~tRe8jSfj_w#mYpj^(K`@5C zJ?tkJOLb;`hOP#FduR0pogq+mblYKQO^bD6-Z9KX+9*3ohT$Ds!|6S;Nb6Z{iky?@ z$=uJaJoz`QJpX{9yUv*#&(y6#B4s(ez-`w`9yTn)InVGgl4=l76ntHGW|Gqllssr_ zNj-~d%1hTxZ^E$+tB{Ol{0IOHk0Po6U1};+v?%bQl|gc5jIy}Cy{>C_($Vz=9fJ5K zzsJB*3{7Gs0B1Pfz;EqZ78V<593u4 zpW2fdLbpU;S$Dj8Qh6qMe+IW(e`J@qm+;NHnG54O|qSFEMoP zPFr`t1aXCo3Y;Q_x7SlmRK-=iDV(JlBD*`=J{^J>BbJj_HwMG8NVGvUu2NFPb=*)e zj+^ysx?Scu z!}tGvT6#4#>e{NtKg`CdMqq8eXB*eA;yv6|@Gj^9I^Bph^`@dnFCZsI9r4sRx4_US z_BJ5JR1+}L8%qS9VmP{YwG5#NqhRUIyiG>ZD7|hBEosBzWAk%aZcmCATgeh1Lf`we@}Y?&>g8=~>gd|K*|kuyk9JJ5ct93G`rjIB z+uwdFu1Q)zlUH%z2iMyieFZeYU9>=lMbZ^dA8j~DE3y={ByU0@TDsb;l+z0oN$iD4 z5}CG=Cr!L~BoS#zgNaAR%Y${&iAracSbIlY3$EgD>}Pb{(xmlO9D9Q9*pKMeq^Iav zLmzd3cNp*v`{}S>3+y)(1oWK_#q&Lyys^HHDSl!DccW2sb}Pat*JM z&n1O@_tzhrg~upi;6p0lBP#1-oInL<@d-xpDQ;ki0RN2OTcVTCU0`mL=6x#Yb%LW= zlv0DJf{`jj6&EZ4XvGCfKvZ$T5)f5fumnUE7cAM81X$t%FHmIn(%50r6PLCuP+7xe zhF_5y6DVvfh9ps(yZS{L3it=*upD21jH~gmER4eP8m{^98^%{KF`-HBZvT$mfV(?T z+da2}%=nT_C_Rbwke7GpZ_1?%3Ad#cWLLm<;`flK_J}H2ruXU#oWYm4jIVG9U!zRx zMSMf2-`0rLgE1FBQTcKWzh&G*fod0fGcbr^`v`LxvqZ6W@)06QBL8NUVhlyn^&#*# D+=KN; literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/LocalVariableNode.class b/sponge/org/spongepowered/asm/lib/tree/LocalVariableNode.class new file mode 100644 index 0000000000000000000000000000000000000000..8f7d76379ebabdaffd860e415714f303538b8550 GIT binary patch literal 1356 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/MethodNode$1.class b/sponge/org/spongepowered/asm/lib/tree/MethodNode$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7f31b928504f0c6bf7034a1387ba907b687848b7 GIT binary patch literal 912 zcmb7?+invv5QhIr)1*n4oJzwfK!5-_2$o!@s#Fz<0-?Pq$^~~$Vp3OIyYe~(-iaF| zP$e#S03Hf4-c(c~fXYf<&y4^1JRbY|kFVbVbkQPojGcz@vC&g`Y~D#LC!vUs!bpum zXQd2ZNq1l-yJjLA-7JXE8XSrf5zd^7!YymXhk=US#yl7aJq`CphjQ$Cn?1tXAEa5N z3B_~lW3OTCh3m*7OQ@cxSh+2&jT258{Zzgcv&a#`W^3?w)Oo_t=NsD#kVBr3aR(}H zJmG%)Bm1|8@BuR$N-MYNxBZX2erp&Yz@;2gC=t@lBv3#lk7cZJz!yV!ba7;(%f+PL zbN$pOEQ!g4u-;s}l-3(USuA#~vM3F31GOAha5KO)T=%8jX1w9@w)r*i9S)S1yR)N_ zw6Db|;z(s+#v&RDtGs^}4EkD2yB&!*mVBttn_sL1PHl(HPyn+EEDqkW@g87 zM@15K?#?nlQ!15wv)D@UD4+`do%} zRN3Q%1jp-aUBOkxkU!xWc8C3BqxNT%nS86=IYs>=t5fjgykDgkSfQ5*y*gL_q8D%n dHD;x8KT-3&@a(?_Jks3IRXk+N7vD_g%ujKD+amw~ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/MethodNode.class b/sponge/org/spongepowered/asm/lib/tree/MethodNode.class new file mode 100644 index 0000000000000000000000000000000000000000..a770d701dc6dc783b5b28cdf6caf885e2b07b4c5 GIT binary patch literal 17281 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 Bi+cb7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/MultiANewArrayInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/MultiANewArrayInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..acc774bd9a3f1bb3b65aecd72cb90cddb88eb2ad GIT binary patch literal 1567 zcmcIkTTc@~6#iygsMO`sS}O`Fc%$7S>y7wOf)*1JV%x+(NHo4ox05nvyW8weA^a16 zgb$i{8eBbGr{r=;VixLbIX9Lc??YLlWZC>N!Hrrc9JlEuq%7JAxrmC~98ZaYRQk%oh4!)`Z&do9i-^ z$`8t#?ac2997|5&D#MjcU3r?5i3wax;~FLzGBJ^g=lO~&>3gAx8yHWM?wbrody}E~ z#|#+;9M|_q=Eui=nA45P>U=r{L*#;ya> z6ZLMpA%ZpDaLJRc`VM#3c_8(@=gc2>(!=NlhE`?E5@W+3=!l^QBiC{SXU5?k9KA-2lSh-R zQzJvemaH9Ow}b2+u3M!&OdXOOiO9Spf>k0|ixBg1)e(ZzxJ8%@w{eGJ8v6~2)7ZH$ yFkTu?2JO*uACt$xU9z4;*1%6Rb(53; literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/ParameterNode.class b/sponge/org/spongepowered/asm/lib/tree/ParameterNode.class new file mode 100644 index 0000000000000000000000000000000000000000..758d9730ac84cf617bac5a1683f4b4ac144407ac GIT binary patch literal 730 zcmb7BTT2^36#h<jT&veRDCgt;^MR71yN8_TTlXhoNR_Tve^x@WBgr$7x2L! z;Exi|tf?ZUMPFvl<-5!|^Z0cC0ALM^gq2vg{iGX5ZP|@4rIsyUBpp9gP2XrK{a-?h zjxJT(uZNE@CeC>Ti@2qgB*iCk%)nkV!(I z15P$nq|7FvT=^S&P;C&hm1@I-3(rLkc@G0{hLAzg!ytxiG|G17OtIi<{WCNDc}myt zGAjR}{*dM@ZZ%Y*Osv=Ko0k6V^A7A_l2GVb=IfR`e8sSfDSRVjIz2-5!`3|LE`J80 zSXYrezUVZiJ{8R{-EF%~>8ad5#IMz?gZh@25bKDeJ#ThzG@!~S{rbSR~ z$1_YVZMYtNn`v;(oILQX2t8w1hBwQw8cwB7zI5&6QzKa-9Zp5E3cAr7L>u}PbRf_P zAI>W{Q?>>abRsBxFEO02vP?LR{#Z~AV2C6Pm&05P;sS;hbU_hIE|D?~OWXi16Fc1% zYZeNf<+gaIKb1m5H80V}?MHdrOZ?Txvwk)}iO~yhO}n;U@44 z+}pGZS;I9v+lk9cxyBbl(E)1Ftq1Q z+oJB6tL@wcy+oVfc&TJf8V@`|{JJ5?DbAc$Xi_tI?9KkC)OfRYukW#V%^p6H64l%k z+`~trW*LTbtr+r9Zj9TkJ`E{}!1qO9d0O@e>j52ZvUoK;!%%3+^SQd6zS0U-u_khO z$iVAa{ZA!l=&8q{ZtKh#MN9W~9BSXTdAbqBB*Ws1JKH(#$ZgATE^X&^Gpjp>xYsMr zP`#6m$I6Fb#@=!A{ElIAI_-UQCxIS1H4z|-PM*q0SCV|EdxpI0WczTIW`0RmSr2)1 z@_Y+F+G)I{_Th&EoKr9Ep7-( znWNt^LIsux`97g#(T8P(@PP7L!Br~6O*}-NW=xmS5W^(B5w6UdNlWDIla|QbFRd!*-(Wa4BHSZ~i2Lw6Zto+J`O43}`{%DH`TOY!(KATy*go#6(S5vErGH6E&Pm=4 z44_EY=msTjU=CZji_c_UDq;6v6z|hqK`wbDLK0~#P>yF2r#}UY#EH>P`hZ4}wNsI0 z;wgM9wW&m(V2R#GX$*sYtiPuyGkBjKh{0grvL^N4OJ&_9*Vp_L$bKE+W!TOi{=Ud literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/TryCatchBlockNode.class b/sponge/org/spongepowered/asm/lib/tree/TryCatchBlockNode.class new file mode 100644 index 0000000000000000000000000000000000000000..2553081ca6477583f8af5d8119c727e2044e0ca6 GIT binary patch literal 2650 zcmcIlTXR!Y6#jOSHf?%@TA(*t6^oLlEuoZ(5L%!WBpM2m8nvi+l5CPw(v!}~=>^mg zW}Fceol$f~AAIqp&(6>~b;R*WXMFPAcYlWX?Q?RqHsQs|O!nGqud^=S`u5tt|NZ07 z07hX79LignaA7fTX5?aiMOrc))(Z>aoRJLMmXzUH>-w~Ar?OMIeCpavJ}vza0`2qq zvL4RqW+r?gIWJSTA6|jZEyf3xoj_B;)-78g6l)MIrYB`iMTrP_rI{A+XLU23la_$b zzP>00I%1XBaoaM?3~f7?je?QP$yu75HqE@P+eY3jFj3cf$u@G~m{G84d*)xN6OEFp zb?Rg{Nk83&xn0!e6NYKnlLGgGjht61{$DJ&U^SQ^vcbWGhIVuW;KMEr&G5IvgFPBr zT&YV#t1IlDW0I}QtTgQk{zJN0UOyjJ;f$fcJvhw2`JF4!OUBf7W)q0h=0UKu2 z*x*0zj)s@;asW}p$ee<4gY$@lVrOS?K~eA`_XI{@4+&m1sN5k*6fPmI>}Cm|V#YiVNh6D7O0m*4Ouv11V3zz8yQo#mn?S1 zH_eAcU}wxQ<;>DTQd+Y*-w5@DJiU4M$4s zS8?TFboLyJ&dTw{Q-iVxJ1FsHSM9x&+wnO6=V@`1Hcec6LqA}5XlNasq2YCOhep<^ z>hZ0k?|aA3HD$xdK#F;!IgBNJU&StD(1R>;JUQZeLO-71&b8;;>_{qCk0YsUy^f^v z_3`{kJXOr*PoAi3WXHa}?JcV}Cqnlz@GC-U*~Fm0%*ZCf0^gvE!kEA>7(edo@%63a z*xJLtXclp;BadKRDJ;Yn1+WR|62V%=2v#tLRSw4+n83TZjQ619eU|+}xzG`Uae}8l zo|YsgUM^l@5=U893t4!Ql85psoOTNpSNM%8^uZ8w?%cqOT)N$*_c!>(8Uobxx|+TX zoab(U2i`SkO5DUN0u$cJ{=V-psuca3c-2#aW2nb>AIH?+8|v>(-v-{7#wWkVzQ)Coyn|;5-QF0qWe9V$RAv||EWj{q6pAopbu<$u<;R}3( zd(?c1Z}Am2DF1}79bnIq8*%a}?Erg{O_22CrCmvPr>rA*Ww0NRi5WsWK|W`TU@tHu Ga{C{%*t9kP literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/TypeAnnotationNode.class b/sponge/org/spongepowered/asm/lib/tree/TypeAnnotationNode.class new file mode 100644 index 0000000000000000000000000000000000000000..b6fb92af81fefb67e8bd0faac80fd3cef5dfb6fa GIT binary patch literal 969 zcmbV~ZBNrs6vzK(D~y#YSd+U{K?m=A6@W{=f5ZfBgLN4Zu2X6V{U~aPu^Y1DPi8WF`l$$oJhS z?7KxKrMvwhm5<{%DMS$_@m4aB6%e8Im$K6(WkT(Dsk?jPtsqnihP;w*2;>o_l=o5; zyM(pQ*%+m!vf6~nhhZERj|dMM-oI3I6xNMI9Jt*g3*(^O?3FPA5ZVpzza=b~IA@}S z^Mu(k;zfT?`b7n^JX#=&jY#Aus&P7LsUl*6VvS9VlUz2sl2*lTlG7wA!eMN!n7-lD4kkD$0!IQ;*;&`}}rbJM{%) zh!tn)5Z9g7A#R*zzUC1GEcE%rzGmJ(syt@exXC$+X=}P-+Ir-&wiMmq{|?a1B~@h5x) z4IArc}%2 zUdL+4!0|d|27S%(99dzQ%U6H(7n+ovuNImH&LERP65|GRq|(qZK`y!FgbXXS6PONi zQZ@aqO-(YeDnmLH@Udy&4DC@T`TJ)7emn*WFcpU)?U1V)r+pQ}Q~yr`W0)GQLuZwI8twg5&GAIN zx7`xK25-5v3E7%&bGOL@N9ldz+^~_ZL*J2ZI3176UO<_dhTjWp@yu}rmZ;Gr{cq@I zsas0Y7)f*r^u9&fOY$e^J8mxQ!!S#`nEXVlMn5QEGIBknlnOF& zmBm$DBTRfF#rGn literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/VarInsnNode.class b/sponge/org/spongepowered/asm/lib/tree/VarInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..5b02b70362259728147c6c97841397db08f15697 GIT binary patch literal 1554 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 ZQc6=eR9V(n^f%J&bd(^kpC<&>^l#gcSPlRH literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/AnalyzerException.class b/sponge/org/spongepowered/asm/lib/tree/analysis/AnalyzerException.class new file mode 100644 index 0000000000000000000000000000000000000000..a101872ddc3303331fee1a7f86fa2b183c1c9422 GIT binary patch literal 1546 zcmb_cTTc@~6#k|cXiEhtHxV!O-YzXGT2Lt(R|AO&!5Byrqc6MLu`F3;o87ITf50E% z5AfLs+e8yzP5e>DGrOf!+6GK`nVy+B=ewLe)8Bu-{{*mzhYXJ#x2Ae^N7Q)T+2<~= zs=BwQ+LodEF6XK)bo+y6d8#IZkKA25FnQg#95D>WFtMw@*Hv2=HMQ#^$}ruNzaUc? zV#29%hQ*B&h&99WUETCw2v2NMNtt12)e@Hfgke4R-_;vOLbrU^618%^!Z4NVcb-N9 zsT5)uNn;4ZNknjtg!?;|$51|rdT__cLUhloF=TpK8Qz?QsV?B{9oN~{4Vwo}l|D`f zBuo2~(*6`fk{^C#k8w?{WS$>3hiy`4V zVK&2Lt`~!f?;t0O^T%l0E$A)jrk$6S1%`AXYc%}qJEtL}mj&WIl=1JVwNXhZ7ba!< z^0_mpr=IAr)ASUc2XA<6!xDV6v1f31TMn9Jb4=Z?=&mLA?ZecT({N3`ZrPlg6`{cb z7{=w(q9{sn0!dm+w0lMOQTiQG3N56S`EMBgO4|sQXdMl%77&Mu6z*b~&az=T#&Di? zR2aarAR0%8Dkc0x8~!b2OZv1@D7G-&7r#UZON6r=;45K%2S4~nAT+`t3ld*OGq^y= zl4-Wh^qK17bf+mlF!#EJD}`T3WU^l{eYkJpX6806O(?V$nf3T9&z(b*vTD=1?X kPw_aAR|-iw^0bb9ts_sPRxJi?(r^#=Nf^Tek`_VyFUe|;VE_OC literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/BasicInterpreter.class b/sponge/org/spongepowered/asm/lib/tree/analysis/BasicInterpreter.class new file mode 100644 index 0000000000000000000000000000000000000000..a53570dfd63011d5ec9074d8d9af76a8505afd79 GIT binary patch literal 9527 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/BasicValue.class b/sponge/org/spongepowered/asm/lib/tree/analysis/BasicValue.class new file mode 100644 index 0000000000000000000000000000000000000000..0ed9941219e7479f258e78ad9ae239b1af33eb80 GIT binary patch literal 2020 zcma)6%W@l45It89OP0s6k?i0Y;v`OF^uQi)9GM^|j%-OrSV)Op!6J~1l!-L1iDX7{ zsIcS<*s_8R&c+L4AfZTA3N}#1M^W^>cl4-G;B4l0_w=0ZK7H=|_4ltY0KAJD!*bhd zsGYrbtD*0;ztAoHzN&Q|s-{s>yOyr2T1zt@cZ`m@p>>RUMKkwx4;aJbuJ%Y%O|8{X z^R->Q-u1xAu=uKIHjtZPVgS6vF&P5oTqc((WfIv;HI=+uNo30@hL!BAVh;f045OJ` zsRuEZ&gK(+&zH^TwtBCWWWKzSP4(P~LMojqq;i}6NT84^l?%BhgYol=Bbp}_rX>=Go4ZX{u z8RkRblMrQk(fE?m2|2?s_upi4R1fBeIzdor=VnU5d0zh4!3M9N(Q*cTK zXjQD>#SMmWqB^N}>XxzBZCeU9aD_LxN#)k+rdTUqRlrBMX$o@1Np?Pv>|_-9BF6NRAQHa_Of@6dWH`ApJo z^b^^~9g-KPlx}6#Xz98Ahc(?QX*E+Up6<{@=nWas?IU#JAq33#4O&hF;zMly>mx?!pspF5^h8UHwBC$ z6KoiUH*uCCyrCpz^N(lw$H$oe9^=vq9>C*%0+;LXCB&^E#MwUL0^YI_Z`+7Lj`Ii3 z@#85XlfG{;(X&UtgU3bS&H=cbew);j#U*SH6$$o>(0#Itd__e#kFjXv0B+Y|^mjPE zL73zJi9qx>ID};v;bA-W6ibIgRp;O#lv{A4Kvt1(sZw-7nT>H$XlSC7bwbL$$n z*1459lIY37zU3%7jq!kF(jf6QF$IHUvWq#GLsb{-s$QfhL+apbAwJ;Fb2xU`Gi?2c zRc;>RL*ZnllNZh{>C6kKD4n2i%G~i+enC~Z>+;>F!ijUKGa>bPx)z|{;}{k(Lv#j- W%4J+8;m4?_RpfA$GBwI^!1E7AkBXxJ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/BasicVerifier.class b/sponge/org/spongepowered/asm/lib/tree/analysis/BasicVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..869cc3d723d88fdf3149b54ec7a8c9b3d2c2ea51 GIT binary patch literal 10571 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/Interpreter.class b/sponge/org/spongepowered/asm/lib/tree/analysis/Interpreter.class new file mode 100644 index 0000000000000000000000000000000000000000..ed2de37b2e6c6cff7c2e0fc5800484c5acc851a5 GIT binary patch literal 2643 zcmcIm-A)rh6#fPZh0@ZBT7U2l6>W>MDuU8BHN;5Lq=6Vnk@0_nq0DGr#_P{{i4JRvA`Y-L!nqRZZc!heC@z zi~9$bBW)|tLRegJ=g617RaJq|o)+|sgE4HD>&0SiSnoP_TB1~`?ellsa=2<*+xEU_ z1SN({zb=j#X?yZ5hZYRu+>;Ef$}m}$N(L2%Sgx9{6Ozl} zlFHcjgyw;C6@z_}TRYQ+?FX7Sf~xY>mb*7fZEGVWX&1Xb><6_GewQDFe)YZ~ypUNO zR~S+a*E{MV`^mfx!+kK{w{`QHs5SX^duCgT>t2FsTlQ&wnuj-}Y-n!Yp|Uvz>Q1*w z89Ji+n)2H`q9M!wYi{1d7v_wk9(LQ9>g%C4j~E^Itw1_fP5QwIhg|K=_lE)P`S1IM0gaMMawzI!_!3-4qNTPYu$Y?V}ZHNQ_}7*Qt^g z8qF_hwlJh?Qi-kBfi3hdw;j^V)!YVm>RiiE?kKazl{7Lt!1Ru6Do(pfo{8=>pqZc8 zaa+0}Hl-tC3v?Tppeql9}*lAOgQdRrkmM*6EA z&$X!Afac=-}pO75#1CRnCOL)*_@sMmHKI3@W H<~8{jF!nju literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/SimpleVerifier.class b/sponge/org/spongepowered/asm/lib/tree/analysis/SimpleVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..a684134bfffe3e49d047d7040b8984a98a818f82 GIT binary patch literal 7038 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/SmallSet.class b/sponge/org/spongepowered/asm/lib/tree/analysis/SmallSet.class new file mode 100644 index 0000000000000000000000000000000000000000..3f7a4fc8ed2cba45d585ea0ad401dd0e1f5dcec6 GIT binary patch literal 2331 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/SourceValue.class b/sponge/org/spongepowered/asm/lib/tree/analysis/SourceValue.class new file mode 100644 index 0000000000000000000000000000000000000000..be6704fbbba6638aa728e6095250765554edbf9e GIT binary patch literal 1604 zcmbVMTTc@~6#k|c3uUof1XNT&QQC4@5b#z)f*7=<(#wq@$>Un08^L~m@Zcfx?L%k3bImuEvs@v zH|(NrnK|95N~s$q!`iV;ThEkh)x69aR!v4A1Uj~iZ9}(=QbB)`+md-Ff}p_o-@^Go zVFEQFPbg4;0{4$b=9W*PUdY)_)yO+(0CBTdo=#*1CQkurl%r@^7KKC*6KIjeinGHvfzEj1sIHWTPIN`lfo_5B zc>36BBCDYtJy8VEOBK$hNwc%3d1=UKbcJqa34e-#6ID>IgK2)S;SZvm{q*#hk1@Gjf&-S)=t~~paW`(v_n`mNnnpmAC z=9Vjfd(75IMsP+n5_tt2VJwb>?^oxl?u3(j7}(_|;L@rZ15aHl4^5+6g|(D>%1=vCa#`S*)ojWj5J=p;Bam)djw5|8Cu$KY zSvW?`4nmr){by@s7|uqgy=%IG8$neR*oy7iVMQQWDBjZX0*+^(VO&59@7V;M8|Lu{ ziRkujVc5Mv#O5&5f00%!k0CvZ1YXoJf>AX)C2(>e&bsegU8PVOFJ&-=aUB_qDZ8@* z#|L(?$uwiPc6J1^g;>o)XEcUnE78JP~4`s z+ZC8E6o*|rO5O}3VTKMBVZ9rKvYkeW94!@n?7wtGMCS8Bnx+!9?f7!qA)_6-<#ezBuG{^zW^!_xMoy*B>Bhs0+En>sFIQDtk1>y{+DY{4u(AF_@WtSUQJet8J`;qpu4ioi(Ib3@B^ z107f6+NiP~Y=KPBZxia_-eZ4|s#F-_Xx(nPR@m`LRIBo#vt88KPBuI3hV-|shQpo7 zsJL!fzOB~1%}hU7y2{kOj^C6wY)9f8%Rpl%OY-B3;2-KeL?i1R0w(7P=(I|xm(86G z?p)$1IHpSbnD`+wxyiq(Ds`w~4mHm7*a#;u$rb3}WY57DgjB$J<)BpFL$;LrMcc#a z(o;-*vX3)+$d!IXZsq{5C2)HHafUpB1zx^Po{N~k63${7Z!#MSvJ|`RL*}En6xTdn z$N7k09&gY-Nh*01dW610Dmtq?MS}RnTAA=!@>1jJXE8U zWjexqg7b>N^rf$$TTI0VJpB;2 z@ew5I_!Qd+xYxzUQNR@@LSuTaGYLsr<)S2LOkJh7$3XjOdxRU290}fkH$r`%=o;l& K;I|pEO8pIlsLA^P literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/Value.class b/sponge/org/spongepowered/asm/lib/tree/analysis/Value.class new file mode 100644 index 0000000000000000000000000000000000000000..c2c8cead494fdb961e44df9b8f941d3d5bf31637 GIT binary patch literal 155 zcmW-aK?=e!5JmsAwNY0dLl-)D3Bi?%g8Q@%AtfdyX%#)13lHF-#MaH@!~5_)-`5+! z9t*-YM8l~I-bfej66L}=UD?^1`zXTNYxhVt@mae;6o{~D^-Z(W-tehzrRf!N!t#IE oO^%?9^p$-IAzyEfqpZRZ8#!1fB_TsG<^d`QCDgPqADLnH1DZP~w*UYD literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/tree/analysis/package.html b/sponge/org/spongepowered/asm/lib/tree/analysis/package.html new file mode 100644 index 0000000..228da02 --- /dev/null +++ b/sponge/org/spongepowered/asm/lib/tree/analysis/package.html @@ -0,0 +1,67 @@ + + + + +

+Provides a framework for static code analysis based on the asm.tree package. +

+ +

+Basic usage: +

+ +
+ClassReader cr = new ClassReader(bytecode);
+ClassNode cn = new ClassNode();
+cr.accept(cn, ClassReader.SKIP_DEBUG);
+
+List methods = cn.methods;
+for (int i = 0; i < methods.size(); ++i) {
+    MethodNode method = (MethodNode) methods.get(i);
+    if (method.instructions.size() > 0) {
+        Analyzer a = new Analyzer(new BasicInterpreter());
+        a.analyze(cn.name, method);
+        Frame[] frames = a.getFrames();
+        // Elements of the frames arrray now contains info for each instruction
+        // from the analyzed method. BasicInterpreter creates BasicValue, that
+        // is using simplified type system that distinguishes the UNINITIALZED,
+        // INT, FLOAT, LONG, DOUBLE, REFERENCE and RETURNADDRESS types.
+        ...
+    }
+}
+
+ +

+@since ASM 1.4.3 +

+ + + diff --git a/sponge/org/spongepowered/asm/lib/tree/package.html b/sponge/org/spongepowered/asm/lib/tree/package.html new file mode 100644 index 0000000..940b876 --- /dev/null +++ b/sponge/org/spongepowered/asm/lib/tree/package.html @@ -0,0 +1,192 @@ + + + + +

+Provides an ASM visitor that constructs a tree representation of the +classes it visits. This class adapter can be useful to implement "complex" +class manipulation operations, i.e., operations that would be very hard to +implement without using a tree representation (such as optimizing the number +of local variables used by a method). +

+ +

+However, this class adapter has a cost: it makes ASM bigger and slower. Indeed +it requires more than twenty new classes, and multiplies the time needed to +transform a class by almost two (it is almost two times faster to read, "modify" +and write a class with a ClassVisitor than with a ClassNode). This is why +this package is bundled in an optional asm-tree.jar library that +is separated from (but requires) the asm.jar library, which contains +the core ASM framework. This is also why it is recommended +not to use this class adapter when it is possible. +

+ +

+The root class is the ClassNode, that can be created from existing bytecode. For example: +

+ +
+  ClassReader cr = new ClassReader(source);
+  ClassNode cn = new ClassNode();
+  cr.accept(cn, true);
+
+ +

+Now the content of ClassNode can be modified and then +serialized back into bytecode: +

+ +
+  ClassWriter cw = new ClassWriter(true);
+  cn.accept(cw);
+
+ +

+Using a simple ClassVisitor it is possible to create MethodNode instances per-method. +In this example MethodNode is acting as a buffer that is flushed out at visitEnd() call: +

+ +
+  ClassReader cr = new ClassReader(source);
+  ClassWriter cw = new ClassWriter();
+  ClassVisitor cv = new ClassVisitor(cw) {
+    public MethodVisitor visitMethod(int access, String name,
+        String desc, String signature, String[] exceptions) {
+      final MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions);
+      MethodNode mn = new MethodNode(access, name, desc, signature, exceptions) {
+        public void visitEnd() {
+          // transform or analyze method code using tree API
+          accept(mv);
+        }
+      };
+    }
+  };
+  cr.accept(cv, true);
+
+ +

+Several strategies can be used to construct method code from scratch. The first +option is to create a MethodNode, and then create XxxInsnNode instances and +add them to the instructions list: +

+ +
+MethodNode m = new MethodNode(...);
+m.instructions.add(new VarInsnNode(ALOAD, 0));
+...
+
+ +

+Alternatively, you can use the fact that MethodNode is a MethodVisitor, and use +that to create the XxxInsnNode and add them to the instructions list through +the standard MethodVisitor methods: +

+ +
+MethodNode m = new MethodNode(...);
+m.visitVarInsn(ALOAD, 0);
+...
+
+ +

+If you cannot generate all the instructions in sequential order, i.e. if you +need to save some pointer in the instruction list and then insert instructions +at that place after other instructions have been generated, you can use InsnList +methods insert() and insertBefore() to insert instructions at a saved pointer. +

+ +
+MethodNode m = new MethodNode(...);
+m.visitVarInsn(ALOAD, 0);
+AbstractInsnNode ptr = m.instructions.getLast();
+m.visitVarInsn(ALOAD, 1);
+// inserts an instruction between ALOAD 0 and ALOAD 1
+m.instructions.insert(ptr, new VarInsnNode(ALOAD, 0));
+...
+
+ +

+If you need to insert instructions while iterating over an existing instruction +list, you can also use several strategies. The first one is to use a +ListIterator over the instruction list: +

+ +
+ListIterator it = m.instructions.iterator();
+while (it.hasNext()) {
+    AbstractInsnNode n = (AbstractInsnNode) it.next();
+    if (...) {
+        it.add(new VarInsnNode(ALOAD, 0));
+    }
+}
+
+ +

+It is also possible to convert an instruction list into an array and iterate trough +array elements: +

+ +
+AbstractInsnNode[] insns = m.instructions.toArray();
+for(int i = 0; i<insns.length; i++) {
+    AbstractInsnNode n = insns[i];
+    if (...) {
+        m.instructions.insert(n, new VarInsnNode(ALOAD, 0));
+    }
+}
+
+ +

+If you want to insert these instructions through the MethodVisitor methods, +you can use another instance of MethodNode as a MethodVisitor and then +insert instructions collected by that instance into the instruction list. +For example: +

+ +
+AbstractInsnNode[] insns = m.instructions.toArray();
+for(int i = 0; i<insns.length; i++) {
+    AbstractInsnNode n = insns[i];
+    if (...) {
+        MethodNode mn = new MethodNode();
+        mn.visitVarInsn(ALOAD, 0);
+        mn.visitVarInsn(ALOAD, 1);
+        m.instructions.insert(n, mn.instructions);
+    }
+}
+
+ +

+@since ASM 1.3.3 +

+ + + diff --git a/sponge/org/spongepowered/asm/lib/util/ASMifiable.class b/sponge/org/spongepowered/asm/lib/util/ASMifiable.class new file mode 100644 index 0000000000000000000000000000000000000000..0b3a572fdcee66af3c69d4fa6b13465fe08b1d28 GIT binary patch literal 348 zcmbVIO%K696rAU~9QYYrY@9U`4o($^Chl8aH!G{H)e?Wr!4L4G#A+lCxVX)m%)EJT zZuiR-zz7|}Ahk*yvNTbgr6;z$5%RDTMn|H^wGq>Bp<^v0!%YyOx0OdJj7*eRMq6Iz zO;icpw`%wl5E^cYj?VE>Zmf6$NPQ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/ASMifier.class b/sponge/org/spongepowered/asm/lib/util/ASMifier.class new file mode 100644 index 0000000000000000000000000000000000000000..979b0c07ab9f14f7b87c396170b510bac21c0ea6 GIT binary patch literal 29057 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/CheckAnnotationAdapter.class b/sponge/org/spongepowered/asm/lib/util/CheckAnnotationAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..c139f337a17ab179cb3b6a2303b771b5661e6606 GIT binary patch literal 2988 zcmb7G-%}G;7(F+ME`$IY6|Fy46onuJTG1+2i~P`7L~AS-w6;sKCaarWnruK?ZSB;V zKDSSGpL}Xx?M#JEovHFtXZlBVdhTx6B?X<~B`3LizwbNueCNB_fByaRF97}cPGG<; z7t)nk+bZa@_Pk!!^J%S8N}I+^y6PBadbp_P?hRR%?P!i+TSIwm*3rufgh2P3L&Jbc zqhdHV1EK|4|s6o_bZ0zGdDU!%}q6q^7^JhP!NpZK;oV%VO*W+;t3 zLL23rlgbMm?Hrf-rcKQ%q_a-hunL2#R<6w4)pL#~Swl|tdQ>VO?UZSEV~^BhuRx>s zXo3wA*s)GRxqCkj$laS{@!LhpdG1Jx<-z%^sOgds$XG~J-t6TN;QSh$7{x>`B z`ob(DkF(1+&nq|~aazIq5{DI>mY7v=Mq)+*{TsP?Nx_E_#}u5GIHF)gpgrW1F-^Uo znM375wWM3l=>42ND+f-&n82=#HK&|nVMtadnPmvyIT=YuQg)`~Aj^h!>kZJqMoSl`CyaeRg^c!U)lbrN1t za3+Ci+?1No__4f~tJOPJIHLmDb+WH>lnsq;0tFOhVM8`CE~n?7K-{lgE^7+{L+h07 z+F+3qELp@BXsC57pFo3uQIr$-QcigcG|hoEcFgkD*H?Lwm)fae&xC4DGfh=fy^Lzf z>x`=1;rRMXyhhZbR#9hk-SYP8`3BsNV_y37NT{se1y%Y_EmbRy%6}RLsaDlA8}Kzd zGHmDRzSeQW(kH5=8NGa6yp{Dz;hAwVC4`|&NmwfWo7f>!=wfE+6(kqMh> z$+Aoq-s*fI{ecueSU@sM!T#T=o_g-z&oQ6%)Z&07kdc9F18a!T{OSIg{fp_2_L=W!oU+geuaTWTsgaM zOViWUk5j+ntwsUg8nlV;sWSth)NV3XaRyc%P=)vuPAFBkcdIMIyxWhQR+^(3=CKnCUZn)HF-NUZM83+@ z@{f3e14-tqJds_WpGqz);j5QnW`9Z_a7rI?z#py3m<%%Vbtho#-ydzvxbq3NcCUEp ef%MYCXltk=wlfqDHCF@^?G=%5V?}2&9I05{ z7HYbDbtITbR5u4ZlA*Yhm}%zlv-H>v;Y2tY!&rl9;vf=pFAMGnGC6mI;)!r9%EYxy zIf-O2p2YPQrrboVGu{-!%~&UvWHLh0X55Yh8$*!<(+Uz@3b;C1Q zCqydE@sVJ(wW2nf47G;hl`BAJY?H{lCYTJ?L}ELc9PPm{7@SzTHDf}3G9He$R?gnQ zRG=BrWY+F#3UwqQkCO_R^3xCMcPEmeb|)2z9C1ifXwnMDDlP<}B*=w=?Uf#yM3eJq zB6*p-8$$7LOE{G9CEG&2*6@x{)Yl|NnCqhA)T-I@oiqh1?GS5N2n`>yB=MudrGb7@~R*dFr5;?`d+;Ydi|TH&J8VVk*{ zKNro&mR+mLNwb(-uwi0jIN3G~b6Y$#oBVDnr81@&!`n{-Y<(!$ELbdOnxr)iWz>M9 z+Gt0orBEkTfUT-M2WzZrw&85Zig^{LlQ)=EA4{P`@ zgL%>Qc%CSy4k`~ei4&d-g<7GojxG?JU&xe~=AG+tiD8$}HsS5k6m<2o>Ucc3TLw63yPJZdUpIn8DBcom3MD+$WKKeS z9hZ)(=J*zPt$;p=SS~?ucE*ym)_pA7M&U8kN|!-nX$q<5PKto*wqRmiXcr6vQ^V1t z6dObB)B$`(_3cwrv~?&oH3rIYO2{~w7iXCPT^n|=q18eLeE&H)}9T{56Zafm}U=eQ;pm6wf0Tm?qOOo%J5(`7}=c&Co1a0?H!Sj z71a^9_KM^HnTKvN@pQ8V-UKXiD>=oCw=p%0)|B-eOHJcMs6Jl^f5yXYREEfGp)1QVvBOy9_OqUU{t?h}?j z3M^@!#K^JC36_J7ppWAWSUG#^XoGF(YvQmK@c41+67KIu38FJ?eKOc|c|#nIl$BR> zTF;2ypQKN@=~Q|EeyOLWl({~X=!^iDouleAjl0SdW;(TsRqJHuF|E}7^l1s42T*9W zL^=~~9(srngU_VTpbiToif5oF<$3%}|V0?qnB9k{``b##A<% zNEy;2BI&dmma=f!XcKJ%X8WHoh61$hgr}!eIZ|Djjr&!>M7U`~Fwz;)b>)JSUP=@c z(P@@Fx`m>Ouc#4A>bN3+E+}cH(Bn@{KT2M?zn;a1!(Nk}Kef%W17(_XyJ?|EJzFsxUUjvP^D@G|1xnw# z*)jfmZu%~LKUJG&#EMm&;fOBWf8eHPs5XyoAf5R-I`j^&e29pinX%1)V-W!eendYO zIzJId2ql_4^i#>EH_*=zCXz98G-6X$abX254?R!6kjXDdz{7sX6OJa5@y;gM!ofDP zN5H*y_1b76s#B_mUZh{ks=q;DKD>UjCOPS4H~m&BlSNXKj54db5u62^lCq@K9+3Q6 z`kfGXm8s$+Cp+o)qtwS)_ScDG9sR*guhSoyN=jFcY>+>RPXEkQJ_=j5+h}KS(qBy1 zsEaiPBdCG?MpwD%uk;oS35U^l#a~9(l}*)*G!>mPRWs0gx3J*Ip*PJ6+ zAQWv)wt3hoxPNE8f6kpgr8Qw8vx3yWRr= z!)eFh0yj_KQza2}3iQzJ@bE<3rBa@RVnG)%9`?$f`b;iDHubr<1UAo9N~%21$X(_N z8Scxci9}Q3zDdL?4^NZ5$Wfk->M$AKy*ij|YFibFHC>+Y@EP*x2A(l`&DxMTQ?EB_(-bpSbjH1LHss6}LR+ymLcQ7p+K_SEBDoh=NE*auvb7%kvTDG{gSv$m(O91?Ap@zPedZH zo`wBORw~suD?PlP>)m`2H!w}jh%}K%s5KZtoJxk$y;0ua=8a~L=Y*NmJsw5}#39XL zGni=voD)p6q5tdTOWeGTu;Cv|r7u{smit+H} z5|R{04D<`<1HbxNHQHDSU?xZKxWU6Q?vO!OAa`^iZ=i2m9*(xeT#Pa9CTR@oR;-IV zM=$X-%*+&@YUwj}599U1db^ITzM14^WybSi6(bDp<}2O2i?4DCUUEayI!4UCmUfEQ ze2{7SAY4?(TRYoB(PRcRu4h`>fPS}b!DTg_TXY}XgrxN#rRG^tG^=O1_y#xc5#{C| zKikDO0k>K@jo12cYc!bbj3e{jA_+|Kt=Pg0w{E&qW*c@^S{9Qdto|YF|Lvh>r#zVS zg(VIlHKNf{BBe`u;^0hpr)0vrJd`V`Tk$;}Zsw3c{v(oxQ#=D88fEqRfW$*?6MY|N zIwRvguooQ)f^%JbzlT2tTY>H;5t*ck50o{B8arFj)6gW)(GJBecR%xl05C`{T{Dg` zSwnN7^f0}(QuFh}up+ScIS=n=^fMg% z2t?8oQXX@{b{7x zieBHrUQL_#;;4Q2WU^a&VjPMVj`35Xh3`UkO-n!`nLUG7E0js{+}Fla*Ik zMq9!mWARSG2`vJ-G<$2K%^vdT8b(d?D4&$+4uv-z=C2M4;C*_OuRYY>h&mo2g06!=;q!PW#iNoqDcrK7Vk z5^nOLA+rP9EME{rI^wY;&YQ9I2!f;b&LnDaY(e0+IO4&ZBr>%OxuqqHI$zHSTJ6OV zCX~Z!9kGOViqz)Bz~TrdSX+O`@C};y20h?JHjSu;hEBb*?^cV|5`ouJ)O&-Fs#=roPfsg(|f6<#l zOcKh-h#3+tHeoL|dgO8{Y_#R1qR#9+s!Py&R9n?H)2{W&P=`l-0FvU~cJP?BUxg{2@ryhIMPV?z5G=fl7@@kYE z;l#Ok8!cUJU}GOodeqgr)>qe{DH8C7?UEjj*kQS+y+KsiA)k6Y8TbIGTyIj@1Fi$U zSuV8~BWDds1H0Tj8$nRbY8(_m=XK#|XkDiSsRqHA6ot}aPhrlw>9)7w;&Is{Ab)C< zx$Tq}t!NsW+74jOiC^qlaiydeqJOa~)xX#R>R*IW{fqVtvARWHpMvpd(%|}Ze2=FI z@T^<$*Ox#|;dj0Nh+`j}`ZyI$DCwc;@_Pn;5BZG+6K3|%oGzN&Pjff-)4a{N)k_O| zX-VBd8YegPjiq&EMn9do88dsSs*lb(BZet7gf5~d)rTEdJL24IOXrq z69kY4Twd1`gceX26?>g>4Tyf7N-^yT+O25g!GV{JC9Xo3H}?qw>JHFuZ*C!mU9T|g zhCp6F-H7G8=@!iJ=70pQKQvy^wO!tgzbyoZG~SKt|5t|F)UFy{C%%H-)`tYEHs2& zcy(j`KG^r$>-y;^@OCWV=%?=jB)#->AZJcLJ%gJ+^mo&*IB?||GAB+X>6pYaqjTbdN|MD%^rMC z+3whWK(nCf9vpaePGN2V=Wp-hLPrlz?tx}4o(p&i*77=g*k>*aC*jlemv$;gv-T%E z7CmtB-dsNT-ajmD@J!3`YO(0dLb##09+yHXJo~s6MkhP)*qk0N6LXsmbR}NfC3aB` z=g~NJ<27LqEyhXT8XiaMIiI%jcnb0aYT*Jzi9))TC(?a9iMnvT4`+1`a}gcpVtSfO z=viFkbR09D&dYf$(%B4j@n>=?&qCjE2H(%K`2qH8cwGqxO5)wzIU1mk z*jHQWw_MJ1aW_c6;tHM*m@UJB9rycDqaqI0{9&!imfKoW?}73N_DlZJ#Db0$Kxl~}$GSmV&ua-XX(OWdd2pI_0# z%d7l7ykfb(#L?WttMV)NQ|?|hP^|Wo(~o%OFLrD%>EX3s!UQu@Ow=bTYL8Z^Js59_H=- zDTlc+EswceE97aT@f@a!e3@QO0wAW_%T3}YtuDDI5{hyr>4gpa7XviE&4u|+jFOOi z3{KVBg#-@)3pm`%mp$os9OhPkFSnNzaI}x(yO;9^6lETa|@4@uFy?o=7-kbuy86&)oqvY~B`uMgIGaY&{N1XP$`(-&9f4d%^dz9uI zOPqyHZ|;!;G!yC7xxfw_cOY;SB5>S|$N-{yk=O^G_ZJ`Ld;P^FPoxag#v7(KKg%oe@6|&K?10kAkzuz}c5*Djy<0f0^cT zH;$Nk@CHF|2BZTvrvd(g#c4omQXn0WcaoqbmZrSL^IOm-bU=;5bD0U#IY-Gor+^Ou zI^ge2V@Xb74sg5T02P)O0*kBqxVMY)_T~UquNUTYktg+hES{?Zexi@RR_GYNV=5d$ zBrA0Eaz+#gpe7>zDrEZ_WIIBq@RN}58;Azq#Qz-m7R}~wL$>cAbRPrap2EBEPtzv; z5mL&JwX6tGG=&xdPfm@7MqBDeEvq1@k-x6(BUj(hQsYXa3-z&d!!7xr11&*gjmTeI zz~2^@yZK(of3%OkS8nw2GqzLyNZi)t&FSNxBJ^lS>gAuKMCM;?7LWQ>I$F;~Jw^O; z$oM>Dd=c{f8ut4Q`S>OLzm(s?hOgj1g}e&SdX1|1_gb!VOipZRYBawhO^t2C8q0>b zXZuABzX<9%s3YC{8_*ZOKy%oXkS_x#B4M{B;VY1^fPaUKj+ipJfL}AO##vIo-p6kU zB5k4H6rmAoP-S^@bgaoiEoH}=ze=phO~)EkA&52I+}K6a`gzx8=qatMxA0(lFTWE& z)m|)52R-^nAlHj(j_*Cp|Mcdj^(lKC;y**5Z$h7M!w=qp4*vl^_$Mvoe*r81q2>Hv zI)~q*5PmOL2E~$l8V{62B&C&k`K1k4) zD$s07g^`t^^zs6QNh(*D{w$49YpG{pU=d-HHgW#stHooxXntW%{`h_5$4~w~I$gp} z%52IlX3ObQWATeDA+ZQGy&A6puNj5m;J2zEi`VIr|CATJ7Li*O(-d_Y%~Mlpxtd0+ z)O0#qoo>4*__0;GNu3HFh5t>eP?>ebCR?SOv`h|!yme|4#^pdR^h|94;7 zRk85wFY8rP(os{_NNP6N^AlQ&RG{Y4WL2SAG8gsQEP2&wU>wDaLPOPBYK=s6FgZ?^ zLP}RiChCkdeO*wfg`mF(rdmv6)e=qHW6rW@D|wT`qWA%cx1cx!m~PcM93_LAsq;a% znx4uKs#NZz7cvE@#)fSbO;Bset7_;BRhzNc3~Mo$ypdrp#%qv%#MK`!Dpq^2m!6ts zaz9L6WIC#-uE=ri{p2*T+jcB3%CWCk6glndC61CQ+Y24r9S*uHPSVziEdZTbe{^r zvD>s(%;5RBc3r4|9#<6_ar0=8nujZe@VGS$@@i%JUcZsj4dZUa7yA<=5>ekNNk(fxi|@VV~`9qWS_= zjql>L0n#$-CXh;^(C;LV+5wC20&G!!sVk{WT}=zsHIV(f3>Y`)AOuCxdLTqRE01w* zXyKs9;`+c~uJcQU&zhrv;aeJ1nkstyjkkw4pft{>)afV6uVZ6Pi5I!oG1 z_tSLTHHT!1{)*hX2xMM3c^#aKwi{u0rPLkJ!JW{--BhIRq1ozQTA=Qufchw{Q6Hmo zRTo{TK0#a5Cuy7d6t$`cs6*{X+v!2q3e*Pt zEF3>T_?c6nHsWVSRuGiDC+g11d_^TXTu#p#xmiYL4MP+1L&l0JWj*TB19W}alpYma z;wW@l5Gv*7WwyxvmTsGXC zy#^|*Ytq3(cQe&D;W*#oH43{b^%S3{e#{rBpYVG13*Mk!;LYkK-lksW?dlcoRKMdr z>NUPi{hmLmUgyuLKk^sU8`wwuiI1p1^H0^^_}}VnWvF*lo_ZJA^9>x2{YT?^5n3Ea z=n8eY1W)WCZqmCsDPNZ81P|!qN)kL??of+V1mhG61)PsrE*D1lm4G@UUk8&K{T;Ic z3!PmGL7IiBe%UVpVx2!lZzd>tTOAU-4uY0}EFg^ug zAAqp?GK8FH>vp28TbvGC^p9XY!Q>t-q~s~0o%pQ62MK`^86UYXf6H&`I`i+;{o{W} z8j}!(%GwzkG-Y{=b{Tziwegh`BQY=dG43w^|v$TFcU>P^V_@i_ALhI)vVg zIxSV|^r;)9>w$7;;H`{sU>fr&8e@Ey%8aMsfImRbX;}$svLb+}1Ttsj5S)ylfV>gkML3TrP&eZW?O|!~NglyeGftX%d6DvrU(;CQ zr3^GJ)yTm>v>c?NCYzF_niWA4-hZ%Ise!G<+7om&bU-@M==fllV5ISj1_L7CUoym- QV2d}w5|2^GNi56xU#Xl=A^-pY literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/CheckFieldAdapter.class b/sponge/org/spongepowered/asm/lib/util/CheckFieldAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..6dfa413855f752b4645c7749a8647f7d460465ca GIT binary patch literal 2662 zcmb7G-%}G;6#i}!3@#Bd8iK{@ia#0x7_illCv5cIma&Ln!fGirq^Wo#jGuzN}*!ad|8h}2%LZaDQ&xGH*DXdZB$@z z55$FaYts^lO1B~)mIV%6w_V%6DKM6q-yd>*bTNt^Kwvym-2a&bdeLVff`q_;Vv%z! zx0-uUT9;)%j(&mOs`RHFtI-fRni-uBZS-P3fdL#ba2QE}Q{iUOab(qU7JSQ>GcU`s z=G&ed$1w((8C_If2Mwf<7Kr(4HnA^u;r#Br=LI6Gn*#gJkb#&AGiudrX1OSEcvDrS z;JO}ZlApk>%&q_z{JQN{^UI@MsD+2y6(+0RvXaP*TS;IM_v~+5^^JOIlU)v0N><6;)Gq@&0PB z2t2}L0}ru~z$IK(n*EZ}Qt2n23bCydfwNs2SNYd!qGVOA1p2im3qHHP)buIROxHfx zvE$&SryUhoJIiKfquKCHjux{dO}FVdqrF&3;2S(ul%LbBvK2Vjg=B|}nkt%}o+<|r zKgg-V`BGN%B?g9lb=p#M%q&}uV_K#*HaGM5soTRI5Wu+HuY811c zv1zZuxDU_UuDsveD9QR0OSfxs-Xrd!Rkzi5d(l|%n)R}rwH=Amq!Z%}%8?AR;~Q^9 z4*7$8zTnpqqTB(FXOqTQ3x~2>IGT+7jJ|E8mRcBk^D8$aaQIAWpsNJ9#;YZdA>6KQot6GpaiWoaANn5}&B#uf^xp4a$- zzgw7V;r^T9@z;1V(cv~cK9P#Gu=p0e5vB_GiuAsQ!I~VwGR{zulUN~zXH58WP5EX( zp+k9&XM*g^@#K=u<(v*fWo1r>5hG%Oc&C^vp;X=u=qXd8azCVV_csoyIFip4{iLMN+GNxP4$GuAL=j~f`t-22-N{?Pq%d{fqvyF8~YuSFVzq~5SB;$ z8jJHC4xz5G6FkpTZS07;vpa}Uy_d}X2Kl3+o?1%UEv)a7Yf$ng%eKjUzS@PDY$FP| I#E+ooKTL0zG5`Po literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter$1.class b/sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4465b6725fb8330a7c56f79f2fba1c50cedca25d GIT binary patch literal 2863 zcmb_eTT>iG6#g0(mW&%02_Y_^Sq;%;1KE&^Mi!&og8~U5fslAfGt(>`W@jdI;Z{ER zXnukD13srJE|yf8(kivIykGu~<>{H_<^sXet(vVf-RIWd`OfM2{;$u!0MLb1hI6)C z$a#)!6@+6i30D|7?iF*UoXrKkG;{s)LSGmY{=9AU8r<=P+tw8aV`$&o(07H%MKycJI9BQC^j*Hl8M^j%v_}SU)H2leNK5*c817_7MwO?W$*n?e(s!j*$nUbUcbF*E zDd|bycFU$==rQi(+ouw!!y$(FA~)Og;vyY=^q{^NmNFv;ORwSxxBtT#RMJl&aR^m- znqmC^%pt;~UPBDeFvR?M=`mc`2a!FB*w&S2sOFAjU?WscuIs`hS22qh1w%vS>1odp zp3ZQ{lLd?WflGRtSk{H(OWPvbBfDV6P`9WmJ7^gcFVj9nYFk(jZdk{WW;nBVT|-WD zi<>K+^m4sQSQTy@FVf);YSqU*sZR-4&Piq3rigW1!%4iva51wFggb+eSk#4%E9k$> z&Wwf=XlJM~f?{!{4yTB%VXmu$ke#W7@=39_nm6Bm`$@{1s0_JOx_kniIIR-OF`U>! zdc-os@|D29GS_DZmf>wfzKcp)gqMhE1p5~UJ z-omI#EfC)6IuKQl?gC@f3$JVF1`VR5L!-wJEw8&=7YV$n%KHL(85+Z+rCpv+)2^iI z#nG=}Kvh3tByC?+E;e?D$gUifwxZSittjYa4a1)mHgS6z=SS4L4at zw?IFAR8YH(N=u9f#aZEA=d&iQG=vjmin~(1mlvCMF0MEm8;KFi5^mTUg6@vwpry!1 z(;|YMh&5>kt}ce8DUc@AWAx3$>g(0TN>UX)bvO(LkEB(^=?!SirsAI>nQdw9OvO?) zsoFI(JPfsc`mZHzu*V2UzDyRRk0bP`Un7p9N$rz#j3nj15ziup>QHJXNoCN87Lsa0 zsTI$KKA*?&C=Zq+9kq9V9VceiadKu2FRvjxda9u#Tf&*?Pp~l7@g>fFjF#*pTzEhU zKf=WaIJ}PTnTDPU`E#1Q)l6YOW)WWP|){fdD7h7Z{v_=x=(!grpIIfNeE#R7SqppRJ-MLK*7 x3b0^@@ZB$io5Tlj;8Gro6g?5Yv! literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter.class b/sponge/org/spongepowered/asm/lib/util/CheckMethodAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..f1533603650f3bcb983c04ce98cfa59d75081af1 GIT binary patch literal 23870 zcmcIs34B!5x&O|&_hu%^03jhj7GPMDOcHhh30p`42?T;{3b-&NLo%97!ej!(4Hv9! z755EP0w_?m?veyS7Oi0IrnRrOT3_wrR;^Oos;zzH{l9aUnS=>Y-|t1ky>srl=X~e? z?cX_*SO5L|AtD+le=2BPW4Lxqb5moeHqg|#ArKDKjPW-&jHwT<8PgI8){iNv3shgW zAP}i*tSPSXH$?(r7YRW*J-=plULI@?MjFvs6Ext|K}KKdU+)(*q32@J7bOUC ztq+8ogN-3UqC!xDzq&fm+$<=uIpPmTN*Zedc(4-P0-+l7QzGt6%FrtqY7Uh&wuB;h zwcfubP>)ypR5D5Cq8Ip^iUgH)ZJActGqIICNRipU-XE$RQxS>;Y6Ib-85k$2r8!We zdUTs+Ng#s9<71{l%bBO)F?$C#Hu*y}ftopCe?tJ{rc^gJG=%{|v?;OP-yBiT1-a|c zyB?UKXUu$+!Dc35Lbs-~qd{M~Vo{kOxe6ReQ7|rv_#-XNbAo~T8bKK`aD)SE>jTx1 zG3pT}Oqdo71tT*A737`<)h?1$l($?^-zbmD{mpgYlZ%E4(sJ{bd&o;8l4v-M6jXHf zqsFY9xo(b=lSGno1?iExAP}2y8X9{LQ>;-otQVAbnpe9nPtdw=O7)r96~l_CWacf` z$RH9lEw|#V$&8EFSjKA{q(HGpDL~blOTlm#O@Qpx1|lVpMIf1$n-@chYAo{5IW#GW zCemai9Wl$#f ztAq~tn}UK?gTg3=OCsT5s5aIv*)2VrvaV8j3cCf}^Zz=<|A9Ljax2bm@uvW^Dh_66 zi;&6Z^ODF#i#?QN@_8w2M+k;lQ0l2e<5^9hxf(31W)snSJ-f<9em3NAuY&sLp88G& zPvbTRztBxEh5f48GcOCRYw_0y*9HSM3)OtNXU82L?h;zfdh6GSZc7m~w&xW`jhs?h zClG*@PgZ0UTmIJo3wY?YRGUNrs`JoFTE!}GDIBa?XK^Uh2$fc@dv=_Kt~{N^jJ|Az z7wicY0cEy#_fUx4fTTwFdG)ANVI2?Dl}ze73UhZDr*qB*fG7zL3N0S0rv_f-2B3I4 zBOZO(rk^SBQfm^er^`92fher0huEYku$Hzq1)}c=sy(g!;ogh2JI7qxUiLPTqJ-8yY9uivPjetBa0s+LBq3VFQ zxiK8^j@{^{%^bfqH6cD@1AD6I$9jw|bHH7i{tM&`#RLbUlPj;y;sorF>r6&7!|Y&_G3!V+EsA2`Y(a z(*8q<_R#m}5hnCen1!aOtu>8raRiQXO-lrdmwVb(*!@&6I>MH0zuoN3ZD?tZcwynZ zYXaU-OMQKwo1XO0+Xuhmy&|VZ#9r?PF`H(+fyb)Ld4+ zPyj<7>lMv#t|(p`%V{6eGaVH)wHWg^0))m;z`K@x8k50rsNn-OUVp^v_tpm22SSP{ zZ+&C6@&}{c^b!YmcWawYo;(TVvEemGVOjUO>A0Zmcv@`P9c2@K$O`%@JdQm=s1kG3 zPj}Og5uTj=C5J3q3~a7xZ83Zhq;Ej*PYXvUsB_LfrH#5A`?Eeak}w%)8$} z+sdp2(2K+lK-$Tlxw2+&tROZ7HwJ0|?|*yfFdbobzYCk&pg`dpH4_qM#E&{df;Mw) zf(+(PJ(v+k7`U7Ds-ae4%WDPFYYYW8Ax<&`Ce^QL;;Li5l+crm&#V8^X@?KLd-hs`zgw+CPE4+s4S2fRUK`WxLM5#gkwYFVgR zEykiN*`&+k5pHwz-iR&nvY=iHou%L@5ACM+;3(AyoCStM{(3WL%!%X4;`%m`Ci(#% zk=`ZOGkv2=3;-^zjcoOD*iAQ9J%p@^TWWnSuEIZ$}NWh6}BHl=&w>lg^f@fmZ z%oq*wh`ziYT@0~fV^uXUv6&i=ai@}cY72{^(YPTL2)o5_j~FV3@f0H=910>c>#^{U zdAl@#q6+L&pazy@q0&B)=Mg#P>-m7Qrg1sP@38|EeN!UYCyGKbnjs#;v*1n_NUXJB zWUZULz&F70K7!S__GP6Y7n_`mJs%cb5+5T z7b&I-%CA_sylQ^g@`}Yvmlans<8qW!Q+(SHjMPCWAwp~YD7?AFOhG>Lg^Gns%NEZm zE-8!mN;OvjxPLKn4z}?{=1WT!m6cSSX%=r&I0(xPnVE+|op*{`lzOOu3gO7a96P3g z>NH*!C~ZaZ6|6SddEr?J_h}q*xhkC%#j$`aRNkKBCG$m>mJOI=wcbhThrVi zXxN#_hrvNtMDY+F(=5zuX=pMb8VP~zc^PJLQz?+D^0~!@h!&J|sYik)pDt)JUtbxc zR8}m_!hW&1gavN3ZP^w!hDrl#T57FWF)Oy3JYt;)CyOS* z3S3+d(^u2##6|U7Lw1W6P6IiHsKO%Pr(zQpyLRUh8^lIrETRf%12iCOqx|3)~>nzfvP4LkE{AUg`J%ErdaTAI4T zbw(&wA%s5@pbXd8t}BexA!FxYKGf2%1_5y6TJL3n)@Buasx@N0J3L~$Xyc{r!gBaA z>I0^CMRFM|UKrS*0&0`BlWp>zB|h9*;)l4;Mw|_cwDHXL?u^_!bBAam=~!am11E!u zj3wipP)}53?2pew3rq(Uwwn$j3SJs+g_{TY-Zf0Wm32U^)Y=f>tqCC63Lsqy1g#e# zCx<+uU39RV96^K^HPfoHEnZ9(FR^jvl!9v&nko#rtl4de!psV{SZrT0vHhWqt;%l@ zRjU|U(3Pk@zt~i6k_UlLBnOg#$oO*&F0^kVJvc*@`1w5Q#!3=<(AA0GvOl z!s3}t$655KI2H8&u$UugK^NQ#6le^dX=POc7Gn@XjY!r}j8WDKmMf^DVdS;m`aq~Q zQs)+LdBm^8uNgdV{`=L=G8Y2aoUA|yy|X?VmRRj46dPysGs#K@f;NP#tYX9ouZ2*U7IXpRD9-!+uvgLL{Xo5nui%cO?}GL?ul7gO+p`du6_;k0 z90(a(TD8a{Gi6eu%#g_6U7Xp?EnDo7gUq(UurhNhtBRL;q}Oa23K6NSS~%Auhno!} z5O$STEt_3g=8>b!rX2KHxU90$BlFA#ANaRyVa39VrN{s)R+g1svb4NniANTgj|*{- zz-F)FxK+ASA+lSJ5tP;AW0VsllIJd)3YLtS8HfS>X#L#mntZ#Za54vIHp6$+hP@Y z%%Y>}GYf85=5y*B{SlWev7M^g45`G)9+xcZQm-j(Y(bpul5=BJr`pOg znc@nN(zB4TH*m@MkO-tcOSmv57r>#(N{Mtf)7mZaB5_4k(#%}F7PFAmo>N~_&B3ET z`cM@Gurai*C5ZDY94prc5UP2t6F%N?qt9{6#W*M9yxO4Z+xCW1&+kok%cWqy^PZJr zpKdC=vfLwQt3+E~0L~#F2gqj4ELud7t5h9KA`wn7eTYY1%sKr)c?kr3bkV9YZs`X^ z${|&)^~h=!X-e#Ixor`0O9Y}LV|dOuVWX@ix~J>qO=QJ-q_25#0+@I^-pGjMDtRd~ zVhO93ZA}ofDS?uOH_*@&Y0Yy>6c5Z321;5=P`$$r0`~7Da@+J^^E{MVDx7u0P;yA7 z=a#_#$aONDB%36x<%m-k!7o~lmdj3R4M=VKbsrKtJ`kV{=1@q35*WK_Gu-lWK{H~9 z%`uM*);&>zLQq z!;r_)xE4W1tJm3)_nM;3JcN(H{{R*>SKfeVP=MTk5!VE2ISDkHk)MFc2`wQmvGI;x zRI_{9f`w@r5Kkypf<{^=Z(1%kKki=X1MlCs&e%kW#gpuD`e*ezdz0`mrymGkKw zZUWjsg@;oDl-=sR&^^Me&hOpe8M8 zYzbEf<^<~lG!%PiI*u6kCZJD=xRZP|N?oz{tgc9p)D`iyx?&F**Hk_rM?$`=+EVcz zj>0*g)A1R*q3Rj-Le&*V>(muT;hcV1xJS^2_9T{iT&IB&FX$5T7(SJOI*Ds9U;Y6a zzM_Lhbx_{ZXpr(a{)JHET;x^c5m(Ds@VUR)nS7LwPk4>@9WWpdnS*zD$n_W!yBd_~ zOC6J6&_UyU?KCA-?xy4eG!-)x9p>>hHGV3CBW@$NxSjfnJ19fkrRMRPBRKP9TJvC3 z1&fqF#26mTYqkI$3#ic;(Mw}3TJFX;41bO<3zW?C$$eDpE8IsVz5`SSTITGda@@|t z?fiYTAWB#!C4jKq`1e{$7JDc~?4>O6JsKq*Q3U$TVI2ZjVQD@kLBvS~S;uUMB&7vPTBlT9nYItC|O(P_lc$t|g5SadGJx^Q~Ul9(Xg z=J&Jmk3njlql@xWFYcr@*{Ri?6!hh1chF@~`RT9D)&2(Mgmn)0Qd6PXV%<%g6g zK8l%YfHTzqg#u4CfUblX@l-fhWKH!RPB1bj8hEO#lz~@HGSUsbjmpxEl+-qwflI$O znv6?&8;!-Ke;eiDGN6ry9iVGg9H8qUPuHj3&`#e;H#+H7T-)i+4!Y-XRzW9iD|Dy_ zkJG{72f8d^7z_o8&#-_KlqCLwgTr4^nfQtpi+|Gj;%mB4{40jt4bGw(=s`;a8)!SV zDRwtF>~2sC)q!j^?La>ROU98UYsoVq2nFTXKS;vah{T=lDVV}N_4*ELiQ1=P5C|PDxx*SZI zatIAZt$;163F8n4Mx0AAr;#TBBMiFOjA>rPZ}ASEX6lO6A9T>mhke`%YnJsW2BAtE z6gr73!#>LTEy0z4$KiKs>aj@)_;u~2bG1nc8sCh?jm|eY30BMCSm}KQQk&IIKe8k@ zJ3ZlH%8Bjp6LiQ%ht!{S?U}BpyB?<8*siamN4g%TZLVm&LX> zm~Gl5ce)!*eSL-L?(yyP=4Q9pd-Ah%eLH1l7{@3%!#I?#+pqlEd4=0jeHli~OMlLi zJ1E7s;yHR-U%ijs-V4)(5AX1YcYx&E+o>Ne?`*d?`CG-wtZb+!Ti@SBdAS{Co#aUH zauj%(M}uSmmC7+xF2_=(97k1hA}yBZ&@wrRE|BNaDmj%dmPO>3GpR<-qFPx@m&#JQ zLC&R{WH~)4=Tp0^q_^cFdRLxDpUTDbm0Tu-TrLuE?ITx+p>n0jmluh1kXp~cwN$Pa z709ZWBbi<;10sa{d7})9>*b|NrrKe=%VETR5BW);N{H(paED{r_++*%bJ|upZ5KOj zHBMWt)Alujk3V7*w-}8mK;5xy+G>is_wW>IfxGu{$8p1E`hY&f2z>Vu+8~{{`xDv> zx`9qwwD6rtpWt&%mXZbV9;@>psPkv|{X7eX)|BspKz1=58RHzO3vHkq~bklMqso+<{=mUP+_nRrs3PCYmg-p{eqEDwCTbQs03%eV6lFwMH{&3Oj2ITWiFMgiEnR z@VO{!wO3%RyxNh@YT>H>o}DI=Iz=x4(y=30xr14c5Vc zwE({ktOXsy8;|Nyn3d#KP`wRQ-w&!E0M!rDNV%Pg$9wz0YLKPlm=D6Qg>j@q3{05zzQ3 zXnYJbejlFVaUlBy70M^U{-+d;6U{jt8mBlkP7%YcP;ZKgr4c9>pFfVVbqyaor;Owz<` zi?lrs_uXtV`cem+b()x1*e<4QGs9$-15pIAX2HnNJH-riYu`a>>Bd&-&DJ7K%u+F; z!X3@q?B>~4GY0i??<|(9G*NPO%EVoEpEB+PfaV^9zr;l`Gu>zx5mS zEg8h(+g@5P>Z|pp!CD{6)A~}8mP)giZMtimC)Q;;x zZ6+PlW+_-XV!jw(!8Mh(4I!efzQ-M?kBerRzV}Q zc{D~_fc$YGhOMHDabKgIN0(`fX}z|DuF;m#Ex6vLEvN0;`3h2Ywd3(01F2Ih3OnW< z;BX*qQ}D6$wuy%UIvbKU1thX;fzxD`N_}bB!7a8Nt0GXo85p*83k>%{>hkexC$Go| zy9VTs;312=-620^Rl9gxU)?=$f3j;ot~ZINonT0NaIt?IK9y#jviIKq9MY zidI8QwOU%O)zOt&Jzb|Y(9K#XMwz!baBNX-f#KL9o>3Ae_^g~IO&VmB{o{=`2zGfY zrKF8kq6SskMoVxhYokhB=9opRxn|L-+$>sEm_@63X3=VXS0{SbMJutdOC?7+7p)n~ zk6`&Na4zdR#N%+#ju0+*YB%gxZHEtIL)r?M_;*-G%QU-wT6vABD7Sv_ZQcqVfO?*MkZ-Gw8p?!R;3DG7Jxk z$}QrUa>{&n+%iVDsAPp>2^n~K4!al~L3mirKv`!K{{H;l&~ zEOjqU)E(p^rl{kn=_R0N4K zQ$mM$Bg%1=!E4U~g69CiK7xoeyxiC>}FcUe_@OSnuD_OFLCEWmEVg!0u*i_ z2{_tk0rm@g=G~?fHegB;u*#HKY!}=q#qk6J$qmN}meEwj?2H6XY~jNOv4RZbx?CE9 zgu+8RRDCYSt-Wo!wZwE3`gYN!aBGR<9j55!2j&Y9O&lF%4R?#>M3Q0-_m6E&PESrx z>dK$ZiEwduo2g=kk&%$@>JaZl>)DG@&?4SG3>I&$M^wEj)i$`<>$9<-qkB{LK_b zKZ#zURE2&rh4FoS_I@m;Cmar+aD@JZBlIW0*9R4cPk^r+P~Z*lb&v`qPAExWCvZZk zgbTUK@0Ch0hj9+m()D$gzZ~LlI8D6ErJVvBbWR$69~E3P?#0H5_8|cI2%+bnXrT5n z!tPJh!pxk&u2iG^Ex2mO=4Xf!M9v9t(9jaFO;`XE`MNzl>f+*k@UDEn_>-W8FtH~D zZ6zOW{wC;%_+qMVa#peRILDW4d%t4ayZ7W9+6*?+3-*hz1$Hfh+?78M+N_EF;@^^N zVK7ID{|K4jF>+@Z_TUoV0fu2mlKis_9sfLJO)8~1>1|nQ5{Y`R>@=BR6~&}G3fMyI z$dYyffc*u4eGZrZS7`X(VC4QzrP`M?SNjS!{U7js|Af2$n(op5MLV^V^aL2XA6eKz zU8k3HgI?7W=r!F;yf_HWrwo}0E3V^DGL(y#u{WaQi}{7(814+Jpk^gUYyn<(A@YCA#qC6l7&+KjQ+jBj3zKb_VIPdzR{JaZCD-ImX3GzUertPtypeuPV{zW z!8cZ|5zD|{9x)9_A5?`3FiWN}ZqZ@Y_Kw~kHKYNQs%ORwndS_M@4B8kq7>4v06T4@2f-$kB0!#Fv$=AyG3?A?o`4XJqznD#T^T zZW@Klu-!BSmyx?^ATGJPsV^@1yD15m(R)aLI{&B`2qN;2h=FNxEUG}<^2N5Uk*UN+ z2SQhQj%8$lZ#mxh!VKG^*s6d_pG@QQA{wtxr*rigRHDzMQoWew>$9m=FQXQHu3C+m zB(HZcUoR)AjMdHGD7Mzc;>PY}T;~0hmf4q%KSZ8q0l5ITZwEMnmT)NhZ5t zSM?<{R$mq~^*B{N!06bFGPeob`~_oc>Yz1sVP?uTD4%DhY_OzE-(~imPdkyWRq|CmXPR5&f=IJMHq~3ZH zjn-rL8OAshk8vi(cayF4)>#u50P3Vn)bZlYT73Fhucl;u6XomI#VohLnYF;4RpJ1r zHES5Nvc}Hx9i^MLQIYScEZs&EahbD?3UMjlMx%TX(e45{50v<#0@=&f_{`mvqxnZ=;mES2>L;+C2y?z%g$KBLNzlVnE_d)`<0*q}mPk)du!cJu!#ttL> z+@wE5-_`ff9jK>2sDBR*;88e$$LNUuxB|`xc>2%^6*fq^gL33bWyXn)I(mE5sx-L? zf3e77YbW000O0}_q^nbaP;!1jr@Uw{mBVGikgVQCGt%Um{6W}3X_o`Tx*hx_yOmz`Dg!>%(2I_#h> zK$vN2-~~=7dw~*8iNY$*4qL03g*CACar-n0jO(Mbs$&QGYry#R7*WR`eu6&pkJ}M- zobO?Cdb~%22O?=I!!hVDmD^mk>R5CxWCd! zrmKuz^lhUzJz?~tP9vROGWyd;xc|%;q&ULK`?-#0JZ15Qb>xJjBPSdkIbrJv|D6d- zN3iFrbYw21S_xV_KA65Th7Ue_=QP>JiP~Pgs#NUSsBo#k-^j)C^02%DEU%De8e?dV zF)l{s<~kxY*H$?`4{ixbI*7x@Fsz0-9kgq%va}l^azw&saoF#&WgH#o$9KO^`Q20}LFN%#q*5T>{Oc zQSv+3W@kNG=YX)z(W7;a9<8(Vs1L2N^$2f-E&kc(A`5(4R;S!DJ)4b1_uz`t>lmXF zWs(Zf4L`YzHCS0SRuoWFn^{?bN(w z*l88=bJ3LKQ;c2 z?5*U2+5CPN#&-jRpW_$FAZXu(^n=|R9}GxTO8c?Zp5z;(0prsS6#F#3DH; ztH$V7BbME!_F>*Z5Y=n<($J~!gU&&}wC+6zonaA3lqZO3Vx}XqD{-WTj0ky*78+o* z(p|e6MmPnv%Gbyf&I`-YxHT z#-ls7KAZ!RTc#=5-NlC%nE!b@PX2(|qdSkzTCdbruki$o-;>neK;g!CmP(C%Fn;Z@ z@13;L*bf_j5cd5Ay45%gwj7}y#!;~3r5NM*f(70j+TehPzvy9U{xg7#J?P5(<8fT4 z8BN>+#kV&jw&Kh*>Ko?9Y0t0R7kwpaC)D8#yK%w@u@@jV4TB#6USoMWfm#I5fR})%wse}jeQP|%5dEyiNC925k3!3_-EKN z@`>YwYR*%g^0{Z_6Y8TUP406(a$Qi!` zNWsyPH|0?^LaOCx+&I8uS2J3$UY@luP5xj$YuCY~XXO-aS{CwjR8$Azl4a^cagAP6 zwOJs3e?KZ2%FRQKb-E9S%(miq0unx43+MqylKY^@$gw-V+NMgFY!D>QhwwK6*r%u; KoE1SU8UG7h5TD5a literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/CheckSignatureAdapter.class b/sponge/org/spongepowered/asm/lib/util/CheckSignatureAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..ff4273a45fd50078c9cf4977bf50dbb026cb52b4 GIT binary patch literal 4572 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

BO* zJz${k#~tjT`HQj6IXe`13Qx<94=C zwa?@X?69KyWBWphkx;<$M|u)Tf6@wc=CYmYRCgpr=yvAqyNc<&-RVyZckXJ$U2e?c zX0gE*8wg;HY%6;rcc&dZP1vWWbO;XDSQ}MQDFyV>o6}G#JDsunY5+!JuBZC;;_+EM z+-n)rOY4fHChd&cd^8|coqOZuHmyn@jk3tJsk<-f~nc~iwIGHX? z9o3c&$zg3dQx7dGAwkdyA(G48S)5%w#IoHFan&tngbdN9a|@GI+8?z~s;sU3&^c51 z>ZGC*ax#B9kfO%}ncUQ!22L#>=VgsqUZ4Vd2V52VOZF_aG?JT2Wtc$HGED~Fx-!%* z8ESd!mJ7DZXYDH5i)^Yk`P^keUOvq&KeH>4sBw;3&E8NyS4icVAGR$&6cd>(2bTJD zcG^B=pzaXwdio|2NoVb7@%W^qHN71Sr%rJ{)%jazT(vbf%-Dsby8N|rM^)2Pef_(B zN#i9hfc3L-r{!6}!9hBwZ@FXnGFU7~cv7yZKey=K zu4NkV398B1*%`S#@B(akFpqO?JcUp4!_?7K-cQfvf*kPR)A)J$@)>${nAenFkWIdZ zWlNf>EO}Zic}5iE8}WIeha0gVbXy~y7g}t@i!^1&jvbBo0vm*WiT9++D&)byo{^V` zFU#F0SBf6@e`{$J`aJkW{E{1A!7uYh!%L45;7{Hdh^+0kCtf>HhSVN!zrw;5i;>oV zUuR_I(s$b){07dg#mo3j8cuA=^=*+U&c5NnZ{r&x_dC4qmOxrHW6IWV%Im}Ll^zln zL#6@W^58M>3it>3L%P6yz4{L448so@_OIauY_T*34&^Pgn$|zp%_b=qyNeX`oe{Y~aIWZ86MMD0l zFF6qy^2bReGjJj%g0WG~1(|{Iq>#i=EH3Sg0?SA&I_PV}cRgs-;F;=WI z1w#|%h%2_-yg2?tRIP4RI_Bl7zGV4^CK!mtb5s(kOiUyG*@Gr+(Z4cv^QzaBNY7+b zg<_s(R8wEAudE!7)Ez?-fAwM3X>?cap9VHN503lwgI?uqDQ^^ud-D=q(xBgg!|9A| zUc*T;`Tv16+_O1n*bMLQNDnaw#W-NFTMXxz7EaU&HgQDWy^oCWg0HF z0-fIT*x=pz9NN4WuzCDEwmgS+vR9LR&2zZsY1R8bS#Fd&G#;gv#~7oZ;dp298hi-< zrM@X$*oJFaqgG{$Ve+Pj*8-&1;|4{$aHFDLY^NMgE$DVEI!udX1os8>jJNJQk6T`1 ztqwBw8p_B&J7la|v{ZR4H+Io)e&?94!|Rn-ZhCtw^-0@p=z~cM_F%6XxgS5F=o{cy zbN~TGgSbl3>kv{j>{vR8Ayv0UalmjbMwOrY9skBw?q6NotMcyv#?{CN9X}5_kv@z! zsrEM$y@I6)+@Wa7p_74B;iP?Jfhd z8^;|$b|cI1%F^goftD%iR?sx@-{gV+;ZMLlLu$wilQW^`s8bBztqp$?T^s7FP5&6y zUBK*kYyLduUeaDHpjgX?EuzP@5lyZ(Y;kSEb*`=GcD3Us*VSb|I8NF6-DT@{m#yDj zwtlx`z4TC?n`dwWCsp`Q;k2T6<1LE56+fxyPpN4-gSX-Bs(uFdD0(m9D_-BXa)7zM z`Kkc+4!l#1c>l^rB-~z2(s>siP$Rw@4>~h@H=)_cwo9ft)2~L1YpL?Q)J}5`;XTfh zewdtW5N^B|?{iY5Btb!uPJ#{e<^9eaJ>o2#4>+mhgZOFURF+H+?UaO2Pvl+mIWkol z*gU38^JoFbG`+t(%C^V2E9l+D&t3xirtPBTd3?CCjmTY`|8Yg5Syak4YQeIfP51~t zN;OUR7#`Q^j0yTEzFqJ(Z(G2}$6R~cw=dvRPvR5X+ZXWJ{*Gq%<5=fy{oDec9h=7k z9nI@h{W)Df-O+ql)z9mCx}$lUs=uJ?;~mYNPoSxz`E4J^pttpcw01N%KPf7|s71DQ zv=~qgFX@Jsj+SONxV_Cg#3C={pU1E0Z%y6~X}hn^n15y5F}V_eNo-;O-p(9!1})}2 zXfy9chj|}vFyDc0^PPCTc|Z1=@4}$@0EW$XW6XRIQ|3cBX1)ir=EJz#d@s(J@56)U z`|*hR2+o=x#Ju?^K0|%anrHE%srO_rL)OOq`d9I53||vIg|AA6moUoz$Vr9!n#%u; z@=C&Q0)Tl^3HC0D@(cJa@q7FB_80KGb%=I<1uvh)72fVI<7H0kJl1-<7x4QF_#@@* zH^fbs+On^fLy7qmJWRFg&2!jleiGN4pTnM&+G}1U|NW)%6)YU&sR{_v`2%!roF}$}JgFT@IM6i<1Q}bJU)y+#x zj%Idd_jvj{0QkU=Fs`f;+qxbd6=gAgvmk^IRM55?bi^w*b^3bm7lM-%l;{JQ@V_at0K%U6%j= literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/Textifier.class b/sponge/org/spongepowered/asm/lib/util/Textifier.class new file mode 100644 index 0000000000000000000000000000000000000000..e32f4ac924768cfe6f24ab28a4a3790ea9037a1b GIT binary patch literal 30244 zcmd75349bq7C-)~x;rxo1B8TtAwhyDh9MjRB8D>;5DZC70^x=s8DJon$s~X%UZ8m6 zdMzFZUJq|KI1gyUlc0SG{`g z)w}A|>+I9NJiL#HPB88elwMoEa#TZIZOux5UF}+by}xpluc3NWRbct3#$cdoRGEKW zFt8%vuXm9UG_;%E#r1)jAon!{^>T)eT6y1g`iMqyUjoRU0lmV)}s&MTW))V@DvjJIF38DIiV zPC-^_>C!gM7P^1JR!$UT;?)@aGZsHps%Ko4Z@Is!&{yqm0PcF2 zT8r7fI*iF}+cK%3^ED}8KodJoJOyB4d=(Y`2F%c-$ye3rFKnz{?ypDlq(Ds|I0aaz z51VU{#p`3H=MS6fq2nk$jwB5O=fb2EEnn@g2)byvAoogtFsI7LFcZ^#|MGyaJ zjlL=nos=E{TXTEjumv6}rLs6Gp*d{3f0~XI;y}Zg_nbs8WuT866krrI#Pg@yi^4FwQ@Y0TS)8Y_a zZGpOIsUTM!8-ObCqz&2*OFZPG<#Du(Dg@=vY4EM|XQnx3B5k4O%Hp(1D;le+)~7KC z*!EQFxzlQ(5^1&d_S1?$m0vYYag!em8>tX<(@IF9zoxRGJP=&f2_9fyfL1g6)&S=~ zO{ITb(F!f+`5vmK8h%wP=(x^ROUZPJ-&e`j?leLD)l!2c(}7lgOa{kG>S-PSgPx;1pIgg%y|2Qru$UWY2n1_^#)kGQQ(hlX*7!__ zLv3TwLuct_KU+|87?GmJpo6ZB$+>Z~k0Kyj zB&rjYJ=sDRGOZUuO)DU($9Feaa~r11^wqCqBNIjI;8mcP)`}`0_mH(%U$FoUP0S-f zh3WbE5$a^i<>9nMnTr=~h_(pVz;*okE4aM85pr}?2Y}g)D^~dHp?BNpI<_F!!)SzU zgGNL5anX%}VjKLy0)NfQ;3^N@#8!7Z?SO+BHOdzKCVzbctRyVf&CLF~I>@_Xe|wk{ zBh7H+G(hE6x{U$fE+_@|y>parr8~IaF7B7pWxu<)-`#9=)7^A0euu@m>5m5Jg%jxo z>~r&qOY(BE%JOpY;!p62Xwz;eO|4kk=yh&-5R``L$VWV}l69;Vo+?;7)4xuW!I~Wf zYtZ!&Jsd~7X^-kZ2fV4z@io9e^ljsl?4|e6BeajT{ZZIa&B$DTLq&a{4jRRlJ&L&S zx<5vbvoHL!pmB$zr=@|FHNIeDz2DK*zr@i&_E2LxAKnleG|CwsGB{7h(Nkp^o?$4@f^aNDr617nxHB>92x3np0USg7DDG zIxzSfI6h6qe=A^`0OVCcagoojL0Bbfd_wZA6F zE$^_q-Vg^_`6upz=n7o5pehqs5NHTu!QZD3Sf@UO-4E94b@kB4jO=#$1av52at65Q zGj`vVl^*(n%6ib}^d%&d-dOiT z%g*x!EvwT|Bfg1kpq3l~}ZDV}}x*i`HGT4INLBAmbS^+C+tLxyi zD$`cf*H-h|{|`~8k_bd7X@Qy*wcPj%)~-sKBycZ%SiT2j3vgISV9u@>$f%eGgB3FH zD$qO~4nj=B8r>;E9s4kfJ&NWa;8r1dnp+^wwrbbbaHMKhLQ$dCYBn`dR!vPU!bpg) zps7)&TrjMQMbaxA+U>y0h&Z?C6{02#+9TpcPw2krgV2HJMz{o%AI73=eVsqtUC?sa zkj|Bydl&nHtD;2d-J`2~GW-gBp_;$_)Rq7LP3=T&6Fs7z=+6u}3JeK?oDx5LpquZQ zFhR#24*4Mx^g;%)L0S$0!v3@?3zrq@r-Zqe;(^oV5rf3hj8__D#fP4V=eoee83%4^ z3C^#9oY@kb8AY5r%4^3K1UeAm{KCSp2oHr`BNz+mb!>pAv2|QgFg@U}f;(@F=6gEM z&}B<#zt9EU9ppYvhjT1T9+9D(gct#(Pn!(=!`=;1URar(3BpZUznzHZR&fHGi80`6 zMZF)JJV$aE)DdW;M~o9E@_LSkoWVCS99XcBS9c6N1ag8nnLA>;XQ|CCx^=`E8jkVW za?bV#SJi^&O}~}r(Za(cVR}yxRN_a3P^0;trF^ZxHk98uo5u!^$klK1pkmmZ)z_|t zrxY{55(F67r{N(VubSY?5hUa36ueqqAE;c(udwxWSNd1@8moeM!sb&nfdwo5kib9% zJ9{;sdeYb+7PH@maey!Khc@c)MLol&FOS1ec_s`eHlW>jp^)T2KjL&akyBgk^N0m1 zm=Fs?OJh59v6%NzQY;a4bl29@C6+!wa0&!xcSRI;+yTZ_JaHH z*AHQk3p@xT8sfxhER`OGzCD1UE?}rl0y{)0)8mvNx5TU^d!$=fi5^d51AUgqDmp=Ekitq-(Z1$0;N zZFu789&wGhHcnhEejlPmb>^9;^UT+Y>v`rI+ALoI(wZ)@9jI2}E(~p!N9+(glM2y-jW5|8okbeF)6L@vyAiNEl6ZB|#?HSq-7{Z zBszIDjn#sRJ7N$eraJ3YB_d<53st2N(4{m^`Vb z*3R>Z|6*u6#B;Sf3uWLU^6S}+fhtbViJ#)c|2T~tMM$D1NYpUSkceL}QXsDra+;If zQZTSjkbY2j=)fV8Bgql%?YX6Q2@W43hfRwXd33)6aDpk0T8E{z<(_m48lV~jHH;O^ zS4JdvWgHZ;iJcl}KauN*)I3;ePP|O?NRPyRXSc*&DArk;(7wy2KfLsDS!HD<`PtaB zrMYDSoNwpO+KISbvM=mpkONNH56O0!B>N-V-}%VMnAOKdStffZjRqqPAX7k7P;KMZ z14c(VvjbBte+m#EtH4Cdf%51ca)2BJ3!avl)>yNq20P6-w;UW&^qksCxOnYJr?V_` z1e>298T;8$O|&-N3B*k210--}DBsU1C`eoAmg!FFNdaY{L0Hv4JvtDN^vdC|T`~ia z$YLHp67rc!%TJ>b^ybVgD#j#Zz|~UB=a%Cz9p9aR*73NnDX6XRRiS5<{%w;= zwQ1mPIF+eD3e{@RzuHyi*EAroaTOKk6ydDPBd5^i%=oDoP+M1_c%-4UflExj z#V2kUk*i1Kahiscb&})PTBJIB96;*9bA9!Cuz^@MWKx(nx>cJLWny$gW;6xrXk|LK zFk%K4+$|9g>z$vLY7Mtv#E4vfUA?~odzeaChgmB1D?!ewvJmG@at@-s%G$Xc;zRwNDV(74P zp-*U;tvz%=qZ*Ji>56rsK^}RQJexUp4r?->^$Hr??PMVfX3wOxt)S8to;K%p5qmVV zAU6jpvL&R6`GFdHgq5FP$geJjnM7l~O5cY3Lm8Xr(zStL#VXB?nJ@+2qPVcz9?UUM zSypyIUTJxLS+g2`;SKAajj>Jv#y&P+-d*$SU-&RdJx^W$)Q@ z3d-`c3iHadN=mZkgV>!+V4xbKbYRB)BBKl)^_A7H&+%bJvSIyU-Pd(5Yu%F2eTRr0 ztFC_FCG1sJG9TwbIWw~higHc?0nOUk@Fvy3xd0Svl`=-~0GbaW+#{*#-4@C;x4Z{@ z7^ZCcAHWK&S?oKInna09O$7pt`_u+h-VdqCz{C##84jPENC^_v5(<-*w}e9qurv!g zM>Rw81x$Q+IS}jF>|z7u~(c z9!8J+2*;^+WD~oOXTuro-fgMGqGGFSq%8!!kMYe2-0)^MZLwQov#T9K|Wa&|m zUzk@oXLfd83A#QBiKxQcP%Jmww+>p;V|LcO(y}aw9+I2#S=babsEJEe%kv1WU^eV9 zC>FPhwHT@65AEmG9!E#tk>c|*Ofzpg*r_>(I+*6wP*zAqpEG?8s}O;@Fbnj@HOH+ke+^6eh-AMzdSAPd~`pP;-Ua5_Z(eId9Vd)w5u zv3_X7>}-7GN7&`ak1;bU0|ZToGIPg?BX$5TdWzLuuf$hZ+wTB#dAV0|AUu!3cdURlAz-g zRctmrD+kf~ zaJb|~Elm?*O*|#SXV=x&22p8+b2_(?1Wv99)cC4!kDZbW;dxLEO9l}Q>uV~I7p}pQ zb6@O-Vw-BK&;jK#Zet)o1rcXA1aQcT=RtVwTi$@C3Vs}nM?3^7f-CCqI0U@`4@E#4 z{&A>tI2(ug(1e;wj)T!B9oEN>6bNp;$oh6}!rB;Mmyr=?jG$rohaqLSGtq>N-0(*FH{+4S1_YG0L;W3bUW zMWa;!VJVwgQdG{IDAb&A68m=7V%_yr@J?C6r6Et_HcBy~B(Jn+PDxH)MDrX(dwKJ6 z@`|~LvJFn<_VPsr9QHKx^)w40Vflqn-@=@{qUmm95tIWu=Qfb&Ps%C6o02&>C<$F! zk~clCBoDpZ26h~wQqPE1>_4oWtkN=2hPa`xy+{bk)o#L`b%mZ4%6D8Oa8_}|A&kBf zqO6h`b7toiGOU20G@I#N^gRjxN1Ez5-nd90+tU@hlt&H47asAW zI!rV!^@wjYfXf9E71J02oW3;tRsu@f?rmJ`v9ecutIX?u+N7 zi06KI?jP}d6rPhKo(BL+R6_$dlPjRrFKV9EFAAO2FEXjXe+TX*9fJ!+j_Mxe&-g8a z|3_&ydhEngA>Ir89_39qzLmV*78;!(Z=)W2Xw3Xp8u#dZJkq!s|0XE@+yL&}2nx3Y z%N@ooX!q#xbRvz%lgVY~Htbr!M(rRC@usxWN#2B$AEb%igvk%mRBuAogOuY<$a|1x zc#Q`sKRnIR3duWBx!wduZvgYo##Ea@>=hv9E;VI84c49#6L2yQXvESfQ~-2An3xSj zQTb2ZGNugNMgtOxy~dapn!Am9o0E*mcy*I{bshD+pB5!7 zX`xE~U4h^GyeVT6R<%&ob(DhJ_(d&LCvTzNd_RisZ>8itR6lHnq|PsV#JInDn`j1Va6zq=&)By&&KbaD5;3rTrlB zF>v;AI-dTFI{X7Pik_gc^dwC{3E)I}nsVq_%B2@jn*AcJq`%UcsOr0rUZEZIs$$s` zKs%ibx`ZxO>$sCHqsuXyM1ks7#XJ-1dIjzzdR|Yzqbt$-LOM#1Fm6R(6D%&obroH$ zR~S4nu}CD=dQ%^yYf}<_zj3@PB|iR)@ow(}bc4}CJNY-^mKJJGa<$N%@grO4o+LN! z68?a;6u!9+H|41b_ix-rJyq`qxIx{u;4XDH?QNm`xQma&;Bv1!*=(T$$>u@I+(QTF zr?%1)nX!B5srkufD?ObVmmHTI+d|JN054$J2wdFqQW!*P{5u<4>6O$zX@pthRoB1c zb$K&+Q~Stppvu`_%QN7;fUdH&?q*yfGOar|}a!gVzpxZZ_Y}|v=p%k= zp-&&8uOyX+MdvywG|{_|_53}(BMC3!7Mjz1(Wa>|)PiY~2MypXcc^Z8Q z{rU>J^)+2g-(b1_MLX#b-9z8egY-QF?>`W#|I$nJ1HD5(V)Rew@iSU~6)^}Q;)M|X zQ9C$Tm?A@1sOgCjS;B>C6}Om!`-P&1@Qa=(dFZ9Y?{t`nvmv-&W3E`tcnqK&qBwCf z?pXX{S%^aVjJt1@NOBt+FBlQr{Tt>D`xo4OhdWcSmI)Iy zvWZ?MEZo6dgTL&c*nB^Y-rxi+VO&D`X48@=AoVP%peI7AKvN&?t>{p)>5XAo<~Cc! zx}#)!AY(LQ&(@*g4cJK`Du*W{Fx)b`MKL z540Je3!#Bc*IYdFIw{U3ir!k@y~9&mM8Y4@u3Zu$3h;Ie^%P?xc-PmNt*?U2yz2|@ zU#WQ47yQ?}tA^yThv*N=KMK#0k})F5Y!S)rr#TtZWU6V#>0!<^{lx$X8c)+-q+ltT zsQxxle8*G6c8Y=GXnX1+^x$wUI1RApR~Oc=rTwiN>~h!vsSn*?+E3WG=#$48SRuK@{) zkSlEwc|f;PG#&N{r6`c18I&w$LMQSm9ls;QEIL7)LX$-S<-mg%ib5(AMUaqUsuZVE zjVPg@D5Z^}j4l^*A{Jw-!;!5@u6QxFLMHWMY!$pMg>-6Lx8JxLusCQhS+q8{HUG|=lJNZ*Ji`VqBp zCW_#a#F@~pjaay|)WR=<)2O1+%B956T0}?eQV`*a5g}o~9lH+*1Mb*;u(=o!(oD34 z9LWeVNlYdSrZ_=NK^z+c0l|(*3y9GR+RIUn684Zn{eKsbiy~IM-0SK_Ka{w68ko|@gRB^qVMjL(IJ$Ab(TxL+ZX9rQpA8*B4H7Ui-jQyXe2bi5*lF=-py38w>0u#C)w~<{#m-;I`z=ECfo+yz?KR`~~JR z>=(XP;cu4H(Xw(I2BKwU zi&)btYMbQ=XgtksJgr4Ewu<%5G8K&*?8Xf(;;dG2UbA$eakJgHxkX&qDlTmnhcNGM z-AKDz#MV}EWwUq-J+HQVUfm+LwTc^?#gk~f$!@%d(Ji87o4AU}kKdr_6PPChsPD%A3XSn*k~snj(Vu;@SmZ^VG8P1FGNB5eG>c*Y zepvT^c)xhKv;ONt{nOBYukOEhzt|hK|A}CO-JiZe|9!guzWrif)c)hZp-}(*=)Yh0 z-@jk%kJ^7Em>25575yLA{U6^i9*^386j&JQzYP5k=>7-xivv;nkH$KL`j1BcgWG5r z_<0cji`xGLtcLEdmf=iZ29|7o>bUI^<7qZ@>Ur3Z7ZB(Dl~Tk@_$crd8ZBOh9r-)L z;n!%kcpX8^8?Ym9Qb7CzcH}MCk+)$(-hmBymv)MO!Uw)bE#iH8M0`Nch!5!{@e#c% zKBkYwC-j~86q~NkM6CE6cH|3urt>B2$X6m=d@V-fe!TdXm?jR1nc`bfBK|GriSNWR z+^-P-L8bbCQEvVNO2mIe#rIEQEAFomKZ_mW7g(fU#r;s;-BO7CxIZWj@glOZuSrY1 zCu77X(j~sZ{r55!!D^gz%N{ZT#e_%6o-z&hLuGF{TE@!>vX9Kho0&3E7UO;{%Kw(h zesY!UFYD2JolKTz!<&KGF+Xxlki0=H;;DFe+^$v)RO>pLZ?t)Q&91VNOY)gbOv=I zpib%(>YEBGJ`u5@wi77vc89f}3W1sy0k5q31m@J`DvXmyv zGAfjMU#T+}MGmq>A@xUK$oUFZ_9Dd?&RpPp$7alDHUUkCPXH*5pT;^9K}x!MZtrkXh9=8BLonKqw(6_>- zFW;sL9#MSlgtyotKtOSYwFP@aFm}BHrlVPWJ+96^1Rq7(?8vk2x2t{5N)JCb0vDHq zi%W5s=W{vvs(*=4zG@LT%z2$SZ^smshPp*T)#<57YY<9L#bE=jB{xpZ#OoF3q^Ax! z>8UBUa>sbvW~8*CxRfk;nVLyEvKR;d7z8FmltO>oJqLdmm4p8l-`O0z6-Y3GEbozN ztf^4&MDZV`=1Bgl6qVZW4u67T6U7hBWQG&C9V9Efj_ROEUI)Rso(9MpXpp>-CdlnH zN!~=Wr9Ruz!cyoESm-E2q1rvMu;3ut#`pr@%Vr^mXWb+IH@{WSibx5n&W_JFiz!$%G+t2Y^E%EM+ETeW8t}U>U{{3RFw3mS+FqxSqa~BDgNM_>|rkpdZp}^p=@*HiX>xyigi#Yp(8mPBp-(4?4e}27n1V`OwK;al#kLhxu1&U zW3)m(4wL$4I!7Le;Ke3Kk~YbBotdIdwpj(0N)-*7hC>0)LLp5l`#4H@mn~fj+wo!| z>w`>G`XGltAdiAK9R8Rbu#Nf;-!E0}&-;K(eF$MUHQRX@iDckmc*&MSYnT$iGEM;6jJ2g&_-oaCfM^h@INd*A$3$HdG!fLy7Edpcpv|`mi0v zGi>BZHmfh+sLfZkMweohz3FX$@y zC0#4OrrYH=v`ZeM2jsWZD!-%0<@fZI{DEGUKhg*CC&hF=4hCbLb^B2Ev&Hd4IRSTU z#y*rM%SV3cT%F=T{*jdc(mE3*`$0(;IJTfpuH0-bpZ2LVo!BZawl2lcpLPEQ@vOs>@3 zl2eVHBoM<3GL(-ejTqqOqN7k9I?#xv(WnR=YsAq6{7y1FG~4K@@a^C+Y<%IzWWHjo zkh2`jFS0S8#G=p{>lkwuux{~GuEOX8JQHZBkw{*nFHJO(BJi5z@NtrZ*Cct0jaLDV zNA=Oz)iz%2$-2Y~r;ASX-JM(yV3{+Lf!+WtaS9!8q~dQ_4y0@&^5iq*&EQ5I6muY* z9JdHL8&SJP@mZkAuA%+OXB(+w)w$x*O*L6##Bl(^gdQwrNIu0gB=tHJ17ozP#mmLY|ds;klAs%@UkLeJP8I)q~Kmdot<=&W( zvL?z3)euP<9|Gm5))6goWgDtPuM%Z|J0zR?uG7i*M7f3=nrUyizcJoQ!f_`O)ym<9 zpt4kq$&5*kQCWMHH%N{_=6<)VYNkbK=G6UoGzniO&O}>eZG4X%D9(xD`+BIU?NRMV zJKNAqgE3SFQN`uOSQ!NBp`%Tlkd5V30DOKEW4XyfqFfQijV;26skAGUoaJRg)doYZ zQ=I7BVV#d6J2Hx~;HT0cqXcSJN+XRjI@y>*ImTQnGRmpUm`6*D`BY~tpeAD>Z88?q zWyTWPW-O)KjAeAU;iCtP<@9Hxf}Sxd=_SKY|1eh2r^YJ!$yhC7j5Q*`s1~V4tvDVP z)gz44#AMV6&oF{wzR@UF8%;{6N|4h);#u}XI>kkI(+0U7$C)uG=ej|qS7A-Wnvlrh z&Q4^CHKEW`tdXb74G<^vlV`xgvqd^nZnSmjD!gH%kj;GS%1xDfGg{=i+{@u;XHky! z2B(968=x>}z+s&Ur@9deqmOsBBh3zBP1%m3WXtp9Cglw_%d>3^&%`quFcp(UV5mdI z;YWtlc|d9tjMHXHHqNIZ#sxIa&|7Q0;XTno>O_SKZ@A8v7ucvgZKF~jg;|O6LKdsx zN(J<3R!9T9!<7Q4czrl@K*_u#XjiAvWcpo?><%HkYBv~oRg zya7DEkup$7HQBgH;iDISii6J-6{B!sWQx30MJwmX%jD&n<0!7urd}PWM=ZWpXXWUB{8h>#7#6ZdnsV`mR@ZutQ4LHEOxJX{B zc)@qShf473TqL(4r@`ubJ#re#Ply=2;ecXG)Ro(=`D33gj*B2RBguqAbl8LA#xZTk zRtIIzL<|UV=dkrnbLRnY=Rt6%g^opW%w%IX z@?nSI+N%8-1RVfDe?eq(5Zi<&DA#y0La_53bn}!2W_0sVOw0Q&A#W9jooF$hbJ&4Q zo&z<`DM;%w<0o%JK1oN@pV%U@Ix0KvQ0#D4RRD;tJfhAZ$Mq%q(b8#G|zYo>hg93)vFzc0_Npvd8hIae0P_v z7^~GDf)(TL5P!u9pqgVuRizAZQ@`MVHXQeAA#lp9I#0=GS{U>Zmr{k3d5)hpJ!MiagdOjLSs#E|A40%B!ana~ zY(+kS>-?08jnBZO&#A)rf>s${(puvyy43iZwj19lrs?=|r^B?Jj;QQ(lEXWdP_lOH zw3EYGv`l5Bc;mlYK4jaKGr&IVjA>s~q1gjkR3cUjMEI0OKSMrj6KX$Ok;>TB(qR$PsV@1+yBBN z{Qx2S5z6}$Lc0GUr2CojjbCUn%#F_!RBcLXFikqswCDmehAuN*w8M1M-DVs;V)jtH z<_fhlQK`>G&n~*au294A6KeYPi2>i)!5Hle1!HLAx-{nhJ|)s@;r1z!W-GoA8Alhy zR>((?bJQ08AbO+Bm<~lCemQDFAX=7 zXp-5Fvd#W%aJVQBphIr?+R(Vs(Dwd>US9m1-yH^$1yz3@i7euvaLv)MVM zw9AFsfj=tkLaDlZ!U?*svE!}WsB8KZc;&=fM;dmUUT|qR4KXt)-5fz<%#oC1j#8BB z$Sc>OFBb`59c|<)S!4(Gj10wu>|a?<15t5&E`($B+)C6jT={xf;iEdfF~@?CaUkSG z8fTt_rJg|L=E=0m)P>rbn1Dk}K)z@b6Oez!9TW3Xw|Q!FisDSWJT;DdLq{ynfd{t2+D-PCR5PPk9GhQD<<;ZBlWc0Y@n59kebX!y2Nav8_l(fQ`$l9a5%NYQScp( zg70t~bUiZ4;r>5bkzhq`(8d5y_`oY%&B4C@83cJD#`K&yNuY+~VbaJusQ2z7AV zkW9i~)VIf+z?SbqEea2 zaP~HLQKES#sJVy6ntF4j^?IB`#W=)v+DMJFov6uwTFJ)eK48Q6AQdE2pTG&&9{D=x zdgDQv$}PhmlJ82wHhgx*6O>^e+a}8Qa9+!=ACeym9Nd0_vs+XopnJwc@(Y83=}%}P zP*yoW^C2W=AEpFzFQu7}(6Qz|$}%5?GCoFg&Bqn%H2UQZ`sMOV6}YC+Nh%t^m#F+V zwKV#&50Hm-5ho)4{$?^ynk?dN;JO=El?L~3W_>fAuAjcwPxib2>L-U=-eSO=G?x#wKgWyL1~onw zFM6W4(~e`l$a*>Tg`D{eS?05_3(wI&^Lf~Y7pTnqD=jr&f<5>fg1T3z&ip%VFkhpM z<{NaO`6g_`TXe1YHf=NCp&QJ9QnUFU!i4t`=zU17=1269`7!M^Kcy$k&*&-hb9&bN zlKyUfMX#IxqW8^12qC_u|C;~Ck^Fa}m-)R&F#jV`%^$>2^GD$|e-h)&pOsK33k@B# z0}FAY(F++l{7nQg+Tah0B@Gh&jCka^*{0zCvO$Xn3f6Vz>#G#gsl_)Em_sR6xS_9V zaD^NCsfPIYa0||jF$Tr@p|XEtfNn_(x4<)VpK#T`akOfQ{4~HoJkMVXp!(l|bc}9t zM>HL)o8lvyhN`AS>UlYTp-u zx%$4#I)O}U4E44;sbW+iCra-m{@#^_j95q6Gx_ZvW5oQFR%7Jsj22^*(tex{>;Ier z8!#1D8BUVX_FFD|o8I)XNmUgm8Z*@s{ZGG}rD4rh6VS)Hu}C+T=*E|H zW0@YOENP-KS3jveR-!Ra4_K%Ns0>J=f%*q_2v_RiOZC%c{lw==c(+zRRp=+R0Z26b zcmn@cX<%i#%j!0bQ*~oin?|p0tZCDz>nDu5h(_n66K7@cYt~5=YfTUZR;DPoCW;04 zU1CiVK5L4ovZjh!{5DwAM3a>*wpcmhVk=KvV@(&gSTn?()=Y7aHB0QaP7!~x3dFP4 zZ1I9sB;K%!#amX1_{1s|pIdXp_tsqTgEdc@)_m#0Zx3sM>}4&IY1U#n#9AsxTFc}K z)^a(?s*qDHzno>QkhAf7s*U?mdie+Z{>eIBwpeG#$E-8u0sKB`ZIsVgXUkWubL8vzeakvmzH6c6!`dvr z!tWtVpG>Hj0tFwo`@kRF(nWu<@-yQ!qn?cs|KVBNY5X20g!iIv<4+-^+)S?z+^)X{ z)aQj61IMTX3NLOD7x7;%NHl^i##;VD9}n=d&8R}uDZXa9TJ^`5D(9;H{7DQOqXun> z)b?Q*?l~5LNy49MAc88=GF)rCfV^J8%jVnD)$K`qyFuM%@a-Aub}--KgAB~wk8jUX zw>|jw9Ch1M;cJ|SjKd}aCw=LTw2*cZI9RtXp&r(ylw@5_M_XHIsC5OMVEv9JT31oF zbqy6-*V5V6HrircM;BW+(3RGWa11xmc54Tm!_9CGx6s|zZEz5`Q>%3cJ!&yq1X zbJ9uKF^KyR`H>rk>H}MhE$sqvoJ!q-w|ZY{2jUoS8W-B*IlamAsTx${;;x3FGxy`rts)^0pY4bv4-1^kDEeoy@(ptKs3fKgaQuo_jP4Eav74RO8C7M%&e= zm^|LNsw3gBM%Q#TJUsbS<63(-fB(swUXLzjKwj6_))fqoL%-L!u5%bS93Bi$Cp_HV Q)$ma1roizM+!v{rT(bcK{Pu6PPireWh|_8vELj`9`y} zlA=})m9kz?s9(WtyGc((T1FdLhxU!?IwJwN33Dd`8%_Vi2`lZTRT93UoP? z>qhlZVE%H_^X%RXm+cdyCBVT3C>Ot2)Sulmiks;wTXAT{EKaBG|*09ifN}Mx{)TC@sU8M*VvMPKhC>L zZs^6jQIfELd5+9TnB!3ZkEwTSW{I{-cuP05Z1u39S-WbX>}(*jsFw4prSrQt8OoVe ztEg@0WsTf@B*7<7=F>wXy5{IqchT=My)DB}D`++;QYVl;(a?t#`sGs(j8l+;RT>Sr z%g}>fdSe-uqZ^K|2v00WVt)G8la#}xCMU(!#LEbZnBtN4+HCDr|WNPdLLyaDDl;1qUR7*y8JtB3F2ySE8@rcm3yOfyV z!{T`qs9sz#+4V@*@PJIxCm3yXS*FBS&_^EZl60f$E^^&PMvVNpoHF?hQx5c}fQ0Aw zp5o|gMCwmYV_6!F|3FZDfW$*i^x;C_8+@+@0|X*{q~&gxWXE)aK%OFsXC%Mrz)ZW6 zb(mBgCgs6|C~@wfpJKY5q6Y|wHmisAj+D6!F$b%Lndhfe-40a^vsq?JQwPo=WvK(( z7{m^S@ZwB;Vs)gLhtx$+2Jz9#kORW?p}p^cEYVXC2$!P2hQ;IwmKr;er}&qY#-8IO Ox$8YAfhSJ6I(`FA`r3g2 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/TraceClassVisitor.class b/sponge/org/spongepowered/asm/lib/util/TraceClassVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..499d6f9fc094d738b32fa25b057122e14f151ef4 GIT binary patch literal 5045 zcmcgvX>S`<6g@9-?8cp@sUe}EC6uLYYA2WyN+2mqDHH-BEo}&tee6taKYMZW>j%C@9`++5-!OFc5_iMFUnSgq%scsBqS?DApy<+`5jD)`)e$vBzzT zTCY-Q?AkOc$j3zy!|@7}i%;ViI5YAEq}wj(p1@kA_XpQwj(&}30u;Kt1_R`ov%*br zZ4@D#WFU-4GjUHgunf&IIz^#rzxYpKxNC6GC7dy{6UjXeZ8PCjEcllj>X(Tv0=zui zWD%@4a2igJVgoh`&y5O^{Z^r9=d!fxphDP8r>!DQ5z3lVmO`u^PocSJPh?G}RN#c> zVkvJGhV|qq&2JUP*=!7O+&okjmTLv}d7diJl${_P2fR1ZrVYF$U} z$XnI73KM}{Ewgu-&g48Dx#YU8uGY1dMCv~wF-J}VqqtTKaGik>Tq9+tkP(Lo?zYAi zmdQv`RX9CBSYHr@7M;&Fhg(*P{l*P7&u0!Weta zqn0i1jaY#z7&2ea%`umAh!>6`j)um5FG3^)l}80`}>`?$sBWMgr+xMo{GyzNd) zvBS19WL#u1^(`QHFAJQrGqul3I|D&mhejK9Z!t{#e?qPCR1UX`J_Q3g9hn5heFr zkJ%_^i`K2eEYV%YIq?M5?yKeUB8&bKv0t90c&pE)73UH|xU}Ltjzn?ZZ#|3@dAN#e zjGi*iCrD2P7u2G>K^MG9wclDm?F&7Wn9kEx`y&1(YV*G7;XOh$$v2^MT3g1BVU8~U z9uf5+3>hZ);}!j(qZr!T5h9VDpK`iuSXcV@NaTI2!v~tk*={&L-2?&1(zJ#uUBnwBGmwXVX$9m+26R?{?7jT WgWKw#nzkGm4C-mF@HU?s(DXOFj{$oC literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/TraceFieldVisitor.class b/sponge/org/spongepowered/asm/lib/util/TraceFieldVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..7056d7fe26b2887ec0c76bd73f64d55e702792e2 GIT binary patch literal 2305 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 VdCtfG_b-t0ofr4FV6`gp{0AejsHp$| literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/TraceSignatureVisitor.class b/sponge/org/spongepowered/asm/lib/util/TraceSignatureVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..7d8f867bd08d7e5d3e5a5ef1b39921fe022a614a GIT binary patch literal 4858 zcmbVPZE#dq8Gg=^kj=8Bn+;7UAx(e+*-gV1y*=~x}Bf1Giwj!xAX>-P_J93Ay}&$)Z|1_Gld zbN8Ne?m6%KoacSs_uTv1zg~U?z-oLNXjaVr!vlPs#J6` zsR7qY+x^aH)+&}pn|0mXh*Gi}D0xc|V zzid0@a3ltaV7PQtVc~>`#6&^p3y^&69wuGy5 zwv|@|6UADr6B^b>G0)iENE)(Kgu*o%UvI`L6g(|#Y)@Q;nk$Q$)YP`wCyGQ^AnYyd z7K)ZzlwC)$RU#3>J19%-(HEEJ)!^taE~@+jt;Exk)2 z+UAVsGq$Kv5Zpq+>B&Cl21?W{*ewz4OKA~-InWg=H5=2pF^wcjJOUlk}D|_2s z&JN@48Z+_TOcf2L$12$JMD*S(I;on-IU`{lW^4Fl(GKH1Y-L!2!ni}BW;mD2*j6@- zVM@x$7Q>(bstaQ|mrV++Dm`YoVT^I`XeMWI@EDack}C~oXe&bt-zQuQj-Yiu%Y&~hD%Ys*Y;lUz3IQ@s{SKe0}1dUh49w4f+(6|{4k?ev_?6m zncgmGTsLYLZw}V?1x&pPk%ls+Rk)Zl?I@na6C%lvP)%H15v1w+(j&Q{Lr22+DD}~s z8<9NUCu8$O46y`*H6t$NldTX~ef6C+ zO5a&e^qo1S?@UI0XL{&6)vxaiq`p%^`p$aJ`$A9zXyorCd*hfx4?rRrZ@Pf%lJVwg zv?QDBLpU{wnyM*O&6!4P@*$%>~p3I8RaNRM(M_iLJ;Q6?XHUTZQO`X&%W*1 zU!FXN6}(cD2*+1Xp*sGy^VrbA>p-$<8mT0A*j3qrGZ1!As(|H)~ZI`gSE-`Lkk5M)bns5xwI394&;ydW|9qjNN#As>9tbmQpJY#St0lVBlAz(A+ z+kB^Q^LEc>LO}2IK-aU~D(!9||5hP}8`wGP22S95+>K={DJxl$L`sICgzs#Z?=0sz z>(m=Khdq;s(bbChYKiR>g+(`eWF*#p9{Ubl;_!N%CTF<2dzo(cF){9^h997#2dSoq z0?s>q=lgxWb@JW4c=5zXU# z`FfIQo}%Zcu?Eis&~*D~4)|y+4^0Q{4!w%{O2Q5qJVS;Q&oy&7;M#=wInwbw)AQq0 z{U-zNI(&BrnGw2bsN-Z_QunvbpW`p^6J9;M4)Qw9>+8H^Os?+-+EZ*l66lxbTzWqj zm{SO}W!_m~H-5x~cuaS0H=RSeW0{VQdpvDA+w>FLbk^$5sOhZK9mjMQ>CSP}(NT<# zONSxOR|>>_T}D5RB0hst_$25TXdUTUqW}QpI6|=5f({AyIuM?!Egw4QaO3Zh7 zAiTzRwC@J&*7gcUV4|9%Wy|78Xwo^@LZ&-nso1LXxIYk%S)O=@6j7e3 z9-GFQN@!N-lki9UeS<3gDeK73xY?g$3x0tCyh(lj5+nGP2H!@2tt^udaJFdK_6f3m zfm&j;J*gMAQ7O?pxZV{!7JYnoA5U@ z$2wmyJjWmL(lB_OCV3{&A8Hj}HB|_0stQR}!*4hF5UNG5ieR^zkA12xz+Au2Tt73` zRtL#P rL;P8-$$!6DajCOIt!3EP5&Z_Vs*OmfF05CZ0}wX&d_PZGLa6=^u4?Fk literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/util/package.html b/sponge/org/spongepowered/asm/lib/util/package.html new file mode 100644 index 0000000..91d7420 --- /dev/null +++ b/sponge/org/spongepowered/asm/lib/util/package.html @@ -0,0 +1,40 @@ + + + +Provides ASM visitors that can be useful for programming and +debugging purposes. These class visitors are normally not used by applications +at runtime. This is why they are bundled in an optional asm-util.jar +library that is separated from (but requires) the asm.jar library, +which contains the core ASM framework. + +@since ASM 1.3.2 + + diff --git a/sponge/org/spongepowered/asm/mixin/Debug.class b/sponge/org/spongepowered/asm/mixin/Debug.class new file mode 100644 index 0000000000000000000000000000000000000000..bf18e6001abfa003aba6f82e8da6eb6acce5ba48 GIT binary patch literal 485 zcmaiwOG^VW6opSZt)ul>pSTdKi=rC?Ze0njC|FzSC|Fl%y$&gvWSB>7|C$SbfImvS zm(<>l|wM@69elX6y|0tdHqErCix$}R*dV`Xv@IG)e7 z3`JzKU>Xy{<>0B?5?E-rg6mFGpg!N!ql`V=8Cx3vAYEtlaLSV?U+bYC(2t7l zT4a&X%iKBVo^v^K=k5LF6~H<67>@kFwZe(7T`}>WL?9k49(tB1pQW~1GtE8eWWX2- zV?O1U;@Y)(qp@&I21$m41@g}GozPq~T& z!{KsWTM18SGnh>TiC1phgX><4T%DVCmuhXft1k?hC>(j}|48n9C7oHEq}grQHbeRN z?hQ*pQ*P*iuV8@<1aer5k3806N?-$G;7(JoXrKO4@;Qfx;BD#v;g(8ZeGt8`)87?nAg%Xz4HrdIhqW?;LP{$el z0sbh*FWD6qES=GZW^?(@$@iU{q(6Us`vG7A3kKFc5Lk+a<{O5V+p@8_ zrFk3+?JsWQiwvjtA-`dH878{r^~`3M!;ik)ghOA z{?n)_I*y#oOGZaBtk+f+?GQ) zt*&)Gw$z%wv(jUwOk&8T9?moLhr+yUalIwY zr7|vHlwrDSCS7?vTp@?1vQ$vD-n@z$<=V*WP3W4pCQB$`io6plqq2K? zxB5S9_DbKyy)yc7f7j!cR_KAu+dHq;$&v#By*S`C4jH)!@xlt|L3nCP#u@ zlkej{3#Fwfl-#s6aa9(j6xvx*kW}R*)z%GR?>Skbhu#-DReFkx^rZ)f+6Of9=}U^E zIQ9jHKT@X$v(z4NlT|#VekBdS5e(9Z;V6bE%7O*`igwNd3pwDp15T!k8PGyUaNLnG zoWMyUv2&-WS8%=4I73-JqJFxijXy>ab2QU~Vd|a5Icn|J59w?1-d9}yjIo`}%WnE6 zRdCBCF_MODC*k25#tF=D9XB$v>uyXX4Bq_U_S%tPDkni} kE_}z#4n>;FH04sy(e!6DJ$Ou;m5HE4PN|S2^KNtRH*7)X1poj5 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Final.class b/sponge/org/spongepowered/asm/mixin/Final.class new file mode 100644 index 0000000000000000000000000000000000000000..67e1e7e1cb51718f7f2519fc1e2d79221f76b1fa GIT binary patch literal 404 zcmaiwy-ve06oroqB~bnf8v~*+bi@)X6H*gVsii0c7A7}bMXnq>N}NJpje!T?p%6D6 z=n{$L{`q`Y=lc8S^9#TYP6aMqnaQefHlxD5Q%P@9Rk_Udhqf}(R+#`opubQ{C5^I~ zoXr=M`T$!37n`ZF)_LW%v-0k*4A2$mt+!k^Qi1bHE0U-(BY!KnuMVPj`; z&8u>H(UqPX+T2A>t2Yr*JOuUNLa&~RR1gA|HVD$wHjZISvKx|ZwXf#E2k@c9 zje@xZz0A(H{AT9c*^ke+cK`z%5CT&qqRfp>I5#g`@RN{bCNlM^w7ARilrz@0^g)FF zLawAprB1~Ce8I8xu|YVgZ>848N~??(!{5|Lo6xIUT~$2cIBcwoWRbAFCbU;FT{7XU znH&8Wi`F?i*oz*=Bf@DjJ7MeI;9NN}_y-xARK@FR{!KWXP6?Oi7qjrsC27mWvy3Yr z-Kkj?G2g1xIX|2%-PDX9RH^1E*BdDVLJJ-Uo9-LPBXrPnSquH|=wsiVM^0}!rZWRE Ny4c1}r5L-|`vQK=gWCWA literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Interface$Remap.class b/sponge/org/spongepowered/asm/mixin/Interface$Remap.class new file mode 100644 index 0000000000000000000000000000000000000000..2afd0e425af5491ea10cb67ff9b5e66fc5b31433 GIT binary patch literal 1508 zcmb7DTTc@~6#k~y?Yb1KSmfr7g1ra@XPl2Y+Lljf8>J} z6{FGc?2j^@ncYZn#NkcWO$*kF`t>n63NUfz9f)@$=@X*;` zsVRQTF#cbxe)t)@!W@G;lglwocIAh%HwxS9S%#iMK39IVwVmDAe37Nbc=Clj9m@xG ztD-pyY?r|wDP?jy*&@T#%PysS$EwlN8Vu9XSa-P!t|AnG3)lS!k>`q0H#LU-Xslxz zg}pmPG(%(=;_pG?Kpxxma(}TiehL zEj>dPy!4Iw(u3R)Ks%WcJNXbhSs+A+7X|bU@h8GF5WqF`gJF%LyR`G4+(!5dhR-nY zfg<{fY4wS_1mQ<8>fq-{muJW!SNtn(pTWiPt_%1yohUX6cSwQXk0C-US6qMxZrY`I zV#Ixl=tptS^>~AUXYeD3H2t$VB*a7=89H%cTyRY|Tu+I~!;!>wiu>`=&zL&r3ksb) z)lndZEx{QU8j8coHF$U2u-W6}x)({OR=)FEz41?&dN1V9+fwSV=ym8MOp`&ovG2rq zfSvDfl|wUB>Ff#SL@@91P~9h36wyPkxLOuL$|r(V{}0M?w=q{Nd)inmmc4B(7t6jj uR*NSH^BV0Lg@w!vy}cz2lcgv&FpmUP^q4R*pTT2^36vzL^OeHB>EF-(K>+GzTuhxft z06&y?HWbs+Kx2#94a7mcIuoPl80>Y7-n8$F{3F z?1Ko?m+D#tu`*Hc?c$O<&WA^+_f=&~>Xg%|2^vpdA63HSQ>G6kPFQLV3~MVJvHM7< zUaPoZ!s=k|Fy@4fYu{xoaHV~Ed`MUs%(mDGDoqKw@ekxUjdka)tbfpKgdt()zt*$f z;zVUWrX;ZUl~8kuhw0qjF9d z3)8}O_^XbEueA!fMZzaK*B3GOqw@{I5GpdxunbkH5ME+dtYxu=Femma%!`AtfY+ke zMfc876X6XOe+gB_TP(rDig?FFoR-*`&o#X3W%02p@1kfU;u}2&u~08CURsO^Og;j{ CwA#!7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Intrinsic.class b/sponge/org/spongepowered/asm/mixin/Intrinsic.class new file mode 100644 index 0000000000000000000000000000000000000000..bbb1345e89a2ffc69a5dadcf1cb58e49b46b0050 GIT binary patch literal 456 zcmaiw%}xR_6opS2U=S6-pM^0-VGX zE*CP;(nP^vI;YV2@C44*yV4lzq*K-eot5-a5ooNEZVFuBw7>D#Sf&xVJAukV>YM~F zHgi2qF&Q^rCd6>{xi@|sbOp{g(?fC$b1i1u{~#|`t8iH~xbJsHBZ1mXWr>y{m+`Ky zCmw$s1X}9{cIjQ_+6mN0Hcvx(P@37}Va`{^^r|v7)wIU5wm=DG&ZrhiWr003+3mCQ fCTQ{SfMp3j4tYIcRpas28w8<_ZR`||u#3hY*@J&9 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Mixin.class b/sponge/org/spongepowered/asm/mixin/Mixin.class new file mode 100644 index 0000000000000000000000000000000000000000..4246c1e66ec0d068abe02fce103ec5259cbdb5a8 GIT binary patch literal 619 zcmaiw+e*Vg5QhIXt*PgFtXjpxg;*~Pc&iBF0R+X;6v6gttz+1dY{F)v_SL-b0eljl zLYx$|3I%U=cK-S1pWS)?e0>9OfOUbb*aTjh#5$lPekMZ?o=hVzQZGt-*ZJu}2$Z|> zNqV8wfp>G?rH*ys2y6^gsda3nRk8L?ey%Qx0^@y`{TvlozZ%-olqMj1C{TQoVMYSm z!@2X2BGR_mONik@^R9j_usNJXB^H@jLgia%VVV1@eHRyN9IKp{xIET|AdF)IlX*s%!t@ux C@SXMm literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$1.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ca7340641b371e68b6014f62f7d722740773a17e GIT binary patch literal 252 zcmb7y7nkzd$i&|_oDpshbYxNOhF<6r|;0u<-zAej0N0%8gyP*COAN&En z_~Mhs2Y-Nn$;5bfB{8x3K%8V}&b>4DoO@>H+mA0_0o*~8@Iaf16V9}nh?#yRj2Js! zICZA-wNy?&o)6VR8m*>6MUAeW&b&yDWFVtAJ+Tl$W8Vf54*rwIMw(FjQ*ZBux9|wJ zRw1{MB~(v0O4wV4Cib;P$ljAmM)wJu&0gG$6L@Ok3?d`dr0u%yacf9$|FPFwO|ab> z7EwSc4-4xAD>{)Op}QK(Y2%IkHX*$bhCnW%=m%aH4uuJ&R)o3{p$-iv&FfczZ;uJGH@RAEiKt?Y!YmLZVbPjr1oJE7qOK` z9oyN1?{|~IPP=+62<4ts;>mnE66UEl3OG~kY2OQmo{@39OqK?b=fCWGvt?X#l@g{K zyNY`*A1Xi4A^)FWmI(QQo*Q30l7Z;lMv8AY9x46`D1vZ>(GmFF@LJlvxwT!hY8m>3 z^2g-ZRi3ka45=erW4xOXlu*GLj<^I>oJBf88;oN55^6Yy45Rb7u#`CD9cDr0GcIl5 z^4oW?t@p6fA2^prgXauV>m9;x!DoqJ+#{DQ1=G0BQJqUH?m5?4OPrvSL!R@fu>P;sTV`DjFp2iO6w*PKy8mrKI#J4nOcd<@zgQ>OrcGB7hC0xX2 z5gXXbAAbLujBo6;WrmVa=_oCarsILMkHsM5%xcF3BJ2yRl6amh_hJz|?~2JhF8NwZ z+e%y|Jy+T~2u;NQ=a(fyv1g_>kPlTTo41kS+f7D>zh#s_xWecO_}%bY-o3fGRdZ@N z`hd#&^w?FN^Lz{$foqI+Q-U(8IKvT_U=?SPP0<>oguaX#&LPL>JTA;7+PuRosD8wy zHC%rE2CnlKPWBz=vZ(W%LuRE(_$???!K6nnn+s-foudsdak%F~b18L#W&uUcqguc= NFHYLV4MrK{egZQA3ta#J literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel$3.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel$3.class new file mode 100644 index 0000000000000000000000000000000000000000..0bcdf07d143ab1cd44640907902fa71690f15620 GIT binary patch literal 888 zcmbu6O>fgc5Qg80osZ^&w1MyuT6)Q$X{#FOF$jX9B3W{|1ajzY<1FbSd)KTT1OJH& zCnOI10Dcr=>{dde;t*lUGw+Po&pW&O^Vjzu0G?u>@Y2|omnKH9WMV!_E0>-~V=q>p zl=jYxc&2k@jgFmb65|HRbc5c+@noxB&hARKQ3ucJoj z-5iu~vI%DRq>e2@?U~Xldro+85ER3Bk(FcN7xmo`;K69!hMCd%cx%r4C`^|h}vY2S%Z zvNv52S}L8blf>9eE}3&M;+{J-OG)SkO3T;lcp>c@v52_S3rr}Yxv;9JubXXOYiXy2 zZ2|3`=`b=WAK;ZIp*b^a8_HKIl9R`%@b-(R!fy+0@Y%C^3%*#+ox`Kuy}sM8(l>O! zmdgelYrG7V7!O$=mVgenvBMSrf*x+eDb*cT1-^qm?xM=-9`0XT9CKz0D$bW8;t%&j p$t^}H`d3^ByIc*J>+)!g$yPZqCJi*XkL?EbIJu?UBUTkue*>z{=>Px# literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$CompatibilityLevel.class new file mode 100644 index 0000000000000000000000000000000000000000..6a162356b526050538069a7429f923399ff20ca0 GIT binary patch literal 3198 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 VTgZl>Qkf`CJA?+Z2E{|D`waz3sptRz literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Option$Inherit.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Option$Inherit.class new file mode 100644 index 0000000000000000000000000000000000000000..d03756d39602ffd11240aeb40ab5619e6c254ea2 GIT binary patch literal 1468 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 K_BQk@RQW^bk(Raq literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Phase.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Phase.class new file mode 100644 index 0000000000000000000000000000000000000000..1da3f7dcccafcba353b0702d2aa2564a89d111ae GIT binary patch literal 2182 zcmbVMQBxaL6#nieVUw^F8Vk}EB-UDzG|je%RxP3kLDq&q8%l+$?Gi3w>t+`>8_I)^ z&ZwggI-@go#&=&U6|pj-zB%Ks@OL(e4-%S81n68QPIH=lc^ZG%X162jk2*|Oq7gDaf)HI)K0Jf@)ZVk z{(4cwVTcAoohnXG+$fQuV?&hHprT5$s-|z*ddX_|bZq*NY3%=G9~b#uZ`E>4n}HdG z!7=NcAr(ZIG**1ia%$w+$@dv&D72N3j(3b%j^&Rt^ks~r;j@bjkxX_`!{a!aL=>kq z97iev1p^u$!wIo_f&lvK7BLd{-2fNEiA?rrII3&S^~$oCnat7u*|yM!&C+lT-2%tc z495<3M8zlh2OIW?m$42ip#`5f46Dc#9ePIAK~#VC3*obChP%hU0K=(l#6NAxl== zrdQ?Dmd$aAD2vi_A4k7nkai~pc~TN@QW9k(`^CKjkwAL|J@nDbK>Hr?E=U{onPiOq zQdh`xg|sEoA|$(WyEvUYy@SDAeg{L}$OBbcQ!;&%)=dI%kCJR*mF(%@7)gq-pi0VX#C?`wh41R^KJxna6CU-IY6B%ZH zAvX7*E)k_ycQ7MN`(UC_j;Cbt0f@~ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$1.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4ad6791d489566f9827906f82807a01bb46705f8 GIT binary patch literal 728 zcmb7AO-}+b5PjWU`Bo4Gm3ZVJN?5^o!Wa^Sgao``ICxv2ftsZyy9@e*OuTsUWa7ae z;Eys+kwjy>Y@5!sGw;p3>Br~WJAfJr3}?!l*#2C}37@Nb?(wnh_%nMZ9)z@e+P36U zcuLN=42pd*=EZ6hjG-Eu7=_7@`&+Ye=PVtDa+q>aL>MeBhM^LMsI|u#A{Ro6;F2MK z)Ya{6*O3#uA9zAe>YdVnq5WT?8?IHoG)N(d%>*oLk=|e`e1`LIRla|`PMXI&;G=-S zJSyE%wWiY3r@KP(>&0xyy&GrfQY70|BgY*$p3v`gFx8QgdrjBzeNGzEEje<^I2Q`FrR)gjWyH69-#`<(LxlltN2O{8Zjg&j!X>ue&fR(7gSe$rogfB*x6HKg$ zd@Gf;AI)twlfI`WLWPx{9EnOp0}*zXPSlVjl+JS2kDZxA*jk28Lz<9^iXqgONv!N> z$Pm)cq>|xtLb+;3@|NqUvDFKGsm9HY*(dB>bYL$h)inDCa=4sD3Rk$^@JI%Pr^~S{ zI^N`(MM0t7`tEieLGixlM6G(?A*5 zvnb&Pq4s~_zY;a95^|9;Th(P(dVVx1; z_0(~>m8CyTdNnxa_B72y0~I{TVgnBedhlDgcwUx0X?f8d%G*+j?sPH`{(&=aIa0K} zq2u-)Uq<^lXmpeke#>=&K(Ktit%j}_@SWKg;gL7uCilFlKNNe?6}#I=u>a`ismQhh3c+cocNhc}ejD JSo|h%=_iDsAvgd4 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$3.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side$3.class new file mode 100644 index 0000000000000000000000000000000000000000..b84f021d6615ee285c7a7f0acc61f10df5e58531 GIT binary patch literal 1153 zcmb7DU31bv6g}I-CO|5P1#4SBYEk)6Qp)&*ySq8}oV)jKzW@CE4ZtqS3}x3F=>FJs27K(kPQfyRERta; zE)tk2DTpvEKeikzc*2m*wuHQHo6bNt0?%>=m1eHPuy@gi)?!kXTt`C;D^bX}O!)@K zme25LF_wA7E0lAe2fPZcP-7!5&ti#O}BQSf<+vYf2YfZ=DUd=XrpHq(U zhSRfMpDtFL2gh!oI$^jIugCW+n^$+RM3+O1C3<7fKz{?7juXNZSn zmk9x!ph#Ar34;W#ke89f)i8cYe1dW76Rw}&7DFq!RrrAWZ=fY}V)7b_{1&qGjzAK0 zvN1?Mu%TdEsxk=1gLybJ|uJu<_gsuBZ@go+Y5 MnI3U2aneh_00*!zdH?_b literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment$Side.class new file mode 100644 index 0000000000000000000000000000000000000000..9cc9673115739f831664a8f8df21443b958ac947 GIT binary patch literal 1788 zcmbVNTXWJ-5dKaG1X5Zm_F^wys%U}MQhM_O_9CSfMVM(?9P}xr5z`5w6QK6r^u=dK zVMf%BPM`fzj(Y+#Qtba#S{p+EMwvW@!fz zwNi?d^b_5TyyW+!d8}Jyv!t2TfTAC05*R}=eW)I*5kobLk)&BG#nWB$#8zVr0~cu| zhz!I3%Fb~R!)!Ma5+nwZ=gY9zO`u(4U{QkHQ{aLGZ%=_y2?GpsU8PDfgACGM=0zs^ zDnqh8oC1R@kxnHuyY!$WcXG)cVhrRq(tAmTVd+h8l*g)3(<%%r!B8&@UW{PW0|Da_ zMj4z1qioVa4h2IUbC=ye)C$#@7uRt^#w2c1;6wwSp@K=OjEP$)8b<&E9IJ1(6)3#+ngeOCw>0J^)a3fK$eoQElC4| z<9zxE;erR(Fb0NATHPkgFS(A1FSvD%$xpPRPa)l1_TDMsr)(U@FOd$9ko`jVEAE~{ z;CSHzev3Tb77F(;ZST`b6N)oL;h-NNg=Z$4nEh;Tcgp<@mvEn_j%^zg7DdbcQ$nz(m>Oj3r*`wh)Y|p4xzznk)@PYN(kbOjXiR=wRf%YCQbhh zKcElX0xA!PHzXbqk5J$N1mb}Q{z1hzyNk0J%Sy$=&YU?r^PTT}bIyG8_=_(AT*8|I zYo6}Z27S-%sJ?ekY1OXTgI=xY>^W}jh8eH9yN>qUo^t(jo8DdJ-qPN#(^mRjZTI_1 zXCMT6>v!y3yVkYcPVMIQ9o6#dF;Bzm^=)l$ch$=J|BhE*tqaVIhRYx+Fn8cR2$?}z z;Miy?%Vw*<(v#51AjcTvG!V$SYR|u^DT{z;3S|4*@wDUL7f5-bo32nefol_GAd+$i z&bHI#`C2n}0so3k8K%_1*Ot$I~m0>-ehzyQPUo4@+nw$baIOw*(TU@|J}; z%;%B9(-vlMGzW>}7H093u})a9Fm0?;77C$tMxZh2-VRAOgR@kyqx@ULt0JAIh39Z? z3eRHE!jUlG1%af0+ZizK6Qww|U#NSo6*Pp}^aQR?mVQ*V@sMR!T*~uro9YWQ`lr&~ zDwQWvKBQJ8ouyJi{Rvzs#hQD=*N)q%mt(G`>#L5^JoL_(ofG+t<~tVG!bMy%S9FbAt8}Al4+e^blG|`PuI=w=p3iT1JG!N=J6(k$!=@mR z;g~n2&4+l_)LAgIz=N4>5X@`>&S~zS!!eF^uJ({bg7f*x=Xj=4-N!;@X&)ymALI0U z$@f3O>3tL{)rUAQu#eJ5+$pibae+9H-y#jR~xBOhTsT0y^^) z0P+{o`4wsT8;;7~N#~D%%6tetq_T+TNs13EmQjlcnAwm^G1kI|G{P*6R*-)NFjlx> z2y+oH&|@@gkd9$rFo&xgPCmqy1V&;0im@pSVG4K=FG0+#QI3}*z{`X)fVoQbE6C6A zs!2J{=-U{hTm+THYnYD!P6b?d~h3R}px^K{zr&n^ELKatp012!GbM|lH CAq!;y literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/MixinEnvironment.class b/sponge/org/spongepowered/asm/mixin/MixinEnvironment.class new file mode 100644 index 0000000000000000000000000000000000000000..6e2aa2a194d4477d55d335b9dc7c4cdbb7b9b5dd GIT binary patch literal 18224 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Pseudo.class b/sponge/org/spongepowered/asm/mixin/Pseudo.class new file mode 100644 index 0000000000000000000000000000000000000000..05edb4c7c767dc7e985e45d631890323aa1e5046 GIT binary patch literal 389 zcmaiwO-sW-5Qg8;)@bWTJ&K6pp+^_IdMZ*+1w#`A@w82cuw}Cwl1;UL&4WL{A0?Po3KA)X^XFk8)KLFg~lyL2r6Ted!&%fEWV|aoA>zBOHGNhDLCE literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Shadow.class b/sponge/org/spongepowered/asm/mixin/Shadow.class new file mode 100644 index 0000000000000000000000000000000000000000..890ffe2d5704f9452867bc73a0a85148c13bd3cf GIT binary patch literal 572 zcmah`%T5A85UgRrRq%y^ipEHcA#iaMubxbRNCIL2J-}&zW*xGx>@Kfg^WX>gQN~^j z;(^3V_jFCwbfxC=>-_`39WDf}UEeeU&vi`l+!^^aG-O~Kwwf!)Xurv!JJTTq4##pT z4NE$v(d>_D5bDqbuGXk@95( znOCvMCMWDHJYw=zqtbb7mRVJ;RqEXHn^i3eS;XF0Q}~DS>{@EDV4~i7dFs>}6<*`{ zG*WYcOtJJw-41=_m=QBr26e+ee6pn{pcPA9jWg!tbZIFWP#};kmU^4y>2+Xb8p(+j z3MAX^#2-*qS)4_#HDUKQy{bU`#rdC*=IJb&0vs`LjLZt?BFn%D kPFFyWX))xMRmVB^JkQ&Fz0*UCkVGmfyV#2$!afeZ0k+PTCjbBd literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/SoftOverride.class b/sponge/org/spongepowered/asm/mixin/SoftOverride.class new file mode 100644 index 0000000000000000000000000000000000000000..7bf4e2889cdbc538ddb1ba647984645b4565daa7 GIT binary patch literal 403 zcmaiwJx{|h5Qg6aN}znTBSHwoP%&YNm8mL43`Idr#KPpJN94+}BgYB!uQBig_)!R# zfigs5xzFcL@7?Fu`v-t)^a+>N<)SLB$+@(z?07C@Rfs~pDI*g5;^T&$Q*(|$gx*3n zQfO&%5ziK!`3ReYvvpM(W4-js8ZrD0BXkJ;zss&x6NJ-A>trfj&i;nbX{4^1aM8|< zH5Y7rx-2=s+YjUPKE5TKx6@Ph0S?LnJNO5Av|44$m4eY^m?VU5Vr!T2ozg+h@w5($ v3Vu?RnrU7iS`7#r*g_B!{)-SF{n!Y-;7>xn6MDPPAVwE^*k5Ig0~~$>xSw_4 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/Unique.class b/sponge/org/spongepowered/asm/mixin/Unique.class new file mode 100644 index 0000000000000000000000000000000000000000..5ab7f3b4046e9504c13ef1a83be2b328ad4b4d80 GIT binary patch literal 475 zcmaiw%T59@6o&sYz$kdZdt4Zei9|OxaqG&2A(DU)98APj!Q-T))4{o*yqXIiz=txP ziHU4T-1OYO|LQY6Od}i6GRpcFS^RwC{?MBti1V4U6cf>zc!aSD{$0as_|7EPtMgOtq37jk!_bFv9ugKE+KS(b!dOT;)?GNt!R)<~7 zi8ibkaLzA=4*wtowib_V(2L3pk1O|47LTdPw7_9M<10gY(1{)yTHr}tpnxKKlyj#d sdtsZaU9OxVc6hkQX#p)6QqgiX|b05__DZU6uP literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/extensibility/IEnvironmentTokenProvider.class b/sponge/org/spongepowered/asm/mixin/extensibility/IEnvironmentTokenProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..109291d3df96c582f4aaa4d727b1fb53d488559e GIT binary patch literal 368 zcmaKo&rZTX5XQf05fDVZdhrYwH}Tq&K}ed^(D28^lUZQWEVjF3yHtEN4?ciT;!_xx zUgV;u$;^D;eEH4i_xlHcTU-!^#%7}28lCahyt3uBkYynXwO3m3-mxy#Qsv6MiFl+d zWsNRaySaH`omx|=HQN@5aJi9{6uH!ym@GHEaxH{}>px952fer5kH&Y4Wd58^M+ai6y4QSR}X&8!Uy;gUmoT#xQy*x`M~TD1O+!lpPl$V5ol8Efx||Ztv`F9__Wx>W%2I5w%VjSQG%k zGebp5w`026rY4cbF)S_A_WnxcV|=MtWeCaRKqQi3f{H(5HJ#N)kzj-bzOF7hS3;3+ zkeIsFsin~vf`wYdFi>!DuC!s;_$S5hyLoe6kaAqni2e+}h7^)=4)^cgUPD?pVY*jWf{H$_STR`Y$)r+;-%yj%A6V2fcJ`hFO$A uXTvnTdeD!sm#R<(2nR9barhl881e5>R6UMi+~Wi$$zjGjOnJ}3tM3(`Z=ikv literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/extensibility/IMixinConfigPlugin.class b/sponge/org/spongepowered/asm/mixin/extensibility/IMixinConfigPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..8d93bdf889de03da4caed3c2d694551871377c54 GIT binary patch literal 744 zcmZ`%%SuBr5Iyl#>)ZNTyHUF_;I>5&K`7J*R$RDC+vznDlaS>4_yYgQg&*KYiMg>V zc(1ErGUv=WlbQFA*EawM*kWiKmvL{6&d8caax~<^-}8IXRYQn zLnEVbNuyI?Ex9i_hV{K>86Cy_t;yB!$XfNB>@nh)NXvwm(;q_hZe(5>9MjG!>o0b{(#}7 zYW(UYE7|A45%FUsygxHT8aq$R9B-ss&HevCI(lT%9_!ZlFm_e%$xMroJ7SpYncNNN zL@JtLn7~xLMW8knPXjd|##z);oWp#I3s^+Fmx!9cQmijy`++w_e0p*-Xgk EPi}bKWB>pF literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/extensibility/IMixinErrorHandler$ErrorAction.class b/sponge/org/spongepowered/asm/mixin/extensibility/IMixinErrorHandler$ErrorAction.class new file mode 100644 index 0000000000000000000000000000000000000000..dccddcd9524e697aa59518ff54fdae4c4566e61d GIT binary patch literal 1693 zcmb_cYflqV5Iwi050>Rsp~yo-Ky5)-d8)J`1zTGzZPH>5(U>gdT9#~g$+kuOR|-*# zM#E=+lyUBDKa_yc#O{Z^J2PkIoS8fA&tG4E0GLOTA!$1$t#W8vC4OkX;||}`^h#MP z8^?yF@#8ADD#os18rAn&YD+ldj$=DX-P$v`GbxQ&v1-_s4~*e;`anO@HB+}rTHLCY zqv=+akE})*x-M4tp^ahSvaDGFV~G9_w+}vsj;8(?+A`TpoME$dJyFe* z3b(MZiXQZ~!-YN{da384Xc$b(LYcnWoW4>TmZQ zE-*}l{sk4hs(iShVjQ=H%sVQ&&@FBvM1rgP23@s3S~MH#+@Wy64~1b={DA(vfj-Pq zdMcC1s<)}-uo%Qe< zmEN%TXq4S)!{V7*d6zre`mQO5YZrC1pgV@J8_xE;QL^-E%^`rAvMlb%`x9%dJaPu54fp=ZNKP8V^M_~-NWSquGD8ZP7n=}w& zYI@`hcc*4PA^cHd1ZNjTff#YGlll#aT0zPb6{loB;!AYoMx4AZOu~<8+-vBwPK_I|Pd4cPJFgpQ2xAtIs1K ibDNUJBZ}7Ta^&X%=CJaPqVIyeK3L|Dt%hmG4h8<0Qf!p;-ci zwv&6$srJ0ZM4j%as@%ZI+$6oxx2=aq?^b$ZxmUSaEOS@=RypIcoXgTSp zsoi`XH6A#flx#_q{a`NmkzA6E_a{GR}|I^h5fAm5v46$FR* Q+5jQS&-+&$w6}Ek6RvkFL;wH) literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/extensibility/IMixinInfo.class b/sponge/org/spongepowered/asm/mixin/extensibility/IMixinInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..c9f84a432148e26213a8e24d47466d0474b6cdfb GIT binary patch literal 802 zcmb7CT~AX%6r6?PrBI|GDEI{=gtQ5|2_ZbF@c}=Qo1hZw6FhC()60_E-DY=-@Yi_o z2l%6mXSXz%fEb@9JDD>xXLo=8y8HoP2O9#r))mqZtSM+%uUZ`5CZj6b*5ygOd-FtPpK0!ObX0jt6oNdz|LI>$?}6a)6SYcnXq|y zqC91|C$RlLa~Y-urqZxLwV?3Mnw~BMUNxErcNyKb;%N4@K*mO&Ri6Zw*yeiQR&d%B zEU3k#Qh7g8&5n;>sV6WuKJ8xw@&c7c^LU?cNc;B`ROf`ct>J*2z+|I&^rx5Ya^j0d z{0!{NJkUO{ZtDj5=H_N^Ss0f&blN(8`_wTP zn2ub0A%VSrTpL$C2lSHvm!&4aTV){o%#(b CW#N_p literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/extensibility/IRemapper.class b/sponge/org/spongepowered/asm/mixin/extensibility/IRemapper.class new file mode 100644 index 0000000000000000000000000000000000000000..9be3d9e109874c7cb5966538de977c7cddfa9989 GIT binary patch literal 374 zcma)&O>V+K427ThNr3WqiV8N21WUFRQc-CoIKdFCFesUcCPPcF)3II1%J_bW(Dlm~ zij#78-Alq_#f3_D^Qa3$=;IUT5usgFe)G=89Bsr4m2g0)q2WIU1Pwxf5b$i3Y@<`? Qhmzfry({5=;$scXANNyap#T5? literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/Accessor.class b/sponge/org/spongepowered/asm/mixin/gen/Accessor.class new file mode 100644 index 0000000000000000000000000000000000000000..f47fe3e26d6bcc8be94d6af8d71fd2cc95db75ad GIT binary patch literal 500 zcmaiwK~KU!5QX1Tpn{^Hs4>Q9JQ%px#H%M0Fq()Ms2=dN)UjF8?l$cf<*#}02l%6m z!vXO?;%Vo-{pMw6zP>*`0bF2Tpk>m~%MznQO3WLj^y0}Z_G0y}v=@^0u7ZHF%%m=a zKz$;o(u<@Hz5aMYfpy^s94}p|wXxDF!;QbCi;_TX5p+JM1&;1kcKI?5$zBSSrZUP& z;B+MwnFu(o_Q>Iz@{JnH#XIyW^T-NRhbB)0x>gZybTG(ymYAMYrp6I1@$5{X zfFj41IjT?;s9=j#la-U9&PD^<3uA;Grg!HgTO)Np`ZV2+Ww6~Py9?rr@h53Q zB}!s^_Ai;Jce_YUz(^muowERd@X}+=; zCiCabmLq(Ip>tW9(!EDA6YU+DmoF0Ab@U?<8DcZVfNgdC&iN{ z)vyJ3#fEUVtO|pk$mO(u5Y=Q^cWohbA6&31f(RzsX+j7C43VmE|Kv+2+R3J35JOR1 zz(oe_?7U})3?Uvw2S5h!ru_^or(zVBBN)aQHPGaB!O)*?jX}}1rCH6WxQcNPb&XIJ z;TS4z_<@@Y1?tu5Bj<^{JPq>Ay&a`o35J2Dl3iEU^sH_3w|VK%OeUj9p^Jp>Nk^7z zB5RtK%Ux-iWPh*E**xRHNqZWTo_3v~n_AvNdjt62wzuF-qg6~}#%uj7L#(CF7dB7h z$tyHIgNeT?^RH4yd!b?hi(R;byJUWy@8>Op*BliY-+^U@Fhz?lH(sl_=LheTTlM3i zOtm$TVc%rSCR)1k-Zdw4l~o#7hMv4MMPavI7WOkvE%aRX)Red_z5Q`8TC{d;L#)Y~ zP{!$&DfEG1R6JceS_NqxMueV^X}3o21N0wF9zso~8i;+QU4Y_1jIbcn6ig64jdj`$ z`DpZ@mv(fn$?CE9q5qik8}ZY`qLe&9>=P~(jxfC0KaxJcmA)Up-u3n3J*}_P?-pZ+ z(3X_Aa)i|8AtoA_iYo`0@=wlv#!>*!>0y@_Zwmq|P&on8GL^i-%OJMm4U|N>LadQKeqjo;0&{{04D> Bb6Wra literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorField.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorField.class new file mode 100644 index 0000000000000000000000000000000000000000..6c04996dc7283b6f9061f547d289a9383387b3ba GIT binary patch literal 1056 zcmb7D%Wl(95IvK)b>q5C8`2gik3J|QPKX79QmF_DA%P-=ZW?vL?#8(d7aTjXT^<|$ z1Ac%tQUekTK7fy+%yolA6{iBry5kwooSAbx{`u?s4*+-J61Kyr=f;CD=*dC&Rz|Yx zin#Cg)jJiqJsG%d7SS zLU3ByJ$%)1lSoQ8&D#sRa+hG8mbTvyBw_8GN}a*^MHM%LI1zy-NA2hZVfvv8RPu=F zRVF};i_;7a!`HpZ#J>1#<7G z-;vQMQfh^s@DD_!bjB!X?T1H^-WgvS>rBPqpDB;BmYtuV3Cxav5^SUJY#!pw(HFpbYJ@l>lUt8Whjx1w}&wG5{=hoX;!UG1_!R_>2Isk4mlD_Jwpqh@^U@wQM-??BLfdBvi literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldGetter.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldGetter.class new file mode 100644 index 0000000000000000000000000000000000000000..03200c27b095c65ec0d8d8ee14b47f15ed8a747f GIT binary patch literal 2003 zcmbVN=~B~B6#gzP4GmF1+!q8l(pHHm;zC6c6{7{0B8vNMdacnm=_J8*d=Q_&KmJgs zQ)YC=2k<$349D@@q%h+Gt^Uc)Jvrw)-#Pa?H(!5z`U2n(3Jh7-D;a*(bxNY@J`-}R=1BRn3s-g#S;i&G*9gr|TpjQ$^jf*8ZVYUo3c`BTo2 z$l8t_j57@DxmHt|&O>)BHK!o~MMWGP4DsNR?K6zGjPbXE#|XzJY=)thaY8N(9n?(O zK*4Z8PpuGLwhKn!31Li&;E`LLaf^adssZ;(BA9(qrQrTmLZ!!;hHmsE(S~&leSdG5 zOe1|2tY=UNI&Z%u=$M`|HEhHt6&tXbL9;wTgd;8thHjewLR`aEY*UHIc7`t7HyuCV zjwM3O!T*YDA+~JYy$HZtiX01I@G4DD7TZd{eYUY2YZv)jeQL1 zCOPN0C*$NHD9{<&W&NS1(kfEOFbp<9SW2tl0Ckraiwq+xiFos&Jsg1ghHKDaTPb{4y}au2}7n?mwvf;5^f^{GYNDuOxBgN z9Wk>|DF|n6xowKsJ%s^2Om#H9wYPH>C0#x*&5E! z+xZ&IXvr<&GQ~x1SLeyt+kCw@OR#Q*>R literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldSetter.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorFieldSetter.class new file mode 100644 index 0000000000000000000000000000000000000000..6f330cd2415595b5d1f20a647966805bd8990792 GIT binary patch literal 2144 zcmbVNT~ixn6ngT=Z|sO+MrZm1{88%j?uIzpLZUa>_v4)Bob#OLJ^B5QU!MS&gA`cy{F)gw zJ+~&C-j~vsRnrO@X2ZGfxMoed=8A30An^QK(v`jydj3sE)~jV1hSJv{1Qz}uf`){^ zytKcQ#IK&p1 z=@}==MWCN#Dgw#*xoqwL@48blLtjdBO@{Zp>bh5z3_0WkMK=g7*On3a0%F_1Fh(-y z!w~^JwEUV3H@<2T{PZEv%3{gD3m8?NM+Htkn^2X8vej@*KqGY7`I^v)Y_4eFMNH@z z$8iC}_9Y97a}_YN#o~V{%)m*U(wWFcS%H+QFVa+AM-I~hQ(X}D!)iE3_N;1EVE!NxcUr$v zVQH2f?#GUFY~s9*8O#b~*pAyxn@LfN*`n&m1 z-=`;m60`>D(qJm9bt?!IMFi+B>y9-WaTNs}%Xm#7+a>FcmxdJy~`Jx&Nt5Bu|S)3V8&U}c$x zb-(1pX;)^=d5i+b4Osh8)5$#P-$;pkgJgrhDwer*LNBf>2Fw-dekiyj4#Sj z`}W~r6m`vNw)cA3+ws+mt4mC>14;f#fnVkY{?*_vcLnbI_)X`h_mFuU-CO)sa|D<| z3RzURIvQK?e1JRJE2R@d;5iJ%SYnN+Y2H1`@8bC%pd}w7nOL6SZmfk9cdvFLEGskZ6mt<^Y$Lfe`DU+8o}c|ydRzX#B>v|`FjkhfotMVTtrGkpAbUhRKuC; z0*a2AsBDuZpT`(xN#`6#)&=h7`92o#0WP6IWqpq;_z{Z{WrdiGHf4i&fGup3sxf>= i`)v|BiEr^CR|#T$gOBhrThw4nKH*u4mQ_aXL+UU0TT!_H literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorMethodProxy.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorGeneratorMethodProxy.class new file mode 100644 index 0000000000000000000000000000000000000000..092038d3f1fe6cc70e6cdcc69522488d004652cc GIT binary patch literal 2707 zcmb7GYf~Fl7=BI?SduPsD^*HqO97jN%UX-|0;L5M8XGPatc6y~ve|}hlU>|hTBuro zhEqQ{39fOf_o;BQj#IlF|Z5=c9f$=UPndwI_DUe5mc&+mT#cpKje3_EUK z^Hv=@Z>~CzOxMh5x>wYS*1BbDdDGTL4a4+2$DK57)75>)oihCuCpYUl>l+G$z=c=# zpdc#Hd6eUU`}#v&K=pMuZ~9?Gf!=K8Pz7sQ^Ig-_Ld9t(XATL}(RO}g)$|za_7Rp+ zhw2H}^w(Tl?gY+O*Kf4EjP3clZJ1?zVo{)W*s?8ugtR0N@o|vajD61;O5IfP8X6La zp;4f(@<}V(DrgpHAW`%Gp{qZcIs`%`!c-hbYXU7ep`sQ_91*-BaEx9@_j&9}rm8Zj z;w0LopHnL85SM;V3)IukjTZ<$cOWn$KRtDuc-_@=?+ zD|k~tS<$_Tf}R)94$DL(8ZxOx6-lHLIFGan74Kbr!Rj zZGnN8_7hYG%bCq68<5qxmlSW#ddyvSvT9CJ85I{XD9`kc!0E~qN;V|%3f?7q%vb0> znv~Y>>e{dPGRUFeaC4ZKwehJy zf0e_9X)mKx@R^FYa6z`n0u#id887IbC)wi+JF>@v4DV|*N4IfDcKhc7$tocBtrXm4 zL)m(f(VDaJ&d>_Fo!91k*Ru2Usbe{gB^WaK232#WXQ;R*rDNb|7)oXin!Su&pd3XvkW&IlWd~Hr+i*bJj8R0t?-e8hgUToU`T{ z=7d!+(aChi_<;~Zv%CuU)GSANuyPUyD+eRj2!y<}`2U!@pAe-4xR~zUMpL@Cgx9yw zCfANFoRMqS7JAa@O|&)E?V$I2D6waVMYquZE6t+#ivL}R>|y{BMgCeKxb9M1-pf_s zYf4TM8*mvl7$KG`XvI}@V3eOVWB7(|PJ~$KOXH5HWTg_RphjzmSUlmmYWVIsF`e1L zB`!TB3@>r*f4YZmX*k{9Uc%L>PR+LQ&MeT#s?`Af8ms<84KA> z^Ueh($mk@xIrw^!!7#344q4pcP+G?{e#8uZ!)(CzV94Vh+a34;Yj{YOyYU?!v4$eF Xx=X8if?el4-r(C9-#=lL2x|TX&cx-u literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$1.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$1.class new file mode 100644 index 0000000000000000000000000000000000000000..fa8ac4cd84a3a6461673b305bda5a31116830280 GIT binary patch literal 852 zcmbtSU2oGs5S(+|I1VmxOQE5B6)=!Ws204TqDrW7kVVo;bp#K6K#qMlF3w$ac3SvF zJOdH}g!%*cQHZsH(mocXyW5-9?##{VzW?}o1mGb$4C_)QZa$SF;Zu3Y6_4F8pSY9s zO)A`k3-?JB@jREx7q6uAzyM>g_rrtG%|em5JEMIb6$WYy3nwer%MynBXJI!`XLxj$ z4(E^L@a>cvXfRkOGYnlPI82LZJP4-_5j&@hI%L$Tj5=iWn5!~+nnv6685)nHEEQ?7 z$x!R8J!e??JBDo;%%X8G?bFfTk zxJXWWzSr-*eCiE{-Y&z&e+ew3ZIZxc21BYi6=7DH^etS$)l&M}v0zXMTDbA6WtBnS zk}+qP4~j5)O_Lsmql|E?p9;P`n~b>now0l&xZ29XJTJ%6@$6S#$AdUMG&|C!XPv#4>**mSIl2X;SQlis?#XKZV-ckX4j-{(CZ93 J@6pyU_Y(vg-~|8x literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$1.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bce74d07027da96865cdfadd5b7f5c3685d12caa GIT binary patch literal 1218 zcmbV~T~8B16o%hvOWQ5g7F0yUPf7x!to6=pK@^2FsUJy^#LH!SSjKE;n%Sw=f2CI> zn)n0!QO2_^B{asQ>n1xh=bbapyfbrt{r>(Fz!R(rc-n+++|w$gp8iaRI<6mg-L4!+ z<%Xo(=RrVmtW8rL>)JRt_|l_Vy#OKb^uGZGWCiBN$b`T7(f{NNJWPWuATLlJQxanW zn`r>aIUIp}Ln>*v1y@kt+0>BdKp?xTmGr^suiGs4_5W^t*6 z94-sw?1_v8w$f29UPZ0$2~=s&qrg(L^D76L3-A~J ofG^_~BeJ;9`AgjAP(bmeGlXHMh!X3l7O}!zZs@>_ucK`qY literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$3.class b/sponge/org/spongepowered/asm/mixin/gen/AccessorInfo$AccessorType$3.class new file mode 100644 index 0000000000000000000000000000000000000000..88a9f5b7847edf28b20cb5b2ca9395ca826f694d GIT binary patch literal 1218 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 BhBp8J literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/InvokerInfo.class b/sponge/org/spongepowered/asm/mixin/gen/InvokerInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..d87392979dbb99c0f04ab7e88720780ca3367ebd GIT binary patch literal 2123 zcmcgtX;afs6g{sjAvM?vxNm?6ZCQc~A{0<$kxBta7)Cxhp?#EKnlMR?$ME5QG0O^pRYNli>WrZ|4pCJgqcw^~oM&isw{?eMFeKNS zWlu9Sc?%2^b>mLamkL$%BqY~`;MCHZp+%He6rW)-kqil~P(L<@uOOJvYtk+{pW6yFbQ0(=aMIjn|^Z=)M!0N)(Mr+$ZYv+*t6%==mT-At_zDtQh5B)|ha6atKpmt3#lK9GV@UysKOa!z!fxF{G>A$Bc; zdtK^XDhkGt7LradBu4uCu`Np)8|#{_i*YciWK5IW9!*ZX zqN`TP&hdHO;8d6hT}I;93=#`bdM?mtk!Bm{EvNbi+LR;2KG7h83_S$}pcgIZ!wdTA z^fw}o3pAn-w4t3~#25L}JKz#72f#!07Hf^4as4B`eN1sU(C^_X{(6Adh#R;`GlJ9r zy~Vx=I~h4#6&Wc<-oou5atcjeWXCsjZKMuym!%HScYwho44=drslw_Auo&*qU$oC+ zlsJ3YrBX+D^aW!lr5Pt_(p4aG01^>?4M4^MkXVX{Odeq75YK-gd6LUi6-=xQvq&0< QLP=DlmRT8Dp$VFP1EI7(Jpcdz literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/gen/throwables/InvalidAccessorException.class b/sponge/org/spongepowered/asm/mixin/gen/throwables/InvalidAccessorException.class new file mode 100644 index 0000000000000000000000000000000000000000..f4f35814ea947eb1178bdc9dbde4501c55ed3cce GIT binary patch literal 2001 zcmb7^Z%@-u6vm$m8_4WvLGeEVD#|)o31Xt67#)8cL0(H`|hOiBP&vg#?c2jsp&EDrtYv-kD3eR)g#Afh-x|}YdX%5H+jdS%#Eb3 zWmw6^W+g9)WcZLRbXxpTL#9RZ} z>X1IrErxP1x`1JMR_R^N(fOs{X&SvlFMR<;FHavq)!BCpeGPWZ(C=XIUx}1-+FM42 z=ElSIq<4u%v=f&xLTd8u3a%1a>R*fWw<3L2FaN;p08vgsR4@R8aI*=78Y9#obcs+C zh_MLqzlDiZ3lGV{JXv^@&{typq=h@U8(Fw_l7$I9&B9}{@PsTpO(4=O{6kDeh>uh= zS+ycnVde-AQawDU(k)VIUjzU>+z@*x#$_l*IU+eoR4+jkOhu?q5lRaS6427@yrP^} zDc?&8nikWvxFT9i(_&hQ+9hl+gPyW(dHoxPzR*h#WMB0KldFNW5-y0O8MT32mH!L> Cj@~5z literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/At$Shift.class b/sponge/org/spongepowered/asm/mixin/injection/At$Shift.class new file mode 100644 index 0000000000000000000000000000000000000000..67292bd3c75cd9c26dd85b93ad979d0a33e0ff03 GIT binary patch literal 1269 zcmbVLZBNrs7(KUJ*R7TpC!ip{!PE_OWiWhU1Q{?Al7%G{mn?oNql}X7mUJEZ!5^g~ z5u?%Y*&k(m?%fhc^nr$TyDDj#Hoj_&&^_(vX0%OPy=JwD4*D8w&~ftVU~Eixmq4fq_9Sfhp%dAh%#u! zFe|nh(*LTcL1R#*H-_kLWw*qzFsL7f*hXo)vPZRQaeKeC$DnM~$WN+TEWa*U47oS| zp?PL|ZKuVsl+FxXZeRqX2`IRsVU%puJ)b)aW9dv^_>}`OpMrr2+|)6STVz=_tsF6I zrTdsx7`VJq$P9jq<$jq>&u+B}f787>O|mqFX&ox=&{VkHBnko8F^0^5zqctD79oda)Hb_<|TL%l^`pD zsY;NOU@;~^Ui(Hxkq+jqTC{_#RZ~02S+!UPdFvcw!c#Yb2^sDRjr0|TutoiMkf&=z W@RB$>u@rKZpwPP>BUqt*1+ib$ry&{u literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/At.class b/sponge/org/spongepowered/asm/mixin/injection/At.class new file mode 100644 index 0000000000000000000000000000000000000000..4191fd8236de96ef3e452f7eeddb97afd498d0a1 GIT binary patch literal 834 zcmb7BT~8B16g|^zyMmygpcFqq#oE5GhF4!~M3N>@OshP=)3m*;L$))`&KBjb`QQ)m zN2zD41=5fJn`~z8nRCuPH}}`?A3p(X;f+GgrE%nk&c-ry-z1fOr2QZonD53$#-2zo zGtNehEQC^6IMJs%O0j6|V&4fT^tOz(_>u>Ga=xw-dIVe_T~ZFIhxV-7IKcH^r;!SofDYV}K9J6URM z%nl&Uvl~;De6Cd3BJ+0L==1jWl45JW#mNfYGlig5Zw6c*;}mrodxhm%{phN|<&5vb zn4wGi#_A;a!%v~?hCSEM$4F(Mhhxjb+>-lUY@9D`TaNW8p?t1st)w3k?Y*$wY{!k# zp6r-}7M1phD;vmx@ur)|h1yq{7e%Hl(|NY2a32e-Ua<;1775G{0M7^04-c{QpIH(t z;}JQJu`&@iQ6aF3Cllak?DBNl<=JJ)b4u2xfpxr?cpTy-0&L__3C%P5z4sNoW?evt PD$jZ1clgf;DR=(@`|!&o literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/Coerce.class b/sponge/org/spongepowered/asm/mixin/injection/Coerce.class new file mode 100644 index 0000000000000000000000000000000000000000..6edf46921b47ba654d2cd31184d9af276adfbb26 GIT binary patch literal 309 zcmZutJx>Bb5PgHf@ui`)FeDaKgiUO%F668vn)6~~wZP=EWN-Fzw+H&yEc^lfD8qt@ zG!!%Q^5(tC%l!O)eFM11HDT(iT-BwMoJ+Ukiq}flg(}R45oKh(ORk=mhkb+#!uZ5$5$E;M7XQNtZNlL1%kmZ5t-so!2Fn z3l^V!mK?;rmpF|VNtUF9{;O+3+DBu9`zCF~n}Xj=ZI+f#iRuZVg-Z}R;TZ^cc;sXV)QZC14P?cC;$Ke literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/Constant$Condition.class b/sponge/org/spongepowered/asm/mixin/injection/Constant$Condition.class new file mode 100644 index 0000000000000000000000000000000000000000..0c41e17121fe9b11e7f3b12242f3b96f8cb38a7a GIT binary patch literal 2429 zcmb_dU3VH)6x|mF2BwoVp_L|>Xw_(e3fM1Gg`}bBw4svFG9*ikt~eo6oC-4$hT3QU zhSuequbQ;RrLC(^KKP@o=iZqlB;}=vvsiOD_nf=WJ|FkaKmY#m7l4acX1MBfnz`<# zV>iuB=UcO5Zsd$^JJ+@zT6WH|@0$(Ra_ro^V|QJ{cBkmihQ*g;FotsZzVX1wwG6wN z)9hZmP(CVLem2iAd=O2B#4xlQI?Ig=*;k7oLuQEXv8EVhP1o0I3&o|i&$McV;p3xo zW=QO#RjO;+-Q{9=tyb}oCvR1?Voj@h(O$NX9#e8Bs4fnj97mtG@eT#_-OViYGhj}IB*P1DtO z&ym}A7ZhkxU+p^CzyIjEQV6%Qdt456{BNu z-CvCAR?{}zUWXipbk}Hny=ZLuHnn8iW=9+jeg`PJ)9W5nkj7AR6FT#I^wC{L@$%{uU5`T$gG<|-8WpyU6bg!smSCN3_mMo*?8MTuf*FhMf5sQu+y|)8o<;WO)WbROx*QffqzFBqJc> zG85toxO_p@L(AmCf1-9VQIiJMe1p1V(p`K{5Isx46nc+nf}a|HjrUjbi;<&xU&Tj$ zm$=5e6iPqF^x+1z1hChjkPl2BS>y+7&K};}9k4lq0%rWpKT-4e^YBju>ap2i=&4c< zj^g`DT^hv?l^x7&v+Xgz@N Ee|pL|FaQ7m literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/Constant.class b/sponge/org/spongepowered/asm/mixin/injection/Constant.class new file mode 100644 index 0000000000000000000000000000000000000000..2aa234acd5694a9effc344be2da034c7bb66d985 GIT binary patch literal 1004 zcmbV~UvJYe6vdC1maOdx`%?xLpbZ$M9nb(zNc<6KrBbI2Pz!tLp1j1XJh^riCu4jy z9{2!!DBva~O$SH_B2|rl_uPBz<9z-0`3r!@c*M{);mETSqeo(5K8jET9=Bs}EYGC& zq&^XTB#riVjJ6TikqgGKe8Nw;r??(@Z;uj%3x{DNr(A0j@wD;P?A1k)p_&b9Cu)Yx zy+3yKMI?06|CFJ4%2g~F8h??#GfMiOsKM=jc=Nuu|C-^+za4IiHW$dm*2NM-X||+y z9V>M(-H6j{4IRo442x1nIqfl&kCowbs9Tr{ONtWCmAl0RCl5mZ{P6}R^1jJ0#Jouopl_222U?H5#7otrtm&m=?>22yk7e5Z#l z!BV(%2{myx;W`+K(9F`Y49}ab!@d6vo7@~_Mhq+Y$I=nUJXR3}KaeBMqc|kpYRIB%6`e4T5Kw3#@=96rLVF3loD2cUFV7P>3THU9WGsFskRjg&8 zmx3BDXP}F9Qe45+4D6y#;2N%Hpo1F(Hn5oii<<;);Wqg`AeRMfP2GIlp+aNc?Jj}l sudOX?XR{6gQrtVYV>oEj*fMFVH2mVrI=s}z#Y6h95?`cWNsy%S1H=sVT>t<8 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/Group.class b/sponge/org/spongepowered/asm/mixin/injection/Group.class new file mode 100644 index 0000000000000000000000000000000000000000..ff8cb18c5dc11beab080b35a5a8937378e5784c7 GIT binary patch literal 526 zcmaixT}uK%6o%h%)h+wdvJZ(Ux)3F3q1&z`tpvkR>87jEPRq#d%(5S*f31stKtHNF zE0hI7b1`$yJI{MKXXgFm^$oxUDgtLFbe$+L+NHp}P)JXXjC{veQ>7iH$25wS(aue1 zlE8)#D30YsI-b<7(;cSQHY|bTg(|f+v7EaaKcS7BKw)0xJVgbLI!i4B8M+i-3gjlz zOGw~!IoI;YCmj!F0WqAvYYlF@O@Wi;bdO?&c@So+{~-6qQ=?hh!BwZx?+awL^tq98 zt^Ui|k3*$hrXXPXO7mW;x2;cJsUW8UrN#J7dX|Y7^Aq$<5{~Fvd0es5OSmbY9#o`; z9xd>wDv&{zOXvBYtgOHmik$7GS%eY`+t~RQ+9C|uAOHXW literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/IInjectionPointContext.class b/sponge/org/spongepowered/asm/mixin/injection/IInjectionPointContext.class new file mode 100644 index 0000000000000000000000000000000000000000..21128a58d6a5b368bdd1b488004a380e9107b0f9 GIT binary patch literal 383 zcmah_%TB{U3>>$mp@B-=`2je91>y!5goG4{0uo=aZA{oIv7_w*{WcDK03U_eKr1dh zE*?vs8IS$;{_+ao7-Pbjg^CxgX(g>aOOTS?qT$9by|UN2%%V5tqFA@L<~3fJMp?!T zMA(_TC&#tZif^VJKSQ6e`?KP(BNOsU)*ghDz5T1dQUtkgT+79z%e2~jN*E=NiNpsh z2?xJg)PBk_i0~Kn+Db{{RZGAo-jN$Ssdo6(XmL)iO9rZ$nzvjlR=L*3@?l!z&o+S1P&qI2+_4O++f#FT zJd1^W#o!-vRS1TS>0DEZL}=SPO9jCfcAC9+?Jb7&>2ya}f~gf^tN%dujFQnAfk9_~ zx7XTfGL+;Y!(y#Ik=eDG)G<+@+Y@0w8A6t7_5L)*H!^1{Vu8+q4dQ27$K49{lI zYq;4}BCaE$6dx$M)vMJHJo@9#sWK5)Il~)jW;P?ls{xNbhubc7lc%=GoUzycnP1** zf7op7_4Ye7U_TQHPn}76VnHUp6f!$^-tvCZN6y7*O0SJj@?%b1k4EP<<5FAdXJP!- zw!}wXC?d;UQ)H2NE8P&5I|V&}M7)=|q^XSYyh=mHoEr{ZUzuaLhIu+YrjwUrfrRV0 z0noaLrBR?i6mH_yaJ`M?QQ!b~h+M(l--0i&ihCrjO)~2w+{eZ!sf7n5Je(99@n}+T jMD;IcWV=QtO9)V>b%k~psp6$Rm_Qj7Ty`gcE4ca#ra}s- literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$AtCode.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$AtCode.class new file mode 100644 index 0000000000000000000000000000000000000000..eb23cad1f60253817e9728bce1abd73cb489928f GIT binary patch literal 553 zcmbVJT}uK%6g}6EHqFY?f`}+0q+VKx-h2`<5c&|^g6L_~%QCV%BfG2RU+bYC(2t7l z7G;4D^fGhqz2}_EoOykFegSZXZ9?5fz8jCN@p)_?IpU$K;?NEClQyn4BOWB$8n^w0 zI#!$HsF5`7kR1@AJW^BT2Fm#EO+TeO$P)JFU1f|-)Q3ys8#>4nD!*M%Qw`zZa-p`% z37gcVPRLJHFkwRN4{FB-dN31#)4jd++E*>Y-eQTTBA*js9xk4@0uE)pHyg8%a^8JM zyw3lVor874(r18#>hZ~sg}o%w#+L=9wlN$v0~N;{6N)`Mi3WV319|jLcOp52e5YgG z4|twwTq9(VgV@XOQjSo-rl2e;au%hZK^Ysh0;*DH;9yJcT|vt-E3i;jP)gwgh_Q;b Ecf8}FmjD0& literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$CompositeInjectionPoint.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$CompositeInjectionPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..ef5440b5e67b0411601cda4859175127a1283685 GIT binary patch literal 1432 zcmbVMT~8B16g^W4E$afcd@IETQQGpc3MfkP11cCyK@$uKAv|o$xGwJQY<9PT@BR{h zfhGz@5`6Q)AEn;eRtN$er#xQje!~_}`+E1d5ZyRq7hVFBc zF(?&D!{u%mFidY;sFVUj)2!uM;X{U*>;*A$YYYw9+?tAJTv8B+nn03aP!^!uhHL6e zw#`k$p7YJBLwpx@E8LU9CeX(4bh#RYT2S>o`<)i<2u=8!BYdtM)u$bGLi1z;0__#~ zMAxzlHRC`Mml-;Mfnp~kFTK?)rzh+8va=wgV6uPu^pu)qEqjam3G^w*KxODTr|sD!u2Ihn&*SbE!`NBnp2}E9FQ^#6piFR` zA$3gQd0EbR0yl`d$-|;;1SCuQ3F?uN0EUrOa1%L(wqt7K&fB9M9$}hQn2i z;i`gBj5EY?8%f+^$WYsKQwY=MI&B?#U1cNS`ZH>*6kvi}g-g?uE#^x9^(8h_xT9ba zcd3`#6wfeBGknaeR#@ST7O1#~`!aNffo&!+tKy2JngKn8cu{O|s%14aDsPqz@1;?; z>D*Q#hAUO4%>BA0T@n?;UNd}4den{Tl1qg|l5mnySrt{k!WS)@$2FR}IQ@EPF60=} zE{6B?XcV$MrqeDO$O81|_t7%)1I;6cjUUi*fYf?Ay^qfC`H?T^{zM)Pn4>j?*l)BV zmXKd72x*?IU1+2f-H5Xuw6b3Gus&p12F2(u!bcB!=|q_#9;AURzs_Ql&>7uL9w4*6 zkN&i_hoSr)=+kMJzD-MN^ed+GpV7UCg0wxLWe<-&Qdle^(Ig?*P?S`y!PS$-@Pxc% O$x@7_coGXyRO25nwt)cv literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Intersection.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Intersection.class new file mode 100644 index 0000000000000000000000000000000000000000..cba6ff80589c88b75c91310a501e66b2564dbcfa GIT binary patch literal 2370 zcmb_dOHUhD6#kAqp0Nj~G>|cI)21X%1BSp5H<-kx1nPvwsUZ(jP{?X*4`vcGW6ccB zW7VoiRX3HgjnqvdkxitkQbqcZP}bdd*=2u3BbD~tF#%H%MYSq>=H7GfIp2AG_s*|d zKW_p^V}UT`xHa8tICjl!ICo6ftm=lhqOVwYEnBzjTV}<#99u8EoLzM++domTebe=t zdkTn9YzrputTY_Y^3A>Q3c`f$y=%j_jL!_hnRfgrkO}eDmWss@Dy>rk8xz zvTM0lgjl!Ay6>7Mv%s^9mgnc1rmMbH*Yi%j-XuaUwMh8te}^4^T~t$L&v%WAFQS`u zs%CB?h@?A6FNkra0MDctq9uLCf6~J9vqAzgu~2;-Ez3*lE_I9>=e93=&;Q@ zjPDzE#Uz|;O)_6MJTF&BwUqNpS)7|(9B<Ty3VI3Q{w8CNt4QFz zIJ(fSLc#moE6=*m{#c<9M<4oyLW<>@=@Yd6{hbctl+YU@==-0Roqqniatd@pwBp#l zVcASFtu@c>q*9A*^I$NiwTT^T{Z7AUe)v}gszqrY%`h=;Y>s>snh4S+s0( zc6Fs}x^qUk&W-LWIu)ZnZ@89_w-*nTe4}!E#%OHIiM>kq8ZQ-NC97r|{;JDJe2d$r z8yq=ND7ECQx)pQUs+$<$V=VD!4Lp7!?q3kDur$GPh(~!~@EHz#AM9V{w<=aiM}$Uj zjpamB3vZy4CDzBAILH_rKDv32vFLY17#CO%XQZygzz;}n{)l&<;~4+5k#I)VU6O%HkrY0kskC0?rHJyxZ;LJnFPY_#E8R8Eu7D$~#$>>iw7s7&+k=7L6`A(Cb za-0Jcr|y z#W3YC$@6KNK#|Vl22H}GDJ)YS9$moabP-?j{A()U8@h}KG=qmUi*H%?F?Tf z#xSzTadB_sD8_lF!o*p8$Zd*Z8KXFlNyNC=bC}{?MHG9dCF}SId2WbUyMT*9!`3m4 zO9=DtF$!!eLBj)FMlWYm#3Dbl?5)H$y{scFr|~h*np&UiXw9(J9PfuX`w%|mSr?BX Rjv&fWOFYJ;DCPr=$UnFRjh+Ai literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Selector.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Selector.class new file mode 100644 index 0000000000000000000000000000000000000000..9ab29343f79e9c8ac20927748cbe344e9393d97a GIT binary patch literal 1372 zcmbtTT~8B16g{*3*mhl@mJbE-3#zuDtVQsvh(#=>NdxLa6XMfS);h4ACEFH#@X24K zB@v_1@a&H=-kFxzMxX3%va@IInS0K?clYP7uRj3H;~~Q%Kd4&u17B3#1OKfXxVx59 zuUR$zjth&6J-5=}zOag?Z_j-$8Y$cLDBuS=7{iOwo^$9}o+GMOK{RVirM`0JmU9e) zy(x8s8HRgJ%t;Ev!vBcr&>3QiZAU=hR1zcX9$;8WTMcRTgv=y*-H&hR9i={K8+Atd6^Fsvg%ji`9Oa2ZC@nXajB?8xsRXJQQJ z42iapA5vYddbR>FjvQr(bcrvJ-HLJDYKvSB2AP z21GE6Lb!oyg`B-%`^})@u5r)JXGuRoe{>{2F6{uck`uL(35twM3qWE*j+<~8ahydG z^#2f=qE%i-3nQN~euB}Dgcug-8C9`;;!og0hrd92@`RDpX1?Ik2{g&qdiZx~$8583 z8CO)C+DR;_m_>+gK%beNJjS(8D%>si=eUmRs)T!rGmRK-V7g<(r$XfQ>>IT0WIA+= z%n@c4xEWSpP5~>TKsNfFc%c?%?d@<2bM|(mg{*yq5!yP!9ciOo^_c4C0gbRpb-yRc bedO_hJl`jdK`f1o#Hr71TOmB4eGSpyfp<|I literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Shift.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$Shift.class new file mode 100644 index 0000000000000000000000000000000000000000..9ac2f3b77064e2d7b09948d4c194447b43371ba2 GIT binary patch literal 2716 zcmb_d-A^1<6#t$5V3uVlbPE(}t7}`^U0_*7T9s`PiltrUqq-CXtajMFY^R-_9cN}K zv^9OHF~(@3CMLf4U}AXjK@+UxA-+XtU0)o7%ia2zsjdubWoMC7d1JkAV~`a3n?or3p3XbW?Zx*xT6t)TQGS z1b-|(p`s4;VFYl1a9koz8k(6;rVT^nHDkcemkPpkFD_(-C3#cONaz|VId0S`S(dRF z)y$~p8IM(Nqn4yJI#;x#nak;+@em?}=GgGM_Ka)mW|c(v6(36+9D0RC3d>Ik>S9j&m3^ z%Mxaekl4w)ZHB5!Qz}m4IjQ#)p>f^v*sLT_L5vaSg*#|y4*Py+6Jl?Z6||!xj5s^|e3tX?S_m(z zI3`s_(aS-a(DoeY6*}gy?zpK6S0z_Bl7mIgJ+DYp@oBhq8s@R;^6O3Vsg<>;*M4cNA}SP={m+N!X(x#U&cU>Fzh znu>EcFKcgzNp$o(!Yj$NipxmXp&zgFngc0|C%rK?)o`g8#)v#ON=WY9RCaYq!4<;k zJua#^$&~?$&d5wU&yrQ{%WAMh4t>dZash*xnWc>FwK6!4$LNNLEhA z(i=)_ha6txX$J2|p008Iug7aW&lJ4J?KNu%%~qkIz7E$hE2}$~8!(Ljh~>139E3bR zCkKuf=^VC@|~);TQX`t*-U8Jx!@SQ!KqCc z+#r`Zy+13BTePq+(c( zvt{$Y_Azg+QOM)$glK_Z!Miw2_i&Uxz-^XCD<<$1j`E6)d64AoV;(3UgW)b)g>;oc zOIgPwM5mVVY~(~4r`yX&l+n$zNRM3pgw`@%ioC+}GEzVAai0gJMqZ@{o>}Q5tErmh z#}()K6njnG445I~e&RRue~obBG5VKK_XroJ63e*Q8<6@tI@#i-N&nekbFeM2f;R}? zqO&c~9PISQ6^!}t7;ly_$;XdeFJpQI@A@(MAV^D3{!Fw5zC$Fj0^ck-5e}+DX zMqeOLU&5lVJdgX>t5Y}wog*ET{;g4dA2)H!5a2U!0@3yST difb~PWs5BHp^v{iJPWffnPD}2`>rPm{tIs~-lG5j literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$ShiftByViolationBehaviour.class b/sponge/org/spongepowered/asm/mixin/injection/InjectionPoint$ShiftByViolationBehaviour.class new file mode 100644 index 0000000000000000000000000000000000000000..392c52471427206a63c176656ea69224d6c7403a GIT binary patch literal 1456 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/ModifyArg.class b/sponge/org/spongepowered/asm/mixin/injection/ModifyArg.class new file mode 100644 index 0000000000000000000000000000000000000000..9bc6ea2fc271dd1cada38899c2b64a05f8a0c2f7 GIT binary patch literal 862 zcmb7?(M}UV6o&ul(yo9aD5!`CqLMaIC-K%Bn^0pDDyFSoz}3(m)*-ty>+CGFujYjh z;6tfrH_|qyiMTgs=AZBU=gge_@$=hv0I%^}Kw1~cEVU-0)LxRKp;TES6Ft&KYI9Bl zudR_CJJe_6ri(%dfz@+$p=7K~B#%xDBt#&vGgXx_)~hnJIa!9N3am_=UKO~&_Tk*L zzH$-yHv-iQ73Uw6PwH84SCh zKJ?q27TYJ}zu2L`M!j(|liu@Ao2Y0u;~Z{Q)*FY{d)Qu)z?m=qldmW*@Z#EKn&ne! zGo+C~P;az@U;J^yjuMrY(s9851P?cK^flLxZ&9OB%EM(!#j(8CgR@A>^skUKIY8NU*CTKc!TExudPcHpIehsZqLclD3Lx(GIgO$qRc4` zgR&;++L1aLw_NID2!Z8Oc_tGrO`04WmrRUEV5?H4F*eAFwRN?PQ5U#Vg?d%;0-O6Y zeFN!I3U3AKXHpj=urr%$Ys$!k!8j*|=ezB}hl4$V?b&pX0>j)Av%CL5K3T1XV+P~i z=Z}Lahr6J^HjMVskJ>9SQ=X6gOkbxFR;p4tC?N( z4uO?w+Iw^&3(YYW`?hdHdapDmS??8m{TY2xUL9+yaK9^1!yLz$=fW1|_@!VO;B^Ie zS$)cC{T=R2q*bg<*86zy_b58VLuS|U=u+rlgN4V_LP=~+3nlRcTbCA(ZLVR5Gu05| Z8Lu0>Tj1jxM-YTXEa7JPN4SOCe*gtA;G_Tm literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/ModifyConstant.class b/sponge/org/spongepowered/asm/mixin/injection/ModifyConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..b199fb3a8cdf05951fed9b738eb67113a5a7649b GIT binary patch literal 820 zcma)(T~8B16o%hnfvq6&ts)>FCZxS_je6&mks6y=F>UpNUJdPG9Wpz!%+3P+YhL&R z{88$e#@doJk-eGOcb@lr{`~d*2Y{D&Ch*$2G%0dxQp)W$IqD~}$dXLmD3d62K|Qam zNt(8=&Ij+TDZDg3h7ee}kXJI%(xl1BS>R$s0()as8e_d2+TZ@W#+VaWza8#*@CfXF zoa*gJmy&-YFn1+&Ndkw{xw@u|jPDF`VtBq;?|e8p7TBLox5zWhtucG_ALO&usyART zZhiUGX*BB`J|q9l_60VpweEzy?VU1dD7Ih^7yBZ--)+Y2;9zT|_jk+!ukP+1?Iz@Q zl*wEms@6^;UNkQ&c63=P#|5$2h<@|OP0&rwdt-yt+FlDR4l_Hcj4uQ>scsLSH@rW&tu{9DJc*4T=q!5UmNg)uscsjBa*yBp~C~u!#HNkFbOXe*oM0*!%zh literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/ModifyVariable.class b/sponge/org/spongepowered/asm/mixin/injection/ModifyVariable.class new file mode 100644 index 0000000000000000000000000000000000000000..88a6bac5b15ba2f2126ba201b88a18cb552b0e51 GIT binary patch literal 981 zcmb7C!BP`J5Pg$PvIwFepduoO7!ym~D$AP}sUnuCBF0K02XY#cCJZ$@v(9cH`85xI zfFGsyu0moeRpMTH_Vs(OyJ!0QkFVbVyvB2ZH`euoII^Zsk-Z>Cy+Foc5UQavfih>* zO_Vi3-S*VU=ukQ(k2U!a0!wG|Tn1X2e$Y5hc|JUWtuZQ%v5Cy&dsjyv1%Z{n?OvrC zfz5-N+O~9kO5O?-&ZQoZz|L%5RZ~bNX^$deastK(ohu%MM(Z z-Yd<{>&*ebS4f8{R=k2^dR!97AT~8B16o%i^r7VIdD5!`Cq9JXfY~rmql2Bt45YtvK;A&_O%aGZbb$6DJzs3bW zz#pZa-B{X-CgR?l*>|4ze9Zaz>-q-3d%PiRyDX0K)Y+I*cflDCB9$jmqA#_Lv_0d# z*Um;A9_UQYA&9VWrp{Gll#Qc<@_5#Z|!fyQo`Ra`BUkMm?zJ2Mn z_gj)aVSnldgylx_Xw2UAnYMA+Y%U&YHfl8Y?)I$R(jd-v|H;>sC%nCLnVsq>Gfq@W z2pY}9K-Mpd3^V>w$X+Y49sHJ0#^lRXb}Hj2W84K{uJ3H_Go`K12}@FSw6ojUL0BB^ zdY4aBVI;?F*A-cxKWQUHRyu_|f5P8&u8$3m@O+C@DY literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/Slice.class b/sponge/org/spongepowered/asm/mixin/injection/Slice.class new file mode 100644 index 0000000000000000000000000000000000000000..318f16e82ff4fdca7c698aa89032bca5080fdcfd GIT binary patch literal 543 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 A&j0`b literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInjector$1.class b/sponge/org/spongepowered/asm/mixin/injection/callback/CallbackInjector$1.class new file mode 100644 index 0000000000000000000000000000000000000000..aeace46b5cdf475074284e0f74055dde8b94d494 GIT binary patch literal 892 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/callback/Cancellable.class b/sponge/org/spongepowered/asm/mixin/injection/callback/Cancellable.class new file mode 100644 index 0000000000000000000000000000000000000000..6d579a1f14dd3560a1d2ff587fefe41897cde184 GIT binary patch literal 322 zcmbVIyKcfj5S+yZCz#h~Bu!4Dq$Q!HK%$^KA1mv~ac9{;{B0@n0r@Dz+CmmJ#cFnD zN4ul_zyAIKm}5#@j9w6*oh`U9Jj4PF`TT&B&pT550DIh{F9 zK!n*rU$k=C=W3lb?gWvj54MlSK^WWWK_oj=;sk|o)OuM}uZV8`HW@{3E)rO0v vNstnT9j%0H!nriOvW^FY9%A_g5XEvI2_X1#$5#v?$z>V~j-)2i_t3uqnmbpM literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/callback/CancellationException.class b/sponge/org/spongepowered/asm/mixin/injection/callback/CancellationException.class new file mode 100644 index 0000000000000000000000000000000000000000..d780eecfabff73d91a1fcd082f00452a2e8def49 GIT binary patch literal 888 zcmb`E&2AGh6ot=CG6@PP4TY2v{#vNikW?7KvZ$MsN<|S1TC#Vh*3`vgNApAbTC5_m z-~o6j#C2vwqY!q?NWQ+;=YBr6fByRZ1HcrhSoqyZvyFXdM$jI@#Xl-o?lYGJ*~>nmGd`7S~` zRf(2ntdf*@pHGem^dVrA{$qIkowhnVBvgAZ$1OB*yNMcFgj#l?Q^N7+f1Klh(CLkC z&T*P0+C~S(j%~l=T|y&PX(}T{*!WvY*jfafT_o;GPK+uU9naV#1fk4RCUh1EH(Ek} z5mLHXDJ`sZJ@ye{ZRl*8Nt=zO$r)c8x^oWeBW=~kJf5iJ%$xDf9lz*U@||;D7MrIo zPeOI9jlvEpjO43F7j^La;t6LJ+~O+v>*w()SKe|YjzNEhwQqCDGaj2P1zxat7u!5* z6(ZchI%gix=FtNVS?RU){$PfUWx^f;^yY-kLRAu2k9)Y!4A1JUVm(-94Vbn657rhQ smaJ~cIzg3xpwS=f&+vE|CfLC1Ic&R-{V~=kjd3eHw!*+222~LJ2IiWyE&u=k literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/callback/LocalCapture.class b/sponge/org/spongepowered/asm/mixin/injection/callback/LocalCapture.class new file mode 100644 index 0000000000000000000000000000000000000000..d118fb24083c40ce26fe39c04f810c4034187546 GIT binary patch literal 1771 zcmbtU+fvg|6kVscq$S*{V2zMPJ#yIt?5j5_Bre9wf4$RfByRN9l#t445>!5rnR;kPR-nIyfT~SmS(i- zTHShWIhy4>H>+){;b>LEwl|IH3$56o$DFahUNdZJ|rmsbkQs|-V4#V3o|LQyX*{=2l4 zUAfCJ;z#8l=JMs$LTQlpJ|!*d3Et zGVw%jwG<3tIEnxcOBg0Es&>OM84kx2zL#6tF9o3=2Bf7R%~_DD(aPBkej!IYa+cK3Wh{_Q>3@TyGZR| zK_uyjNHQYHN+QY0->6Eki)(r%)WuD`67FI_uSB}Y=oP7poW6q*ZlXI2V}krV88e4* X+`tUdbkEaonjCPA3Sx=y0YrWS_Lg_% literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/code/ISliceContext.class b/sponge/org/spongepowered/asm/mixin/injection/code/ISliceContext.class new file mode 100644 index 0000000000000000000000000000000000000000..949603d60c95e29d7ef114141cb3e987a898d703 GIT binary patch literal 316 zcma)&NeaS15Ji7E#bG0!LN_+J5_BgBfrvs*5R;y-_%?G(~&WVbSd$l)LW0kQf$IggVu_UbgFf%bP#5%q@4@Bsv z(K%9CWVKpv%Uch1!u&s`@4xXIG1h&!O~T+uH7+fLwq{o)AOyqUYYts*te%a6|Fl(= m6}z1z6>Uc7hH}bdUYd+sgc=$kw2BW=qp+e=Zs-=X2JZ#u%3{s{ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/code/Injector$TargetNode.class b/sponge/org/spongepowered/asm/mixin/injection/code/Injector$TargetNode.class new file mode 100644 index 0000000000000000000000000000000000000000..e8463cc0a5efd68ae83b4c7f8756828c26865f6a GIT binary patch literal 1530 zcmbtUT~8B16g|@qTIv?sLc#ip7PTMB3gTx8!H^&|fSO{ByqIkn%iwkwcem;vQeSw` zM8IfbeDc8`WxO+8Y;EX^zD#HD+;i?Z_ulm9uP@&K%-{~gyzMk}cgMCGe8+yx9log> zZc}fHH^S0|wax3Eur0lAZ*sk?K5b`m-EbP*TccP6j3KdYyfSptup0Vc|0DQddsaIW92xt?Rxy)vasp(Wz6?53~`&vsmf z;T0viQ=zvrZI{%ehqkc1(mXK@%n3_)^9-}OJ|z8R=Bo_BT)wJd z2#FX%NHQclQkM;Pi{wTy62mBx8je95L;zzN1`(6DOOVBdKE-<-^qVa?iTGot z>E-f$==yu19Z>jA*OSE3G1KmQxi|J7olkej7j4sQFRvTHIU0D&YTBFPxiD%br^*Zy zxgIUO+B9S_8N+#8pqcWQEyJX)rhQb`x|i}B3{kSWXc{i1j2t>rIVxDvkViqzvqu97m9nxd{mI@bfy&PGM!5VEz|1W#|?^) zwZS-nlk`P2swgA!Q#kFH(CL@aTe$EEnGbXcKvE8<;HsjL`Y6GtVK{@clqL1e_~0mk z$3Np@FaA*%KI-G!PA3R?2{}3?k4b#eXSVnQT5%tjQ-QY#2X~9#5g=Jo+B-x-?-2^_ zQd$r<>5L#0XUPSo^bS!Fs3MLh)PjvJ``JJCv$%pOrI^Owc6V5*4pjb?e5k_+2_39Hy2`0$RD>Q80!or zHj<@b=>24#<|pOlg!<+r!S-vVxdHTETVS;|J37)!ts_wFcEGS$c0qv z>To2Ss1uw~o@4I#D9Ng>4J*v_DQWLEu{sL^bkzwB(s~+ z7}%1CG1zKtd;oRDSdB9Ti*plIm$a~!C`yCSq5BmL^r5b^d?MM3DZSlB1J3lK9_wr@ z!jZbJvxrV4zd0iaR%WA}L$A7c6G%21aki2^$Hq}utfZR-$7Ww$e~YIw}{;r6W%;1jBb}yryPp zya;WA^6bKb1Xs8t8tV-v1gB?F?Y0cL zoFrMBMN}K@=4J~ zLQVU0g&2dW({QtfXitw*IT8_fVYkY+hmo3=FFnG-l?>-_A`}ZIqFluMWH_63G`i18 z=W1M2f~#;XAtg=6S>p8smJ+Crz2Nb~|kqY)>?DxcVeTz5{m_!@@^di$tQm;fSt~dY_qL z#+Fcm1MkA!I`HF!>|jTRkp#C**G7{&%KH|6oQRr3@4+Y4koT(UOy##G2i5UGF~)r| z%6kUs45#{u#*(2{dnhzrm!xJ>#gsuA>Uu-QLeyENi!u}7iWy)WDT;6P?lJH~$R77{ zx_n%-rP$>_GbueResFlD%3-QhTAdIP89JihPgj_fZc>?pCG|8nu4AIY!XvaI11v>R zwJo?Nmu_>fBv%1G-u0(rUK@|$b6z}(0fH2z6U@sjCX$r{!Rv86QGy%r1=bx2vq_$Q zSv*D&^xU%!lPxGp*z^Si_vBJz4y9yIB-8bZ>1dWkMyo1}Iioln-yG_V?hJLWHn4Sc`SUzDP5Ayfzu{8N-iNZRelv;E5Qr+x{W!Q zt9AD`*)Va8=GO$^XYK31@@oICVB8;bbnD-~#~<|f#X>v7(f+vK@eGa%M>wzuFA9#< z6;0Bju<#w`mtDaaQ*L=?7_>M$tZX$kbJO?m{Stf^KM>qF`GOsh*mbEM8xc9MEQjlk z0g!QxCHkC=XYeDx;%&6KIRf#y>ib|4DGpVPq&MPvsztkM;v+yroysSm8r@YbG?*Ck?-d`{# z(}T^xe-*5pEU41{F?L-Ren~aA_k@Bm8?R%fmZHDX!ZqF;V!M*4@`j>HH-3}Zt}z?Q zf5QbDNB_<}fa$;J@cKPA-oynu;rE2l&=vi`p16%a;0fIc{s$MC8hUOl9F1}3U@F)~ z8~=&7b=sdCa>=(g{*1Sk&3|*v?EkfQC*M%)^2SCD=>NrEym$@o2+p3K3KCth=&s=Q zo=}{v)Sbbea5{6Y+ua^=yO#$A%}e9{XvEL|yTXYs0)Qj3e`$xmJs62Z6D}0+ClS?Q zy+&yY7g^>M;k~4lO@q0S0L=!c#l9RYiqRk1v_m%vjhVY?cTlY@d6MrH5s%=!>4wAj zWMbN!jvE^ZT<|fjC52wRD-@=PCTi&kx3hu>PM6VGr{W$syCG7Ahi)d!F5Z@6@zU;6 zB6uVhx74(Z4oVIVNtGkj9A z94p7EEKA2gC#!W!PAHLbQ+t{aq)m<(vsF(+J!3E+l}e?G0(FN7U2`(zNk%Gjqf^B? zRk*tqq`6HZ5v%auFIv!@lNYzoWosuwH9+9d8%MRI{ckg z*Y}5eIy8qic;!s3l$JZJ{pKXk-w_SPS=1-|Y-YE2r3-iGEz9>JSK3&`dwVEOhZE+VR@tig?gDCeinQhMR|i+j zwe*;?w%kRS%t9vv-5i5tW)Jttg-$hekyp0K#q3Qm1u^+u%I*bw7!ARmp6$W*ZkCPF zcAlw5xt)7|2S2U01Z6vS*21GUc5z)>b05#bc4sibs*5Fp`oX3?g;bUq)6;%(^@P0{ zroc^=vVwEphpER$SQZuO*>B|(Cebstq)3)@o4R(Q`W;>OdZkCG$?23ej)D8Ua)oY# z0#iuQ)X|<6f^LO+Z;YlVp8*7G2YTTJQ_>ba;g76i>$9)dL1DJ(BXK>r3&os|6SUm7 zIV0souG}P`?Y9D3x+YyWQ3i31s7WRZ9orx}6KCV{SE}!6| z_O4)TE$dO;mN(e)Nx4_w+^1X8h6YEl`<2wE_@uGErQyONdC(bc%IVMO=!Xb$4HTRQ zIW7Htp_nQk1F$fIh3$Jj$Y1Z{HLx4ON@d>K+CC%fn1x%yen!3cexN%sk- zDd&8JljDrv2$PEvsnB_zl&8G%1^FUX)LYv4+SuQ_J;VbP?$h<71mbN^YcLkp zd-q`}ziVmlW#-h9K$ckp5fg_&4tGdKo3QL}L;%6O#q9Pj2kvv3kl<{jr7Dd>-+z09Tk z5#H&{Re>S?k>+WEs{N=51ook3AJz_V^cb`tZdzkO`^Iaaov<1&3-F06}-7EFds>)@9`1}Z- z%)?d{FW(4Bl;QOd-Dfx@6bGk7DaBLxq7kLk2%w`&De|4hq@{X7OBJMr(oqi^n)>c( zzH@~7tWm)gj!;rT)u>R{SB>B~!Nz5-()GgV+^d!t#QwclL7T4_#K?2_@(8|>hrOdO zJ%?}2{&vbWR?sghTSoB1d<=|^1S)mjKMagMJ&yDd8Kj*-|2#1IhAP6b;6fA}ghlfm zM56`oUr>Ayg~pmk8ASznG6H;!UlDyB$Ko6G?Qil6obS+Uzl&}7K6c^SMu4nx zb+eH!{nHxH0lZ9y{#i|ddiE^;5MHS%bhJ=o`7Bq(@9LG&@oP0jzQPgwnzh&g);?w^Tp62}Zel#4wyKTyI_UNoa6Pmsvjmnm`0%z2)6tuJz zR<^WRocUHun<1bN8L&fA^g_VrAyHq^pxC~`L7BN1-711cUa_y(mGA<+QVFH3#_RL! zlX*Vxpe!Ppni5}uuVh4y&NE?Y`|NLH;Q?4}KJSnmQ)BB}pFJYS=VPnSW}NzpMx=uN zJ}~;|zL!5ZZ`)Fjj1p`p~Zwj0p@8O`-`Lc}i!d#@1OU&R{yl2GtEHsMzY;@A9E-SP_W?PxZAjM5k+TNnoWP)L9F%j_d(&W%4{?Orc)7Xz`84owen_XgcB&B-u1}eGgnn5{#Tq2b+L)A$!-V{}@(K8Dy-E6zG zUM8q%O5IwuPudEu*$c}v08f4$3AgS=aT$gOFzYCDH8g<2G7PTr9FT2o^E8iZMz7k3 z%lNk@e@HH=DX8=n49aDEwW4ZJI(!8xSiZ@wHVR7D$U&4!alIHdnA|EyVWupm-jBw5 z@uNwWV2d1M#IJJ%ONqbL6`#UNh)$Hp_}w5oj0;zyN;+jLb-tcS>JI6mYj`9qm%Gb+ zoI#^iU329D>1iv&fvO>iQc~Vt(Kd^o5_4`6ZOevamvg<1{q5Pc5Z6wUlPL5_QI!&2km5^7-lh)pCt1 zc9d__(gAw#^|QPW;fPB2VrF1iZms0suzdJQzP*Dl?iiMjIZ>$P4E=kt(X;Vysl#lB z-eRfGaE*Z6Whz%Pkh^)sN}kN`beZpP-ONw&_jn#b30d6Zc@zctPX_V_WpAba8uSx4~*J>*&E^1R>W+3GHM!J=7>4`KEk`Sij;c{uM; z*Dcem3XnH%jl;{pja-t!V}aZypEW!d$lbhRg|FL0m&Z1j$D+WC)aQ$sTN!wai{mOk zmvsL$pF-r%%OAt2JA=_8G8!<97Lm~a85POrSr9sxMU`k68ySTes|eX5P0PThBYgrk+(>$GyXF3#P9@2rSxX>^JnH zVHfn>L-MkQq`>0xo7c)q0$Sd&ee-}Xu(@|WRtJh!-s}!!y98?UMt;;3SlFvAyxT4w%-WvaYk7XxHkw%AtJnqB%~6%-yAyd| z4^l=2bz>%zH@xGZK=Zl&30x3-?{_W7wS3+ZSz6s<*_OXez-^tQ*`Qu!nVX|zxx;OP z0?F34!8Dq%IE5Ot2sD-Qev9FaGWQymq;L^h(x^jyJrcMijRnx;>e4hCkd~|E0&C}1 z_A(bVT+RfHnf|CVEYLnf6h&)D_g&M}bLwIr;o6nPl~_@aE3i^vv4j?2{R zG-T*GiT<1_l!mJXR#lf)(A#d?j&H~&@ibf`kYZ~LTAnpjBu2+(s#i6CV{qs$8lKnH zHe0YI+hM?M$fVGUc6N#C;5u{?a?&HCI6;5*%<4~t%9u}K3$?|Lf|h5Zb*z?luPY;j zKtRLVG#YV%gupsFGae$l4jZPSq&hT9ZYY?phD~IO{nFjtBLYiWvvGsrC0gvlmJ~K) zt3cuZ$8>H;aig&)Z;(;m$S5p(I;HH6Y#KYzE#0{(jfGewL)|G*o9PK!MH~ zwN%5tOsN-ioFbgN1sasHX|imJb|q?*z*ZC|u(dT-!!W*?qKNEA%r4Ma;xxr)w4bDQ zwtif3h=h19BXHb{`xu2WKIx$~QUA@fwB%dgC6?l8VZLDxZQ1 zD!pv9yD;26z0Yq!!&4IGq{63hNUrv#NZ`+K7K?gKdBP5uV+txF;Da`7amM!8L<`i@ z#%fj+!Ms)893`MZZQ3ua6^n8t-6F1K!5Fe70;gqnAG!5zW1i59Gb0X*@3nLIWSk ziM(hUZW^CpvGn^GPuNJZgX#yYf^GN{E+en$=1?ZbcFQ*VCdP(L{vV-+q~=~HZxja& z*OL42uyMdQ@(+=V!+mPNnQ-&wPOE5gtV?hb1!~bO$4su8<=_c{&$vz?#XW~kbOGR0$=d&3c3UAr1Eu~2YS$gTW|?( z#Y*hLYQDNVk;9j~kqON6YnD4YqQVhsB?CxM;wsARLXs}?wGJI$!(Vx;E^`u>O=0(U zTnCmHsPo&D_H=M3)GpAE+jt@a*ZC{uYo&ap@Le(C+DQ0z41~gE#+jc=`3GY1b&>oX z*b~a{2#q(=`1+rr)to?0@>_b7#8=WMBpPlMDvd!fBQbrAk-otw8S!A&S2|mUkkt}ULg9j2g3nSO@3vS@aGMhiLT|i4hQil)zQr`d2;m_rActS|2Upt(1Nu0WEj>~ z?i0LUpJ|`M;VB%cOzL||{gU8Pq_iH-;yJ1ik{Lo(FYs5IUMu4}gO>%);7uZ#sd-P} zC|bDqPy|_`il$I-^VUqfKa WmXcnrVBnvsuxL3#%-8&yK<$5!N4X*Z literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/code/MethodSlice$InsnListSlice$SliceIterator.class b/sponge/org/spongepowered/asm/mixin/injection/code/MethodSlice$InsnListSlice$SliceIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..aac77a0d5dfe342ce4cbb7919bb56b37babe18dd GIT binary patch literal 2917 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/code/MethodSlices.class b/sponge/org/spongepowered/asm/mixin/injection/code/MethodSlices.class new file mode 100644 index 0000000000000000000000000000000000000000..472aa4e591ce2316c6b4633e94b4e365e7cd12a2 GIT binary patch literal 3381 zcmbVOTUQ%Z7~Llc41_c-vCxa!#%fz2wA0cngkFFa8w;s6l?wGXBttR~X5!2QsQ3Hb zAKb$XJn5tpU>S@=oOf_v~bah;Jb5D6;B<=TdsjWp{qfdx)F3w2>83YCqih$wjcrs zQ>~3iu4qn<(J0tK!MYM9yGRi2cqD`tw6?;Bju4um$fsR2a&v|w(BGg>)uB0z%&%oK z0`W$}s)mTmkWM$2)atVe9v5iJ>TZG_?Ck2UO<4&05e;G=o)8#ljHI6K3Z4`QlE^Dv z$#$r#maH!SK^zL=DI6Bqwvi_Fifflbcp6t^&J(O}Z)6edA$yd1`3xp8QbAKz zn|`vU1;#4|F4RZa|MXUH@ySCd^UaGXNa&r05yR$W`y)eZ9`FI=KcBQ56-yW=V|Q~$K5 z>&8i5%~^I5$tSdYky_l?N{g*%YfEjaEW1ZFW;im324;iEVUFqF7>#mI!94j5SGP6S zvN=UI6+oiAP6P{uHkf#g!=!#>TR5nImtJIpbRAMbQ9$9yO0xC6o0j8u5ld}Y00(ry z^p-c@H01&h;SIbg?cNgjW-GnweiT*Bn+FPn)m-1cE>lI5QM{M&j=UM)4dGEdCM)iJ z86m4iK-~g$3pv^IL9L=rTT@2X)ZC&?sKAJaxP6QxI$4~b*6kbeW|H&BN^AKE%{JtF zd2w6H)zWjk9?S2+lvT9T`lylDahxs&_|@q{M1H~WDI&jVAn=K|8blNK*gahNlq(ao z_VIsb&kDBptf75US;5Xbe2?A1?jO7}pYb>1q4x8)4?8e`4#e@fJXbo6J=n`P`7T*G zO{HFCj_=6n=U%esN9>L*2-_dQp99#b>zfa?`HgzqDVJv>1R z-mqo7i}XyM=!`rc_!)sozr*+$T%I7 l!Zy(&j1TdVS3INTf^5Y(V(n!ZVVuRs+?BF_Npv5Y{sTR*w8Q`a literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/code/ReadOnlyInsnList.class b/sponge/org/spongepowered/asm/mixin/injection/code/ReadOnlyInsnList.class new file mode 100644 index 0000000000000000000000000000000000000000..4b53a7eae63335f964419f415b5c9fe1fddad40e GIT binary patch literal 3237 zcmbW2%WvFN6vn@s$Gl?FrqBQlp`ko7Gbu4mLxD~bNJ9csrWvU%k!aP0XXbXem17UK zr=&>y0sH~%StAx8l~e+$-Bv8wvuDj3A!&%R>mv z#sf^%(mh8?egEfSfzwgM{5|8oAy7~uQlQev2&@U@mXxKu6@l~R%u$ssf#GsxOG5#r z5=JnlA%}bsLwHVL#QRdY0?P@wOtz4)QO<`r`HmuQT}e~A(i4!WI#*k+=NN5|ZQCT% zYY9sB{5=%F3C^;ux@lNl{d3Fh_jNv&&&Y*HT4SC3T4X@!Guc+6_4_AG|RWDcS8s5ZPJUmM-ccr(X9G8;3SWaE(F*8(9 zWz-yrB~-(3Jq>RMWAii}jj{OpanSGJ0;3oF)!UIf0-{ce+qUHyWZ3b_dP~D4yvN-4 zNwTtt+q`=`6d8FLHAXG*f#LC5wjF^pWTd~``<^m&E^3;>V>U*LS6+VFe$u zf>nVjb~$n0&E&7gop_BWUKbd1B%LJD)A0 zCXJkG(AGA$3`cQ494y{YUCZ$Lya7r#?7q{M8_JZJp>uGAE(bwxIu@xlN$moP^t?*F z4H_S!cd7aaT6OMMjQ>KtA$&&9aSYS5Lh)7le+~`mO$LAC1WrmQJ*tSVy+*^uW*3LB;k_=o~4nR38cWO2~20!bSr^0&@{bQ z$23hcfwZqFtM^~|q%7V~QQLbe+Y=>(Th9vGH_|h4IVb4lZ*3Q@gkr1^np)0xOGqTeyftyh{kdS63WrZWkX! zz4$8u73@60S62dRIg0u_1x0rdCB}zwq`+6A`TY}P&^5n^ACZ_9tc9GYQ5#XvzX_58 mqXOi|wA<)53bVXK?*nVEzJE*jr@ElKMdV}T32gcTNB;*q(Po(d literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/InvokeInjector.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/InvokeInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..86f4de13037e9fb42122d382aad37b500a08bcd0 GIT binary patch literal 5632 zcmb_g`*Ryt75=Whl5BbNa;ns!p(rIdwj^6LZQLYI8z*i<)Hp93+~(21T3Xwi$h%^- zauO&cr77=sfs*hjO=t_0&cIBn%#fiBQ-&Y-tqec&KkysFFfHHNU9aDjWAa0+yLazB z=R4o|&bfEFyDQJ^z=@?hzfUuqFu&Yjw0iZ$%T@6*OMq*hXEfq+;P(j*{gY0IX`4oy?){D@?9~t+~^|h z9Ca+)>wk<8baY^&kbfVeEJ}Omsir>gzKC)M$2YZ`leB~N|7F(xKK1J(nAt>P{#(` zE0!NpxOaXp*;lj5C6f(vyFznUP`i&L(T5!@)vZ+@ccZ6zp(wb{-j( z2H)TPfjb9e=U$TRIYGmu3c40jSl0A&$Ns9ba3JDrCFB}NthdNhI(LQ+3oedzd|Hyak_DxSwjCa*F!gCW1+K}Q5h_jbn*85M=5Q&d-`fyPG+Hi)3w6Szc=T@25^ z3_h2{Wqe6tYXb|@t`oSz)5s|C+*nD2pwBPkD@nY7uksM6)T*I+j@|9t(b3oO4avnf zd6A!^S%uRLTibNFJkA;rvp|SCzK!pQ`Lw4%;5nhsR|6?6L2-v%k@gW z!Px)H6u2eN;pB$7lk^t8XdSl3ZNsa%+_`GlW(?fy#aMKfDC^J~sD;Y0MyZwkH<&wJ>jiNA?VR;#0XCMXd& zaF9-ie1{u?Ws$=~=--H*h8x<4I0$zI{QQRQG&J>Y_nF#20N@Q} z4W33XPGA5h$?fS`jG0jYX2h6@L+D|68V=(~7|OqBDNb8wi0G47G0cpN9M1OCak5X# z=IS^jqgX1I(r%zH1V113X9V?4tmjYrXc)mX_!+vJAu+5%(|Z_6prq8l`6#l=P)xvC zUX0E$k!7sMBok+23mjHt1tV}7Y7Ng|$`9}{0@j%^6JyN6dOVJCO!&#(1&br0=1dg+ znJD}-^l{D)zZ`}CVwlMR3H8q?UBk9{(M<P(WFp?3OVwG$F> ziNRgQPF$e^UznAjfe7G01aKe#sA+Ob;a-iWa4pQ!FoPC*EX-U_bN1~zF8q#2P)U0@~GmSUc3tnYscr8j7%|?JaBS4)Ipw1AGtoy#7 zOc}lCCsSib{$U96*$`w$HkV=eU6RmiQXzH_&bVNux zBIY}MOwtHCd`wc@9r&q_q?J`Bbj3&)&xR1mn?#b}s$43jmHOhTcuIQ(n|;!tf@fM+7$nFx3$0-lM0XF}jjc!Pl_2|dAFCi(BTd~QPQe_xXjhX4Qo literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgInjector.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..c583f10fe63aede57ce4f862d5ac66b00312fd7c GIT binary patch literal 6390 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgsInjector.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyArgsInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..906f6719880ab472545c9d252b1d8f3717635e20 GIT binary patch literal 6485 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyConstantInjector.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/ModifyConstantInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..4bd3eb1cb9f1034f8d238ba83dd106eb2a466e6b GIT binary patch literal 10118 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector$Meta.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector$Meta.class new file mode 100644 index 0000000000000000000000000000000000000000..7549fe4ba88ab81eba3ed20a7ce1149736bf8997 GIT binary patch literal 1105 zcmbtTQEw7K5dQXngW}a9S}nD;sHkw&p7B+!QM3t>+Qb?X`?kP_ZasE!?`ZX3_)|3T zV&a28z#nCtT}VvqBQH1K%7ut-XWTMqbO!S#BVi@sc9F65C zsUoRP#2}U0qEr1rL~q4V8VYq>LYv0ENO=*Ap>o1cc@%RsiVpg=s)!uJ>i-2h_87y{ zg{BtaGvw`PhTQ8{?-{Dyf8!5RBh~0JLz$LwY_%!j0z+wHq&71B%)mMfMVahL#bff0 zsGZ_tL1rkD0fV0&%cSv;;aPVfro_U3B9%;c8IGF^_Uas+-|~E<)eCSLSC-)68p+eN z{wiu^9{Y(7HhM-h{D%#%dW ziseH+H3P9HV}Ux!kf%SxM-59TgP}>DhX56;9N~)9%~?{-S<;Nc6|1>BOOGB`sj@}h z7pnEi*2C=#YvB)E4>vMwhMO6-!dgDV&9GL;aQmC94C%Y>&W~xjqIsISPKe7#Y{6ig z^1HKsXy6Wc)Y;8t4q1ktLzZLCAJ8 z)3F05^z8L*jbI=vaJ(PePd=@~1kV4jFEB8|4g1jj&kz_%oXC@jz+&~m@Z%(EyNO*( z)5-!zLe-E0_K@_z-?o!TN_$l%*A&^u;TjW|Xht$=M`7)Di|I3mr0WR15qFFQPHf#j zbRYk!BxxAgVqG9xDAp}Z;!zVv zFl8Z+N5+uB;}*tXYU@c055dyb(*maki!o#a1JAHN4H>%v`Rc!2wV6bI=#?#;z_VkR z!E*xB!+~|34LmO}&W707BhJ~vLCoSIB}fIc@B#`ZW>K^-j)yg`Id&kSDMPy{!$gNs zqs2k!_Z8W~DV)~uwuNKJY511}#t6UOa?_4v!7CQd;H*jJivni`Ge1;l1Fr~7?JwxX zwjVTPWZ*RuOPCT6)lr;dS2?Yg3>#E$5Tye(?7>i;3wT{4y&-T^-3n!7;bK>?6=Ii1 z@s_}7qPl7dOcsglIpm zA|miZzk`=2u=^9t(j6@PjJe;i zbmcC}`SUwiX3Cpf@|Sqq!MnRy)j_-1`~$TP>c4QSEUxlChs-^cku{Jp@Tx&Vg62J* z&^<1`;;)7+Cd`s2@D*8qN$YEJ{DyqK#WcP{5#OVZAMiPT#K(-9>2kt{_=rzrm)1x# Z_tGk5SiMj9WU>kw7#QXCDW5Yq`VXb}3c~;Z literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/RedirectInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..22917bb12170ed70d1a77d49e0c3c8678e99d599 GIT binary patch literal 22840 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 N+N^+j4fhl|{}1Lr$u$4~ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/arg/Args.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/arg/Args.class new file mode 100644 index 0000000000000000000000000000000000000000..4bc48e14c71ae2533282e12d3dd827f3aacb95b2 GIT binary patch literal 769 zcmbVKOG_g`7_3evGbS6O>m%#i^_E0%L=cx%1Q7y(pa(-Po;pc0+wNpWW+qX*?f=<> zf+Fm}AFw}a+3HD<#m8kY{dIj+Uv+iQ{QmRn3BV3E1a`y7bK}b}@YH2^r6SdHW!!iB z`dSCB4lYzT(V^K5!|%$K6dy%i>_7-iU&x_!eHnP}X~zg1WCiku-!hbdJ(T`H#R9YE z&6nbR(g!-w$)P~G@&;dR3uG(Rb`cXO6ky>)5jLDWGME&wl5d*Ed(HpK&%>=)->CG2 z23Jod0`rwd^{t#M2d%HK`-fDwT6D_kpr@_{gfWVZQMuB1tvB~seb0$ThPOF>_|PCmn0s6C=s+k8Ojjwpjwt|er-Zc*=2zl}Ab@<@#-OcQY~b>+?R z5i?`YZB{|fuHB>b^pm@hpPhEUq&~%wV(i1;gZVOPqJ37A$T8E)JGU>!>;J@Xo?|!+ d_KBA3se0ZLSis^lUb22*nO88+@HtiF{sLD|o67(I literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/arg/ArgsClassGenerator.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/arg/ArgsClassGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..df71c7e0627fdec71b314faa9f4a3266cae3aa99 GIT binary patch literal 11727 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$AnalyzerState.class b/sponge/org/spongepowered/asm/mixin/injection/invoke/util/InsnFinder$AnalyzerState.class new file mode 100644 index 0000000000000000000000000000000000000000..78b3e7deb4eae9bde195be5c75ce7a2d94e6ad04 GIT binary patch literal 1430 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator$Context.class b/sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator$Context.class new file mode 100644 index 0000000000000000000000000000000000000000..e27f0bf3154917d0fed46025e84588c83da9b3e0 GIT binary patch literal 5727 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 K@Hf79K>rWcF<9LI literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator.class b/sponge/org/spongepowered/asm/mixin/injection/modify/LocalVariableDiscriminator.class new file mode 100644 index 0000000000000000000000000000000000000000..ec8f537ac247d5f88a9a9de7558c12621be21854 GIT binary patch literal 5523 zcmd5=`FB*+9sk@}GL!KIlF34+OyVdJ!$2~UD%6BTLSz{X1V{`7y7)5l7#>dE#91)0 zyJAIJ?P519Z4qs$ZEBU01Wb!`qdh&Re?<4+`dfeTaIl|y-^*kYGFH!t=ky$yd*59@ z-_Liw`P0oeuL5Yt9|d-1vZ+{ZEMujNvCQK})=0+m+-Pjn95=0)X&pBbc{5|hMl(tC z=tQh9lhD&cde+oO(#C^kE|E1yO-s*bvOWlb>f`zeJ(kw3RIGnQZuP+}aC`Y(ZE}M^ z|1yDS?#)6^2frpp*_+}-L50wI5)fMpT*;KCIN>2!g!@N6_O_G;1zv5hE zT1jJ^t)-6|If0dZil;)}OveU{e5b&gg(F++PetTFK5JU3&Tg*qjj;dMg-(OV~$JX0-px2zk|P>&A<;6X@(hN?=quv)_ktdzY*4b^tK?OQKI+ivQCRrV9SuQ%}9HvvU zppED`gVZRoHFQgr`|tp0xCy$y4)L!-(~aaJ`++@iZTi3J+UgCI&0($SxcG-qfVJS zibli`npcJ)a9^3Vi}5V9Ck7^qW+Je$%=Yq@rC|%YBqI+C)JW5xvl!(98V=fg9dc&3 zkK11F%pSI9k5GcN%*Bk2hmMrNuvmounZxIzft}wvHGCYOkRjlcG7ghj4LbH!B7hMM z{j%pnQlM#RH<=^bhob~*JXTO(>z#y9QX??-XgCHlfE11ktWvSDB=v18nCYa!0wW#3 zC_+4JN2XvUBYtGq*T=>Tizr%44|Z~<6RU4Mi=sV-tUQkVgj~L^O9qEb4#)z4VWGSo3I;zbN+PgoWvC#s zG*jzRGAJMYYydm(IaUBl=>i8oAeHlmqmo><3AW5NZdNiHo|d^FfGL@$Wci|JbKLvHy9IeW99vc4l z+cKH7p))Lho$z+_^bKqms4WrAnWvV%fp1pg1$;|j?b7zHs=1yba8^X$ArDMGLwdSE zsZ;M)>Jk`^J(rBw<#lJN;W|SaUc`3;ID@k?qucT+2pYbRwg6@LfgdXtun=d_oRS`P zp1Gb`tYGxhXB!s!g|moMyn-JF@G^cx@mP*JXa5-Y$iY|rsP?07?s!GYEZ8SG{PNJY~R4@$pp1(mXu9 zDxa+EGc99pVRXdE4$3!{^t949mowO~aFDUtnW!4b>xoDA=wr^e7Pl-T+nd&NIr;Jk z3}gz~gt5a+8@Pi^c=!zTA}C9K_JXqDS1rqZ)v_dqz%}+=sAZppIr~){Bb6NcHNReE zTfufsbOs-euAV|T8lFN^v~dcNXvlLJYp2i>t@lnL`UaP|@f-d&F?RreA%MT45`W{x zf9D1NKp6kzW8h!-EoZy!W3e6^_{9qpOrd%bs7v)ERJZC$uu`Bk3Z@soV_zdwIa0&Z zJ&qu&IM#|b{z~{UwsMU(dI{l4c3cWzg&O>~0%9NHb%4-baL*E(n-*{W&yt%rF1b0f zc=L@VH@D*>4(p|`TV7uXTez3ld`+#nm%#5U%D$6dQuZKaZ@GdF!Pw#RT!6b!g%Kbj7{nqX`wu-Xh6;A!8TqbSd>2KT=+ZwLdnujiXe8uCF1ai-OMNtp;7cn$U&;efq|z~9P!ZZPO3QK0xN8X z7Z2%|@x+pxbcG#8blHa6_qJZgzSc!-JRq&s^$MzG%gJZXVMBOw&W2w?mF$MkVU-$e z;fgO^!SgOAYtnYoMGnup<`r9qiW~5foMw_!SNAq*NRMKN`XxIf)N%s#B8j_&fv8BK zT^vJ~F!^R5#cpBYfXHA_8@;I*W|k6Vc$;F5=sl@x5z!VH)SQM1wE6F5`k4czGH>>52w_x?rF?8k{WMvB@)w z*JvR>@9;*0uZwHAsPhxMA#XkX@=Y1&JSr?TK)i$F z@cD3=1|)pg?88OQO21solmhW2s>M_Mv(!n_@-%wIGw2hia6~+dN5pBqG@esb?6L*I zEPlzI)i9NB3TDScBv~ezcI;I2xapajRBG{{j|oJk8!wJ9mHi5D(Sc;TkrBt9t1Zr5 b<(v!GIU8i_<9|Q#$w&8Xr1cLRcftE#;4_(; literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$Context.class b/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$Context.class new file mode 100644 index 0000000000000000000000000000000000000000..dbcbfaabf2ae7fd3412fe2f8db0944978138b567 GIT binary patch literal 1176 zcmb7D+invv5IwU=y3G>W5*nbi&;o^C5UfDuDF_5Xpop}6AgV;)HX9RM?b?yof#w(Z z8y-+4D)9k)6k>K;5RI~^k)^R`Jm+}k*#7zJ`wsw*u|{~SP0vsITJ=OaVG0~CZsa#AE+|xz~ZziJ5@4`iyP?9Q931Oo(o;8vk-x?wO zCg-(eV(Wydr&3A#jPPasKdAPwFY5a_38QzISThK%-wsSq*m@4=Z!Ir6oF9ZXt!YPh zMSWwhf{U2(P{b@@?VPQ+xI`$dpMWoWsA9f?3#gRg;0mE=KT1|+JExk_7S8nySv}7P zJ1{Dhhp>`Ep0=6^NSJ0#l3f)I3AE4R+e{&`8dSF8FT1EmZtZQh-+A2k122+ ri%grYmT-fS>FOqyGi;4Zxy7Y8xXbY>&kkHn^C-e&TgE+(J1G4IHWy&! literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$ContextualInjectionPoint.class b/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector$ContextualInjectionPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..b8eadda8767c8c051f37653f383293a46dbe2579 GIT binary patch literal 1993 zcmb_dTTc@~6#k|y6iNj_1OzW@MQw|)ir}q;h>e&UKoSTE#+Yo|p$ys1HoLQ25?_4s z_n0UolIXiX%6MiMYq%9e9(H%;ocYf6J3Bvrefthz6cY^Z9JgY6HAhx>&Dr2CFPoNE zHLGG%NK?o)UQ)u5X4NT+l`V5N_$*nju!=S>1Zu|}%sW!?P32p5C?dqXBczIhF^rwg z!$D+}Vc=+YBWu>W#gIRp-G-6J(ag|yT=)#}QkWUT=u9JbE?=oyHM20Q%eH4O$Iv_> zq)?L#C93RZMcv?4DCs@BGHNnE;7W_s_+=zH?;e|{i76OD?*kT7Sl7j z>ZWbUin*X%AuG9KT-%~(DwlJ!AU!!FJe3Qfz7n>XcWgVPR4((D;nTUBoj56~siLP` ztE6;vb55D(CWA;`H)`+SI;vII+0fkgD7|&d7Ueo`Uv8FoO%F>Py$rnv%k{z+cA2|z zTuGoG?F_9IuBKF;LSX1lXAajliL1Dlpmtv;CRw!_*NqrHqGE@!d(Lu67`UnZr5L7+ zdKyMePp47!J!KTR;d{JHN`uJ0=F4El`GEq*4>6a3mei!W)L3BW=;x%r!1Z zy%Q#p(Jv`;(Q=6n4JPH|IT}1mu6kNyAz3?SgyeI6waDE?Jqo%le$i1{(Prf53!e~(sCdfJdA$vCa1 zNgttaBD;f*?9f+qex_XnkLcYVoSh^58^X@xG0A$u)9At_+7T|W$^!eBNvCaoKvUo| zwTr&x>=$(IqJMb@1KDld*v74{+w|H-dIv*4=yWvj)l3$E#lS~4MAvr>i%LCxp_u09x{ZBu{A_K@TO}jfbQO_hTe`Mw$dkB8a0U)`DDcvgtRp0$hs# literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector.class b/sponge/org/spongepowered/asm/mixin/injection/modify/ModifyVariableInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..f58e436c0c4280f16a7bdaf185458cd6def61a30 GIT binary patch literal 10522 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/points/BeforeConstant.class b/sponge/org/spongepowered/asm/mixin/injection/points/BeforeConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..fdcd7bddda37cfa18ae1745819909dc0cee80375 GIT binary patch literal 12083 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/points/BeforeFinalReturn.class b/sponge/org/spongepowered/asm/mixin/injection/points/BeforeFinalReturn.class new file mode 100644 index 0000000000000000000000000000000000000000..648180a52f4f2cc8a378e110a0026bcd92da4d2d GIT binary patch literal 2899 zcmb_eTUQ%Z6#h;a7zhCb0h_8dXl(;&I~K86LMh==8p^FnN-g!$$>fk62s2qTCx!k3 ze?#AV^QAAYrPS(LUY=abXMaz1pGhE45{l@{%$&W?{?50rXa0Qo(=PyqvB@yuxOu}X zId-0xoNey%oMC!f#+KL-wjt~dZb{+TM#&Mj^o%LK?zsGxu+3tM%d%_hU<@NC!$|I- zttc=ZO$_}<0IzJAk4=Uf3#Y+6pODi|j>j3AADhK8XV5Z<N*o4Ylc zwl3@(LngYQ3f3r^cHT%!SJ?S@18PN)HKfZqrP8w(geT(_)3OvrW7;VeE3Fn+6u$o7 zVaH#`Dv_mFnU+-SmQ)i>_)N~#FDvCt=1Ga`xInR?XjR66645-U!@f}|?E%F@h+;5^ zix^^PBf#a7MJy=c(d1wiVP zPrA(aTTV3%!<_?02ixUz6wWk2Q!`y%+6-L_!sbimtt@vlsuER9skn-(rYqFCD(py0 z)7o4#OVxG%;Y~Dws*1L>$lE44Mo6KgP2+pIXnLNCZ7}VWU5kEX)G6Uq*_L99uL@7l zF$tT>+En%KVSuhLjeeDgin`6{tBJnp(xqpXR`a9}(7SUe_8i?qv0c3N1H#{tBmhgv zX+JQDW=xUwG;*}+uUOzL-lmn>^A6r6Jce_4uZlZKZ)F+Ko~fsg)j~30&c}#UwEGwV zM2M@>2k^enn&AVSrxmee2KmrRx-1*hVm~6*jc28eE9}InuaL@d6EdF{qti3=wfcrjM z4V=#Eg7y-9I!2j}>#;zO@4_$z5m+Gd%e3Jx`j8@*(}*F18@PuA?qddPNa7)VeThf- z%6B(K^kWpb4DHdCBm0hLu}V9Y<5_%$2YzU?gz!0?(L~l?kcCEPr3r0-($I%RlA372 wI@wfGq4qzd-4)#<(&b4Pz=tF&&{vS~)lXLYg*FIZ(~J#zx075YMfcG94~26?fB*mh literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/points/BeforeInvoke$SearchType.class b/sponge/org/spongepowered/asm/mixin/injection/points/BeforeInvoke$SearchType.class new file mode 100644 index 0000000000000000000000000000000000000000..e9f04a850daba3031317a740e71605619465ab28 GIT binary patch literal 1338 zcmb_cZBNrs6n^gBy45;hAi~5KaOw(3#g`9egrGP~lQ|5Xi|D5^F5_Z%yL21sztWM2 z(P;SWk20RyEn$m(GHa9GoSx@A&w0+h?XTb8ege3U2Mo{rpl-FAzO3`6|DFeY-*Q_G zt06uJX$g76Yi;36tLY2bZdp(Hfgf;N9{cZj&f#uQJFI+cat(~(b?L}Gb}i49b*m^l zjkVG!s0-@_hV(GAh8V-dU@t2Q!0`CL6*XuK`ne;9gj3nEH!BQVqwzuXFN-@bY{#*y zMFuTbeNuW=bQqq$9hE@h*!4QR#bD>n5s@0Wh;#}OOlU|m#A}`}Im1-m9N6vcJ#|b9 z2BvUH$0Vl7Uf9a^0mGa80Mcm(Le>lBs2o2UB;WMhR;%zYwc+DKjm{veBaSN!G3hqQ zQ0DJ4Is$7#iuO9g^q@@NgKbtBqIt7w;5u$7wgqBq9}1d(a;@ftrAg>I4R67Kjtgpx z`6LVjMlV>Rf=z#)9#uo0SsG89)zCN zmg|n+32J;xczk1(gyQspM>l4bEtLwJkc7(EoO;#!!eIT1=Jt|Ce|pe-)V zo#N)_Fg+-DUaldhTF1Q*Gmj*0VZPr;nT)7wNYd1#6kF8#GI?oUJ9!i5 zy`(@Xi=wz8sHl{!h|r1@D78&nc2Gc8MFbU51XK|B6$PRG_r8~8l1!EszAxXr?cQ_G z@}K{ld-K>kciszNwwNR^Kbu>Vbh@(k8nY|A-prY8NyF((c3Nj!cG9xfnrYX{+R3i0 zWxG!DWV1b+GgEd?cAcp~2pl)Q>8U@GMX}KCy$X_SMv&Q$bH< zfjOf|YLr1(V)t0Ntleqa?zE;Z84L{*1*-RFqK1RHrZ<~6u8~_~x{Uoe-R-!!?zEe1 zG&@_(T*_|G($y1r%Iqmy6D8f1u* z8N*(aY;kjzy@o=xbk=swv#HALQB}#A?VUzfGNl}{*qg)Y#hL7yHD*rW2sPX2GSVGp zQof{kc|C4zvOx{u;2@tlCuX@5j^<1TaHK9Pg8N zNr96_gUL9I)G*6abGeV1+DcEUu_Ck5kCV zoFj110Fs+pWqH=nDG=^Myg>ONw5v3rzq06xz{V%Y+yesCM-4Qul=JItJL?*RL#mFP*=HXyewE44;qV+EK)>9yJfctEH9w#2w=%r ztw}d$n#q*y*bSEB)_TtCcCAcuaW<3jTDIEhtjCwU=VDJBORM@;qSr{fQoE(HEvr+S zEZ(p&ZaHyBbyc)H&N#&lJKmo;apfsK$2(28Bij~VZ@C@uHq%MxtS*;>H*5^!D*}}T zOez#t7UwvwkOcoVhOuRNb80aO@YE61SH*kuemAcpB+|cuD@zc;CV^)PC^W(<;|<*i z(}yZaM-S=C#yPP7DD$n8RCpP#mcF}&96eg4=?`CWm@*o!lf=gW>bPDO*v^)>hXMhC(d|e?9JyiRkuv^#ku%-yoNcznXY$q|Lp#-R!*$J0HozRoy!YEqA5b;% zw*;n+*1f6D?Izl_-pJWHw&IE? zw&2_3hy1Gd9SZJ3S+WCL_R z9wfkRwJ#goI{T$r$M^A&9QUw5atwopmIDnxVDVPjZ#uF@s9s|~g|MRNcnptAhI-<_ z1gO2+Q!*+)6o`4niMvt9YBS~Llw{&aCJN(eCS-QKZRT`5o?l;-e*HDi7?cuqBPl{gj{Ez4<*Ao>s58)8rns|LZ222{ zN1e+wwG)Pwsr-)1A4ClQ4zEV=TfD}>Mq8T)3}+-uhNa60Ezk(G(m#DDI2Ep5#~-Bq ze+&_ClZQj@<5+*Y4o)kd$K9unJR8KwTJMUe2Q zj?0Y

$3>ZFDBlZ}6nNhDB_ z4_TkQWs1LpeNo)YLpsbD1DB1e7nd-Wy}Tv@0t2*9TSZ=gt_&l+}vdyL4 z@)**8Q`V488<`cjC@sM2`b5=kOiPp|Y_X!3711h4z}y6;(Dg(&5l8c4m*MiII&fjjs*SEhVwOC$Um_UJcv`K zm7-|iHSd&7l4ikEgi;;QeWSbI7iOX5{JovNG$?+!Y-pZ zm*)x7`izl6b!@_1UTVs2EY6=P$F!_0;-!hOxH*UcDcdMzTWA~C3#r%_LA-^v zO8LoD8$?J2uE9K9i?i5|tmVc{dL`kh*l$Qi?(1j<)yA#3O?e}O+i?fOF_CX||J&`@ z&Nm0~O#ok}4DKyGvjgYTY=TcrjfEaTQE*$VXa}}!fgTHqUi5B7Q7p8eI5<}e&J9=h z;_d|{v68*`o*=?+m3NN_HldF$h$Lc>UOc%8m)?cVD`Sz}_|bxBqU^_m92tvBPsWO4 z(Vci!{`^e-+|Y{`HsOp!*{?j9(OW6y@mRD%>%~jbwPmji5>%n>!SB_W>KSs~KW#$s z#bLpjbrst6DBg;LFV+N|EkFKk>%J!6s5uqk(2bCBtSS44mLI8Ds4q?{iz~uXx{6mt z_&PsP2O_l)QSG354V(87s}TigLVS;gd-+b2Z#E02?)|{q*ref6K1bg~;7vs4g%^4G zYb$oTiE-XS7Q2~;)VGkIwlQyR@Io)Mc{icDmvOt3Z|=r@ zxCak%mB+bbcnS~UX*|m2^)bAFC-6F+B&44r0-h9;*gi|-oXaRTQ_4Syt0<*kjep_a zWI{&14^6!D(Zo9+O}tZRQsds>T&4)${RdZ4`za!*7`PZy2|>xd8f|zR|K(knmb`&C z$*v^|iHd)eG$PUe_7=Z+nA}0R?E3sv>>x^IDn_bj>=hz_GgYDl^HTd+%6~2|BO-k^ z&?2e1%!r86T=GLi*_xjb^4oT<=B@rVSL0sBXO;P!EoT)~Js^TI?jEN|@&TUD}; zfK<)HJzuF-j+RQ5bETP^FhOQmRrOvG4w8xbN<$E$OoecQ8v822@*2wUdfs~F{p*#B z5}(-0MTD>okiHJ4s6#nd>Ka`XWBP?K;TZYfm@et^BScaWyCZG;r|1B C)gF5Q literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/points/BeforeNew.class b/sponge/org/spongepowered/asm/mixin/injection/points/BeforeNew.class new file mode 100644 index 0000000000000000000000000000000000000000..0a2e4634ac620cffb60aa1db90ec0223883f70ac GIT binary patch literal 4657 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 mPJDu!~3m( zcg8m#b?~F5e$@xZ8D}g`9mmlZo$(*=e{r1Zxf=qZ!oZ*p*|X=|bARXj&N(^z`@ayUc}ACG!v$+#O~ZOYSgp$F=JvSKnBWF~c=7saXbpGBq1T2edF0 z#2C))jKG$lD!Ld#71J%$N?!WGWcErnm5m~f$HM5wz9^z-55b513}NZmq(-Tb+v9jb zx;+`io`&1gR9yEucNm6t$au5ap;jqnBF!+eLzFEkN~mjGlo@7{IXOjo)eseZ+O@f; zWVS%B@&(xPpzZ@J!x&PUOYfe23GSt`Ep%w5eGUiAwLa&r*+a~PCnwz<^Y zA+ks+C|+F7YZ_-6y4KmOH&n$rVqlbMTDn`?x|(l_n2q4Y2wuP_G2>KzhW_nl=+Vr* z;WnKT?YMsrB<&~(OaGtLcDT)U%DpCtAl=Ef^l_clZsv*Fy(yLqcFn5G{}ZF(SL75i zTxjuaosHc^-nRvsEL>yDcI3D)^Yz6A)1EOFss{I@I01Va9J5t-U+aK ze}B`hd`)o_%+fQC;6p?iQ*rVy^s7jBM*f7)2gzoDnga6j<1&IMk~UBNSBS-H7{*l; z@H*!323bm^nJ`fC*iI3TgBZd~I8TiuMr*vwcp0w{YiY}3+^b3%7cfCF{B%E0mWx8wBF4+NN&+#4?jzFV7T@6vbLGpx zhKhQ@tBL|c+YWa_!4O}5SzKf&`~xk4PKNd-nT%Pfq@HJ3%(f^o(0=G>`{c0~x#or3 zMjB~kl8B>=r0Pu>Fg$M&d#VO>>Ufo~48;}^=PP5#IGe)RUiGEtOT9-4&6Y~JcMM&c z`!%7D0<1)fyLM4s&Qery~Q5W+VG6V6#3185&=4X1J|+Ch5!Hn literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/CallbackInjectionInfo.class b/sponge/org/spongepowered/asm/mixin/injection/struct/CallbackInjectionInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..aa171385faceb9afada69b48d8dc2fbf37037293 GIT binary patch literal 2160 zcmb_dZF5sa6n?f%nluD~fFKpA_)?puWo-eaO$(->g=#5|jh(SyoXyQPEbiUS+`Ccy z6@GO57s?0e=#0Z>e-z`n_l7pj3$>&9kh{D0>^aYQ&U4QF`{f^h0a(Bn468P1@~~x1 zQ?~36GLQ`}LZAEUsWM!dC(?7u8Xmf!?Kxf*TGxg5-NvgI8)naDz!;WJ?C4VU0 zW82uW4SB3-#Te^EL``g7+{t4MnH*BcGNjyN6*Al#67MA3mKoBqJ;U;A-5rxUap=d{ zF_eb*8AJm^P8?*)z>mAyLkq*{mIy+bl-mXjd&3HN5WUAmaY)Es5rlvjHpHy^9;!12E*AyZ6rm> z;13K4a$5TI*{O?A^2C5z zYn9sCw6(6;HNWM4%;O#^IaEQ?OI4}=8P04fBe&XqT?VzN^CNtbWOqcMqJ8Huw{6>j zC)bshxP}p$+R<;6o;1Y4aG!QH+C}HtnbPdsbBzB+>k&Ml{~SGmS+bnN2CZfiJ32o_ zyGSy5oF*^P>J6NUt+P0bb8&c`W+vxlnNgeiq9~& zkB?uVxK%1F6mG_EKUqrsiQC`IT$#I^dXDn1bUA@kh#|~VkOfTQ27$X3L%W#-IDoc@ zWr9JKr8c{O6}ml%2~43x&}Iqr9o!{P44% OF;8wtEBHJHnEnS!AAA}B literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionInfo.class b/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..1835422b47a66fe1936aadc355c188f71934caf5 GIT binary patch literal 19989 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionNodes.class b/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionNodes.class new file mode 100644 index 0000000000000000000000000000000000000000..a306a477089aaa9f3d444ad0da5dabcf74fa17de GIT binary patch literal 2175 zcmb_dO>Y}j6g|&hGjW{6`D~IFXrU#xV|QpN<-=)dNGTX>vk0Vu-Lw7VOc~EaGvlUg z*zz0t3%X%ZHmLv!u?iBup@0xuK(K`hIB)DYNrfdyYfJC*zH{z9_r5pZ{`JLI0M6r0 zfwJeftzgS@+iJ_(R=#RkGU!+x`=21SHc-AT zoekv&)aJd)RRQrpgA8VHLQ_0J0bPb6aBfH(!y{)B?Sr)|@b(alqiJE93bFcm}6+7-s~g_RD#1-@uZ9u_=SPx)ny1!@%<>j3S3+9eA`nvxj|9 zq6|tntL-czbY$4vR4lTiWP_CFa9(HQc>%NOxuLXOVi~^La%7XrtN)+lAvzDwmA*3< zbyb;oiQJyk(#6Y>tG0Wil&?D8O)k}_$78$eOwkH1X^Zu@?C- zQMFxF?{*r>e^)jfZcJ6ZCf@?d7lHHs;@Em9n;+KXR)3zUxUTZo92o>UHzVtI+m&J0 z=lS%y*Y%s~n(Zi@VtMFyL|_qVjIzJNSqvGZIOaRTc9km@d%-?gxQEHlB9qtHY9p`? z*4Sox2AIM$XM%TVmaRU#jX3|n@xt;B=4-`oF!d$O_m}VCc&$*}!IRgEcex$MRkkL? z11uQqHNjlu-F*^$NB_Pj^bc6Tj}hU?9%!GC@OTO*Ntq(?DLl<6cr^x2e8PExh)abX zJX^qb}`~i{%awq;E#J*EMV;;Yd@K;j( zhBNqm;M6=_)eh*Gmj>=F_1zPAfgi%2GBqN`Xf+-wvkN0}2Z{KnT5Q89~=eyBH}^>zA+V>>ZFgyC?OOHWw+Rgn_g$`SnOg zWQ88gfNT=4L^2Z^WsYJLe6%00U_CGN9oXcKRv_EY`YufJzxpu$#9{tv^3RZe78Byw iKvAL$__KpF_f*y_uahTDUXz?7{9of-ufGxXseb?w;S(MJ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionPointData.class b/sponge/org/spongepowered/asm/mixin/injection/struct/InjectionPointData.class new file mode 100644 index 0000000000000000000000000000000000000000..46bf03ebae7a8edb0f73e52fef35f32c5feb4305 GIT binary patch literal 9034 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 Nuep!#{2TR-{{xxmvFrc< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/InjectorGroupInfo.class b/sponge/org/spongepowered/asm/mixin/injection/struct/InjectorGroupInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..5429daee69f80512e89566b0dece700f21ef0450 GIT binary patch literal 4688 zcmbtXYj7J^75=UzTe7@P9i@3tJBjjeBFRYvi5uF)N#nRl5%>Xh>)@mfSxakqlhv-e zS~*TkTHXcP@Cp?AAfahW3j_!dzsNx07Xvde0}T9!8Op$4_{B^czPr1&WZ8y}^GElw z_nvdUbG~!#(Qn@V>CXY|#*Dy0%g&{W1)TOkO6rqk-Enle-~m+BjmH$n&qtXXh)mpmtM_|8;r?NJLM z)CmMQ5eS-UUK5CRmyPImY~9T57YOCG{E%iBX`=VJ>ZP#_^rtTaRSRG#oBQZc< zF0y|-F`!@-R!2~SHS~isq7&$$<)EktC~*Yhp5%KX2%=eFmFrp8b)B}Yo|FCyVSNM} z(5#>VNh|s13ZmY!RY5%>^22roD{z;bC1~!jq2>g_j^#y5;O=;0 zA$Wm}hg`D7Wtb1N7I(zx)dQ_rj_Mf4L>Rjm=$z*C@_>SOW2bb;djwW+uSYi@)}AQo zq_vAHtzZw@<$-$zR+br)HXSXe*&)1_vPM;-r1cF;ucs?b@(=A-a6k4%a3AQaMyW&{ z>og1|PgcPJPdY)nYEUVkAM#tF4^mWG$7fj%8$#*cIz^94%jPv~0|=Tq% zEcGNQx40CzcTwp7OA@aU*(lCNPy&;pv&%Av4V@30nRET_1!epAh3yivUvI`QBzD9K zwl=C;rJ`{zRxD^4Qjt*^zYxZG7N-BBGlY-Qi)U5a6o@Zk^kUi0ivA>?YQP12jI~8l zb*{E7n^@}D(!^p34dav5F5!)3xa89;E^3w(dosS9H)!@HO)Tf~{0Gddhi(<{-m1@4 zy{xk&KCa+tJkx;B<5?z`*DMI!QAy*IM&IdK)nQX|m_>6LO~rgPJ?~6{Gh$n3WuYwk zT^b!a;90_1MG^Z7Sy|N2^R4_U+9md{(PrJzY}K)tUu)(S`n12#1o}F@Ax}TgUaMTP zXTOK=B45rCwb-kTISRgsqYZcom#NC+M)l+F`(MGg@UlF2RbbycLs_isLw(AGa7|zx zON7^OYT0?+m4a`}H~Ce(CXmv`n8mWPwq{v?N39I2vSr4LiP%udVe&K2`K4IOWHc?S zWyAOm({5RGu8d*Dv+lp)UW4_$2rl8eKs(=RJzvVltl@=*v4NDWg=^q^+kU`e>R66y zut4_fIa75?Hc1!kva%fR>efxIwgpzH6DXjG_|AZT|NdqpU4p(rKvo+o^ti!vw;ssZ&;EX-6 zFKnE`0^Dg$PN5}v3mXQfuyF#Lk~I_9l8kPhz_w)D1mek-2_(y^Hc%MwGVwf1i=U%y zFXA3t#YVh>t+?i@k9mUU)VI#5Z$%q#)zAb!cfKKg^oumDHJYmX8G?g>qrUJINBONbc@xR&RhO?Hx|9jj@iGw$At;hQ}dSKG`g#`->eW&Kc}5du`i(A7Z9OOlrt#rw2*0ejANKEik$#x>265cC0>a>Pz^tM2qrUAOLKVFliX!W>v3 z0%#IJ>=dx;u+E8`lX%0*vV2Sy&%T8M{5Qcx}io!h*pckNBfFN8fRbmBV14T-evC&-l;ZyWar5VVR+2Y|LHH=vem5m9(lMieIX;S zjONbUH1fQmFGZp{E!jPj_E5UWs-8FY`*kFHL01N2*m(`<&#k!7>PI_AgTDjn~xx5rSy zXaxm~F%NB}4UJ4-5;#&Q2b-l9{Upb2ALZNTiMkwIRZj zmZ3fj$;Nw8I+%GrU>6w14~%wRXx|n|O8CNo>CiRVR9gN_!`q&OCkoC@L~9nbY>KmF z<=CV)l1D0$_=+4MY3KNe66pEq2IWSOr+?Zqou4SPPq`f3rTWG##&7zX&vaJ$*%cJA zibaa&1}aQok|NS$3e&_0tm;dw+2^cvV%7h{su6#{n$K7b@|mYT<@(0vEj~PlZIOZP YKJ3dt_Gqk}8KY7JY>t3S1j?a!51a?bP5=M^ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/MemberInfo.class b/sponge/org/spongepowered/asm/mixin/injection/struct/MemberInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..e0035b8e1d51573460ef817bdc8bb332c95d7b93 GIT binary patch literal 13825 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 O@z!x0j_@KN9{dLfA48`ndZ?7PPSl<_ zym7ID0*V#nQDVs3OBphpWboaszio!)ID_F}F5rUVsf$5eAH!Y-&i@+0P;q9pGVn#I zsm3s@jvNz;WaQc~46{Z!V^2XeGAPq+bZKsU%0pdyKTj!gDq+(3wf;!6PpMm*A~p#m z>$Yk3$s_qk+U-OZ+ZAl#A;U&O`nNoWHB#rX2wfvbk(L-X>y1vNdG0&P)-$R`4<2O@eRXq z!%WLo*3i>DYh2_ePsxgvku&NgRhL!$JWtxHq05$S=90D?HB##Q<*=b!wxZjS{OgE5 zZ%AMagX^+ZreDv{RpWqx^U9*ausu8#izh;{#JNx`HkAk^B2%$*;mJ@u&d@O_WMoaz z({kK4RXsh#&@`;-sy)i^MPRa)d$y_Q*1Tb6xG6_P_zA^KbDM&-`6YX(ims;4$+pS4 z9Od?ck%}29zN%vsF!=R4tn#pI(DlHB<`Gl({rIGokS4$yI$k#0s0!=_>p zA2ke(E4qYUB3I({^aMd#f}Qu8V(Q003;G}vUlvtMwHXdnIIu)@YEHDaA;I6faZtE$ z59uV0jGQ)%w8mw6%uwS?8k$CeawL<<*~*;8MRFwE%TQ;`GmMm;lD9dzMle$h?4lAV*$pXfCH;6%(C8SBGwiOepCIfcoM6~MUHde*bEYn~7!H-@$Quhi zHA-1%QEDa;_2DF9)SOkDn~H6i44r|V5=bN7K1rX#L!wMh(-0~aRsOw%1QphTV#R2Z z_%S0&Y8q!KKAkowCwZ&Ru)hZG=+$NdB)J4h+$ivo?RK? zl*-L6cX~JDS(mPHO-=F$<*d76Z5IcKmu_ktxAx>Y#p2#I(UR~2L#v+Cw1nY|KR;f= z6(3&2%anGNPHG-bYTiYX1|#*xfwjS#k43^8RL4cn!kS{yv2Rghp!j1-hWqi3D2li7 zF2Ph3bVHEvK1rH9t0_t9X`O*^*y}{4w_QIz#791SfRCxSgozJyUZ_Rk8LqH^glvc_FG~y>;i!Levty7cFr$tt-@B$&xQ_LrfM8}sQeq~ zUj@SsG4|<+{t?jKu!X)qrPT}?o%goVGYq}@7vM&F`!faY)u{U`aHo`S9< zHlm$Y;{7IckR9p&fC?x6YdMgT2ex8SPua9=i5p*A48Qy^8(I z2*mn3f>&|Z5)SoW$6&PY2hwUF5s;_sF9akibm5VR0W_GKXhLtqVOk%dE5aZG7%q6Y z18o>`d=MVzeGQU?h`b5=FoH4i>`SubFYJuc&R4WkhwXIo0|?mp4$kAFPWrUI<(%W(a7iWXZcuHXI=DmqTfD_Kaovu*fxE4H3E)b3J z4AP#de)<&}^&QWZ8<}#92$<=$XN2K-T=7(o(68{KvG+P&DOXOEc+gnzpb@Wn9DWV2 odu9S;TzuL)-dw_a?E~%d5I90r8jm-ydNTy|cuGl&F}(4TQwYp`Df?-I-=~s^}B=3ciJ2 zVKngpd?@4D-BQAaZNr6ou{(42obQ|Sopa{T-=Dt$JV%+~t+8G1_l@q#zWFGvY;)mz z+*8L&bES`D%PFI|@9d!E__k@Q&Zm80l{o0ht<&FIx?{3n3@SmZ6hW#u0lAqLM%vm$F5*<57zlOR6=-b<0_&dtr-T*y+Y* zvB2==Qb0}961~%j*;IbZDo<(Q0gMW5m@R zUI^z#IB8Piv6GJ!&Cs1Z7IBwhE~?I1A27_&C~wL@%ziL<3=8E-Gq@mlPv|b+byn#v z6@B?s`BF%#q%B2VpTh$h&Ia`e!)#M&xijz%q}>bdHHP_fat)37T{EyP`C9cP?qiDP zJ9tu{Ndnz|ctpEBvIh2Cwf1cF1XsS(dJ2!}ou@BQA)eeh)zyo`zJ@{{XFd>lOe2 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/RedirectInjectionInfo.class b/sponge/org/spongepowered/asm/mixin/injection/struct/RedirectInjectionInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..bf78e2eea6091fa0c2078f546e24aff8b6ebcbff GIT binary patch literal 1269 zcmb7DT~8B16g@*rKi2Y90Tn+`UuX+B(MJm!g_w{O9;6}hak`zB!FHyZog#n5f1yt# zn)n0!QO3KwZH*hY4g0V&_wK#t?74I1_n#lX0KCF;hWEyHc`z`#D+lI_w6e`b(C2-1 zr8HOiLi$b_%>!qLzT+QdTUkmSjXxaej>&^DyuKAqqCdm1aU=AL3vnqJa(hZE_lDtX zr7?}iS)qfDv3+Uzaj2jvY*)Giqn*5R^_1S8YH??!s2_mD+_A?wanz;KwtcbnPP8RnyUhP|n9Go;fD`;j_^?G&7w#=zi-iBbkWt2Hqe zhJ}H!fsBvaScXp80Z!Nx5Y-gQ>7AOP_2mcElX!+XGHCc@K!yNa zTs)zuN!c)8sBQ1;UZeP(_H)>zw?`|mMU@pirClwqqx>C;r~@S|5K6dP#8OmUz%o{d zA&WBZju`eS4v~sKvG%EUjr-pyh$(VW`%VPE9v4mEi+Dg#BpDlcID*=xH6+ZGA16Ux QMj)m5^9Y2I>X2&wFHVkcxBvhE literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/struct/Target.class b/sponge/org/spongepowered/asm/mixin/injection/struct/Target.class new file mode 100644 index 0000000000000000000000000000000000000000..403a8db95bd1aea452166a96ad7f640d61691229 GIT binary patch literal 12219 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 UTHNkVU`n$Os*2d8Fsc#wZ&-W@ApigX literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/throwables/InjectionError.class b/sponge/org/spongepowered/asm/mixin/injection/throwables/InjectionError.class new file mode 100644 index 0000000000000000000000000000000000000000..1939303b4e8f7f0cb3f1c8bf0eb862580ec06863 GIT binary patch literal 860 zcmbu6T~8B16o%i^c3V@6tzZ%B7axhh)-Z`)VlW0ZscF0cdq0%PGGseLX13zr@~R0J z`~ZFw@l1D-TJg%=WX{gXv(LOab9H@j3E&OZ3Gb~-gg>(;QD^pCIdv?gABmCvp^eby zR1Gt2jmS=%J(owR@}hUs{N$W&Q@6YU8f`u`btm(bqo-v&O&oHogBepo9U z_K;8;Deq;X2#bHCgq2yr;mv3YM>{x{3DHoFJsa9HhFg{p&q|6EccOW;PS8FjEbLq3 zGikDcOvkLR?Av25&AvA3>v(je++nzgb>f zzDPXhT?zNNOJVZ7zTnPVuEaHpCs_D7MPBk+XB1dxcmu2a)yN?{K$CYt(Bd@+_LvN8 zHSSKZIB$4`2%A&Ga!wTn=COoF>m(I=8nVTspP2vHUV1rRFDyL)49UESD`?MwSvAhoK* z10TRgA;xYHNT4bbe(>za$20T&$JcKF9^)S2jdg|a6Ke`JvB%1(k&u2Y#`;7Xq0N!X zgSJM5LuZfWL8-jx|8fpxsYfz~U!3G>5|w!nVeLqMlA@HR5Pt;b2%DFcK8jU@Rj-_u zDe51bUq@+jtl}E1az+gr|eqi2LBGJWNSj_bOKR%}2XUXzXaC!xO@O=YPQl zzrVZ}oHoUFcSu<8{L9}$3(HN^vC={li&s#?RYE-+YEO7KBa<2D!M~gzEAM5Y2<^Yw z5Ecp*Qd0=eI^7vxzoe;4yVm$1P2laQ_|f{V9kEy$Xrta%;{)YB#5Ia+Y|e9*JZ-k8 z&gP!2T&`Z~Qel%DQ|F=Auz?16vv4a}3uwo_C7rmJOB~r?>pf@Av0UtJony84@C@xQ zDd{%f%PI5#89H3t#U1wDzevX#uCc|136_$!j_V9ZxPhBfc)>Epvfe4$pINCP0ymO# QD*?7H5~hHJyD2OC3540~SO5S3 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/injection/throwables/InvalidInjectionException.class b/sponge/org/spongepowered/asm/mixin/injection/throwables/InvalidInjectionException.class new file mode 100644 index 0000000000000000000000000000000000000000..140046b8bcaa03d591a21e50cb8474f8072536f4 GIT binary patch literal 2101 zcmbW1e^1ju7{|W{8_4X~K=HTyP*K(aMS>-Y0diVW2-{-lz-+zAo0x*v`h7HH98(zz?>!Rfx3RmnJ+-n+5 z>&UVV%ib5JZ#lN%@43z)-)RWXDBB0TVeOVrzO5aZq9rHwgE6cp>G>|Vy_(}Tg&U*z zRx%@My$qvg!e;mR0cXg2!nJs#DqN2u*e(T`v`?8Z=}x zNMTSz23H5rgFFT6?^zy0C6Un$_98W*;QP%^APn<~!m+{A@}}@SUKb3*r=2joPtHg; z+St^dRxDH*7XQCk{kYALsS96apJ8FDaCzGr?&4kscW|FhNV3D&v_*Vvotzw1_Ay!Z zafYb=H7Vp~49pP@t%TS&P$E53r(HTMdB;I@&3D7tvRdQMaC1A6HXXnJw_7&)DN$I#bc z#SA?MgKs)16>04>W@&7^GoSRXQIA&QIz~uMwr=1ik){4ErN6E8b9(UyMgv4K24P?T zbA)>uLF7V2E(l#BauLLsLi}rCBG$qJS$IYko=5bxP(Nzn0Ujy~kIu3%p~qQxK^7Lt zLMeiXx6nmQD#RzMnXFotsxWhmC$S!usdO(XwXXtz-dPZO$cAOesvMCVB&wGn8m1KL zvqI%N1qoqBo|*8~jK~5eZlm^=8;k%aC@a*_{Gj`jfoE zc;OH5M;Xtw1)I`tiO`Gg&h*TA&il^H>F+;3e*sv=Q^JM`%3fGAx-4tvKnAktiLmNb z)uGa!(tFak%4pB-2IfHQRAlJo^uDO5V($32_eN>^`p}m(7dZ?fterb)TfPCpOf++8 zPwWfAcqjuUDg_yYT*!yqD*~+zvQYPl5r$TjR`w;~(_B8Pz(AI&qUPn+od>H%TX|@+ zdB^Z7LYKWQ8z^1Qer}uE*l|W>=L=j#XW%fB%r2RrDlFl}T-&mUOsAug7{youDU1`| zUWkJELJ|o~BoN0WA#Qh7NZ5?@=08qEmN4u$T_h|=X7B1eVdAtIT&@VpT<&C-Z6Fk* z{rRUNv_ajse5P9mJ*P|N?0da=!ISyorGZIQVmrDE@?wm)4I6`V5Sqe%)n4YnQeI{w+Td z{oo(qA7wmulv1Hw(Jg6uo73O(+~=I$pTEBU0I-M!!deivov0i5ZP^X>Whh&Yh&oP3 z9Vp*X{;qUm75GlP69)TY+mn$~_xFUSTAQA7gktA4DL;SCa|a;2W^ ziakLXk7THX*OXzz`XB4B2-FznZRsDI8Cg-jieD1m%&(h#h4M>Bbe;M;z2nuukL5vJ zTh|(nC;Yav8HdVm*UC)`C5)CZ1dA{f@2H6I)=0j1dNo49J(4CY8lky%`Sp&BBGHzF ziL>4b@68#UICX=Tbn5-ynzA4)n=&==3Ya96+A>b~gr)iNzi-*Xb=(-mHQXc&2m8JZ z2``KolPPXM!yHj=?wP2!jz5rOQl|B!++lC7=tbO?$=q7P2eYivbS|>oBz!hQ|F)N8 z=ioD{n#3*0q`AHpv{09n^>cS!H zul=GjUrSsJerbfuDttF{REA3!;}ySvaa?AIzMH@muGZMA33emFT9xWIOcC?Hv$ARa`)L>yH VBV(sBcAB`I%Gjw)m8}n8_&4TA(>MSC literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/refmap/IMixinContext.class b/sponge/org/spongepowered/asm/mixin/refmap/IMixinContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b9c232114c658c5ff925eb29fc3df7e68df024db GIT binary patch literal 869 zcmb7C%WhLa3_Wg3(}b3`p*+fC$0CssgUW)6Y>=uVMItSttk_Kw=Q7p3o~yaj2fxOG z58$H^&fJ8mNKM6Nj_k3I?PLG?{o^NqJv=A8_8~J>=_TXRUvS{Du~lITcj?3go)oq; z{lU~a@DlklHb8`}Q+sYrZY49v!&4rqcbU+>7Wir!LwK{OKq5Yra~Hf6Eb+y08J(8~ zRtYcvC$WJw!fKsOSj#vjYQlb}`*9JGPQ+5Vq03$TKAW^J6W=3jD9d5}?WH2TyM-zS zE7in@f`d_7bCs)P>q>Tz+p0RU1rv6Z>q^6u7@TApb$1^1nJ0v8wZ7PJ&DT~-KXp+u z;(;wo4urS2bT;4PKZ#nfsdRJI_B#uex?xwn?$^5SPr>=1A`+H6-9BOSZ}$U^-~5;` zys1F$h9(APQ%4^8G4~d)&B^rY^i)h0!`UdBTBoVdeGv{xYSyK-PW)LI@duZ)-qaFS z^zeb^iuR0kKyd^25^iEE;r0yMGrW(Tz-@Rl$%>>?13I{F=ocF84eEbf$j z`u_UjUv6!)&VYW@4B<>=JRKFSGa-AroM$qgHvofC1J;% HJq$kq9ju5A literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/refmap/ReferenceMapper.class b/sponge/org/spongepowered/asm/mixin/refmap/ReferenceMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..04b469a9b088f8b2cff574b3a0ea913745cca7d1 GIT binary patch literal 6911 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 C*`N#n literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/refmap/RemappingReferenceMapper.class b/sponge/org/spongepowered/asm/mixin/refmap/RemappingReferenceMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..39d2606c10a1b189ed1e2875e88f705982150b74 GIT binary patch literal 6197 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/struct/MemberRef$Method.class b/sponge/org/spongepowered/asm/mixin/struct/MemberRef$Method.class new file mode 100644 index 0000000000000000000000000000000000000000..9f0b2a7a861f5f3b1ae2a7c351c87644d6cd7ab1 GIT binary patch literal 1912 zcmb7ET~iZD6g{0pCK(5itgavE8j*Dq1V-?44U1p^84SVQY*Av>J`71aj!t?~GZW2| zKg8eQgIlFwtyRnW{-`Z)_e7vVVihmbx!vcUd+t~M`~RPR0nFlehMRuim|@cw4sZHz zc);tX9X8B{+jfN+MnS61k!E#c zF-#pRQw`@0oW(gE7cfe6;Q?JLZ^=}~WRXqJ7LI9o9(QbSF>qQ9E~4djjW;9L7aA@z zoISu*qrer;!{oIXq8spRf zyV>M|GM&noySa;nBUhbpMFZFHi;S3O7&-8>M8qAbW`f~ln$`#MTEgd=BHgE|)$!g!F4C6vj0NKSif(HyI{P@fs zr7=*%T!vhKBM;fA7^#tS#ct35qy!xX7Gu;ynifLEPZG4m!y19=bQoBPL62fk{4`kd zsSmb@Hf^sZ`ATZ8hRd$tm6lxIKkaRg9W_z1<;7Yr5IarPC+N*WD*|7~vP(~%s z4ns~8uUGw6P~$7E$1y{@kfH@mP%;|QU|3UD1|xD+=(kRH1_tT-n5-2-CgknJE>2Bc z|Ag${3SXx05ag=gC%z&wn8P|*KgMYMfYW42HpxnV3phh>G3TVRNkj5IArg>W19S&0 zC=NsYPINeEzHzSOIot6}Pkcmn2N%2jmk;@;_x-8u9sf3ImD!l1BiMWU4p+V)xAg^M zTf4ZL{dot4(a$jH*ul+R+}V>+Mt5*erkq4Yec3goH>;|+MiqQaQ(wU}HV)-)?&ojf zS5;+3b(-mw#YfD4AmYPSsP@d_0d95t7YQx1$Vh$ElKF#{=<4Aqh1@zMC$ldnBL`U( zaiO1_Qn#GHddgYqE2q>gXPe~I`pBV;QF501$yx1|QEyp7{jXrW{H%U%{ Sni(>$TZx#}n0}6JG&qqIwws literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/struct/MemberRef.class b/sponge/org/spongepowered/asm/mixin/struct/MemberRef.class new file mode 100644 index 0000000000000000000000000000000000000000..e3029a0a8d833031a19ab642ce204547f8f6beec GIT binary patch literal 2138 zcmb7FT~ixX7=BK&$u41`Bz$OtC@n=kO$6!(g<32W!2+obMHjSn30qhUS(;s19WT7F z&iEIqHyv-d!5M8UMMpb&>re3~I34jhyW0?^+%Uj-KlVNE`@H9U&f)L>etQC75T-!C zQ(n!wn@(xf+H~$%WospCx*ORI`*XXLb-nUd!OPBC8_QPts&!L^5NKF8Z=2boSz68J zme;L{?*c=|NqlC?EUgqR6>))hpbHEhE5oF16<1W$2*iB#xCmw~Z_Qx> zod^P5pl0eu?#g&>;!<89vNX*vqjt&m-Vum)_blj0B9(xGMghfJvt5DA%yBS}2&lFj zqGiTKR$R5b+-AX9vHTh=S>qmflgRfu`=BnS*)cy|P_eWm-*c3L=`j zpAV2pR3@1-H&{nyaH!EYVY!9C7igO21Zj1gL^^>8UKQv#y3H-mE@m%&;aRc)72N`L zm41Q>&FtWLJUV*Omp~8tNv}?~{iaiH?{qVruKdxE(b0yNW$D*-oC>r-9WUTT={qYR z&S`k_5HkbFD&7`oT&gMYe*vb;4 zgzvo7zMh0kWq&Cu4TOC;`i(R5vl z{U`FyR=HqJ+C@t_MKlWEC4saAN3DT6?-Q)04=6^oFK;OH4djg&#ZcaeQ@n8xTI#KB#8T(;hDyhU{2s=C;{GVEa~(ot9~nec z`8y1Siwd%HMC`NPGk5I3Eu&=9lK2p7(1h(b-V%Tc8Yi*OVgi?#LP#cs&>t}-%DvNl zeDf%vkD1X|@Rt|A}qzwGA&TGHR6G5rA7p8SAXigf01I~;M- zSkQ>iF7Z`W;ub96LkR*ORTAG~V#$g&WwbR&+eFctN#94Tb?2@S+x!1i9ajR;r-+Eu zza*2KW(y_6*GP!F{AcnFnyI&nZ!43H@adIBW$$e;!t#rin{nO0H^5{=;`f9Rjphs` ziAOmjmc)ac5l`ZmoS`Q1FlT5GQ9avW|8=<){1}LF|9aRJ+sw literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/struct/SourceMap$File.class b/sponge/org/spongepowered/asm/mixin/struct/SourceMap$File.class new file mode 100644 index 0000000000000000000000000000000000000000..266120102a31f21c4b7ad0bb4f67475c6020bd9f GIT binary patch literal 2800 zcmb7GTXz#x6#h<{Hfb{40u<6V5H6P7%E(2j6smxN(KcLKir@t%$-< zxqMXd!8hOf>{@LRA6)q2gU|j5e*=ppe&qxRVBTaqkhlvP_T#lE_ThC_!B(F)G<~mVPkJ7~8&dC}K)OT16DmW=PY8zu zc6a2nWk5nT?8KPti#OSF9$5m}P9<64LZG+QED$@glVz)z0-9xech;)ftWdg>ZQge5 zM(N(c@m?Ip34vW5=xG{-!28+XB-<}_vskK_??><+#s%~aK93ZM+bFrxw?}+IV7P

wx(6yDWfPKh1httWK^b&x+V9GkE6wQ&G#?wpmxV zMaGVJZ*VZJD<`j7Id|2{smrwooPX33aJe(M@8%lK3=AgX zL2(}&e&IHNdH%{#08DW`i|ds3d#c!oKJI9wLJB3xpi(<32R^!#Bm)OkxL70HJ?ixE zESb5FcxGS;1DU}kBr=I5Y|X@jOW2l)cQ0W_3&R$KsDF`uE-{)xk43CU32~IM6{f;9 z=K1t-C4F2;MTW$c^l>HSL!?Mc%7=(K3C_J&8VJ82LP_XQb`jYJ*ds8Jdw>H1KVc&U zHvK~!E@Xz6@z%nVe+~98%fyao1u2#zY6 zhJ4sVIEJ?gL&6zr!1~P!w+%#{350@i%0~^mzFTK z@Z@g^FsJ}(=z5GW0cIaDMOof{McZxm!W|6YQ=jR~A0UtK9_?dfIgfqmp<4;0}eY}hkHv`MK9GmszZCqkk z_;W5R)%@K867oZP)m8z52pov3y!up|e#yr93Pbps`Fz8P`mM^T&%@#4KZC2N5T(GJ zkG9r8o6E+k9yAsEnkR3SkR4A>NLfK{HLMr?JGR#MWbX(5r?`hKeq0ef=SR;qq6ct` S>_mtnK-6Kj?``e_=>88iJfN2V literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/struct/SourceMap$Stratum.class b/sponge/org/spongepowered/asm/mixin/struct/SourceMap$Stratum.class new file mode 100644 index 0000000000000000000000000000000000000000..1c06200e4306054c5f174b1c28b388bd3fef4976 GIT binary patch literal 2303 zcmbVNZBrXn6n<`A*pP(MMxYI)ik4PLfY?%N1q1x^n>xs-Fwfy_nhZ>?m1`w`1|Q|02lG8 zz@=h27c)ymBd3*$pJ`<+8&l0ftf1f3jhJbbD;X=6E>_AJZ9y#!q^+`QRSF7(!0{dR zjvC9WMlQCvxuaz)1#W?3hlfYyzQBc+0>t&arl3t=xRq-Pd;%VMS3s#@6bPo5mu8k% z7H%!fEL{@_C655}jBey61YD7{561-BV|Gj33LxO`y5&oa1Rcx2GNT? zKRh@iaMI>$Lrdz$u9m&3n%e}a;1xgmaVCh9IMogpUJIfJ9db56g4VW9VwYP(SreTw z6*Zf6UgG9pBGHVr*)r5xC|eMLjw5z9rw9eeX_mnGdU>48oEWN$S~CSPjFAAM7$s*@ z|D2CX0TV&IfeX@nQ6NGB|BZpI`z1dVyh%5u3SnG%0gPr8F9h}$u1ExLGX?Xyp)GE0 znUa`Du)IvW7NrI$I}z&)*HvqqT(;~o82ewM`qWZMGqTG?fxdeDPQA=l^n6w;Psn6* zlFP3ChD`-?OjXB?z(})`hPPchr1E*4wGUnqqcZ z&lU4|HXglb@a_UqQnf{auA|gAI-%f00iSMZ>|n*RKu?3GM9oe=X)Fh@gcWv-BR>cG z3f7q7+p3w;?(#{PF&jawVw9?hG0sM!k8$pieI?H^WP^CX@jgR;gD!lF0_{D{Wt_+BT+xjklqrQl4AnwZse2pu zrXxS%Y}ivp%!OZ|jC;f0-@%Z|y4bRx$3zTG;!LF5ECU z`XKf(snD&2)W? Q9Qj{sM}SXLqTL1Wzh|jFcK`qY literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/struct/SourceMap.class b/sponge/org/spongepowered/asm/mixin/struct/SourceMap.class new file mode 100644 index 0000000000000000000000000000000000000000..18241ce01d934be84ae5e751d3a49fc1f69fbae0 GIT binary patch literal 3753 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 O2RBl{^ec@nm-`KQKay<# literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/throwables/ClassAlreadyLoadedException.class b/sponge/org/spongepowered/asm/mixin/throwables/ClassAlreadyLoadedException.class new file mode 100644 index 0000000000000000000000000000000000000000..647f3903b6a470451505cad0ea15c5b66db45733 GIT binary patch literal 836 zcma)(T~8B16o%jFr>T5dtsviCi7j!BiB}jBDUd)4H$d-)?qnIWooQyafY19_m7_dK448?$GRl)18WjBu$RiIIFh~}_4SoDQFh_% zr94lSkJ_p9{&VV-jK6iPj8(jM)l-8^TT_J)`1nZ9Q2=93LSuq(qZMdQLh_mJl#U0T z57-5P>9#dKlP2rRbVz)uZDU@u9c|R{uz#-HX?WV;-1fLz$qh5kleH5&bUn4NQ-#+k z5XnVj5f$*cd4stpDDt1H<+;SnHgg5um1gT2)89v$WuCQB_6^F|zzXA+V-;pF%ZPf+ z;Tai$Rlke%;x?;A*5*B|2Ki&we9k(c&m#L&o2|`jyt)mGXyE+_wmz2qGgi%wu@nJY LAaIqS0?K~?{%X6> literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/throwables/MixinApplyError.class b/sponge/org/spongepowered/asm/mixin/throwables/MixinApplyError.class new file mode 100644 index 0000000000000000000000000000000000000000..9e8dce9196a841fb5b3fa22f165ef0ac7fd94497 GIT binary patch literal 762 zcmbV}OG^VW6opUvlv=G;YwKH4P+M`pg$NZve1KBjsNKgJ#>g}&$<)WsawWL%2l%7J zn|9Pvb>l2@=N?YJoZP&8N@;?t_DD_6T z_?$tMBJWa+F(ezjZHZ9mA$)ro%Ds^29=}?5AZ-9~`loTyI!($h zX)&s)a^)FAPaV$;t(lIxgd~6qMl4F zi+&#L6X>hQaooe!>L;aDx=Sdpe(W_+$5b5^GzgXSR9V7y_fd&=2(8ubed5D3Q99ho zk7&9ho)K!Xv{rul(D|DXHIyU=_)P1XYsL2j@(7L-&j~5*0T-K&c|Mb{}gPBh#cLQ}u7T5?uHL{88df zJKEx7<1BLL9!|cT+`PTNyaL$9GQ*BGzGvH7`J$~Kgb_C$w=J(FAEolbTcaQNbs(&F z?u1Jt+T4g^W3)+wG34&}J@*2xd@mB?3{yY6Th7KXW`&VFXb5AaR#&G-4D2jPN!&-Y z)V@?QJYXmkt9@`SG*bC{n~f1VMUtJv&2-f@B(aV~>Zf`xj3P%J`7wrZVmMa*H`e5L)&{YPf3OO~@3E#M p)+yzT(>duWTQUZt0PrmK+KW86$=nv@Oj{_Q$Ou-3o4rY02c4xM}MnwgMqgF{qu;f-%jE z2KV$0>S3N12vkm#YnCDcYi8vmWcJ6Gbn5m%JffgTVEL@I6%-2;xh4cwOsAi;tyI_! zcIrcYy0u^LA9q|T&^Q}K1!V%|sYKM$B6`I2o#aV}!&1sNV!>|RZWGu&`DA^^bY7+; zU;;U9?X*_3-Y^ZjU7(<@zDGqB=J?=6HS>`3yHiUJ(6@pbALgN2ML8-;;6bf`*B&s4 za@FiWWU7GfOQX8&B%IUWW8n(n_h@#~d^ISaQ1V)|!-_ zs4YVmSeaKlPsvI(nyJ(xk%N=6BhXwo6A(9#4iZW4V%+B=aZ3e!{f3#zvOsiJcJla~ z27aa}+f*z=oew3b7g&_*zECWtN3~eDt=amvk+7byjku|xL111^$j!#)lo5;QmVzc9 znq`?(Fhb2g#o$fEjgRCkokmYAx{~M_dt#y zR*4O1xxr53PxGOW7T(e0Pi{O{FykDShhEzEXE_*=10RhF0fK#Jl!X)c3k~Z_- zgF_`ah==Jf$C3O`!C}&E*t(_JaZ8{kJ1U&X7|NW}!lQVs6p!F>)I}s2Ic&NyRaaD#LVd1a=T3oN-Wv z%%qtKeF&zkQjVx)Gw_*JQgB>g!6YK2t!%Ik8A%^3Fx21-HaGPVw-&agZ8udX*cdY? zxwVi}84+l?!%>!1YIAR$Q$DD8f*Izh-!p9LmWrojL*0d^Roo-rJa~4}%HZ~$g465? z{dh`?u_Rx>E+3x9i_9_Yba5i6c-b}cihH(IPli>z=AOMSpxvfdr;dg-qMOZr$ZJk+x~2r(FzWPTs-0lJxi36$Wd9Yg8V4;{)f` z65`k?aeLi~v^kHy%i$FC(l5JOV8?_hkuB|fOHY0*a@VQ8jU@?E)?6a&>=xXDLMlGN zd0Bd&vL3@+STz!$;(|MaKc_-6r{Jv%Nw&VkS5o6^<~XCl)x~WO%6A)4Q?pYRFDUO8 z$4_~OVd`BexilWo`eM$_#ak)XqgjUh&K#EUP7WXI)DoHRnvO|AClgsgHDt1BoI$H| z?)bXnDJ!gRH)6Wi&n$Ymt#csC#f{HVetA%dVm`U>@#H(cwWEM2dNaE8z@ttUB?0kRh1+My+m*r zOL;fd@sg5=YUsmH#1e;OwmyT+BQF$}F;Pz4BK{X9DTy>von*j)aDXokgyF8HKXLLL zibik#a}{cD(>0tN!;|a0wca$IA^hjkcG~o(M|zWG=1QHVlvhqB zmmHjSz5#z@8lP2S>;k-(WR)~s!51E;$=6tkbQ<5}a^r=kbk2lQF&R%BrMx5OBgvH} x<)D@&POIZ+{P@->6?rC6%Vhb9a4#eA;3s}n@u@IQAGiZ>5cp7wpLy;<;r~v%JiY(` literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Field.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Field.class new file mode 100644 index 0000000000000000000000000000000000000000..ee55e49ad6cbbf98e4a7d35bac11f513628f3c76 GIT binary patch literal 3222 zcmcIlTT|Oc6#iD0k?lBKLy z2l|qSHj{=QKJ+JbI!(_?8sP++DW1uAEUk9;eCM3+d}sHse}DTOz)chwrmX6& zVplA4SF2bDT2(74s$Evf`uDo2I91iOcdTkzt19z`YTJ2p#~NJJHKQbfG2A)5@v>Gf zXjKUzhV}q*Y+wCOWw>!_I0n1Ki;5;8#vt+$K|6c8Jvh!V zv2<$89GTzMP2IW2P)W65e|i%?joipa9B0uUg@7)iqXp;nNF7MTAmSXc!s%d`ZXq(a zG@O#MD*%R>7C^iz5z4a`Qpz=PXy^qJx~3^^h$~h}BmNlF59?x+*Qf)%F{;relI{*~ zDu(p`50dLW|7dA};eHdNlbX0r@VPjyp)ZOv=x0bZ*7kpzz)9PdYmQ1(NFc3tQBVt7(Wxhk{MedRs}{9I-O%V*5-4JTb$0Umj7AZVA9T`li@rXi^$@+!q%*%j zPG=91{Fy!lY}2!yFA3cU3+E9Ndhj*PUGui18|UeZ3|&~}j(Tu`EIIr|AO0~p=kSqq zCL21$dz8@vdhi&ZaFLPK5{<$<%Yc>bfR$~Z6~4Mm`$8`7D?aZAVR1|Oh@a7f5B$m`-tn9aH*h^h zt`*3_c#uAj2wW!u*NMP&B5h!`Ok5{Zj9pNRNe4^$cp G2>%D{?l8{) literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$FrameData.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$FrameData.class new file mode 100644 index 0000000000000000000000000000000000000000..89d46c5eb2be0dd6b56c3130fbc736715fd32324 GIT binary patch literal 1582 zcmb7EU31e$6g_J>mSO}+6cb8;5(*)VNm-oONv zLFP=_q&3=2Jl|?~aZ=SWiBsaynjZ{qy+_f1r|9=-o*rNv53xpGQ{t8g_ZXdklEh`w z6397e32cR|5ggBuzo#4FF$c&qw{cQ{(|-C9M#Od(6^0*>S28{dn)J;Sa!+VcROFaS zgFp*8FmU9=%|7aX5XnD@`d?I*zfr+IlKNyypikZGQ#UECb3~9~25)7AuYrD*1ai)> z3J;KPE9Pw+zJvFicK#Qfr^Au_m-9}0h^(W+eFsZF(et!|1^MZ}5>`*cWUv}85UEs+ zi?Wu$^e7=Lv=!qc3T}K%L5)?XT`=lSTQx2@ZOyps{EG8Jpft-g{Eq~-PQD^}bHrAo Jj9Zez(EmvxUmO4c literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$InterfaceMethod.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$InterfaceMethod.class new file mode 100644 index 0000000000000000000000000000000000000000..5a4d570944a6bb5231a9d620840c9157739d2dee GIT binary patch literal 1153 zcmbVLU2oGc6g_s+rtQL3+OfgL$36<$x`_-XBt#Jss)SUjg9p$aCwZ;g1toUnWQ?B$ z5(9|`egHpe+I13msP>Y+*uK{}=lI-v^Y`la9{|tsgyF3=6F;76HIY+&A&ngQB98nh z_!=lbF+#;-Z6ay>UMS+Yug1FFSBW%ZF_cF#InyH-jNxT*nt$jL!{UGPr=P_aF(+Mg zDvgT@!?VJVaZzQc97#*Tur%W^y|Pvr%KAdtPYwr#HM&HToCR_FfDW$%6(nyMraN;G z6^FDlYu(*r4@+3Afurf6f!lRBSZ1hBWbz?%_F`wZIDgl}3RdfIao5AGOkj<{v3?nP z#R+GJ%oZ=o+w*D;y4*jF8aeGp(@;iIC7L?v^z=wl&j*2$@6YW3d=jT2Wtsy$6ydQj zfsON|*H_g4bX+AltAEtzW+>kUp~NN?)uG>tN^461G#a+nlqrGPTGP5o(Fw&R+Lt?f zmuPkN_J83{Xa6VeU1I%vir=EOX}LI1<_rs*qs2?uru;^R#eF=Wh*(k$mYyEs5kZ)3 zMXu%3Ztu#SA6WlJ2M$YKu}SWxgkJVRPRK~$CU9#O?A-w7XcPGwz0gGsb*D;lH7t;T ML%S7voIas^4bKoPY5)KL literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member$Type.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member$Type.class new file mode 100644 index 0000000000000000000000000000000000000000..e2934752d7306926eb05bf8bd695b0d3b6e8186c GIT binary patch literal 1353 zcmbtTYi|-k6g|UhVcov4t$q2bRH3bGTU%p7t!Sl@1WU{!N#m!54!F%SOBSg5ue439 z(P;YFKT!QM#ybO18vUXy3A=ahx#ygFXXfjVk6!?+;V#2{&##-UrYGvW>Am7U-#6`6 z!)!RO9bvY8TeNDP-{8Kv?b@wYUevtAQ{Jd>KT&$qmv%-OWXq&Dr>Sj)K8k>cI zI5S%rhT-#+8bY-8%R*Xa8SeeBjs}fk^`EOX#26yo_8CHQ05Z;%o)jN5JQ%QThVV{4 zS0E-WQGQr>p0gOTF9s%!9NKP&w-_EJQ-iV@7{yo&0gP)HBfnMG6EuSHWUB876e|b3 z+Rhlbgee`9n5Kr5hhmMvO76lw|%UbN)<`!&zL`5ylnTOkp>u zllY%yw8NW@aN1i8ll?M1^Z8VnA(%{+4b0<)WLqG%_DhE*9^I_Esx*orou;;6U*3dlUsmYxz~Tp7Jw-s`1LyE-v|@BoxQ6R0Pje!aR9r=net@>P zG9?svI{Thco2C`F*A3LO_hQT1hHr+Vr^Y*0Rc$WIrKSm^)& literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Member.class new file mode 100644 index 0000000000000000000000000000000000000000..733045f71a55292882aedd4835ccafab8afd5909 GIT binary patch literal 4601 zcmcgwTW=dh6#m9u$4;_!E=@w4v`s=Tb=Gd(hC6{YB_R-+w9vGLrscA6HqI7b(%p40 zT&jWu5AXsKAho>kfZ&A(kVrvDAb90BA;dW|oAugRq_#+?a%N^{&Ue0Z=9@F4{`vPW zzX6!U4S~n2PBHIpRx3qovwGEXthK!9mh)x%nqA3zj#+Wnt4`T+^0Ot=br&k@)zKxZ zylOc~2!YN^<`pwvGAqUWsnttX!Al}8kPg-!=6Qjm_v|Ez7J(M!N#N;ww)aVnp1Hnh zCDAINagQ2LHpdqK6XKLWTUln|q**4^?!|f@mOaO=6zePIEVn?*ZOR=d$XXK+D*~YBZ7TaHWP1%dWL&2g-XrvSG{$~e7d6{?O&w)1wyEK%Bn4@))ATrClWmRiNWT;tAD zcE$FlDQTJe4svSZoDLnkS`ouO9cgrM?|_a@)f>{W8$JB(K^ zJ@UjNwcXPeQz6lYj=GX~62~bw*5#U6B5J*vkTX>arY2T&%wnz$&)`{k1WsFJb90l? z2>C_FzCxPjDBNYw^lWuZj<32@b_yObwOwED?X=>0#oMstB3gge7kjH~dE0$0L&_kY zwma8wTy#93vhw zG5I%j*f3cEW!f5+m+fwr%;5O5%IQq-}p9g4~4=yKQlWKKX=oIB?k) zp=e|7n47{C>M3p=i+062S>vngj4GMki`9ZzI%hgIkNuCkNQ#9wmnctak-ku&U6mJ_ zMcdxCT&+0;Yu+wd+7QL3(LLIRZZ4M8>*i7^TPl>YrQ#@CDwov8xLV1UYL#qBnzAJg z%9bh@wS$D)j{yi=qfrelWCb*ZaGTpgj@!dqIQ)Zz zyiR}nkN`wC_K4jW5UK|m9cuUSnaO81>M&yS69U<3DVbZ5y5(Pp)yOGTu>eb@p zv<}Yu46zq&qF(|&td<6V?J_%p&G8V$&FAL|#|DpcMz6Mokvf}kv=WEYzB_@ZB8`n^<7}ky(~-u*&Bpmi5CCf?0Cy%uS_ih^%^j6&w1lY9#q*}88fjhmFu_d?+$gK(1a z0%2*aMT6ybfPFwXoNbzQ74;`Dvr*F9!4%v5q2-^4!RA)isa`)af4 i*CErmZyLipM4!)X3`wN46g^F2XrI}GcjLzN literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Method.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Method.class new file mode 100644 index 0000000000000000000000000000000000000000..795a403b925ed61b423c6f6e1499b5291733c02f GIT binary patch literal 7538 zcmcIod3Y4%8UKB|n+yp9ga}DE6rrgko4|sAq(sq_h;GfHY=m<3m~4h*V0Sj`Y&cr2 z_Okb-y|DH^=s{aWARHc`7Qw3?tyi_JJ*>6o^YpLwd0P7WW+t};}0%kyM6Gw=8P z-ur#O_uEJQbL>6<7vrx2O{sKm#OhC(y?TFYm!8&pBAS(qB#qsM8OfwI)7qL!C-rn> zO+vG*sJS&&+pcH&QauX91kuTEJ*^-pFxBI^c$>CU6KEd4GHcUXQg78Vnu1b+rQ>Fx zV3I(Y$3>vDU6%^l57JJ7%f`)=E|NTIyY}?!3Z@8zZYs$Uw$OMA{51 z(=5Htg$92m}(HgOd;xm1QRl7uB+4y;rU+JZWX=GLl^w&)Q zKYobo#pe3;DrTap3<1nyG$tTCms2(7lp}<>Dk?Bt^1OhFI6N8(E@a50vjkR6NN<@q z(ql^~LMt6dhmMmnCp97rAOK4`V)8(4$ z$MRlQw(UU`ixDZuBCxjV{Z;mntKed`9!t+S1~cXAY&R{(3hAax1g6<}nN>_dlR%xn z0HSko9=oPFISUA@1sJSz>T{h%P*_PZ^1QXScW$4>d~#ZiVla+NnJF%6|)gXRa}R4a$iiKuaJ9-RV`nQd`i@vERT7eq!w2qpVY0ok$wxU<&cVEHwlLu0;O{PyqPiq-DuFS3*nP^dWjR}`PvK-rC zvI?`t46Q5Z7f|{%t3%(Nv8~#qA`NRYc7X38(Bms+$Fod&sy!VU=W3&VfTe4B2C6v3Cr8 z5ql+@+qsu@(6@%^X%_-h<_>&WE`5cSnHzBznv(-AMdrY5_?pCgof(_flUjdQii4RC z+O62(x_lGglHhMsm$WXA&aRY-eGc)vPRN{jMaB0W-G0D%oIZ^v`xAOnH`xwU{1CTF zENeRY;6WUc zyAIQ_hUIN)AINB&8C4vCC6|wK4$4`!d8jzUpo6c7(^Anc4)5*-|wvb)>-=rj{8qE!alSrn(UKGnOZ4^hqob4`8`?5bMN4 zw(()d7|-~aXMD^xo~B|8GcssL_ie5lwz+Po%DQ1uh+*Ck9!kDIj?+(3{==vcr!iBU z$&p*-$*uC_R>`XhoepL{?|2gmDn%8j!^hw-4+pSe-`UfRcamYqZXVMR{5LAt z85HbT`7g?p4dMchXAsZw=gH@oRL`SUyue>MUgQ<@C0rw3_WWGS=JgSLl&mVyjE~_H zc0*|Q>~6PHj3*1LOg6y){zUFo{O|1lIQKhivMo9d@|}#rC-Eu1OY0+ilMSdO%+4pZ zb`&g?MDdEPi0W)`g*r?=P1#(s ZekO+|ait9MFq}%tv@2@x7rQ-_{1?U$9t!{f literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$SearchType.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$SearchType.class new file mode 100644 index 0000000000000000000000000000000000000000..1f151bc5f2a1419ed41f3a59b970e5bbd344610b GIT binary patch literal 1292 zcmbtUZBNrs6n^gBx|KR`AOhkG6Lkfo&X-SHkcD8fq}dkAmY^TVWn4x{cT2hr^lW=G^m~=XuV#ZGZgy@*TiaJYy*OLCfkK`?4jD{kI|z`xfuC zt+xBll~y<4vUA`EZ4p=-9`AI@^1xqo1P_{r+wYHs2F6gckN63Dx-!N?fo&Zsol~i0Ucv%e7PhH z14chsrh*NBpXA4FSBgrny(fZgzUPI8{3iDrJaAP!*i1QYOY&|nAb?SpQUqbo>WFp6 z?*&cq%Jsy0o`mA`$wt>_l`cRlNdgmd>KG{#Lki=V0K;R7vb3s8KSkyfZeC#W14Rt0 z^h|`g8sTR!JHS6DepR7oB1@k!e}Ra?N3P&4+A;bl+{T?SPje!aQp_VtH=r#o&!6M| z$1puCcUi7sQCY{65VL?J9$;Z$q(Y6TYxOH4JDG>kb38hO83s$SFj$Fyqg3=1rn3_} p#fo!=j8f}2mkv$TX(+EThZ;qB%ITDikWPxm)>nLy-Ug literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Traversal.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo$Traversal.class new file mode 100644 index 0000000000000000000000000000000000000000..a9626def4934b9fb58f321d79cc8eaa7224b365b GIT binary patch literal 2495 zcmb_d%~M-d6#w0P@IrVL8e1%tT13<&l|~TiM<^xIpwUOt@mLASa6=$j zcgu;!X5A^qBS+Do3G}y<7nnb?i%HYA z+|up*r<=Bhut2!O3k0&cY+B%QPxTA`u9)srEwe%_jIQG4!K!{zD z_}c=44GcHhISDKrBY39zmu} zQ;lb`Tabgp%={)W8AcE<$%a}r))D!y8PS`sIF;stz<2w@v{KLXl=_WhSnnH>SV7?P z=rMeBhU0(8V5A!?v4V~mUX}1p2@H3j_i)pY&=J82IZD$yp1~=(dtJwAjL6*_ThhE; z;mBU$XdV4^=oBb0P_mpB&ldZmF<#ZdvfbGbqI5j)l7;3=)z+XeMj?bj&XamC zZY~)q(@dK;b6KOPV^NkkfRqF%9%iviItD!`(jg2nVZJ;6+UR)CQ_tua@{~RZVOYno z$7Dk|spF)_TqkNv^;@iR$f!7WcB{5-yLoH9sz$qBvZ@8ktw_El95kC&>5~;}v&HwD zm9k?sw_F?9 zn2nDH_i*WF>iALMItSlV7Tc%6r{Oh0!ruVo<|&U4%c&&4Dy0zx+LsLY6({~{7XA&+ z<6FoS;|Opa#~TVRxs$;8l}tkCol5Y6_>fW`F0iNw-sCC^Nsvk?g7Jr#IgG-66~aRy z*a{)=7T)e+Jo}^a-huo3nE}KOv8fK9uIkQNmRdW|( uvX|aWc@1$1<6TVRGlKaA4AcnwN7RWBWFJE4=X4K{>ZBg@eiV7`L*GBc<8G(` literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo.class b/sponge/org/spongepowered/asm/mixin/transformer/ClassInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..505f12239943bb45dad852088e995a37e30588c6 GIT binary patch literal 28956 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 vl? z%|DV{L*t72P7-L(zrtXX!I+j?F~ZckPW$GOF6X1JC;)Uu76M$P4R6pTR+ zc3BZcy<}CZmUMK_&plo>YBhBz%y7EpYv2FH4P(<_xD)K}s1WmV&5EL%A@>6QqKGl{ zwy-Lv3od#L-%zdg?ocxE7ifVO0$>VCE*AvQm(^$|0jL9 z^imjI0K>ynzJuSx#(!Q8drBbx8hSAhM+6BC8jklMgcFoZcU?FP^BrOym5W~_%4evw z$#CdYG924fSzWN|c8N1wNEMVs^@<_O`hsf8Fph~hKENbHk5ex?o(35P zX)}oRG-lM>wNOLny8D4scw`-)klcXeb8&&>Y7nZvjM@{^W-}r9X`aeaR` zNouGO`lBIF>e8TDnC89cqo+-)McNJ1*qcf850C8NrOe3p7<@vO5FBOqcE3gp-_YrA z;gT)cJb{xqMJx3Vb#C&fW-3OA=G4{w2w%~)s1QtLl>gT<-{FnK*>D3F=CX-2tp*#& zHgKhZYuQAuxxV2K{dxmakw*>OR=W)pTDZ=jn|$uj^9KyzN1Vk|+{7*>@so!!(~P-~ zaSF4T^Ds_fo@OCBbp;>dBQGCREg$V4gqE&xtPbzu{_+kU_)r>HO?*O+20m?|_$5Yn zVJ`dV{WlY9v_Gs~T&G9t939!g<6nq=b}+Josv;3aot|A_e-Q$e=aXL4Un#f0VG6&K z^%++1r^jWqiD;k8D#m;+tB@WS!V8OLs*bI8`u2<1rey$R0x1 EKX%3|(EtDd literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator$InnerClassInfo.class b/sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator$InnerClassInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..c078945c4fe22118663be6aefae4164ef80e822d GIT binary patch literal 3486 zcmbtW+fy4=82=pzSrV2)p`}G^xmb}TkhQc`gtlt2)F77%h!%QrNe<~kvYYNMH+@w* z%+}2X2$?eIU?l^Zi?R3|&FO|+x=DMYTF~o!M za>kmLw(@z)bhHJY*9!%1D`;dmU&1KjCO7nLonayvswQd*!VITM*n%I!SgnZCP9bw? zmb;IwjDiTm<+`O6v@nD{2!@cU=Q%^ij4)5j>1I}2bZx`TPB5sJZDb8o&&|m@P1X+i znBmGytvY8#zyxCg3%k0VeXdx%d zOj+RT3}=R7)uyYsgg2vj1A{8gdYXq+bmENA9A_A>%QYtgq+pogG*R$RMQIWd6-l9S z1e%I2Pvd3EJ@>KUFwE5K*HY;e%d(=}DM1v{?qx(9?dDIUaI-k^viKT#rY<}EJdPBN zW4Ku_#tC1E3OnZG5pFGFm!4%TZ|%99JQW&>t=?kjE7hueJ7>95)|Q#My_@C**RV_l z?=y7DTZW~j=F47u_|k6ZaC_TGb4{kxqW7R+k|9d0{AUL3r6wQCr^*2)RNTf?6d&OZ zLn7GUfr1KBWCCdxrl+k8ziV6DMn?3Xu~${vDoYf2dOSRNAMGJ{8T3dFSPZ>FmK5F+N`sNCwL(C%D zb%;qMSDHg|rKuoSniF!R?oDe8{hz~mFgUc^C!8i)6Y=Nhi6;(mAwGPF-uTEN`r{)< zcE@b)1_f2ZpWaOrmd&GdVZh^!!jRU&eqM$rTG;34|)2yqJW7Tvh& zslXN5iNA!T%;ZjxZjd`cyHV~0abX;#g-=tXRoriiKf{Fs+IR%Q@-QuxsNRL5l6L}y zdn<*rfx_=%jNpWW$~E^_3U3AqzlZSv;Y6jd6(~FrNIO<3>;wv54-_7)6y6CGzJZ(M zR$=oEii7ZW=O6g^1?Fh%JVS5j1r{4o3H5auRHyIzZ4wO=)CaglFjUdLH})y0BG-}x z7fT#rbsraL+kb>d!z1m{Bc#Ve-J!n`5t+sh;)&sr=g10;jo6XDY*6N1mxTF-Qu$lT zweP4Ho?;N+ODZDQdg#q#7&3>F#e_)G2U?r7D=G6&WL**)bSA9bM9!yKAnM}XfUufq z7WUCh+Y1LiZU1@nKt|M~7D7XNTN$?>h{2CkkUtTZpNZeEl3SODTVynVCz26^9T>Q( hO#iLS+f6=919pjQha{~~K{it(Rnbbu?9n+@_kSSXefj_Z literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator.class b/sponge/org/spongepowered/asm/mixin/transformer/InnerClassGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..164bbbd1c0b92d10d1a644199f0ee36660540966 GIT binary patch literal 4934 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$ApplicatorPass.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$ApplicatorPass.class new file mode 100644 index 0000000000000000000000000000000000000000..1cfb21d373b76fd077e17b508e03211f9dd2cfc7 GIT binary patch literal 1469 zcmb_cT~8B16g|_gZP!JxAOhkSptMC;P|$}Gq#-q_DFt0@LVRJ`E_KOvw%KmcpQR-c zqtWo}k22nw*3d?Mva=7f_s+TZoO|bHe*FCM9l#?zWhi-m-E1{IQMa4kJKMKwCT}&& zhV$MLX5e$tI`;gA?VG#OlWR6zr^*A*w*oF|+^;QMy7qairGYV2iYNS(n=Ti1GcVeW z&EjxLvRhe(tAiXGA`G+t5V<0;4A1^kh6asz2McD1?B)t3hW%j|$&lE8l`oWDtU=I&U$&d^3E?*eQ40c8kGErH7v0z*USU5JFPJC_}XBdctOyNTvG*X0LK$ zSA(p9>zLFrfg22(618{CP)qe8t-yCgJ)0hW7dHB7c3hh4?B93?Cy*ph%T&8n+Hbxp<%iMRQ-E$@^r!IKV z_6cAVgs^?p067!7<+c5){oHZw?Nwrp(jyYto|Ym2+KFH7L=BA1$lI0(Brt|+U|1t- zj&`~94#q!W>H-rV$YS&u0Wo!UMEGgU^ziG%BO~-=DDxS&E)bIV&;b51d5kU!w{b_E zQ}YNV8P^b|57078v*%d&sE+&TF2gn4m(sDWFms6Gff6j!*i?vIxvvNvCKto!NSz_0 zjHQS&mX)y*RmN)U8{xtoWURwT2g}xBw1ZXa4C7Kjx89^mS);3Rs9u3Z9FfuuI@bvi RBKpMkR8LG8Pskra>=)06fv^Ao literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$InitialiserInjectionMode.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinApplicatorStandard$InitialiserInjectionMode.class new file mode 100644 index 0000000000000000000000000000000000000000..8efaf9a19ef6615cf9bb6b893ce7a141468b2588 GIT binary patch literal 1484 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$IListener.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$IListener.class new file mode 100644 index 0000000000000000000000000000000000000000..a0fdb42c8f594e9f081e131e96ed1be9f098819f GIT binary patch literal 347 zcmbVI!AiqW5S-OEX=4>Xq6fY7fr1zDR1gA{3WE37x(Tl&`@+6x{WcGNfFC7pJcw7l z>25>&&bcAY(Zu*#yVm G>i7%Ov}8vB literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$InjectorOptions.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$InjectorOptions.class new file mode 100644 index 0000000000000000000000000000000000000000..db9b596c1433166d0c4791301686165d6c923e77 GIT binary patch literal 918 zcmbVKU2hUW6g>m96kGwps`dK=wI#+$?4wN+C2G*MG(~wIVAxKxJA<>cwfe96(3tq( z5Aa7B?*K^^-kQzK+&TB0nRD;#?>|3(0eFEehPJU0PbWr4a$>$pD@RXZIdsN$Cr%li7Qq;5N8(uUSm=m%2R>ayp3r|}&pm@-`vNx> zvC2?gxR#+Yl4Fs@?m&LYl$CuEXOe++7@mbglkmuxD3&}*jpjmYr<2OX%5M1mppyO6T*X;m`Zst0 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$OverwriteOptions.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig$OverwriteOptions.class new file mode 100644 index 0000000000000000000000000000000000000000..2abbdedca4c34344440bc1371df75e99873751d8 GIT binary patch literal 712 zcmbV|&u$Yj5XL{J`2!))Hb9}20|yR(DlEYfgj5Aps+2YoML8gGa5j@=DzBZ|-n8Yd zI3aQ10eC3H>^3SCI8~Ns#^2a8KhKY!-@XHQfrkojeaLm3dzaJPpHQHwHnGqJpR&^_ z7#C+g6cqG+r3}2AasGI;pl}j6(P*C7yV!wJSUWNcqpfkd9!-uYOC79;`p3KH)eVK0 zS7_NmTWbB?S79R)A_3gVGKz8EPkF`^qJsLMuszItp>ywZOFEC;qZjVYccn{QP|a)U5=3+0r}CxMAv-!KiwTAIW@1I@4}E6r z*vJgzycBzT&QTax6C(*>_t2Liqg}RyM`#E=!~)mRg^XUJ8{(_oi?}JrTmMU}N*>ks w#ov=ii?5W{v#+@QMS=$Ii*489M{G*mJHLQCxLfBRh^<;S(7`oXTeaHy1w9|co&W#< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..4660685ccec6736cb1455383f70bfee2e9abe822 GIT binary patch literal 21742 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$1.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3cee96c3bcd5b82d35e94d4ed6697f0b9e7b30ab GIT binary patch literal 1353 zcmbW1-%k@k5XZk;`oq=}Nc>16m(hPI|I4p-O!}vh;QVd~O9e$aQcT4#TSp z>pX?dVZ2}d;5deCbfCg=-1duWr%q&7l~&Oj!;Al@-Cf*sFo{wgDO_b3tHk~kt`(5M zb%t~-jp6ylg_V~{T1Ip_{t?5ovy=^nEV=UD;3iYXFgyCb`(-QPpHuXP$AhKah;a=RNe zrEQ3&PmxmHw1mGWtcv|4=xk~&?O=8%-sqNZLV96aGCDAAhWxJbw1~Qv2!&nKwJo`! zd`ab`s6Pz!=8MI+ee}mMM&A^sDY{738fBztEmUjYFjM`G8(+ywp-R75%E8z>)X1JW z$-+(CB9HQWG)5UzRKj{mYs|{jj&c7B8N-+lLzv6}lR+5|NZf0}EF_o}+81N;)!Hx2 s9iws@b)v|jbV^E4X*?pYlx!sv6Qr?7>tp)TWM9D&St+WY_tr~)0Vw@$Z2$lO literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$2.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ea745e204cd1846947dd46d003e580f818cad1bc GIT binary patch literal 1533 zcmbu9ZBG+H5Xb*pN^47%(jqfm zcT!ot;mT`j;|gPK2bL|>)VXpTjNw)FkiX%U!K1hUpiJ*dVVE^F{BtC{VzI>bI0ZP!ZF1B z1L@`FsnNsdPMwIYNhSSthUI^#y;9guVFH;1A~?@5k`MGOE+jFEiww~qHHM|(6U&t; zwNc(`Iqw-}^MgYa9&%?m!%1UEP%oczBb3juk}nJwc0;SCw5eIwF`YybGYn(Lv++VS z877JNdu+p?Dcr=Zz&$tYP3y*sW0rbqgv(pqo^n?(te#TwVC+-V$)k|O9Te&Kq-wS4 zBr=0LPn>CZyZd>e>5rS*EjbP=g{!!hq@FKOk2h%O8OEzpiJi7v6K0Rs9I|Apy3U<_ zZe*Z`#?+Ql!u0Oj_!Cukv`6p6w(t*hgIc&NZN>ezAwqIjw@qDaN=IOZqK$%qUZ!+9 z7&&_0M(E38lB|m)t&>ND)?~5t8B@hCxb%^<2=3EAMm`wfSR#3<>xIj>LK^vZXpB6l zsF3xP*a0hB{Di3^+~_X1OGhYuAag&o(Fe`;pjq6-JxcX4LFYo~BJB&HiDKzH=8sT5 piR$K;B6o5MQBf?DmI=3#h;hm|P3sDMQIgMMm81w|{GhX*`2}2Lr6~Xa literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinClassNode.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinClassNode.class new file mode 100644 index 0000000000000000000000000000000000000000..64c7ba42ecf0d2f3241cf3e059e71d64d9061cb9 GIT binary patch literal 1952 zcmbVMTTc@~6#l04Ld(jfK(&I37PT#xWfP|lp*ad+1(X{r*(Gl43(}J{SFK)U%@qyDS+w#z1jdj&7^Nsy2!nHdS9AkI za}{fF-Pkl3W)4pOuZRWiu333cMUY{*ZkP}n8CsN_8rENdRnZKZlH!Fp46XB0w_bKd zQJ)u%n_;-W$2B=$w-~RmH658L!VS7>!s#7i7_A>rrcVk}xKj)wd5rvHq@j~K?1srm(z!lq5(2-mxRhH^6NwN%kC z3;L343$u_pis$kEpu_aY_v!I1OKQs|70-@!Z~Hlq;yFmFYJmO-LKu+s&F2|9le@s~ zuB`K%n@K&=pkt^B2@F%48@U{Js8#%?QQ{2IT?v)a(SLdFL z6_!c4?FYyqXs;<4`VP6&>X7p)DW?&YF}ze`@z0Tu=FGe>`C_@W!tHy;N>RzQaz=64 zu!Y=LoLbg2xvho|CsmOpt8C}^Em7p?p`P^9at*x@J$@Y`44N>~u zpxqrb&<|)#_eI-x5c{m6r|2sm81S5``~o-0>ha=m5~pZK848anD^AEhh1*fVeL{PQ z8%y_XqbuFLgR|-M7o7iz#5OM0SfWbpOBx8Ti19T#@n#oWtjZRvvc+%-mlazQsS2A; zt5gyoimp#&_#lrERL*w_Q1b#RfDCE$kw=!`EgdC9YvMaX4<$fX|3KUy5A0xYA}BS- zgI_V?!-IIR2HmVq_Z}ViK$ZEZC~kW&Rm};El2WNFfh!mzQPR3fmaI$y<7COZO5hr< gQw2Kcj1$O^Y#*k{AEh;fFx5pKD2ygrXOtcI19MLYYXATM literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinMethodNode.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$MixinMethodNode.class new file mode 100644 index 0000000000000000000000000000000000000000..81174cd93285e8cc6cf58f1442546b5a9977b43d GIT binary patch literal 2932 zcmb_eT~ixX7=BK^mTUurK(W!P)j~~zbosE_Hi!i(HkA)G6$R9B35RfMvYXjGu`uI> z_uhHuFYv|-ow1d1MlW^7ALaO--LP4b(3Xxc?4Etk`#$G+KM()>`}>~&X7B~Wg6&id zw_#gV-mo8VhwmDuTQ}H)^I;HOkTv zR<+2Gko&?Nn_`$0PKYSFRw87}OImD~yA_6{E2@?$n-1ks z=LZ$ukixb|b+|_`82Y5`XP99mm+uZ2!H>J+ZXaG{NVltEedj)}NDX5tT=ZSMa$?`d z)Q}^tsufJha3j|ZALis^7JHCLp@0b;dAv@=Tjg^7M78R|Em?|=?Jz`h`7MU?q;xD> zuq<1eDhSjtC%$y2z7DJ6fC!RQU?x1sQ; z(dkBDtKm9Dn<#DwSM1by`$&exaFCX2rt4BbdgGr?`6h~r+MG}M(31OH3aX9Ey@8ri z)QrVL$t&JqdWS*VH{Io$StZ|2>(=1(_K+%;@>?k^U{S{{EHUhL`7$>VDgiS{jM0uj zasJHyGF*9#Uu|et!!q?mJMIkivv?Px{;Y|)gOZN-aF@!s?Y#%aaIF*nse;8Y)M-ca z;b!lEbXKG*on}QEey320s*6g)I>Yy;#l=V92a;PRqYu0zTbI+u1RM($fF>4#9Bh+_G z*k6`r<*QY*(fS@esdU&lR!o-L12|Q(h^3ccP9s<^+fAp!mqm@^5;bUy{-1~-qizWx zomTe}Ns@FW^<#jZ8}#)ZH2MXyg^7nq7cxT^C$q6^Je&9pBZbL_82!Zq`GlSs4{(z% zwJi)|8yD~yJ|+1b9{|shMEzvFgP6C<;(4N=WG@hjsJEht?jdFIBCY6(q}`YBG7?1T z5?*N$TcjO@aUpX#{s+c4qlI5FTHcJ&>$UO`CV!^A2ox`62Yl&qN%=M{E(})#JcD+W zUR>dH8t;aTgN4kEM|k_MF330{{U;D>A;iG|aXvttX(9F%hSE5~ZN)AerbfuV zFR-VHPFl*-6?&_LB?=QqcwfaS8uCYa)}y{g%Ub!pf;IAEi?sa&D9I{Gwn-AfyR@Qf zj-Kj-S&}H9laz>b;Rxlj@i!sk<4i`VP(h`}=wuCjwEmp_ HB8dM7Os@N~ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$Reloaded.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$Reloaded.class new file mode 100644 index 0000000000000000000000000000000000000000..9f6d0064c352eb2860e68d10f62b8bbc462fe9c2 GIT binary patch literal 3021 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo$SubType.class new file mode 100644 index 0000000000000000000000000000000000000000..9671ceea5675d3d70403cb442c9d0fb4e7339663 GIT binary patch literal 3957 zcmb_eTXPd-7=FHO+D$_Wr7eeoNYn}?6e4G6YX!9_2hZpV7$Ox*0ZT9Spn)Umv- zLI~6!(vE1ctY!|x_VgXn)2@mtftlsaE9JVtswrzxQ6r!hRS9gJvVfAAEnCuQ-Ek~i zMXf-vG!p2ZzR0-g>UO`DCI(@F+Vb!}*_m`TGo#rV6|-n(X(X^=8g{yxOWPU*swv0S z1vXDzh!?}|tmZhqR)*5%l;T>R6WBOevECVvJw3WRXwk{}Q(#5;w2B1+HNFTs=dn~^ zO=7ZUlzG`fXEf8ah>l^IlFkARi7_%KUE44RxNDB9*#o-UQ*hj^dPShc0R}0fyIOis z&(Nk$!!+D3fq3gQjG3tTz_NV;RjteRh0%f~Aq22Aj77M=77CVyu^18ATOP&(cu@9M z2n5_g!x8A1y8cqC(A|K+3>T=Q%VlRNbbjkH-^PM#WMkb{Hp^5ea6Hj=m!-~$PIXB< zJ&ebRaa62h9_hKfdn{o%E@N?rR5{lX#s+K*VLdhp%rcy9MeLJ>yl#6~9SGwgAB{%^ zLWYyDw2ao5Wn^a_(XvK{iIDPwDX^<`qIHwTt<1&_8KfD8Q${L`t>_G4A-V++#CGCI zibaChc}J!6$)zGrLng~ychI(uN^hK4-1OY>xV(KRt>{CJDRZUl1t9*sJEgjm7iCelMPoBA%p@h@TP>msu0Z8BR`f(}V5wGDUwQ zhQl6lsn^ViQL2;darT*UYW*9d0)fiu%F%!{1| zro5y`rOD=#cd*ic(uK71eX?$qk1-$e zcqs%G^kMz9eDLlbH-vf=d`$d%m)F7UQUZE)JgLj#d=x{n@*U&lF;?Qaq~aCQ+2Dgo zb0wa0?>HMT&Qri^czp(5#TzXCV**O+Do*e@IH)EA5 zPUDQ+_crY}oYK=TjB~O|H{*N=btr@ok`C77yoZTE`_#d1@sVNZn$wo)YKF--lUdSN zdaeYzNm1Ti3B%NT3%NesPWjhUL&8dH*?pRA$Z>J9Hfao)np?1Wq>kiFAMVle#kFwU zGpP6B9*FQU5a8oJfF}7~V6REO7QB{k1#gA7B-UD!_>r&apDvvtS5ZGN!lDI=*ON9>v9}s)C{t=)$vtvc;7hb$XX|UKk#ph~Pjc8_FG~K<+q0J6 z4s>!w%80R*GOD9rpzAYlgEZF{@@s{V>aux{l@GTS4=YvUPySwUQYoL@j4egA-w_T1 zf>hfuwskF{@|B+=zUT^q4Lh!(x?xv)U<8T%oR5y6cmGZ7VV8T84Nvj2Ty~!3r#T>d z`}v6u#l<^>83>@N`kL_WOv&eC05GJgmv%k?C$*hAk(xJas z5gtMPe)8qW^{P&P^5t7NF3{6<3#SCGU@<#q1-?ad@4^+sxNsF};2Hu|$2+f$-d=b` z3aFC;-nl-4knCKP1n|9HgPO*_NH7&AN6Djr3RU)1=B*H;+*UcG2=NC3VGo@ps3nO` zA*7r}qjDB=lyg|8oX0lh0(L4Fv0J%>lyccaD?(-KFbnVE5_|Nmm@{**3-1vbL6kn` vd^_u?!hbLjWVKKjk|0Zmf|+dV+0JI$$n_@foy&F}+h$h7`zYZP_KEdB;X-3& literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..c6d111e22dec17768dffa650f711aa3dd17990d9 GIT binary patch literal 17827 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor$1.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1af1c3379f2be78c1216e9a6a1f20c00f34e2f84 GIT binary patch literal 1861 zcmbu9T~8B16o%h{en=^H1#zv#?}}~tSnyj*xPVA(0!UKA4OiP`D1+PGW_F9{h2g?q z;UDlqFT`kw#P|dJQN}aV3I?b_pkZ@ncIG|Ld(O=M{I&Z7z#TkhnDAxQ3hKUB<#qoh zmwd&tgPK(no5Hg~X?ww{FKb*{b82S655fiMJ3I({nH`UVF$^B9;EIYh?b<=GBmxoo zGLB9L^RUY3y1ijDJULqBI2>`r82al?tnw=_T;ri|N}k6hLoByEm0zAp;taZI6t0ON zJ4Uu=PoA$xIupVZ;UvRa?leNBHk%LDu9#m+q8rIBbRfkrocphhJvf&@1icIqWuIZP zP1@rWJ3CJHJ2t6=tfYc*hIS=5cTTn57Ts7bb?4l3F9>>6k2J-n5nD-c!B4jYmdbOnt%m-BjYLU}4LUd-9`);OuJyZ+v&hNYf*j_U_>sQ$Q3l>LTu_>6El zuF*A$&JRK8Xu3X@`m~B29`+9nw~Y*ND>(B%T?FY>lKN>1aB(gUkC_5_<0kr0`K^ zde&UOm&w2t(pQ-bTy14C$k}zuq~>l=q+A)eNl{csS=`d}bZS~0Z)qH(cV@;#z1G{SVUuOiM|ohE)jh{CDAz5C`uk55Oac<6ubI+NdFPak-#I0IuQL0{rAn# literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPostProcessor.class new file mode 100644 index 0000000000000000000000000000000000000000..a5bb8ea9aa8b6dee150f8a35eb2eb8d3b1d5c33a GIT binary patch literal 9033 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorAccessor.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorAccessor.class new file mode 100644 index 0000000000000000000000000000000000000000..6d686302299dad06d065e84ecea0ec94fe29253a GIT binary patch literal 889 zcmbVKOH0E*5dJoO#KziceS46C9(-X?j}@^Ngg`9?rT1;Rt&wE6?55hk9HPXJg4nlz{EMhA;j4qK!a+N#}8M=UdaCr2B(lePB)<`;}fgR+r ni*>T9(=?Q^NFEhn2^9iKtYxfFwuKGy9E#Z}kOnsCS;&0?n5Gk= literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorInterface.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..90954b781758d36c09753ef9491ad2d05ab03d97 GIT binary patch literal 2923 zcmbVOYg5}+5IvWdz%hilY15{UC=E@Gd8m-I&=^9%4y_v?Bv4xD^IEIBDEw`13j>T{{>(UQA(sX2 z7YuYVTxlI<{1JalgzvN!C?~hQA&r@Fc@V641)|%-Fwr)OfnJ7z<52CUeaL26ggag# zqH~Vnyv98|WSBlJL7i6wtT7D?w2@xT+rS`0PsD(X8Am$dZHB$%(rJn46cmwk`!01Y zN)K6zcX!Vg<QHGl}Oj9#3ZBK^W zk%7rg>B+HjCGR@6S<=IH)m-!{vS9XNoQ8&%%R&|y#*$0*5!1sBM^zH(I6lLK3O-rq zc|ZS1*x?DDH-u zpIA9vYh^V1VM8^d+nj^jgoq-OUH!#Rx4K)`>Zy9x8NHe1==6hHKC{4W3pI z55=M*T|F1>EyKtTRMG4jX$SU*0z#W3EAS`+x{ zaDAYmNr4emSYzIxbC-)-#QmU+2)AJ0iCe62-6FSOX2SMhDqpDU>_i}=&NG^17FpcYBuOPz zl23`Gs>$5wVDAfj^9&R9+?Eu#=Xgk$=Jdu6u>R*!ep8y?fKGlHN|;l4sJW%0ST$~Q v_!b+Q+Z?{b_qyD3*u)n3cHkERy-b!t7%{TrbnU0>d0e2Z8Ga?Z1KqCypy7Mo literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard$SpecialMethod.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard$SpecialMethod.class new file mode 100644 index 0000000000000000000000000000000000000000..6b078e6b559d619e332819e3c3f9c2a80ea9bfec GIT binary patch literal 2686 zcmcIl?N$?46x}zOWI`N8Qww6%T7;SeA=Zz!7HSC?CGrtu5E>}eVR8+FlbJY~V0nnX zLm#091y^0|@^>GqtLNSsaiG+8t?K-kJNL{v`|PvN{rKb0Uw;R11s+4i_3DLI({<{+ z=|1HiuN90|qtLK^u$+SL8BXhw>ovGnm==~}l?= zxiuAx!JJw*HjIL8IQ2rwX*Wiu-f@=Uo5Kvp_9s!HFr52GnnS{yq4>X?kk!h zFm zy6;&|ouJjeh2qrxlFl%<{2pXUZWwl(w;1NLxp$ARp&O?<5W`0*PEmhN+jU6Oli6IP z)XM5QH~nD^=kReFXK|j2maHm|7aE}_dE>Y~49(QZ)u%_cRoJDN3&D=!Jzm8={(+}9^X3e%Kx z#I$AmQ%H*rOr{C-o`y7z2z)&SjiLW=4T8&J@8nS-dzcdl-)hhTgryXYGW5O;L0>a! z?o$;j8jc1*4^lWr>+x+tb?y|3W^g5`Sk-VW2(6{i$#C)CLd(vE`&cZVx`xgm(xM|* zx9X1Jw>?r)8K=%NbWT|gpJ_K%xi@dD+GNR0xu#(+7@j5Op|NYfk$MsS(8`X(J=uS8 zXr*~j?IJ<4-@mVb$>)m?m^ z`Emy%J<1D=(YS-#&oS`}1;%BPE*boo$k|kOgGzRA2`;^X^W*~zqAUdwUqX_=c9%p^ z$nQ0^LEI&Alu)L;q&OK;T&5U>JiDV5nP8Zi3CRQ%2V|ZQ8IMx7D4kFBwk4S^0wah$ zGTkAWpf6LT5A9fb3rz|%3RM&NXP7uB=%$1V1Wkl+DO7MR4E~AIi^qS7ST!>nS9USC zjd?k{uPB+tT~xQREa%@P;+gN|{Gps1$#}+;b1vtP)Oco1&ev1F5nOx=^Lka;!m?gX zY~i6^O>TkfRdoyN`Zmspz66Wqv}Eysw%S9w`V0(Vl};`bGgu)to8*@!&lpnZ7(ErL L9>){1$B_IBvf8lH literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinPreProcessorStandard.class new file mode 100644 index 0000000000000000000000000000000000000000..1a69b9fa0dc3df8e150b1d9d139ff501208200f7 GIT binary patch literal 27373 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%0AR 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 VATlYL46>6`SR*@$6fDGO^B)3^tA79h literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$1.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$1.class new file mode 100644 index 0000000000000000000000000000000000000000..211bb93ec0719bac6ead0a98bf7f8050b6fbed98 GIT binary patch literal 2735 zcmd5;-Ez}L6#h>9BjcDPHH6qLloUdV2_Ql#g*Z(UOd#$gl)-7H8Ms-?8(Sc+Jd%L) zRr(a^Rh!PV5739|^sJ;}(>h`tdVyx7**&}GJAdEV)t`U;_6LBQ*dVOCUfcA0u4>Dk z`&xRkWeUG*cI|yznSm#izvp^g>6u$vvfUTVt$Uv9J?;o!&Mg`sLhXNmGLRxn|J&B} z=i-$h+&QiR16e}8?=WE_2}7Zl#gonpR>=$cpu}Uyp6-tQq<`Y5RRlDkc6OxEGnC+nBxvxdjk-k}1 zuY_Z_B5LegvZuLFO+*^zSzYb9qiY?-#cE|_2abdyoa-}Zt?6?ftYAw99k&(g7$_5N zB@yPRcny3)IMJ3t%~gALo7p};y5Es*wSaT@bR1`Ko-pC6$DZs7PsU6skIs}Bc7P+> z|I~c+GJUwkE#Na;7)JpY2`SN)g!2O-52?29z)p1d5mw%dWg5zIRlxKh6bH=4#}i>p z?i0REG%`|G5;9$Vc@b_Wf*wU!_BhMr=LUb5Tf-0%IxHVGL6nMTqq8+4Sieo<3|59E zwb%=LgD-&DOa82__?yEQgsHyzcg^S03JiS76=KgGg~T|`&Dq})TPWZw+|g}!_bq^E z)qqZz{%a6i;k!dFnx_MZkx@Rmh8X!8D|syA8@^9!Zi`tuxoIo;=w-Jly={FCYXZ5J zaCU@e>v=3Z*$9O7VoUVmd7-Y9^lFaqeaW}dMmnH4Q*{O z-ZaZE;d9>0$ZxEca2fLrmr@B#p(es4Tdd3S7sxXHxA5%CUjb6Vh2)K=h+1|m1ehd_j93B bSj{2NNjte(#w4%n=K;TZ7x0kZF=YM*vr1B3 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$2.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase$2.class new file mode 100644 index 0000000000000000000000000000000000000000..36970bb1c5e2c240b32d94317c9d60b18f1bd89b GIT binary patch literal 2490 zcmd5-?NZY~6g^8@QcJNIMXg^{ElMdE#ZM?QFo;rzs$&^u9Q~7~OB+o$og^T>hYy0k z{Fu=P@OAv}csFTn)e@%Y4>OaGz1cnY-gD31{rdgW7XUL@U|6x8n&vibQR7YfHFtPb z)7^&FFn3I$d5$jJP1|X3M=MFoddHAmaU9!uQrBIcol(FTmj3~if(XOt@4l|Q)VFnp zI|p^3V2~lv37BCu42th~T)1Y%v`p`fR`jFs7q9A~YH=q>eaY}lTPQfhF#k7b3WgYl zeEa~CVJ-|Wv?$jU9A+4tH-+g@b&pT1N$NC97d5TyIi{!;in$Gjr@elx9o%gpw~@pM z)C8h9$`JMHrpxf);E0`KWoHTuiYhLO&q$Ca1d@DymjSOX{p*C=;+mg-cj*&aLP zd6%yMiS}~`ycJOr*Ks33XZKC&vdear1eaPf1%I^FsBmXpb|eZA)=8TaLl+n-*WZiUI2E@`}(sf+JwK zOH{`C@L;v!p}}c4wDp76nRXwB78z)nW3s)iG9Y^XOVpQS#+xW0k?L^ z+MTQCN0Dh^wsQ^8B^Pbq5fo^2fxJX1;`qI|9}gDeNDx!Qi)qRtxaR34X90KV9zg5| D6)ORp literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer$ErrorPhase.class new file mode 100644 index 0000000000000000000000000000000000000000..5b7425659e2cbb26b613c2c44f702f7d4fed07d9 GIT binary patch literal 4056 zcmcgvYj+bx7=9*6yJ=XUhKqt!qqf?lKxnxLO|7kMD#5gkO)18Lx=l9eVlrEIH>IFl z{Ne|Hh@TZSaOB|Ovp>q?JF`oh)@3<`95?6e?##aPJnwxbfB*C6UjRn%Bg2$w)zbEw z$!q$Wc|*7KN?NlU>4vdk@U&xT+^(8dL$}hiVrFq`qCaa{rd3$gY+V6kxRSrFt!wGJ z#%t*;Z#KsA9YD^EXBhTv2UZYaIJ8rplR}8${L7LmP#9ucHZf#h7OKrN{UZuu9fBHG zpfX$x(n{ZObZ#3fM%{33rgPFq(xi(TuhezR)oilt7$#S+k74Xp&=mAC?2-5`B*RD$ zo~sUDH!PDkbnf(f$#a0=_-@uIIKem|VzGkUEmEq}gPl zkS{Sr90~_Rysa*Zj%Dx~rL@w&G?~AgEi%k3cZjxoU8^^Bn=)iD*%?d~ZzIuz5Z+Ue zAiK(Slj{rz2a|0k&97Y7%T7kc`}iP+0SuCHQj_^ALus&0(lb8UA$!lZV^7sJ+s^or zZSNhVX9~w-=)wsK5Z4-HPxqL?4QHI;a66)>Z7#XQ5FSh}sW^pUvGDXx4|tL)(l{F< zZ=GZ4-C}jWDmYK2;+T2SVyCEOsu&g07eE^I;Vt3ik3`C>8WcgrqYhM zqT_IhzvE%S!9QrGQtj#EU9id(-MWqnQbk4zwvpJq8;HFv-2dHpLBoJf8OJQs>O ze@%C$OzxKK)!lpDwQXnENyq<8G3+I-yjh#oZCk5R0{-HYcY)6RAHw9T_z{@_i2*xN z)r`7cp|?>n8nC07*_QQgS5Ri;63PWC>qThY&{~je7Y7pGYmYh1hF` zKF(9|C6-0KUnM)r&k`-9Z!lcyT&$@{H^ecG;ani7UvbC`CeM?TWu0uMXX|CFA!ujz z(}3!)YSe-|g#Q`Bzs^S8bX^{>uO+IM*+{I3!)ii~4W6JV5S=@mnat(0(}_w`?9Vcv z#m3-D(4lhI&h$*7ct}o$Gl3A#v5H~AC*g8|Q0+M{VHewu?8BMlk|;*n!$KRU#BG>? z<;2Sf9R^POd)<^-At&$88(g1j zHdb_NQS3J2z+{%S`jTcDV(d-!6pb3!oTfzrYL0W-MMWnO=bc#5Y+7Y~hC0%8g4nv~ zuT5m)h#&{(Nt84b7uzh*dsG~1Xxu};cknJ4zNe9RiYs;>{VgP)V&GRAG5kRHZuzZ1 z@+k~?@@I%gtcb-!sYf{Z6d@rW+9rRSW>i;-jt0a{-{}lNcfmM~F#Slc)X=eqIFm}X z@L>yMe_;GKDJhuuNr~H}!5zGYyVydE<6~*n9Vt5!0VXg>W=BN3r8!3USx;9R^pA<= zhT@+pPmn8xQ@>-pSc;@h47KoCvD9_Eh4~g1i=}RQD-|E%+D>DBlGG^|#-k=cd_`sn zHw@uxd_#tbHw`PKHbWT|PXV1mA{6M0S6u~$i2Z~hCQ4zqALY+&lzp3&eG*j^@o@O`Y4rT1~G_yGMv2REVIur5-G z)F?>{gnpO4jZm0F#M3h!rBb15B1#hOb3cVYPN{qlhw(a&(9gZx@P~1ah9PwS3+o-U A3jhEB literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer.class b/sponge/org/spongepowered/asm/mixin/transformer/MixinTransformer.class new file mode 100644 index 0000000000000000000000000000000000000000..4c7740513c10fcc4b00fbbea1f5f7b5ee2887bcc GIT binary patch literal 29775 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/Proxy.class b/sponge/org/spongepowered/asm/mixin/transformer/Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..a9dd7e13b8b886f4c76e35cbed1195fc81822302 GIT binary patch literal 2240 zcmbVNTXz#x6#h;UI%ygTO=!g{5iB;LWwe4Kt;Lp`k)%b##WsqbOit4&)0wQ9NojTY zL-+;0_`pSh%97=?zr^3*gZQ0kNK+^-u&Zm%nLT@ddw=_uKmYmd5rA>H0%M-vFoUM& zHdNEQp?p<0Ww2td*lV_HhQ4%zMbBSRzIoC2*47OOfxXLeRho`;8|GYXSy`chIDuRh z(#%zsFBe08Zn@Ud4PQ2!G%lWYWDs21f-|s7;P}qI1Ld#UmNJVa)sWWuv!;eXDhlVQ zjzqv{GB#TU46PK!)(UOMEZIRgAu#=vXtK1k*XJ;vm?B1BS0V&XzA!>rXR(Vlp^|nm zZH4x#5)calJ(IR;hf@Oak^Gf329QZ1fovLku(ua645pDnpT4~!(7&CWfmbzNsC*fE zzQE8(zKd(IEuTo^b-dAs*YKu5W((oTcLN8Q!6g~YsGn_weHu;Vqk=pSiDr!SeT=8@9zGB_JYBETD(9*j zxhR-iS9No`mDY2Ie)uto<76M$-?LIIPBD#-a6*&#SYRMZV??s(hAN7awKZ0y(^7Mb zx)jBBExMH$#wVCcVG^eV4*VDU2yvR(s;gS7AuzH7>*@}vW(%FhnLfi8=E5nvg(uvbvoyYDdb}C7F_EN#~06ZLQH3rYc^`x70b?QJjnzDa6o&B;wpQ+&2(d;txa&di$`N(VZKK zXAi$|OYv#*?GfMOJg*e)V_zZhD~9f1{|4R?C>`0rI|4T`$jgYpABdGl<5c+R@n6&_ zY+y8otC^z@a4hp-;&&wGOk1+kJGE>VD7fcjwN{%$)@6{^E>DK&Tqc`!K>dOqQ(3o)5=6@xGkMb#E0!<;(9w}N7}6PNZUwsZ#3SP zNm=pqP$D&Ar`onzsbM>_K4zuU>l5*ey*FbJGc7&Y_2XBTGp#w5Ss% z3wB$3ET%;hkxyq**>I+FU3Qy1jK+uMbLsB3 zZZ)Nysoak5VOpSOmNIxDJ1h$VemkCqv}vXl6R!5Uix{obT?snXX*(@cx*|+<-D0D* zm<1{OGbsow6T;$Kz19f8bjFDY#-S2CW6?o4sBO0?&+5fomq=H9C;^L`1?z!Gufv zp06swqgX{{S*7A?5Ub6o-P~hmb|oTUI@LoQ+W|AK9RFmM{_3^Zgsh|S-F8@9yv;#L z@6&c+ZYt?~d23Z2W*P!JQ%XtK0W>M)0YZOz9L~2r9=$GW>o;BTh`pDIyO>VTzuOqK zV-e?-VI`BXs14WTtC(sK^1^oK-X!3MWmZMw(adV5@64M}WreV3kGD@adxE{<19j1M zDM8zXB)=y-cFeoe{L7j7|BX7O9Ax5M01T*n-u%l=T1?A=R6)y`PE$ZD$J=bBcVR0S zv?53s(Q=dK(goF2MsTo#S#Vl|E)LRanKhq6GHb0#r_*#9tutu`ogt$QCY?zQGTLa; zS$eeDq_b(JJiBC)l;w38H(nXkjmsEUg49Eo znsg4GE5dKZu10m>1~jJDd8J7E#Xpm_(RLvTYn)HBgyfYb&88+9VMosMPp-uZ8T2uv zth5T@l9x@oT7dpI?L=IdSG=>d`K=(;(4a}@QKK+K7%;3zMCbMYJ2VUPg(^CL<`4}F z|6M30GP|OP#wYL3#nlhovm&l?Xdsi&xfM|l#wZFQ$g9+t9+%b*|$86&yeI?WS-6?v0xrQ5_O zZ-)sWib_N<`|49?s+PKmuWCqATH2($HT`=$xapE;SxKOZO_ks9TFf4)VIk%jIE}W~o@XMT&Bbd@;6g64?v47tA;X2bW>n6O|T}3XOh2NfN|-|G?uj-Js7f zRVs!iJx-4X=`nf&A|Q|`wX}brrYt3bpC^e3wfUT+GR;#+TOe8x&-w6VO z9X9D@2^BBVD@^B2auhP?t1wi=9?T9SvH0YK9iCX3gB5vcl*Vf4Fdaes7>dRtIeT8} zP*5(h!A8;9?pd!RaC@m-=%X3jHc~{=r~F?1YqL2`)aZyst+efGb6F80V@4lm3X3HS`w!u@nO8!JmjwZ_%G(C&N9h7!t&f>FFT7 zNk5S|@dL5Yt74(Q#0-5fWU7zG!?A3{_QWojtx_2f+Id_@pWaNem%__}J#1(3m0N(d9y z>!nWJaI!FZb{6utN&hBM{JZq;OtbPqxGNU3hpkvgYB($Xsm{G&+v!mK9F3H&_#PNO z(x{yy7t+&NT|72s5{(5~&6^*f{|M4AXb|;6o{QcI>$1^U#7-IX-$DANoVu!T`nKc9 zG_8)sy={i#%GFtqZSfwxFCOmn@&b8+1hByyXW%ecG- z$K#4gdU_?mHn>*a*Qr?pV9R+csg1& znZ#y$ul6gch`Rj9@ELq&kY{iM!sndDP3fIYBax;#i<;6+bCxuv1AI0B7>UfmSNT7{ z=b+$CX9v@&Gima9SWRzoBOFzF;TAx@$P2pW-oC@5fRB4QvrL}FvxQs}vOzLsr|r}p z`_hy>6h()sCabzuxu#Uo${+>ALyR8)v_Rt+lG??iXbU3xkenI7S~_6+ zRJ2E&KQC_!Co=SBtPEOWxv;m_nU0xN zZI?gkU>kBfuL|-?zE~=Jnd}}iOkN}Hq%vNMSJ~un%0d#=XF-$K=~wH4H#+s8ZjrCN`%py*dS+x zZC3hP?2OtCo$I!5+Ie~B)^&aTolFx4OJx>MPuRKlfyY`rSWQzntk2fD3mpXWiOf=p z98P^~^H7kcG0rsSPeelLVsI4s(0`ip^^Q28u%v&VHuzegj?jL2G#wq3o32C-? zNpAT-q8?6u63VkydBNlnjt4o$xX{skSCs?SB@!{)iW`hpRmHZg+hK`%PyBUW1Lrhn zsyW43DSlN$Kfu?c91?x3SQgrBpH!Oyi9BqanC=a^ZgSnnH;C9b202APK}bpBnky6F zo5vpw_TiK~V(=%C&FvIU0M6}CG|_gc%m)M88i5+O@@>`pDZZU)_5@~Iw=ZLdaS>+l zoj4K59c^?7VQl@RDi#_H{QI&Q)EABb67lZldxCry--|NMUj*0u;{h}Hex{L0Mex)D z9)v%-(>x&PKghJ<)H(ZW|FCHP2uw7hqPf~gc}Kt8xZCIW^Fe-!p9VEIv0c*>S(m!*|@_xZj&G2UVz=iz-TeqD!tm(Gtg}@K{Vs zkhH!)#AiZY15aY1BXnWtI9)VwgjSByDhyX+xMq|(Ld~PJKGZTwouSrI+7xQ27^SXI zL**!K!QZ2F*(mjgLWik;jIJ1^flx!$DDA-dnt_JO!*tCN3XhVF_wsMc7)7sm1^mkS zS^Ql|Q}Fk0$dI6^vVEY1KTXT%0bEr*NL}<0_0hw$lOCaK=~4b7 zR&Lg^({4PG|6&SjRwF^XOpOHZay3GO9=v3pU|y+4f^HQ*hp`FE$-CJ=xyr$NDW2i5 z27G}QI{gaq7zji=Xmcoc3LuEnNJJ@8Ugl zy$|QkLa|@)UA)&<=S_u+zv8=ipSyUm16V+8f0%A8TtDhrA8;}Igu8x1z`y2MoCBPt zBJ)vuOCjfP`79>7g+8e_2DXScwIlf*h3nt+tal`LT;@|S?VY9Q+*?TJhb8IU1qtrM zCMb5j{z4)@_7KS-LD)MFILdfo+)=prr^SmMO&)|M4`Is{OJElgd8e2N7C%CdI*U87 z7iBkA!x09W$LO;X1oZBawiMC36ri6gA~WL;VAlq5flZw48J(dmih`iCa}Ln4)6M2UJTRQY+dO5~s9E3tRyfxB?ubR~;K& ziO3{TDiCUJsW?Kf3Bo!`s_=sTj!F3QY9dF3ZV5IX6Ya#?|vJA9l(<^ zI*z|+oceGp_u&@!wYil^BVBXj-H=+c%mJ9{4;W&-xw4|6;ti_gmvvyc;~4!RZe}YR zDv!~RnD)~G8U2||eQ9M?Llv-Zs2HO^-%oY&WdAb=1f8 z_77;we2o7g2Yw~M|Gon5pYp)fQN;`4z3O%AF`iORSG4M_`#d)7i1+Zq zWsU&PLLkWioxmiupJpBBMFWmI)bkR!0iJhhZ#cqBUkjlOPKA!}itc8-*fGYd@ued) z#vAatX8gg#bH{@5!!&hh*)1Ij7~@Lg*2Tv za~C8plh&al?-hVciqV;1-#^CP`^h}cy#wHW*~`ayr3|*_&4{`69_#JGMvPKDnkB+c z=Zl#RyE17BI!rDGB*J7W6x#+y17o~>lnZk$C$OiJ9#T_XQfL)Aq~LnWzc{ZFvw$mdJdi^1ejPb4~sp1uU z+fvWFk8-lR`E}F`hj>qOJ?}lrpBUqtMk%Ym-=e?or&^hRi0?Sc_sQrm-Jv3GPm81f zatyToy{(GuL$X6(r?Ww)p`xB$Lcvx=<eqcofhyNw3_dv&3rF@#&sWlKXpId#V8l~L3)@UQs7AZxel{G!;fLK z3x`gDNjB&s4onTSj~~Zdw5Rxq9AHkRMii{){YUwkuhNSmC@a^~=cHBe;ur9&4xm>f Um6`ZEg{IMIYa93=o|lpFzu`+tO#lD@ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompiler$1.class b/sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompiler$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e6e56e5c63408e5399cb6e47ab94d28a512a4590 GIT binary patch literal 1261 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompilerAsync.class b/sponge/org/spongepowered/asm/mixin/transformer/debug/RuntimeDecompilerAsync.class new file mode 100644 index 0000000000000000000000000000000000000000..3c2c5251799b666549e5acd2d47331df4a65a6e6 GIT binary patch literal 2748 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 SLCy-W`33oT{4I{jjsF8w0GM_F literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/IClassGenerator.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/IClassGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..dede76aeaff36524d361e2a00352110ce2938489 GIT binary patch literal 199 zcmZ9GI|{-;6h-fgpQx3ExCU(;uuZ3+2!cgQt1&)@NHP=NjGwhxxBwR=CRhkIms6Yr z_w{}}0nE`SBue$TB6qOCtUDOnWXgW4<$?fsf9iw;g=5Mg-M zSFH+djoKZ~oP`)I!st((H5Q>~zAY2RlkKlegXGpE)BS=lNZmy;UgZUM2@%@$Re;)r MF5-sJt2aXD1FRc2_y7O^ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/IDecompiler.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/IDecompiler.class new file mode 100644 index 0000000000000000000000000000000000000000..ff87be271695de8854c783f1d15ec913ba99e593 GIT binary patch literal 187 zcmYjLu?oUK6w9l%wNCmMy7<7w!Bqr7a1h+j_F1m9cja2O-{#;4_)+3j5L`kMl91Q? z@dU6$LReXsb5mQBOKtDsBxBW7T2u3f{uP&8dM}z>OzXwoAh!FP-BaZ=w EA5&j582|tP literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/IExtension.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/IExtension.class new file mode 100644 index 0000000000000000000000000000000000000000..bbe81ba70df6f977639aa7a40156e95c22f67076 GIT binary patch literal 419 zcmaJ-yH3ME5S$IhCJC?4APpxdXk3MmNRfglf+#|Dn8jSM?@o7zF~3H^2k=n{8%0VH z$<59dv-8-W->+`~mpCR|8J7!hjn3Jc4|e=4q%TFOYNbVRQu`ORjACtvL$`_6R3i)_F@H46|3x-o{x_6%#Jb7G0jVt@Bh@${Ag<4(Vt` zIIxb#))t?Ho9^?S$oJCa943YIeqwZJYNVqFLf;x6Hj**d*0?~Jb!+cLTWlY&3{L4h uT|Hj6>Vu_ucNx!A!7-tSsChRKMT8hhvowv+|Hr`whd68)grjEmu>S|mntzV~ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/IHotSwap.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/IHotSwap.class new file mode 100644 index 0000000000000000000000000000000000000000..40451fde4803ec80d16db05e81e93c4d0e35cfbb GIT binary patch literal 250 zcmZwCv1$TA5C-6X)OaQm2#WX$+GHWv*%=55h7>0@R;!N7%H8fUyNN!VMIOM1lH7rk z#%kc7?;n`+<@5{S4Q;~6i&3HQ&T!!mEWA}Zr@o&!p=+1qWBoqZ0cir&_x0w zyzKRlR+)B2eXaMri3#e2=bL%0)`X6*u_3a2Ru|th9Ri^@nE#j4DAt+ra7pOi@Is5> qc-8$odNry1Q|iBE!yh)|CZUE#`4v!W5SmDUa<=eTCZ()$Jp2L7Ohy0z literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/ITargetClassContext.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/ITargetClassContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b71e7dc762a4e4f40f355a6303503f4cb2b1c5b9 GIT binary patch literal 312 zcma)&ISK+n5Ji8vZ-JplP!J0QBLf3L5JUsLK&v&w3^U!*JuYW6@Bki4>=6V51*3+? z`@g#C{GFm3D!#saTdv#`BG`p=8rUIX5*r z^Q;OYv}1KroG2agY8%VW(;}hsMIYoQq4jQ=>%b63-QMEgf4qk0vGGUE((HxM|5=kn qTfdA5ztXww(~Y$`+MUdzL@I;=O8zE5p+u;l3i!8%x+mVuIm%Dx9$vrz literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckClass$ValidationFailedException.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckClass$ValidationFailedException.class new file mode 100644 index 0000000000000000000000000000000000000000..39fda7df8c9aee4cbb197c176845fbc0f6de3e13 GIT binary patch literal 1035 zcmb_bT~8B16g|^VtssaZP`^NZ&|=&~qbAnyQXwg+z5sn6w!?OGcea_?O8=HmBtG~9 z{87d;ZIKOWNle^ickaD&?zx})>-UeJ0AAsVKrgjX;0CFQ)F3@oR`mkuk|5C|ZGy~7 z<4#hWC>y9z=3ix;PK^t8&&5_>gD#ev#j#!2Xr2|CE0f6@iVpMF=cAWwngE%K9E0wLc1o{W3f0 zA68iTppDLU1RBpeKD!{6CJGKRt4-9*Sq{&OZ9eZVU=cTKC}ByUl=Za}IO+Vqn&!`> zDNs$6b23r_E4l2Z`3jUnIdr^S&0SukPWy~1Ck3tfg4Q{=JmSK20;+q^J%Pm*_bHPm zW9NqqS8Am_9!ni<)aPMxtn8s*44-5gvip)VpguJ&w2e`Aynl+ls~x068>&67AGT0n z1WpEZTt|)P18N1_K#?-r&hJB7+SH3YtBvg!XITC|20h}pMzH@)DtL`eN}CfHZefKQ z9dH|WNaCec+$Gx6u1#rosC)lPWBUvnms#JUjCW&J??=>M*2vUk;jx`m-W3hZ$5a~0l{bsms$MJ}77UT9mwRZ9co z3^N0d8SV^YQC5yD*oV?{?3S>Dxy=xCf+0JKqJc?=`I78Ovc)TyXD3F?q{8RiE?Q!&um73s^s@hE7j z67MCjh%XsZgL(hgS_5BEL32y>nVn{ttmp5s|m!BXNZV4!)%}6*@U3f9usZX@dAe8AXjvri*tqF z2OBcp-CI?u9i>_$SKGWrrcIp}V~EkSW6>d_-Vv+44g@u|$lfX`<#jq;T$i@kIB3;` zx1-EbFpkBW74Av34mT&a18%)6b2nTkOSUaM9W{lR*me%+nj$rPe2fUSP_mYu#u$y% zQ|bR5txOu3+RYr}-8VFe;CuRy>CF_jXrAl{;0oTO6~i>%r@vBOA?XN>gl~Sq+*<-Bz^@b2YZTC85SrpqeHz*DUQj^*T z)8s1PISK5N$Pd&`t4L!{6S_ePvzSByMQvTCOD)r-_83n>>lC!YI%i#7gWc^Mb|Dx_ t+Cj?Br}$Q1K+hh^+CGL2Y*I8M*dfR%8sqe-luuH#zxZed&uBja<6mbzfkOZQ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckInterfaces.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionCheckInterfaces.class new file mode 100644 index 0000000000000000000000000000000000000000..1ac29830f2bc8466b02e60b89c15ad9ce43f17a5 GIT binary patch literal 8627 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionClassExporter.class b/sponge/org/spongepowered/asm/mixin/transformer/ext/extensions/ExtensionClassExporter.class new file mode 100644 index 0000000000000000000000000000000000000000..26d744a9d592aa1bddbabaa09737f8c2d21be869 GIT binary patch literal 6958 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/meta/MixinMerged.class b/sponge/org/spongepowered/asm/mixin/transformer/meta/MixinMerged.class new file mode 100644 index 0000000000000000000000000000000000000000..df7b89f2a7cca5e6c4efa1ee186f07dcdf1fdcea GIT binary patch literal 484 zcmaix&rSj{5XQd>xQPEy@nDS6cpz}Gi6;|JCSoLU#lY&tQ-N_)vfFOD1?AN|_y9hX zao`{vNW649lixSOyO3IeB#sxroU<+U~P=I^qvv#b_c4a;RSWOs(l4k)i?;RET;}gIo4jHbriFr2FDyFG^BSRxDvXrOtT`F#kP}x|UlnhVF z3hw7}KuV-E^1v8s6EPP&5h~{W;e;aVp~!H$RE1L73M;kZH-BFbWrq4{v5VZnaPqL$ z8444Vy=ExSMKU9X^YvUOp_G&j7gKWZhTjSA`?m~d>*;{3gI#BiZT^Ei>O@8h2YSI% zFYNjqhN?C)mP#Z&w+)6ytG!ZVV2xC<1fu5O&?quTJ zN5RaslG3xxH2N>v>WtPk?Eq*MY zn)u)c@Ix8zz_ys}?$#8NWoL8wopaBf+24PD{sK_OF2g5RcP+2)s;=m}r$URi#l4=@ zlS8R2UvuSkT-_7e@{hH9%A1bxEL)v$N49O{3*F%@@zE5&8MZ{am&uNl~3h8i`WDTe8nQc3?6!-wr^l07l>h4N%mI@14c z*&{!;>bRAv(Xkw^x>n8CQgtgkjTz)|Babv@7}EZ+^cZT1^lN2WVaSX|!myu6kM+)w z?FrB0UBR$$xeG6J$#(_(tANsL@ESf-;NU}99WGE-Pj)XHDC0mN^^`G|Y z=esr-)v|H6LTR@6z@sRZB5N5AlcggKN210%WYx$%V)&Yj{hyA4otGe1Fk+7xz9frX z)x*_78%F2}!z}Fw&*#c-aA!cFrVrdU{mfOR5=VnxQ|P*RahQ$gw&;LzI;OM^9_DNA zK)1wO=?D}sMM!{Q1=FB63AW7HMUGa?oHV*_(-Rvh`U2TvY4;4XKSo76bj?#Suu0`x zDAL{9xC}QjM=SaR=5dQ4=57JEsoG!{Be8eF*dk#|G1$AfcL}>3iM=1j?h)3C!A{&h zz{9}pY9w|oj4c!PSqygKc7iPg*g8$X%pgbEK0U*Fn7dEWJs)w4@bICmbUP$Jh;$ovIh9;v4Q literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/mixin/transformer/throwables/InvalidMixinException.class b/sponge/org/spongepowered/asm/mixin/transformer/throwables/InvalidMixinException.class new file mode 100644 index 0000000000000000000000000000000000000000..dcf230a21c0075f4916ecc6f4fa831ee3b47543f GIT binary patch literal 2059 zcmbW2Yg5xe6o%i07O)MMR#C(&cxzK2SVWmAItro|kr@ZaPpeOJu8IaWqh)Z*sb$MVAQg0d1PSeEJr0e8|QlzrypYs12y6K zRbW`iD8#Hk8bDTk;q+`qU9d z^ukwUKl>YsbRF_v<&lI=n+uquxtp!!IFAc7qK!V5`A?&`NH~SR6yVoswZdz9;Tx_o zP>>rPzA8H~LkuIt*4k{1qD>Hq_M^j|4A>{6--(o7Bn?lD-gPM@#Rp3juqJOi@+R^r`71%tUH0QT-N)|Jdj2t@Ul~{&{`E8fB7-)JwA( z8QQ8Z4wHg`R06f|JG{ zSyw10!m+a_a+oVGUc}&Qm0LM}JR7M=(AF%12=_|C{s8!`bb+vW9_a2n`Cby%y>eRS z1LZt-dfR(Mpl3CHK|B@0QexXPN0xBEU&cYrf-+tYb*{q)(MvsJ-9DlIKpPz%5}vpJ z527E*id>pZ90sRNw%-{LHrnU;n`mOSfhyLTXkd8>6uaN4PK%*(Z{p{PJnV>f zDS4x8&z+4!J9Q)VMCS^(c^K8WSZtvV{#V#c)&;cUtdh>mvBHrpwq9}O0?Xy@oiAAL z?tDh;Q%btd_i74tP(zoCcW{G!+h^&xgv)GkVS=TkZQu&S5w7Ce9A2=Dv0C>Ot&gl! V5P|E-xtjo+X9;sa!p)Rb`w6fO=f1#@Xm~9=A0SN{QUL(2Y?5-&Cp16=$me$LeWhQgcgC%P3*_A zFO_dKS7tBKvCzKl=;VO6B4PYD?y|vkDD2Zn3mzQS6CQ}*dA}{XRwil=jN#=8GS}2T zk7SSnjAff)xbsiY?N5B4Gb|gSC6Agy8)EXV_KbnO%2B!QBU-aICC*T+y8u7pD)e`) zmMW~$?PIB=eZugeRG-FQ^sP`vwqzvjpXp_-msW=3-$C4+VohwPs8(s0^?-{Ce^;kL#3$#mvjbd0SmB+kBqq(?~C}X*@O&;|qRdy!{ z=(kjtO1$mGEukB3J>6g@ZCU_MYe4$YnBPr$x-DMFNMM5oBum?n!8&F^%Zlr%Hjkp4 zAChOtR=^^i8>GD_-T4iDJvRNm^y#k8@ZdjUus% z^OVg=7sxAKmDXCJik#e;4OBbpw!p%=<0sl3Q=WpA|!h4G?0 zqucx@5Z1eJo3-BFu`$|Y!5H%Q{E>SBSH2e)lMM3%^*c_=Fm8pBJg5s}rB>HxM-1#d zP43)B#LT`_GCE)=ZdH5mtH?;@?`_vdki&2eDU2|rqC06B&a3~`(jG%L6xMQIFcf}Y z&oJ9>s`fRZ*jK^%nq){fc*_!@*hlDT8A|<-xU+%MZo4xMJIgS7sFjVlit0RQ5k7UO zn-ua@sl;U~yb-46p36Dc4Vo~gIa3}Nb62`$8sbC-0&7SRlE#gBWIzu|5mXyOlKyGH zv@THPfNBYfnNs-$qt6}9BCWYjbscGJV2SeSt_owwQ$~7>V}cltRT#vY`pMcP*47`a vBJsPdnV5A(K9h7$wp6aXVD2ZZOa>|)*lJhyZ7drbqoZ)x1Ob-`ltB6uR%x%) literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/obfuscation/RemapperChain.class b/sponge/org/spongepowered/asm/obfuscation/RemapperChain.class new file mode 100644 index 0000000000000000000000000000000000000000..c3d7a6978e75782d9e867c9b599f7e67fe97b086 GIT binary patch literal 2874 zcmb`IZ&Mpp6vm&MY!V1d`PWv1Rz+J3ArSiqYePzlDNtyDmQ*UG)NYa`Y#VmzW&^F? zM8801e5EsLi;j+O^o29N^4mC$^|`wX1WT9!9ERO{&%Jxj?>y(+o8SNW;b#EnpbMld zyPT@7S!P*Zvo>^FFQv5VYRW1s*Q!O$F)TARr>|;jYr36X(F`*JA<+I%Th~$*%`B&8 z3lH_86G2em{NAosjVFeg(w{iGSv3kq#c-acCbxV>5EAIznz<1MrE`I1+Yei1yqp`b z<`|V!&Zs)W0u%o+WpamzK0HEC;f!G#&WJ!T-Z!tJ1!@!uS_Qgxf{xm@_EbiWpe>4a zw5n)Ab29?y6i}QMgOFz%5HysMv6~z#@7RV}7C0X7^HOqU^{m{{u}ho9Go_^_ye@ET zht0$4CP&ryoE2pnlPccCsTRC}x9Gv$>Uy0t9lfmE5xgT1S=TBxeRf&kWPGwdw7+Rs z#k+VfiXNQaRdA0if?g`OY}u=tBXBAHD*9rb$!n6~`Y3*aD&pvi;(a6tu9ZpxEAa+8 z?%PN7y?6chQ~yLg_7>w^6-f+A?NY4IRuc*gH3+ajmOv{H&$RBWSfv?lmF1bL59+H> zCsjks9^#SDaCBR9EL&F5-{GE;N#D*Y4&g(Y%|)KGou=7ZkKhtpVMVLX@PN9#!~BPl zX+av7*;1x!-rbwNQYxikrA4$>!u)d%C839HE*? zFDgFq7U#*x`85Vs@u_E9@VKRocagi_TfgV6FVUJe%BJSjY*tmtS|z^Pa)znT)K&|+ zeOoJ3Xz9#ZMXfTg*@m3^#@4)}6(3D&YyLc%w`z7#A2%vG&s%`k4~67^r@UqO{*1SE z08w|$`-zqZw2UCg5zwA^j$?@*(Z28;9p9nr8+W(HXOv$7r|GX31&-vG+>hfp!8dyb zulc^R2)S#q&Y1EOl!aj8TXb#WZGjg!lYfE!ulYd$(y0Uk5_Jw^+YXZ$@EwkEw+!AY z9rbVGg8=R%cAR)*7kJwaxsFbHn|(+83}^ZKB>2bH@?HMQJR)?N_1HcVNGmaA6TG^= zKuV527Wf6>bSM_;PY!J2nu2sV7XA%wv2gNxOneE>rk}n1BPl_GDDtTy_%~W2NT2)5 z&##*qf^FTyb1;AmpO-216^!Dli#o#f0d(LxCOPWCDHk;)!M5?UnBuC`DT^B%NhPw# zaU@H|Ws5+irP;ya5i(edh?=izK>7?j>^HC-(z#YlqBqwLI3~& literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/obfuscation/mapping/IMapping$Type.class b/sponge/org/spongepowered/asm/obfuscation/mapping/IMapping$Type.class new file mode 100644 index 0000000000000000000000000000000000000000..bcea44610f4f027058561efea401f509403994b8 GIT binary patch literal 1344 zcmbtT?@!ZE6g_WS*R6Jd6HpL;!GH~vIvgTwAuMy~!Vr_rC5xZBQD#ZkF5QMP@sHAx zh|y^H>>p*k?{&rz{UWqUU(dVe-h1A;?T?>dz5`fAmSNrXnp&srI!&|fzBN7bKr=cm z&8;8yIt`<1xsKK{+HK2eYNb8@B~f|THf1n|-SUxfY-qMY(W299<;oYVmfa#LBj=0B z2r5L!vj1vu{xcwL)0j~p;TDb2Ff=JR+zi$1y$O1|PYiyFIUA?pU_DohAtq{ixFR6jub$N@B!HI>bs6fU#*lYhs2F z#Z|R(>gcjDNz^874juVt7o?u!zkQe;PLj{0#Nu8A?2`^clC$5a9g4IsQ8B zs6GpKa9701QDX6qX$0v83AYIbBJIOa|0po=^*^7d_|xZ zPXE94_d^1#2%t#aV@0n?eWdkTxQ~o}f^n|Nw_sA3 kyFepdBomVKOd*4LI=}{T6k-KPRg_HkH3qRs`vHW10c0;eHvj+t literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/obfuscation/mapping/IMapping.class b/sponge/org/spongepowered/asm/obfuscation/mapping/IMapping.class new file mode 100644 index 0000000000000000000000000000000000000000..a977161e19c56eaae1ca77f218790b9e810ae1d2 GIT binary patch literal 747 zcmbVK%TB^T6g|VkQouJp@WIL$*w}=Pi5O#|F(E-&lph%C*wnP0W~NB^H5Yz>A7#9y z#b9-#o8EiRoH=vmOy56V-vD&cV(3ccS~`-UDTuiY8^Q?N&JfqWsk)ArJJ>{wA2z0MMpU7Dfw8*#MAi3H0^P?!v6tazxO zqzdQ|M@BP-206_KL_6y3&ayyqvj-lKsqg&E6~##e+Y2IJq_hgn!)Yi~n#!%v4nqRk zlPCdAEtJQ7Pm`o+dv3_%iK4#V4{6hl&$Sksp=!&Ca>SkIixq|f%JlmHHG01)YDnI( zj#V%m5?a6-&Fi^&BR6ki>x;il{04UBI=flj%j$ksn>qeLf}@Bd`c_G)Lg$*-&CEd& I$8#qupHQj2NdN!< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingField.class b/sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingField.class new file mode 100644 index 0000000000000000000000000000000000000000..595bbf73bbfeeffdf50afc63b5191e1953cad937 GIT binary patch literal 3440 zcmbtWTXz#x6#h<{OB1HH4WWt%l}n*bS^^chrCchsS_l+PK?^EQ(jlEPnF*PME?#`~ zH~0s9;z3<m$5s{QGmIQ`+14$t+Fun6&Qb-C6hci7csRhpLoa@NalctqI zS|BcW0ts*3wORt%kZzTBixM-1xNA0O6JN3Xnm}^KcJ1~>fn(#Z8^3-taYx|Xwk)Ht z28NK$Aco!a-(IzSflL3hC<1-s6L%!>n;9hVmH`6;X}WmZz#D4!j)6h7J0Os%TWuv$ zX?$V_zBigE(3&bH<`?G5S1HDS<}h#whttU5h>GfFP?j8{+U&7z(FPcH#cnhmOPTfa zyr_ySGrAhoQeIX%O`g2F}J<;6>Y0DjK+; z$k^-$7*w(Dd3DFy7&=wcxAbuFQ@AWJGJY>q2|acu77Uc|K?bw9!pCDh>X;6@cu!cP z4b!{qlE9$nacxYn%`$fp20p|`lAM9}dDXR7pRhI)Nc&dHHXYk%mg(}CUmEkzkNN$$ zxpihr17>zhV3*r*oF#9r(QH$(qv63_b<5d-Wyg+zk{kDI4bt1LxK5{=cWt1)s%n39cGArFJU@rqu2M8(#Iz zVA*!9o1I40YAu;nhZ<+gUd?pwm=v97eK}BRo3)3W;QDMVxE#7y9MktLwnVyO*Il#S zX%U~Pc%4?wnztPb2kAcnb}ssmmBWgEC$n-?1uF*?*FF3`gkk=!@^lSx+5-Lg!lZbC z+z;HxVDnez0!)%?3TxcGtL%s$;faWVUj#epAr|mvHLt^SoZoW!7ucIGJj1^Hyb^YanjAV2|10dUEz1cxV*%*r+t#P4-fepM=Z4`aG)Nc%bYwu_D6hN zE$l}-q{e8sW}~={GF=MXi0D3g=`H<}P~01jhW~Bvg3DUUL)pdTh5)B4%W4%;Ea*fT8uuFHGT;5o*7H(2}s1_pVss{jB1 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingMethod.class b/sponge/org/spongepowered/asm/obfuscation/mapping/common/MappingMethod.class new file mode 100644 index 0000000000000000000000000000000000000000..4352acc1b41521dd0d825169390eaaf45179dc45 GIT binary patch literal 4600 zcmbtX>vJ2`9X(gCm6dgH6vrWiq@f|$mXs(7m;@YL<2*pE9Ve9u*tCVUw6-@$TA^L# z0j0FiLU^~(7SeX6owifHoaEK=mT^u8f}2F@P-+{SI2^u2_!1ZWX2RkC2Dn zxDR6z;(h^F7O|B1Z2PCze!*7@ki-BTVLr=rVft+fI>K*VqYF9;_-+c5_#X4L zYM)^-&ILF6E?-M>gleecVd=aGW_27^qm%S)%{=Q>FWW@JWb@TAr5-*;XYrxRfc?e2z`DVmNN0RyNPgE-{%#3eu53#tZWCPo%2N zMdl~_z6?zv6zr$?ncV#nZLZtQSy7PAE!=GLD{}Lz0ylOE-#I#t;HdP<>pB+H=uLtD zcQ|x}pTKb`{Em(}HTso~88v#3)~RH>oEQ0n6$F5Xf4+ax7nb4s%SSGCG(h7F>x39<6z1o%Cm}Xoi8$J z+0?x|TRQJs_N7$ClKRaV0|Wg6`T0GJ$D6L|IU>Ne#@)02*^+}i}yL&p?2d= zY~ze_*v@BcZyZVdh=(pYBzlGO81I9bE4V9@y^Nii+-2;_?7ocQRgNL*4D9C4J?LX0 zt;b$$#6FKNqvSh$gPv8AZxACMpBzc%C^<)|sbb#4yWAD~2ljl#yRs(Xt&Mrex_a&- z3t7Niky^jwVF8nwe`43a5f>kQjQ#Uha4+XOui?(Xtc3&V2Y6}W(1(bpCpeTsYDMx! z@d2-!5$#*ju>U$4ghpi|oM=o%>EiXCOCMy=#%caT0p%t;%CQyt%H<^lrQ(vO+p?*E zaJ(bT1{or}vs?I)P+_*-5aHo&;ptFe){`%s<6Wv95#5p}1Co)B&d2bGFL@u`B_&ho zN0n=*FG(EFbt;~Z1rSml1eTtUaFqEavv|YDh|Fg*Eu7%*`%Lq0RTey;A+^~Dq8N%^ ziu0Tcha}o52^$9a)J-5C_aWId!nBl-{GG^#Xj#4q6QAs;_cpO)qZpHF&E&3OT`t?gQx}*CBtRrZ2M<)UxrBvE9F48=b|d_GFja&bN; zxr>M|+L&m+5jall>dwu}j&{5xI!0Oup=Ai12n5)r+{D3&Uz* z*jvzIA0igL6qS6+SpL1za^gH3e=>LKOV z!n56(`&PiF)xzi7r*G32q?I=9lTMjVJBgs9ve%GIH@*HO}-}B^?|GRtx zZE7hE+@A3oc4i>o!i$HtM*fQa%+}b`ExgR&WLB+NhiKwUY!b9Vbzzl>?=zD=KmxyG zw*5XpzMbKchi5;t^ydtoBu?V!?tzE-qVk&0y?P$B@J4r9?Cebo3NM5TzjbTEPvC8zd9Pn5i3|(=m;XyT rp+ZOMxp3)sZ%uk8T>96yAk7F}Wc*TIjwx32!fI{L3pSk@y%_!)RpaSv)hV4$i!Dn zv=~i%HSsqYXx!$u(yO{GzF^Ee+6x?!|h^;6wgat-gJ;Ysn zW4tv4!oF7$NbE~Xw++USt9lG&U7%;fa;)lOfn=(4JAEWDSTd`Jr;h3Ed2X4I0<+yt zc3xJYpkF}-40LRPVqpPZmHo+8l#is5sMx^g14HOoZMeu1!Q<)$!;9BAP@EW0zw; z!acu`6x%TtPs){OD89sTnWC&P`qh@mr-C}fF^qL=kW`UBses%G$R|6Io fJNHOC_XfE)$+Jc7?H2CI3+|zSTi_`p4k7vnd$w$L literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/IClassBytecodeProvider.class b/sponge/org/spongepowered/asm/service/IClassBytecodeProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..f0745127b32e109824ae0d760a942768de935dc1 GIT binary patch literal 454 zcmZvYK}*9x5QX2gG11s+#e)Yg9@~ox;;rDJVxdr4p*KCH*&%F+*|58f`qw=81N>3q z8fvSU(=w0uzMXj=pKtE~u5d!Q)+Q6S)J4XnerCf`B=$*IHkC?QOm6eU+R>}yR7<`$ zx>Ax&1S0fSNtK8^DKar%t~hlO+Jy7w#O1e{(9PIwiI&jsPj{4sGpfjj|CPbxh;UjP zl@^ov-Al@)Q@V(-PdIB}Jk*hk9lQQ?rrlVt3;8R5Na+0RH1ih{ZW?fdX>&`tS_)^F z#Re~VNQk$1e_*`OYm@R=8AJ0OJcE#lZufqxHbCEh5ZcXn#6i=)4qpL#yi G!rm7=y?tK* literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/IClassProvider.class b/sponge/org/spongepowered/asm/service/IClassProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..aec991b7bb0ae3ee0fe0303d545f4a2c227ee649 GIT binary patch literal 520 zcma)(%}PTt5QWdw+H0%U*1munr4=#YwnY%JAQTmg8(qbF$Cy%+lABha&4mx(Ly2iF z_yc#*-Ehu#W-^n{ulElCC+HB4tWzSNS)+JnU)gacWd0&@b_<=dxICZAJil>vp)+;~ zh|rqIg%ne1l(>GJaOxAR5jy|L<0VAcQtXQk(mxa0-QL3}#tnOMcRT76>QCBaks<7N z3pX|&d#8=+_x?x`3z_aJ+~DvupnJcsjp-}vhjwnVi?@_#UR#r3lWL}7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/IGlobalPropertyService.class b/sponge/org/spongepowered/asm/service/IGlobalPropertyService.class new file mode 100644 index 0000000000000000000000000000000000000000..f2294da58578c23312ca97868c5b621a47dc4d32 GIT binary patch literal 563 zcma)3O-sW-6r5LMYa73M_O9ljE8;<{c(e$DLW1{gd@Lz38#Zahzt)34z#k>PHhu&W zu*aF5nVt9E$LHc5z&VD53+s$3a+?{>?JGNeR=Rjm1-p3?v$`9ncB0cqXLEMtTUgOO z5Mh6+=USyYGwNY7<+$u&gK*I9I9-YfzTxsGi*R^+|CbS#F3HR&s8Lnyh;VWpT{Zce zHhUC_-Y@Fk9JT10X~7fWay@0!OgLM+qBIOvEr+#bRMY?4pk+zl6rmp`Ce!82F<}te unTz>0Nx4htz>{+Wo=50Hj)y%#9c&5iV;~Pp-v8yd1@B;2G;-yYa`OutbEZQ8 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/ILegacyClassTransformer.class b/sponge/org/spongepowered/asm/service/ILegacyClassTransformer.class new file mode 100644 index 0000000000000000000000000000000000000000..04fb8f972ad35ac4e092d101de8307296355aceb GIT binary patch literal 360 zcmaiw%}N775QM94Iwbs=D7lUf%$mZtV`I&4v@5u-L>vvKWzvHX?Bo*0^Ff!hX4Qo literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/IMixinService.class b/sponge/org/spongepowered/asm/service/IMixinService.class new file mode 100644 index 0000000000000000000000000000000000000000..486fbc2052dc5b518afb1c23275eee1e927186df GIT binary patch literal 1276 zcmb7^TTc@~6vxj%aiM~=P!zmh5L+#*;lY^Hm>_|q32H+P555iC<1(C} zepEk{ZfC0ign-hi9LO+{Iu1V{pJL<#m=>@!X1JBw2-v=w-A$1pgZK16S);qC{d(&} zIt<{3fcka(0+h4Kh&fNG7TyV7glSO6#7*p0wmZ z>mvb+1ZZmIl}vKv8vb2(m8B4I>G3SvKFvX9f>ciWFw8BOc5O7 zp7vJi2oFqjCSY@741KSXaNL}ZE)iolko2t>eLWHomxe13uAGp~B~`5~QHY;#@rRf2Rur=URZ2SB+%2$%;TU4UDxi%?=M!xHOq zzOLlD0=Iep4y>}S!ClsSaG&)7JOp}{h&~06i2E3x@cvVH#<~vASvTMXYjwoFM)oh$ Uc*wU--y)F$m?K?-P2QdP2P-RbRsaA1 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/IMixinServiceBootstrap.class b/sponge/org/spongepowered/asm/service/IMixinServiceBootstrap.class new file mode 100644 index 0000000000000000000000000000000000000000..7201b29c4453717f33f0d2dfda3eb2d4a468441c GIT binary patch literal 252 zcmZvX!D<3Q5JanYjibgxKyUtlUK|i_-XaJ>qK5_VvuiVqtUJrhsQI=W@&SHS$jB4-) n@nlEnW%lF>UYU~Hgaobl50JJ9Z3rN0=dNA!;)U=UXM&eM70W}3 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/ITransformer.class b/sponge/org/spongepowered/asm/service/ITransformer.class new file mode 100644 index 0000000000000000000000000000000000000000..016f3a7945a447c2ae08d833fa1b395c9ceee48a GIT binary patch literal 135 zcmX^0Z`VEs1_mPrc18xR{GxRI;)49V^wfg<^3awIqO#27RDI8oqQt!7 zwEUvn)FO5UMn(pKti-ZJ{hY+SbbbG%tkmQZb_Qlf20>(XdLSi?3|ztarA5i9Zkai$ WY>W&{3@kt^L4c8g4M;LEumS+3=_M)v literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/MixinService.class b/sponge/org/spongepowered/asm/service/MixinService.class new file mode 100644 index 0000000000000000000000000000000000000000..788ed5baa474583118e65c3da3ee0e9cce9e9279 GIT binary patch literal 3642 zcmb7GX>%0S8h*}Xl1?Tazz8u>l!+{cBrqCF85yd9!-SLM{7NF;#O#rQLsZ*MAA;L(xPBDxUkc(B={uh?xsr zc>+soocI)3U3=0WY!#Rp-z6-{P>UDfT}fnTjh3oQaCKS1D$`nMT42NFB+Aem`Yqe? zw+PgAt>33(IaVYPM;l9DMR}*;6*49n(VjpD+H|yFNfTnYMn@~Il&forid(iNa21?% ztdh23ND9RLf<@r2ta5C$;5tW)@uI0=wZNvu$$IhPXjn^rab78 z4d{{yt!IE$@9I)R4~tvTuN0-@LMy=)ZEe8D1bUGYxT*?Hm~SAY;U;EVBvS1;ZOLkNT?g59+uZ_cUV*wlV=*9WSrgj!Xqw9>l#;Zks^ULW}CyffdbIhn=hg zAq_!MIFA^U?EYF~VOQw*2kw(U0gN?cKOPi_`2|K1sa;i2pjl!NrYmsU z<#eCy7B%2lq-KIPv@j|+68XhjB08>ElSVX21jc2*v3KJ#C>@W&kOzkZ64jarq%LW_ zrr{)os_K;>bxgpL)*oZ=a)g8!=$H)7ZKAPw4xz?~<8PfZtfHI-+g#UiHIxLdA90eC z@{vjw9M4aB!RSm{UXqVcAlwKxKn*)WS_Om5Pv9`h9L`ZP{5g^HP9W%I3&WOh)%^ce|`2OiQ6;SmFVjnGB^1$(#hm%JP zFX@%DS<~|lm5aq=Nm)EImt^Y4XBzQTGp41v`kXmlCS|*#lnoO;5Fux!LrCFg@tmaa z^Ni2(_8CPhr{hK0<Qk@DoY>5fWXvxU-5 z)+p{XTubi5!xn}9uu%&4ZM8zjN)^FG#woj5bGubEaTA*^&da+AHy?4AK^<2>NB3D=)%_hh#?IpEGg#Rz z&fq$pb$-Fi82-oqZK&t}9SmnPmSTWLcA_0a_&-nezzD7nL*v&#=-^j6kO}PRZe7>? z4fuECIox&zo4dcp=5NrS?wP}Yz}vWmi|qnGVcl@=9ESK&`!!Z_H7qcPObq*H(K7NS z_HLNNff#1zfBAwQdaxDulE8KNm_9lY{|)ULw#@UQPD6}KjSr5{u;x6P&WDMtQ$ePQ z&oJe75##%5CPPEJu?>4Lf>Eyas>G5sy^Zn@;bE?Nuo{oxAnh=rFxiBhykW9;sT*MV zm&pE%mhTWFoVl-%<^D8vVk%4`zDyyygeHLlEbK!J<{;ge3%GSEM1lHq$nTd$5K2W3 zVc-xU%~QMpEA+f76xS$z7DeeSP-svW6AYFkJQOa_uPpjnLVVrNEH(@6$aYc^ZkMcm83gD$uGQtF#bacps5}9!rN%#>atX*INABe!K*u^|$z9+j|r=v_bK`$qw zOgLC!!t^k&R`x2^oSegxG16oWDbV_K{r8BE)sY>~2xP|Mp}EW)UZ?|4UzUWb?>#*` z|M@W0|1~@Rnf!fqcK!o#nh16>s7Ve#`CBG^;;Js}uz)_lVY`Ou^GFP6IJ$%6(Nx+4 zEE1@-497_PX=k?f&UP~Pk1WZEI9c$SB?1Z1$1d@ed`=P_zHWg PlnEG+qQa*%5kvhS$)~w{ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/ServiceNotAvailableError.class b/sponge/org/spongepowered/asm/service/ServiceNotAvailableError.class new file mode 100644 index 0000000000000000000000000000000000000000..f575e6b7e9fec5ec7d3607a9ec9787f4dd43d640 GIT binary patch literal 484 zcmbVI%Sr=55UgJFkTo$enh1gi(Sr|g!Gj2qfJ6l)NqfRY=YJWRgyNXJS1}W6zaJx%+t&D0nY6Ex zsfcoIJCauEXv5v=3f xMp-1Oo5Hk&3#1p0Pu@^|oolwFhI4iwc^sfFxUo=S9Th>MM->}$uZExi`ES;NcbotK literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/mojang/Blackboard.class b/sponge/org/spongepowered/asm/service/mojang/Blackboard.class new file mode 100644 index 0000000000000000000000000000000000000000..2e826cb068a2a496f2a8e719ef896e24f8a9fac9 GIT binary patch literal 1626 zcma)+-%ry}6vw}J8x*=BKOD@Th^VjuqkyRV3Nf0fBoj@x3}5fI%P4g1(zOuY{a<`l zA2j&jqYwT~#&~YqbsbxXS+>)A?m6G{Ip_B7_un5s0jyz*L9^_-)@oX2T{NvTVT+o^ zTMexx>{Goew1#!e&ARr&;MJ3g#qF8`#xQowPq}8uop+UEQFRo=8P>0s+IwwS6>hw@ zt){S@^P*ot!2rW(M}JvLGYszNrta)A#Iw0_3PTuHk$}pOaE|mA!)oE`Vm;j349U81 z+SM86vV~3;MaS07`gShj@*AVH{7z}B*T35@y;P$3SyMP#LpMd$=7$bV$u+A-XEtwA z+gia}DHvx^E8$RS0)7S8(GBe_Z*He>9qD0AV3J|P<7{s!$k0@%l}jxIynR|o;U;b+ zaRaw0@kE?6Ohoz#TBq@}qT`wG(_bX3U9C)#O_x|UqVd6QpZH!^3imN9=^ii)oN~hz z-F)FWbX5qbd*%A{&#>~}M@T1_^G-2U6NlV2oU%_8_nhOAH^?Wr)Oase;E7@dE`}k; zYOAEPeIioGV_ClUTGy5Ha}=!7ZFp(bXkMcQdfoQjMn%{qUNO80T2*e8xvk4};2bXM zb(1@;O#vfChpsfeYQf%Ap)29M*-lc6mTOnVE8P%uQZb^T+e!Z(17zu1((hwhX=Iu7 zE__Gw3q8cJPQQbma~4nNIpqhC9ii1Yu3?m-Wb!WA7+LizrWP-7Cx*|oiYhF73R8Ym zpg{4si)m7Q>P3%{<~_{NT59eiP9Lf&HJ2{%Fph%`m+C2PB8e?edB%?ol~aMTq<(}s zik7_dWTo~;vI(;3kas`-3rhYI5=)XifoHNZVt+89An}~O-ZcEGZ-{%(tGeK;gjLgF z)iiQmRh438{Wvx}MLA-*w?G7b*I6Q4#8S|;8<1tX$khBdthC|c9k@v!ZY=_LKm|WU a;4&dxCWOlnz%&(7=^%YLhD`#CLHP$lXLTz8 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/mojang/LaunchClassLoaderUtil.class b/sponge/org/spongepowered/asm/service/mojang/LaunchClassLoaderUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..6f2955fda74c3530149f39cb1332ebd791660388 GIT binary patch literal 3635 zcmcImTXP#l7XI3jGqyBw5;-<@fDp)rSh5{KmTPRB7+D5yWE(8U4%sYbEVbsJnZxS8Y%^R-7}I#iAhx`c+vFf%Q@fq`a7rf zzaRheUjPU3k-(vfvzm6RmGY{rR?bLA7Sooyo_3{k+AhfSdgYW=UQOq$TDh>6DOs+Y zt5`+p9P{jw0U@ycly%xlm(-@&^MejSJkaV=U!n z$0xFLOWEU@>=W}-vonpDJ%wgU*|P;%_3TQSVY&ovo1Yt>$xqJCO>chEbF8wvQgPO$ z6F#{^ARclmkj|B*mtMEavfx-N9;s4Po^h;dRXW!b%bd6QMAS%edfKXT=E2sP(d(HC z&1kMhQ)44z*Z9gyk28BizBsdqFLiFqs9m_i)O3v{eXZ_<{fqQJ46^&HAE&_^;f<*RSR#2(xkW3am@9xbRkj|To=q60k&$=xlB zq`|;|i8yXiizyRb{%FX=4u5n&AnL8zuE1#S*H;XQ?IHpChWt7bxOX6VlMEBP?KXXo z%ASD`5p`}(C?!_Po@JNaqw=|Hb_H}LPndWB55}<%4>85EwJs^Zz&&+csud*z?B687 z<{@_lXPfv`d1yB#9>J)(8p^7^ZN8<7f^A3qZR14Jtg_;a#@5%$U$gWCc96;DjVraA zm_SxVoTTz>Pdb)YaRho>Hckce-2FJF;z;68Y(`B-^>qU|0b|W_XXIH=Ynv?FLoJb>=a5(X=35%3e^UlnF)`P(9M4^}y)_fZaeoYpcuJsC)|--m%Dk1X zpk0|b>1X*D_Etx(+AcGi3N^!PuD&i1Rj5|6Xu?tgNMc!FUmd+JnqO`YJxzKtl~Rdq zU-eA`6iski zSf}KgzO;r7RCsCRenJ*X7T?F9eGP9?65)R2$Q8v)T5qQU{t73CD%e48X+~(-WT3{< zcBMC7C`i|}mrJBGI&ebu(la<4!)dUJBZMMwcQ|^zmak{n#0z*)9ejz2Rr#iRdCw|5 zOBofUiC0vEF5y*y_7%S;_lI1xU?a(G@+^fE+R&hyi=EnmU!q$x)PiS~y#=dOV+x&l zd$nwNHAkhBsTBFymg9RkQ(Iq_&b+1bOynvBtF&M_wz7lCtr{)gz`%~>D>bJeC+(8N zJuK@e|HX7-7q)=^MesJQHf_g3w#oIaA$uF`?IAmXgnFNNHlbbz`guqD>7~sFp<(yY z=CjaZ^Kl5-F`nzEcY${~dJhqz0mf3_;`Y?wMck1ZOmu#Sz29TsMeL_xY9o0OgEY3) zjbR#zx{>}`V|kCiyNMY%%$$!f$8q%HQS3#AJWQ~!X7N5(d;N%&yg42l2-M zSDIfn)1LY_?%3dtKvS^{R43EFlric ziubo0efTrcDfNytu#Ysbk2J9JA>0J})4x0RbHw;MvA;p=ZxQ=DzXJObo(ZrYCof7g z-4xB>6?CZ&wNq%rqLR0N#Sw^vzTYl=ryrA_PgrrEhSb#E;Hta972kLIR?3;YMI@D+5JJ?F%jSyxi#NQa=?=bNX9m3cA_8^4c0*XA!r*)G6X+J>vh5`P`02dhG z^BV++fqz$n0Ppgv>Y+bT9=rr^dWaf)eu!dyd1IOd@|xJt3GN^*r646%?VLeNRj_J< zz*h{q!JuDr*EcNxf3ZbfY+RqgmUfO;+s2hBulG%kRMYYspc=i!^Ys>ZilYy?&a(L# D)4ft7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/mojang/LegacyTransformerHandle.class b/sponge/org/spongepowered/asm/service/mojang/LegacyTransformerHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..cacd80600006cfe0edc614370f134572a42ca067 GIT binary patch literal 1309 zcmb7ETT|0O6#lji2GRtuTogsc8@7cKMeqfNQ4kcT;*1~<^0ZBt5=@g$l5+V)zWAUs zilYxc`rwapJiE!X6-Q>sOfGx&JKy=vW%KLz_a6Xe@rYqD2j=9M>~p_vS45pV$6F!yqun5Ei10c0Yo5@-7zX$G0k=H~dsW>RPOKx#Fn>1h zdcwHk@hIw|)zQN+{-0<0eok>j;$qNZ|u%P=N=k8JMyL977wYY_#l(4n^9V6aHVllC6NT%k*AqNH1W7fr{D zwBE!mDdsli((bGBUOtWmm9x}Mo0gy}P-@v(F77Ndl+QH_I_@#_wWFFSVlsyUO4LhV zH6Z_QB&uoKL)4N!8C4#+j#AB#kwUbUphgWGsL)()v>H_rZt$)il3Gk8d=(FBc)#3wI9u`*(#!ALph>CI>_SNe>>6I?#Q_(xhMq*4kn zugJ^*lUneZ-k@s6~4 z?_x6LeM8B}0$7rFYP$RlQyNZ-d!|TA39y~1MU^NkQ5Myrtmq`$ CK|o*t literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapper.class b/sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..325bf091c087dfb4f390bb5cd2a0784df4ce65f4 GIT binary patch literal 14298 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapperBootstrap.class b/sponge/org/spongepowered/asm/service/mojang/MixinServiceLaunchWrapperBootstrap.class new file mode 100644 index 0000000000000000000000000000000000000000..45828c748eb201100ff2ed4bf5da4b632a61c831 GIT binary patch literal 1368 zcmb_c+fEZv6kUe`y+EOqauE<|z0e}eh?1BHl3-IwVRxLTy{8+-#{8c_Gc3|EBS-sh_;Id8Z@nCzjfzNVpqcB z+uqm-G0QN%Cr#<@Geq)*`XuHspTH;<7)IR_=`fTvqWB++q$x#P!maYQV94YPVPi~Q z*+mT38D3jUnE+)EGm~6t3EqrqFHv&LyRJQatyi zsQN`kag(;8do^elZwi}1)&36a73~9dCvh8h;<$x%hOK{sMp0l`;LT=$u5_UrT}N6b z!(9H?X?okdi_HW!utmZsTBhT2)2(x(OA8n+T1_(38ueW5wj07e;thjd(we1nqt0#V z`TfU4&Fb2^cq$EnEJjEmBpf=I5JQ~qD*ft5FhTxgz@H+2I^fTcpAPt$9uFyw814~+ zN|uow+xU#d4?W6lI>&pDIr>`x(f0yyji^BPWvtNYfw#zd-y-SN_hd#egl-0)kpc8Z z2sHaMbUPH98j{}La LgBl<7I*I-OCLLM@ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/transformers/MixinClassWriter.class b/sponge/org/spongepowered/asm/transformers/MixinClassWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..205a43a041c1701cc9bd91e3cc3b58f7b1d69c69 GIT binary patch literal 994 zcmb7?+iuf95QhIrni!{{g`_Qq7AS|(G(lKxg@hE;n@FHYp%*|N^4N@#d_zTnQv!y_UEtfKLG4ui?FYa@5K`x`EsH^NFzs{h(j+i zB8tb_gwn*`OZ8Djoj}C#Yoiir91vkEKQT}P?~l+TVf8HF@jLNe5X#R~q>=-|LZiEL zTtyj91q-;uLh@F{geSfHL;hJ^n@}1D!smSI5?YPFK<1Ucl42xHdsf1dEn%6kIJ6CC zKEn0|A%wawla3BU9rdRZY0|qOJZ6|CVp!QpNXMJNd?jhyPMxQTTey1_$9K278fGbO zcl3y1%RLpz!)Z8>=12?zR%$&x6v44D%Gxur($`Znl+RTlaTf(1oc)U6rv-kbtN{nC z7x-UpuAjjD!n*?Q@mfjMhbUni_t{>{qF7&Ki{nwnWoB5`(u~z*c9DHfv$b)8D`#O% z4sE5d%`9vVb8r}7)SW|J+{T^M P?_!g81>QeMGfTe#H8=E$ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/transformers/TreeTransformer.class b/sponge/org/spongepowered/asm/transformers/TreeTransformer.class new file mode 100644 index 0000000000000000000000000000000000000000..fcdd7f7175d55fd985438d6c915bb41ae6a578a2 GIT binary patch literal 1718 zcmb7ETT|0O6#lji6hak5ynrAg7fV_QB8XBzC|-&d9D%_Bp0;7dXla;D0Qo8U1ANvQ zg&7%r^ugccIG)`G5as4WvzwE1zRTIO{qgI|HvqkOz|iZ-W!qo%ipyfv+YnML+1y{T z1Idg23s0^H>D#kXh}r!>42+@X6<_CefftwUr}#SzCD69&#Q7{N=|XXrZu?6{68J(4VFi45I|#Z2cBFv`h4nrtdq z_>YP>YEfq*f(s00p8Kv7GDj9O4DF}tVGQ*QWlE{;!W9z@XpEx*m6Zg1l_7C7%s~S& zTr<(4T3F5 z)j78)rq)*SLeBDhfi7Kb&U1KSj!Rd)hru&50e4rN5scBZTnAf`p?$oRfEt{mw>r8H=P5Eu z`!u4I55%mbv4x8tX!~b*moC3pN(sv;8JBRG02EMN2=tDC%BZ?y2MzPdZ8S|azD0%A z^%>1OXqn%}^+BVn-l(bALPx!!c%m4mX9d_#)W&F@mFNbN4GfUmJLK;!;Sb>ohH2zS zw35CO$DWdoPzmwk1`?#R5>2{WQL3xb{W3^nC#+ECSL$ArII`9!G=E2mmQ?aR+AQ`N zsU39Bt9bb~ZceI5b27DsKKc!Q*h`>~!;|}Q!YVn5g7s(<7SRHaP>n26Ptcq`CV5Yg tL=HW8ihevJJJV!;Mw_xoQVV5|;GS-DcF$f`8({Rs48JnmC+rAfzX4(hpYQ+x literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/Annotations$1.class b/sponge/org/spongepowered/asm/util/Annotations$1.class new file mode 100644 index 0000000000000000000000000000000000000000..983a528cc502a66b405410a9ce7e7b8462aff71c GIT binary patch literal 1114 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 UH*#En&S$CTf2FdWpCpz42QxWPp8x;= literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/Bytecode$Visibility.class b/sponge/org/spongepowered/asm/util/Bytecode$Visibility.class new file mode 100644 index 0000000000000000000000000000000000000000..695e6803d0ab3d261c43994e2d5964b3e6c547d6 GIT binary patch literal 1427 zcmb7DT~8B16g|_gZP%qBB3}Y3pteORpMtbtKd9JH1zFfgc-k&&U9#Phc8lT7pQI&< z(P((~M;Y%-Yb=om+lRe#X3jnL+&j~szrOweFozt&bfsE~*N!Vr$vm#SGppudT(6bm zb=R`vnN!y^Du?EzX4R~sWn1p41jdjl9O)-|+}52^Jm=KQ$wFr$iM0en__BrsA4Aul ziqrg%Vd6h@B}feNUxy6R_D)_)?^1I!of=~ZZSQRD=CZrFbuN_7Zl*U#D6qYkDde*Z zz87hAlY!;EG(ajG&<(?^)rdQ(r3-sGm0|Xv^QwUp-L9J?Gard|oUY&o`a@r=$jyIhMP|FwkD6YLp%kq5mpER8w#d5nd>& zpcg%SVpEjkzO`uZ!K7ig^u3X&7KF^{_hll@Dv)uF)8~Uw6evybIEXFYF S#PX1{5ZzPLrx)wOZ{RnYb3zLM literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/Bytecode.class b/sponge/org/spongepowered/asm/util/Bytecode.class new file mode 100644 index 0000000000000000000000000000000000000000..496f823d2e0b4a3ef6a01d0774f16202cf693c20 GIT binary patch literal 25017 zcmcJ131C#!)&IHoy_q*NnZS^cU`T+VL_-n?n-mEmAqxbuP!g7a0z)z+gGnZ4CM;U1 zTC{2xZCzTlty|mFr4|uGl)81Xt=85q+I??by0>3jm4f_#=iWCnZ<3G!zweJQ@4fr( zJ?GqW&wlUo`FEapiiqYJor2DZ^mUX+dm}v^q29>uP+zFMJQ(dR?~jGM%9rnrh1w$R zA&Z2dz|P>VV0l-tr=z@S`_52X%pyZjX1vdAel2MBX@HxtJ{%2i4|j!Qdo6Mc@+F@I z)s6um*4Y=?9o*g(ik3I;?TK}UV&S&sec|?wP|cpUP;V?8>6x*nFMiYemKJ`QqZ-ut{Ksj3(MkqmrV?As>k8GKl4xC1;;0Y=oT|P(RwrD0Kv0D+1 zsRkT8tq(_I6@DtEGB1_TEC`zt8^v#aXHmHzPZ*04j77le+~S#z(RFq^Ak3wC88nCH zWAT#^;_odw9|Uv;qm7|GF|`Dn{PZ4LltByW0xUs~YMvN}?XVJnTtQ2?--Uu^rkQY( zI~HBUV1wNu&@+BH`Q|uV7Emy@%P``p!`lyzm z!)ALZ+UBR#8Y0xutvM~I^o*9%+s2B*Yb&TE-N>X|VR=|2>w2P4m#t|9GRdQgy0qd} zxjh=|3%11=xGi-4a1Yx0+gMA%p0pr%s4ZkIw2pbcUeI}I7BW7_qK&W*aj{4UWn8S3 z*lqGrD{U53o(AUdxma|GAa6$~*3`>RN=ap%pSIFAA8jG{A`>$OOXsFris69S*hFlY z0`f7AmuGD#*5B8|gbP|RiUut?V=QbsCyoLM&6$j`xxY8mR|lIXsOLl#qC6I%Gf1aeOmvt zCcy)Y8lfbtWGY;6&kUH%yJ9BPV9u#YQ?lLy-3uu|9OA(KTJ%1+c4c1yZwAwvX=t@=;2Nu@X?jD9|9a~3g@=<7XG~Ce>gtCSFbh9?eAA?AQ;t?J?-@?vr z8QsbY8ma8-3t~Zwi=EL)+|G~E=BL}~6YS|eY0)G>8M}C8G_ivEi|amXu)588mA3a15 zV+~^wPD5--FpFnyUhb!Z^a#H`1SS-3Ud{vVr^7yy^cZH=wi`Zd44ybpf)VLxTN?_t zvkE`X8VDRu(9zVeWN$RaDan(FMiRQ9bl0{ee!7vK_R>@IOnRGA)fsBLRMA)29_&@7 z<10|4U7w4P5Z47euSac3IAS@t8s1Hu!JDN}51#LyqqNvY9-y3dFHBT-2 z0l1=Q*db_%GYGWx)2Xs?dy&eM#Ol0EulVSP^dpG)=As4dmlP_@KM^z`nWNS9#E{-V z3VsH&v@6)vA8G>PT*#`!e%PI$@xP#7`snBME97b%e)fg8hqS+|Nz0fK@ro0JJvl%9 zhJMS^{yRY;3>9~n0&_l0*hpKg0jBG<-jd_Fq$n*Xa=B;{a3KzT!3IXgd^j9Y6 zZ&*sjzJEZIdsN`&Ei5c7nl*Pp6jc3-Tl>4ZJoF!|-;PLMcMyK)f-_n_m3|}`@fN+! zf&Q`d`Br^!d#H=&Xwh+yvAHOEiHF{SX+@B!-l1HASoYMGN_DF6gXO|UCxp~PmDWK@ z<6*EOPc@>eDO|{71Gz0n zg2*ER5XHVwZMptPayzSk&$j$lQ%x!9KqzMWUq)eV@Yf^ead?dMv@8vh+Hj~# zrISjO#ra;bkfQuk#XkU$E>f=#_k%=thsP=5o}+5PZR5Gh71UyGNuGF`;CAm@!Mzlqt^Uk#2w$FZ1D^_?# zjaWHMLQ?IwL;sx;vWgdJb$W7Oq?6<{V38uoBZ3I5L=#W4QLKS?OSS7M;;h7REhB4A zZ*yw%cp;Ct)R~i!HFgVk@f_Q6514b;<&I2S#{d9ELDgwEN3*9fmhST z4yLLDE55F=uCcDAuCl&vQ%&{OmX&qQ9(Gl#-#Hf?D1h!4UoAtJF0vWlB21Y?O@J0ksTeOcU$?l6{lVz(+f zt_((#>xoI9S@Z^I<20PQXfxM`+f<2ztyJPUeZHWUhBXD{yVKAsHiBBOZt;p+IkR-_ z;I`8+_(@F2w!!q;a9=dm80o3(>!^>k1-lT$hOm%l#sn0Srk+|{Ss*NN2hs-M1D^iw zP*02-!R+%#^M#wo&{`e`8UB>`v`^eAJ_9{T+uIUIA&Zbhk4<95rkRklPl|h4WA8&) zsi}=Nhc8E#IV1ge9{xG;c^*Chu@CljV1gOpp0=+3_E3u|lp{>a5J*rF7-!jBP8COa4ZaKti|cgWEuQirKzSM+gY9sN&vIPfD!zgU z7AwaYPG3*3OIy9KvDLd%d|f3%4&!FKB+fCWi*NX-M|=|q+Jey-CJ$C9{mN+Tiu8n3 z^o7>NX|s;RV%dSBDr__adtumae%FK3)^(H7VLD+-_TSNDqip`2USb<5Tf~ZCM>5REvYLP_@dMd)1~^N_uF|$?3L7nWim) z90*j6oml*aBe~yNl!H_~7IC6IcNFH1gau3d2k|QF)@$&r>pkKP)||c$6gB(QrUIL5 zL{-u4sm?hyrsO0M2?pnbP7;coBTPk%C*BhOg*o2| zfT%Zt+GHYl>UH#s6XG2ndJ;UI>5)Rvy7UtrL#31tJq0WOg~gO6^AjsFxvdjtA{^qV zcZ&3)rl_CI1;>06d`V6*!S4)gCc>J+5;pDdOE1hY)k+`o+h{*;>S2dm8P!oEed(8( z+vb*>GWZr&hAT+7#;CB5G6R2 zE{#ovVabVJnZxOCirSuf3H-t*C-F+31x-!P{4`RZRK(1< zwazc6%4t41MHc#{Uxn@x1qxB&ku!ih9Ie7uZ7j&4|GTNZVY54%#(Oc7VuXStRS>1U z?raL3N`o(i00JCV|l}-VDdT$uG;~ET1fuvvt^)r0IWIv9y(1(Ah~Y z)pd1+I)YvCKscH8$$1C{9SM5jZj_b_!#yathT9AEu5F=5EXOILU~Fc%~VNWKvecBFUPRLSikV;g}^?K$vPh5-Es766Z8>#II z!d|7%n3NS!Di4w46D=QwE7+k1m#1a8-fW1EJ{@$)Ob_Vb-=Q46s1h)>ko-+&f^iIA zqNE{}IKOO_m#}dO!e4gJ z=ythoy8`xxWgViI8BJZ9EorCjSei4Xedc-)P9OEleegnH_0@1XyqkRba*^cwnd62- zJ(J0)Ogz0INm8T+cq3iyl{gX+1#i7L3=+TRa!W&SPqMgmI@CCf6mn!vwSp)su{JG_ z>_K3r9mJTfn!Ah^WcleVZ8u@}R3RjSQo6iZ6+-04bSZOP&vu1IuehJ`^oUzw!qrL4 zWcY!}Zb-}9(;N7HmKdy>8g?1+p-1huAR zOnQw-$x~% z9FdQ~jQ54QBfCO=d4$f!p;kG>^{A3t^AK%6{*Z)~YA_Q>C(!X+2^X)@*WY+vJ@FDz?r zan&fLF;r=?B#wpD%0I#L&8(Q=k$(Yc965)(P{$f$=YA9t{PJ(|?>zT^zD3V7aLlKQ677{8xtjH(kI#7b59dURiDLk8W+OY(N^c@)X8YQE>*Jl3;z_l5cy- zCyxpG{;ABz8ABcE+eWt3oni_JzcV7mJmUeX1TT;K$S+T%acHyU;$K76V68!p}GMm3*;Ui_fcqQ+EJHn;c|x|RxD&V$+!Dsk>R}cv zE_~@N+3=N zhl;Vyf{h>oCbP~g()S8=1zpP9%GS*e&&%YJaV;1qRimm zu0gNogL57Ol@~ASs(tq3GCcB8MEh|$+i?bCKOmK&ol^BeTqz?OW z70Orbs=i@2Kuk|@z_UAyXuiA&M=N*pA#KZOOw$#GDHLX-;Wo>_8Ie<*PS8+m!`LLV zjJ0XHRfo3scUVS?U;bA94l#&d&K|Yaapt8Z=N$5|hPO+b? zl;%{B0HwljTx?w8Gd3Gr0IfNGMjKH`6}IHD!pRh>g+B%3^ES5&3c6+oJ;7Bimnn+I2F@vq$b72rL>0L3n-w6@Ku$fdMSSm1uDI? zmYQva6&;tq!G_R(j z-azzk!YNOfwKqY{TXYV+4PN~hTsoehGap=SqjoYFuc8nAHW^tHH%P$R!RM7uqvPaDQi<`&*d%&r;6;nwV!|P7~

JFM1D9h5h2l-83i9e1>`#yRy3ST!-m0wMqpApWy)~2e5W%jOlfB=efX{ zTO6DzAosWv1Uqg#8E_Co(A@#?f>!p2|c3AIVL? z$8K4)QDkGMej;^=9O@Ohv`b8)Ys6V}tti0998(lOmx2ddA&dRA3(`@BkFJ=rCJGL{ zv>RMx9^aVY@r|@c$wGiGr@i2IlE=D#C;EHw?h0Ev>H(eQe`3i|y0Y~sy}z~e2wii8 zt{tQshUthXrfe}&(UhylBqVSmDEJW8ks*KBhI|)fh2`#|VSpRTuzWZ1g5qBT{(T(( zZZn>w+Q;dDgbLj;NS|pefk@s1#rbTK2qk=CJ{Y-xW{UG^F0SX}WaMJ;9?0<`MHnjy zP=Z-axbmGQEI{S-Ir==vJ|ChvKwnU7xSt-diCvFpW<%~#dZ^WXguYZ?f|b7k{~jHp z!6Xe?3|}n6!dGHZmt%9eO5xQE$+a2crA#_PLy95y(_tIOIxHXK$U90;w892`xxUn7 zh99D5!SW&cMiR|9kV9fM(A3jeqQQY8kG@IY0uV2x>v?)Xq4+kvXrp)@tI6`P@esX~ z^?lcqWVRa2>E>3GncX}{Ki*(0!EK5mDC6Eg)xGog3o%5$#(;!%7^2^+fiPZ7p|%Wu zk|(H$#s3)1HMXN&*)Fk;@}aj=#0HuzHqr*MNzq;is)}fyl2>NIMq6H|;3LyNuuVu< z0^Lhnf>#ssdeD~A>M`bJ&#JyOZr-@>>x1-XG-xw7M1O~QOU@yK`vtrT#T6k3CwH^_ZO9#c&Y*A99D@hK3G~A2!GEb1f0v$p_QJE3 z`0qr(MPe^btXvLDe7T40#;yQd~^g((-TrUi9gUA#& z;`4$JiB;mmqD6c}w2F_S^(JwPxLJHjd`t|AkK-uREjW^ND-J~5F3ZFxm6R`lL41K0 zi6A_igg0D-{H+altu#lpL-k-O^p z0kz!A!Nwir9-u;VDL1_Dkhtpel$~dRh5IMpOvFjKWyhX0%mgqW0!k6IG zJOpMW4kO@t48w+C>mP@=eFBU0Wq8~tsYyIV>(IVgd=+?}rETK5#G)2q0dEjDf))!W z3_m1341R(cHluI{@2LaUh`<-5pxO(Oxyk1Ke(;{1#Ps17eS)^+tg9#gYCdEM_bS*coX*{Sr+O--9#yK1~xZE9%%!d%%de6`wxLitBgEibHtg6s^E0EoO*Z z0-k*V&)sC113=CsXb!`-2bKwiT+7I>95Rw+`#UeR;p6r+9YDoxrwjBACs1*__yq8K zaj^G*4Ri}Q&6G}NcRwWV!i5RG!zOn~d^Sn(M3U<)anDI~hgd8li3jHd-gMxaoR|O( z5!<*nfh)XD<4cCb7xE9-D7GaLOdwe=7`%cE#dbiKmV&P1rt#u_aX0z_mUsZt!b*;v=k9@i6QY(AvaFnjyZV@)s}8 z|2|?9w+aCv3%94Fv;emG@Gze)XJBi&C;^v0?ut*<1I1dW7Rw_BZ6(0DVjC_8iyX>& z0e1>c_dY%x@Lcl9c?z(OdA$k1-UMKdQdzrLMxMYOLVu8cM57RE!PN}B+gG4$QpsW~ z&w6Sh>OS5aZ;t0)>ddopyz>_ON{@=N);wPzXHYzu<2oXq85Cd5GoPcGIY?=rx|gOa zGxi+il^&&@)(P~CdL9(d9TDF`*Bn=#j~8g6YYL2^FUK|I9x@++4cqUG@Eu0H{ z+#_B9f8F5kx5bNa6+ysz#a_aiqv9n5R^O|KgGy%Ka}x1&<17`o6_n0Gz;={QwDJ`( z#u4$#o7UjpPQ%L@NY(6BWwMbe_DJmdPzt zCAX>hvYZs+Kb@FoqQJmbkfozW{0ySVq2-0*=i--;4^GTkH+3%#$Mw5k;N3R7lj1vc zgZP#BwJol{Mh`9xG}_Tfpm8{jW1%a@m1EvZd9!j{^A@|y^4vq>b%cT& z_PZbfua*U7qBA_W4~FD*<;ni21I45hU%;}FOKzl;miWCT;1YkY6}n&zo=yV2k$A`U zCNJ*swW@bhri{=zvX^GzI$uT;961M$`%hv8)(+H*KjV)7G>ZFCdBWiUsuX__e+76S zp9Z#Pdp+I=^je50w)OyY{~4-9^eyh>`$6$HzV{xW3`Bw6A@M&45vzLJsu5F!@Jd@=qMJPf%tB zw97eit_}HZ7#v>Ny?SM#6v&cTDL6G^9YIF40*{;qEn%dAz+L25HxuqAPd+lPgGc53 z*0?;&^C1HK8aY$8e2*5qBl3c$6Et7AB>z*0RtLy)NM4jbFDWMz$#RcFyerIOG~+mB ziE3C2H6`si{(vdHiYdJYJMlW@$Tz4!{t+R;pKw;-&r~7*O55Z==u-JlHRVDq$_!c} zmnmjqg7)MuMNNqP05iB!F4t_p*Qc5d4>;Md-)2L7>9h3n1LVt=RYS7&VCl1RrFvRr zKh>+JM*C@vdRnWW*z{mrvwmXZgQpgLN@3c1tv5&~>eDbS(}t-D62>wX zfPQVx--jahD1rI7Wsb6;vQYhOM@;wpA~j?l<>!U4-CKd9CO z)gF1hP2LUiMh#0$0W7Zi>@bo$gk1Bn3(~9j&fX++@#Yd2;TOB}-1htP_)b@ zq*jI#;vET_xkFWNSYLO@522k6TDzQzJ0lSuX&9ZH8_5sLkJxNqiJm-;gAVrBa6LC6 zM*X(yZ<)?7_=^=UdV`#wbeQ3SU*?M16cT~(|{0D`pH>u2c%OOp(M2 z0>OjX@*&{*qC)#1qkR~y4?9~Q9*#B_XeR-!uBd1mgxT6=9%z-B_wgBE9e#^XK|nZx zJitLxDQ5v0N97}}N93XU61COtP^3+9MUpv-p-4k=kc*}#e~a=U_T(KJRTS4KnS7nJu5T%l_ERAR`{#w*F$UK)!^E`5!CFC

0h;mUWP!yT*J0o2x)tBD*?X9l#IvKy{KkKOV)OihiH zyvL|U;!YUba4+STVD)gM)|SspF^XZ%fkfmcLi869Z61;@>DYWw{t!{yA^8e-8I(UC zl)rh%Oi3$dE7m9#F{@GbuA$lH3MH#rALrO9k&n;O*oX)0czPux&6a;SB41r?EXhA4 zUq>;jIR7)KBLv=uio%8xH0945ly3xPbMo|O5Vc{yK*`~il5F``P2!OJXVOn++NG5| zk#)?j6e@phuBHsLo^s3v$}<~5<{Dan=f&pQgj!|7SgM^&6rwIvB?C51{}b0{`6fIA z%&@o_8mu;7OZBx8)y%TT<$rL9L^RB@Z>rIP4|1QOEsI@fvu|+-K^2PJ17Zr_V*hMM zo(mgj@D^^qc=9alljV8vqc#!>j*`Fiko+$j4g71!G4ot`?j!P@r_oU?Ku58_(a{hi zI}Xqxlvinco*O@Rk%nmSX7X@|F0~c77zBwjMG!7bkeJJO<|f8kBgYO<1J4JiHfnf2 zJ$gPpJbcjbprCj+l>w6B1ti1kq}V?a7?*+HIjC8B2l;K5(qzR8V|;Re5X=d-Tw0Aw z$^Q;zTk_xdD^Acnoaw;d6SNe^I@HOIVp&un-=;d(gj^-H`%pb3^AhryTPR>|qii!s zMdo%WbQ_epovO?b)ta5uXohK>xsxt7FNI=v(Y0nb-DdXC!)7l%WnM-R*NB@;T@BigIB6ZV8Ubvf zS#&Y2MIyBeqV_7yLOPX=w!ffmJ`r~wQA8C+j*$z0TSg0vNx1W1pJtA67JR*nDnyZy zhdUSmakDX5$Nsp>S02J6t~UydsW2S@ag{L*cLr|}s)Wom;?+XkYf7S*3W$ut_z5ie zGVtJ!yfR>Y+1F~gnp#bFQ>)8rYIS>>TCD&cJOMlf+yPJ1qsG~8?iI*Dw}2o00-0!> z;Zlv`xN$t5&(+Ufe)i$HIFQ91Ogsa=3n1NqXaT;5;R7@yuz;X7;0a(@z>9IM0UzTD zWH6$DADCJLnE@aPj02X|!1zD_zk$F6{7wjDH9ab42F9z6Y5^Z1QK`W8vY{?+Q(Y{V zx_I2`5^!7kYI*e4;~g?en}OV?ufB{SV>X^M{QBz8)Yr^$L&jXRj~ma|N99F<2{A4JE*rN9D$V zKZ(|u&uESFv6Y@}U|-$JHZEvx^<*21F&s@5xS(wbE@-?E7ca;S`1mJ70NPC{&@NKY zDit(L2qSA0v=!(MXmz-tZ8a`{)_}_}Xt!BU3U8~CZ8R}YjQ1*V%?jK)AbWkt*zl-) zCEI8nGPXV{pJa{Klx8?s*JzKR(~y0i5HAa2D&pHPcuHavHx%Ehnxp&u*H8k?Tdm7(Wb@NK!4E z{bBqhl?@_nK8hFNMnVPd&BLP{CpOjy^`C^(c@x21-C=295!x%0Y&e8M#w1vajD+H- zKj?Yg+n!IT4ZhR*i4Ik8Nyr_aI9O+fFvHnY5*n@cZ+*5fS8=K)1g@4Y7u>pXzGg;Z zN5{ydtF@RBI<5P^C@dbu5@nVch0$azGzaRmynm@wy;zwXns1Wv1K{dnq*#-)Eo&szEjI|}!(a84O*vW7gd(6$@fY%zMjUq~L NxGJJ-IXKL23tzkRw|@Wt literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$Lazy.class b/sponge/org/spongepowered/asm/util/ClassSignature$Lazy.class new file mode 100644 index 0000000000000000000000000000000000000000..a4a5df8c4ae12848da9d271bb8d22a4eda445526 GIT binary patch literal 810 zcmb7CO;6iE5PjpMgrrU=;j^?9T5-sSz^GR$D2f_U$?btuxi87$E;x2%J4NMJwGya^ zL$65uDAZ>YsjA8$Tz33sXWn}=>)X5Q-vHj?jbJN`JSQH8fv1PznT~YdQSrbTCB}DJ zzKY|H@dA~MBE8|N^X~YEbeQ#wH|HlCpBrb)+Ff#-CR$OPVw zpy=s9M=H^MLDQXBlbuuVOkk2-!9wkS;(C{=wR+daQt%bPX#Px{YQbi$K6&qsjUq~^^rFBDj|F=VIerx3GM=YXt~oD7VoRcI!DC5j9th! zkA*SkA!~$pON|RG-JsH7oV~(}%lpg^UgfZsol?bLr4Qt4lldT1N*$78tYmSbRE=*y NKU19OHL-;!e*kNR!K(lO literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$BoundElement.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$BoundElement.class new file mode 100644 index 0000000000000000000000000000000000000000..d0333b62aca85a01b569d0f593313b99ac926342 GIT binary patch literal 2172 zcmd5-ZBr6a6n-v?fa?Z`U@vM~k-=iFFIgG(q9o-EQeOv5*|OGEyQbO66{~KRR}HPInNAR_C#+5DgJ!m{1csqb z^6B^Lp31Oz=4^uqFr>Q<4>?DL6Skg`1dBE@~)dSAiLp$r-P8TIy!bm@SxXkdNmz+4%C?-VsaYe!~&U4Uf z5-#8(x32S7A_;qYrS^^{HN$&)O?TW`ZhV^GKAD}*=vdXUx>ETXFyjlBVrJpWjbvu5zHXFDs$Hge&XLeLt4u;i3c9I1t5u^S~E?} zb{kEj78W&c4oo(G~)K3cTrx1$&X!wOlt=bw->4UEf~ zBV3iI8c51x4NQI^2Oo0u8{=WZbBMw^BEk#Ag_n3t=dufzzzw8m2P9k)=31QI=UO}g zfe6#&-=r;29KVap@&S?un9k5Td5F0N=KrvY+(#&4NZ4}OhMO@hwm5EKfe;yPf9y!9p&jj2QB)}tu zw{2;KTWN*y2+MTu!z%gDA%GzIA(HJUYk-vW(JIkCOlySJLAsA2ggC8-!G?&#^&h2ccs}gTQy>Aowgp*|SB|w}-Lo z*;}57qK@nMA|8gadZz7)Fp^<)I|%#2Zx6IOcQ2C{0SSWoyU8nV}?)|YapR?zJ&yHv&vFVxoe_2J)zyn8i(1_fw7~qSG5+t<@(bbJjJ~4d}3Va$@xk5}KEwEa92TXPJ;y zLqph^05Uc*7i<@vqTE1j8-8)lH&a1L5t7&{gMC zqxsJFWti+2$*CHhU>F|AZP$}1a}ilykQz#=$3U^DW{fSw-+A0-`GPeM8U6qjt8t9G zR^uBUSdAkrES=!VF%~WB2#Y7+XZBbAmxeX|Eh)108wNYh@rGN-Xn4u?@?R2G(Bu;{ ulZYx_g%|ZIduv$dlZ6~#R2~NFCd+FqHP)`P%(5&n{s!Ain8vH*S?&*im&TF+ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$InterfaceElement.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$InterfaceElement.class new file mode 100644 index 0000000000000000000000000000000000000000..90c6f0ee9e2523140f3cbef0d4911df4cdd5b21c GIT binary patch literal 1190 zcmbtTO>fgc5Pf5}apIaLw6uIfDK6v#FhyKYpd6}JDvD60R=IEEC0%gV)!HfWvyci% z9QXnJD8$$a0m8+EgS~IZGjC_!TYvlh(fz5# zLqeQtH(1m(yHkYC;`Jj-m}L#OvbopUUJ-^9(+Q9NMbX^VcBZ3`4Hp&M zVfD7-Q1aF4C@o(O2S?Hzilc}lOP#nUqOLG1+mD0Zp4QUjzk+1V-Gg{&dU97ql3TRc z4}fa5%qB(_KWq~Sbwp?HRWfn=nF5fz!;8a`?<31=pQF%;?$B_2EMWoW61w5cW}q=Im5|p zzd7<*SYRm4ecZw#LuQg})FVT7qKvy_SO{*VE*vsc8gsi(hcz;;kj<&|WKd zYT2-{lz@S33~_+LEY>46jeHU&R!E2fGc^8QW*UDy1u0P?s-BDf3ct}$)+EwjyRXDF!w0CN%xUuvr#J%q9=_EtsBHH=)FO^ zUEY7iaygfK!|Drh1Dmv_5hM7BxbcLP@r*6f)<)mczD|rz4t*J^+r)CTTSy>DI6^5Z IzB9z}Z(HT$0RR91 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$SuperClassElement.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$SuperClassElement.class new file mode 100644 index 0000000000000000000000000000000000000000..33b600ff0eb7cd5fa007e4524666b2cc10927e61 GIT binary patch literal 1194 zcmbtT+iuf95ItkJapJm7+R}2r6$7~xOc5_AP#&sQLWHVPs=RNTRl4A;BVWpQRVpCy zzz6VAh*>AJ(7u@PVDH)SnX@xz)<1rJ`wrkao)F$e@gPV>ksioV^hw6DABbcaWT^^+ ztxzOMR}HjCvsn6PXivn6jQwsll5x)24&_kl)BzE8rWf3gK1zM2WfPYFuHfkhaV!Wg zr#`_!iO?vV?x0MlUTB-Jc&TxM_h;>dpzs-fp6FnnFq=a{DLqn&zd>ksipyN6vduED zlve2`VYB`pI*p!(8WtXCfRkj8)fmK+)<(A8ZDj( zK((3~6eEit9ux?5MsIj;B6H2wXRI_^Uvc#$CpGw8ViN2lG#RgsX}E^#yyJvij+k)+ zHz#7RnZp^VHczo~io3i#_=3mhg02y>MI_!eW*kUxttBH8r O#sbHyC}TbUHv0=cK2Ze# literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TokenElement.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TokenElement.class new file mode 100644 index 0000000000000000000000000000000000000000..e659c2112f5eceefad5de57e1c4f8ebdd2e87215 GIT binary patch literal 3885 zcmdT`O;;OL7=G>~Brps~8Y~s@qgJY6uuUmoi$N3+gi32I5d=SnWSUNy%;3zVJ^TWH zhkK9Oa|#^FIUZf8=cpT9=*EQ$7cN}*3p~DeW*7#@*aTKClKYW+pZ9s6_v7aKe;#}Z z;37U^m^Q6S-d;0}in?arRV}rgSL|xO=4g6;QdewyUaJ_2Q?u0GV0K-xY}M*5nyacY zrK?rdaFSpQSB{PqUj3X8^Yp>h0K-j(&>q@2Ru)W{HKQCv?IgJv z-eH(&oZ|ttdW-98>bO-2z#nBu?cZa_1eg3{6g-C~Cd0s7Lga9%_bd4jf8XPgTx;YmEj4_)-^xts2J z(mi!Yvo*)9eI9Lwlesxw`gvV3D*1WG(u_)h1Iy?a3F9(Dl7PLlQ}xas!HE}9;G{=M zVMD1BiR@txRN#A5-K=N094VQut>o?9W||N3WPv+tS|t3($H|W-TntRt>EnfEFJcoS zx-dyC*mZE$a8&E2Qc`^5kCKD|o)Q9HXE@;+ z@T52G;h;Ce`48N=C<&t8RsjrZxY0_!G!^6=I*L#S)_Fs@t z#9KT`7pMRf+bur{Z==5*87xT{!Y~*49eO8n%Ta>a|*RMYW2`ite^0v!v(?ily=z zD-oZ;Q8`91J)hFr^VeguO*juA3OgacB_FGW0?*~-e!qZAKI(*zD$1J}>EFaliwC)V zg*M^q5S|$5C}NC)!0}$exQ{oE7McN_9B*+4T}wpwtQ_CMt6W2mtmpJMME2W|)15vr z!_>pzVs+qtAh;jv!cEulmSRfY&K~miC-U~^hj@D>pf}`t&!f7DIr*T2zaTFB8e+5? zRfem$=Ib>5P73iPB4a~c07lS+=AvCUknrCf>Xf1Ao z{>U5z{5?b~9RN}j_i0W0X_4hHJ%l1};oWU~ARI#aBSbA5AZ77kKuxKKN#d6xG5?If z^wJIV*pwqMZ$@JN6@ke+4HvA4N(81BiTQUV=54|fU=r>GTB-2bAkrw&*g<;&%~I6r iGPFLCXhkQDkI;S>?VqBto5sgzjMLad=hoaiE&l>f0N;@S literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TypeArgElement.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser$TypeArgElement.class new file mode 100644 index 0000000000000000000000000000000000000000..8f4d7aa779a7fa2b1b4bcba0caee6686932500a3 GIT binary patch literal 2937 zcmbtW>r&fB7(HtlUljvROwu?sG;zU}2?o=YxTdt=LV-AGS`%n`7kI~2Bg>3rCzB`W z>$Ee$nY1%~fId{G->!r(1X{=b0a`7)=bZ0+7xDK$fBXfYh@TiXTXv)19JZ_mKWshc zHm?_Sr&;K<4YN=&b;qe04NGr#Y@YE~k96DNc4p_rAz!r{>n3k^^{va zmcnrPH2vH!`ZJxOG%!OLA%^LEY)m$&fg00>j>iC-ep)BMw5WLfvFgR zcu&Oyt_slGDz4!jv3g(Rh%98-9!CAC1|~lf&kVZ|szrvd?szr5cws2#LCH&mbQd4SF^(nbjkaifhK08fbc|BMMgeOMlUXvFbB#Fgq2B2p}Ge>3i_gA-UHbtP(hH?1WLM#4_@OQ!x5HG zgu7_BFs|H|XcO)YUvLs1lQ(vau~k!scUpvgp`(aM7;AKbZ%^Sa9x?} zi7o9@r9CQ!$C&kED@j5iPPofsS{J)}XU!^7mKS@hkNeg?#-0bWh7qYV@h1XLgiTud z6`q_VF+}H}EcM7r__7kRAcf`M__Fd8v#1AlBF2SS?h(Q~hyZ?|qeX;hqDB#;b&ytZ gs?Y#EReDd*{wO`i>6r{gsA;2Ani2d+djX963!SkCxc~qF literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser.class b/sponge/org/spongepowered/asm/util/ClassSignature$SignatureParser.class new file mode 100644 index 0000000000000000000000000000000000000000..01473b08ba8c20e5530631f0a0fa5ac662989bc3 GIT binary patch literal 2228 zcmb`I-%ry}6vw}JWg8pa7$Ath6{qfpQXHt@5Cvp{5<)VvgvTez;XVV3pWp7wmsk9+Rvuirm@0?6PI!<1>26uV*?C0;RK za*J;&s$Ev9j;1T~x@y~btz@W9)#7n)wW?Y+w}M~{6Yb4)Z9}p53>D9?pxK&ZlBL8j zu%ABqT-{O`lI?kI!U-b4(CeXVF)=(oG@v=3_>$pp>#17g3py`z!wDk95Np;lJn7s; zzFOgyo4DsgX6S2CGvqpVGG|teO^@HpAUA3l7CT3;y{hn8tK`A^8KV1j49lJ4De1DR z(^jfw&&41^f2;mj1zIy-aKm#jOa*Gx9IJ=Ce)RBXsE3-h4E~Bpl40e)Rx8U8aGq&) ze2gJ|c(O2?)(p*=VHiyu!7f>laS@k7@F6b24={8kmV|Z$*TU#Rf)pYkhV0?7%?Fdh z8{QI=qt*tZ-`p1AbX*w*6U$6?_Ep_VzdXsZQHCpT*MxVtBiVKR|Cpbr0@m{}ROa9cRPLzC0RdUMG|%b2P?zq{ww zohd~z!5LW}Dt=V63}wrk$pq$>0-YX)DbmN&Syrf%qNUCg4Y7gS3V z_jRSbWEk}^$SJyT-mF?hp3`(r-Q=UT0bPBf$UrP6I*c>{`j6l;wb&f37Tq@hIhEeV zl~n)L9VEZHcJp+NLIR}M@JnydBfZ5#(hZRXy^j>qB*jW_8U3!~MxC0Y9u{v!Q@a>i zPo;M-wvEhRZdg2(-XS8rZ(v3}W)$O?aGA7Qb!NuB2f9<=kok_uFU0pjL>ZtbkUqF1 zS*+1rC(&p5Ap2~y{l~WU)1Lh})k3gCyNIl(c5uHL@Tmb1@&b6!4iFZA*=E4!HUJ+M x$mbko86SP{qa1gV62$fad`Pl)&e?0Py|PYz{XYBwU=|MQX}o0?wEF43+|dsDL#(+ug{sVO;S3!1LkOAJ%VGt{Z;3i=QZ zLP9@-oOJRC21DpTjC4Al;4!y0X^H@bLKsF&fr1{V>H`~##0D5zzQp;eBM#(Rx8mHw}UVhiZzz=Kq1(K3DJNcJasXh#Q9 z8@oN0&JeI=!lTvg)6}GS4N*d|{Z_Z_vJ|DqT&Qr%yMT9WtMLQr{{8!7M@1_uMg^~% zwv@Ea>R2L{SwkDv)NUtI&92(*CaSR{1Ox98=mW8|!rYp7+FkaS=XmZS)CxjWAX^;B z#qyxRL^7+Y%W& z<%Nlf16K}izzq=-a~;#RF`WpuBNp%Jwo;7vmD4k+i>F}JH58)5 z#0|Jne7S`}-sORo^x7G}wvn3J31QBZ*!YfzGfS;Gx(eu&)i#p64dMeKY)6BFh|=a6 zRl(%FS3wn8-<1$v0-C6DoVA+)D-1dtO9?K!z_FmX%V7kj+~uI z80|x!i1i^6wMJGf2>A)?Fbk<&GYvpp(wk=#$@_3bi0@K3G;KzwiOiIDKzQ$_RlDQK z1T|j8;F)GKa0M{&5gZGl1otT1I718;>;t+1kCA$1_YEVvgsqiBDjy zsDD3e72iy(RiAR+K0xDiNh>w6)d}DSO?=Q#pz@`ZO7gR@f`}yO264Y$^!5> z))(U>o{$XUgNd5E32oxL_@3jhsNfGsjCcY>(8pMxSr_)^u^CvwdMTFro z5tEucjAz8mXNnOJTQ8qRlzL4fFJ&=J3u5W5a+T7n9WQL}t4c?`J|5`6_#UOR|TLX0^u>_U8V>U3O}l)fMNHNPDu|if^}4F}ZgimUL#U z?n50`pL=hPhpEjH7wSy*r@HOdSlnjaHaM*?q7dSkG7Dj@WqLOd;XjTrdd+^Tubgo7 zl>?2wvgLFC&-J>JXV~Pk?%7AY`-ObZ4w7}xuEDbl`M(;A`Q|yUR&bx0Tz zGVnbAivNIDQGnO*3$9FO7p~P9f>7fktVN#Q8;sTwqHZF@>s0m)4N>lF^B{sUscBfY zE*GqodxSU?J&R@0%3(B(ROphGZ;sF_*kUKvkJT!2eLdi$1WR z2Nu*G5$jZ=)&=XLcp^p_1-verM**V?hH-tgZWt@aMJ=b@fJ+qhWr}(kr39IylxA7v zocCDDJTsJOK2e{Ok;`|7YmkcQ88n?hBoe6{!Og}=6l&{4hqyZrFX+FjT)R%&N#*lH zrU2zC=u@r2Bdzf4v<7Qks!o@xlvFEUB7x|XO88`)_G#qmrxo#kL^3pV#hFAxvJ>=Ol zDbEe$xsg1pCgs^h2F?vRc=l%T>?P0MNqKH2&l>Wqy8;iu!Q2gkWAu-djHN{F8fA3x z!Vu^gIuBzfE7JZB){+DD=a4Y4qdto^tlg!niP}Wk+YnZpF<))L5_P+#cdE%!FF=;M zi9MeKVv@C5;+cc@6-22UK}w5KcNUqciL#5L?4~GpQk1HP< zgsbvdg`ylC5@Xak#;D6-j0lS=)Imych!P}Fsgj!A=`K~CA*!_ck{A0h;BpR-Q9Mzd z&H3RW65l&D)dxs?H;Ip7uDS<{)V)5{t3C2+lHW(tx%9$Exe`S`hL5{q>~+NmFBn8o zl-!>jlE0tM(l+GF)CZBT9%5ZM?js9(WMO>9?W1A-Dp01$IB~mVd#JJKTrSZz=HiF^ z(dLvlr)y9kbpmDTQ6E#e$5iez75RdT)BBZ}J~tWD<79e*OsA&Iblk_pUO}A}vD8ti ze0KF=bTM$gAdYonM^<7`zjmilqMl~NJfk_Ch*{)mw+K$WDj9)Yof>(S7%GU4;E{1S zr$3$7Fiw9eaA6d_GIp5lSf)LC{yYX*kWaKzrj;xJb#fiSH+JyKK3Ff8bNIGG2aR<~ zarmCk#Sf$@8Jp`G$Sj*rUH&^avd>*7m+buuefz^Vjo_*ALw{vt4UI?ERVcWKiXa9r zA{@lYx3O?+u~-M(a!z_sFYtHR7conXqC))|SF4x#%hqqOQT-OTs#o}f&F>Ibzvt)d zA8<_lNn0UGO;>Z)k(!f-I7;1>#Jw{!7UFK4#?#uM{0?&s+(a9RfjNJUV0fa1|KhW7 zz_TzvFPzirDV~-|>w;_H4w`1uAVT%w-86#Ow`mZj7`Vy3m%*l9EW&5kpOBsH@JzVb@#hUu?YWL6{ZSBnsu6L@q(B28$lwUtT{~SgX91s1iKD@>~vv-uk6Wd7k z(Q5zE@G|brI)A~Fs#!~w<+`g8x`=YRZdP&0MJ&V8Av0mHy?qX3T> z0h}>{c+n`tuM88f7$x|#5!OCgLAwtyR+2bN&!53;cST=#33UNKW;x==FaD@KFDZL2 z=k&%l|No{zqs$iz?ims-#*7(^)9O6n*^PcRlbvkd(yx!dFCo+fWce{QS$(=#eqT=%p&Fl@FM>k G2>uV(I-9xx literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature$TokenHandle.class b/sponge/org/spongepowered/asm/util/ClassSignature$TokenHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..21da746b455b6bf6ee2f990c7d81484fa231f93b GIT binary patch literal 2529 zcmbW2T~ixX7{~u-fh24f5@;eKN=s~7Y=a=Q+F6oqTu65_n@wMC z9Iw3d19;<=A3$eHn2{MjfS<{6{GZ)z2tj8OGn1Ts&YtJ@yr2B}_wRoIn87oFS=%Y4 zs}9#+!;EFw}Z%rN&SUCyWIZi?ZS&y;3nGbWBF}AIAw_!fmPXnSfd{TuI;59fA8D zG)(hVv2fZJjjSM};tcKxOvX?7@-HeuG@g5RrF-{SeAo6fq9H32vWU-_{_3v4g;U6P z`d)H_iNDU|b~@BD?X=QUDBBjZezS8#(A2H9^>0v)`1o;UGSbLH+s)T1729!*;_B;y zQE^S%3S&dVBRrM^#^LVH*hP91&6zx3d$DUc8~SdUJA*m9pqE)cQ_8_+U*6RV`w#R= zAgc{5hg8d2mf?7}u|ZMI+cl?P+%?MvF40&w*hu`1$sy!_2;}^DE87={#pJ9~R{0&m zFi(HQr&VewT>Fx#BlK<`V)PIn{KgFh+x(SLK$(Z8EMSN7dH*mj(xm+Kc~HTpA&dpc zFL|bmJJDq70GE@8_$Ybx029a1e)(Ftg9v;Jev8ED_XkKMf2G{)^gXD`T9eaSgYDfcBnc#u3W%H3mBfL;$zUqRAdP(v9e?>hhLt^BRQ7R2v6@1g3ml4I3OPLRLV1XFuCk5No(%NR z=0s~;FPq}(X~e~gAy96~%NMQs-! zKWHK|@q_WRf0Xguwv?@mM9H$Y_x7CMJg*zxZ15ost4qrJ7x%0PzVKOdfk%8(8fGH8x#8m7&y4c-t8 zBVF3IJlC`hDsiyZc3ok6L5Q+s+NQV6kT0AJF77ZS3&kA`Ih@ZTg%J%J&Z$UXOv6y{ zG|n*K)y)>e!Wm4XWZSP*t@-AQZHHm8a0XIwt;haAZyJ|Rk+!B`5?8ahf@y}7u^(Bvu)w}Gb(kd(MQFQ-E!J)O*}U(foWo=K!Zs45ji3Bl_unT&|Rf} z4#V_zk)B>)fZotf={rVCrSk3}@`srCN?Qp$r0WopbbUo(d-VJok7zX>q~HQB(n{hk z5t`9&5>p{~g<>RFD}BR6nf@JI`%LSAs!$YA?V@QBO~ZBKO4<#~gf!h>11U-S62lli zMxzi4h%h(%Cg$Z4^QkPeYbUD)QwH z?!*mgb)nPSCgpt_sm}?+Cgpr literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ClassSignature.class b/sponge/org/spongepowered/asm/util/ClassSignature.class new file mode 100644 index 0000000000000000000000000000000000000000..01788c8b4af7e2cde6c859da346f885474480535 GIT binary patch literal 10370 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/Constants$ManifestAttributes.class b/sponge/org/spongepowered/asm/util/Constants$ManifestAttributes.class new file mode 100644 index 0000000000000000000000000000000000000000..d0c105cbf7ed009afe52d06c985e7d3978281dc7 GIT binary patch literal 813 zcma)3+iuf95IviFg4323TEeXq0u&^$#0x?oB;%&Ys&i3d1$f*f)3B|xj_h>`pT!dr z4}1V0g_wjuBf&!-JhNxdnVI9+A3wi+2k;F00?(s(Y$wx5k7*j6QA{ISCKEd~Dzx25 zCq`wtK9`Tzr|m2koOqtJ7`wy@N)VC0h$g5S^0l#L-NRC}!mqfvVeX zcAUU_kIsC83q)P(vfQG<{its}$6`Nes* z8;w}M?ki2LbTXhgkgS>SKN`xgFJm>w%S+4Cn&QQdiHj?}D2<17s6xu^A;W(I-==##<}+D&uX&*=7AT>~SC9E`J5?TH`FZFRzdDJw`TX!8!l< nD{g(^Lk4w@b1~rJK1b`f0JpKb;2&_DTg;${Qm%}Li`)D!X!C@h$i$p_D+I);2}?)CpxR!H_UX>f>iAGdQC& z{s4cJ<4sy2jDDaWx_j>3d-m+PyZQC|`%eIKs58vCUPtlwT&KhL+>hMjTZ-xLD&4@c z71ee8z;ps%0Aon+m>*2VHl2=A-Q3~rK)?V)>Tpp$%riVb3E@n|bgXyW4+=rxS)1K} z(;h<%nSbL9N!6&5(oFeCK!d8B&OF1=g5_Aj3lSqUSIe5N84Th=+wO-`45M15P}1~5 zeWTTA){4Y5Hs1>7N( zM}3SAEkGg9J3OeF?e}JfGmK|*F=zVWc^UUGC*dyclSM}y{j`9G3<9y}<}Oj3IY!aH zFESqEiG)XZD&s7qVI)AZV;8%(PQY`b^7x)@wu$O&R#oGA4#{5Pm4p{4$T-&{QyJt) zSl?3tbX&%=v9t7Rdp?&WEMrB+EN+BSR_UhweNF48-KDLQs=GzQXxVbO-re2go?&j< z6v>p`wrQ`Mo)zMLP}UrWdy%J{`X)8puGi*abCc7=pQJZ0V-mxVz)&WXi14Wx9;JLb zhBJgu$M85|a*k>z!$U{oL@Yl^@$)f!k?^G$o+5lDhOZL7hM7Y>*9nsyk+wv56)968 zq|nG{9K87rH@`$_o&JZS-~&`?F83DT7H$&~kvc3cf*t|=u4nQGcyNGc`&jsjg>*ix x9AI%DOFyu@ks1F6Z69kPIYUUEipsL2B8Lh3S|(7VXy~0lb1^xL*Mt)o`~#iZE_eU{ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ConstraintParser$Constraint.class b/sponge/org/spongepowered/asm/util/ConstraintParser$Constraint.class new file mode 100644 index 0000000000000000000000000000000000000000..a2e5b75b2850aa464d95c8401214e263cc8279a5 GIT binary patch literal 5559 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ConstraintParser.class b/sponge/org/spongepowered/asm/util/ConstraintParser.class new file mode 100644 index 0000000000000000000000000000000000000000..8714f4bde9648f2462cd9c9983692eff9b1f9456 GIT binary patch literal 1815 zcmbtUU2hvj6g@ZgdhGR~v$-bE<(K#i4Zl_%j(sDik2X$w%@V>3Gs_JDbf%suc?) z2)TdfF6uPG@-g7&h8O}Vf;o%{sT;2E#&3>qdlf?HH9R1f!!R z5o-C`P|#K!x_-M-I1bhU)(m^VodKA@1e5oa-;Q_t05s=1tHZN2iPqx&W=P~{Wk)vcEa>Bv|Olz()glrsq(dnqLDz$H? z^M%6*7A|5=r(YsaC5_AMbJX$Nm~eRng~FGkAPOjIhy}u_5&HsV?zT~2{jP9KHsb?! zTryREhfvACt+%?(mT*-AUgMMU)f1K>qHc5jNhc)Ohq-f>>hBr)!%dmoRgyWlM{)4n zrW1!sIcvTj#4>gRzY*-H|I>ik)|*Sq?QoMY{~z~aST+*4O-Q#@ye+*hpKtrPoDbV^ zU}f-9u&!Z;?Jrqa!yOYJqiSIsCryljFN7)I7(#H4IKiXbW8bUnB4NDd`l``=+*IM` zvgz@PT?<;$+m@lLW!%w}NiiQg>ZX;R@4B^3w?< zc*c(q2pb$-43RPhDO zVh?A&hxi%q{aCc$x2JlT?P1=|_fV=)eW6i)zMM=f8#yDF`~k&s&RAMa{R;7LGW8T! zRz>M|WF|#@51G=W=;6cf4BC7BXXyn*X%8ul%7qfB@mNMWn|O_LND0^iivog2e&z8u zX8KFwC5*pdh&#O1*R+T%YdX(Q?-a&q2GcZ)S-OZ7nnRT?;U3MSPI+wc+CwV!bzg&l zDr;TFSw>mmdLQwa(t2^7XTUVpvC4D^vz%GsJZ3ZGBf1!PbgFw-pfzf>3o)apB6__R^-NNzFrl$CYl}2%_LZ zT)FV0#FI2&5y3^~p2y_Oob&nh`UYSJ%M7co*EapW>$FARy%C;hncVN0VPM&2)eW6M zcp4Z(w#%=%X>+G-o;13m8EB9h^n|h%bs5xaZij+_9WtbLEyoJ>802E?sIGigkT!;x_ z`A=>}h!9D3p9R8dz5f<7XO)&o{1c_xv1FSN=9%ei!8=uRK=9xXM*;E)0m9KC8q~w| E4RtRz+W-In literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/JavaVersion.class b/sponge/org/spongepowered/asm/util/JavaVersion.class new file mode 100644 index 0000000000000000000000000000000000000000..aa89e6b9d5776ad315abde5a567251a40022d3cf GIT binary patch literal 1210 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ObfuscationUtil$IClassRemapper.class b/sponge/org/spongepowered/asm/util/ObfuscationUtil$IClassRemapper.class new file mode 100644 index 0000000000000000000000000000000000000000..567e68deff0bfa193e3f3c0f34a6248f2412bcab GIT binary patch literal 320 zcma)&O{&5`5QMA!i{`1g@CYL6!U1;=mx3S&g5m+j*oH`)2{Vb_&4mZ>P~s#TQ8#Y7 z>FO%JrtgpI4Zs9#!oN15u!&Y7C;GyM_d?o}$kHeltKA{9flMQ4bC}syKq2hi4lq!SL%r5Ot5B;?sbyID literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ObfuscationUtil.class b/sponge/org/spongepowered/asm/util/ObfuscationUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..e44b6bf89a0703282e5b3de69f75f50873976410 GIT binary patch literal 2190 zcmcIkU2_vv7=BLkv1yv7A(GbELPM!EO&g+!t&ob8KqVRqw$R#+qq9wxbYZib+1=pB zt^NdO935w1xaqClq$o3b$Av$MVbJI71{#|VgQLzQXU}=R-{*bK`Qz!YzX3Rf4S}3x z*9%V5GV5B?`dqWMT0wOhg_f%ug{xaPTTWGVb<4cLvjQQIxTW4v3x;aeslKIET?GMw z!~0B6N-KdgFCToeTryP0S8WIwVOTDnn_gMKZFQ8~jdX8G7F zIKq(|nptE%k!Y$yEeo z%G|tR@u}HNLw6kBq|8*2(cTqEb$9YCns=Mui(($<1qAsiN*sC9;-wa4g6{E&`%Qs9 zXGJkgNNH{tv7fo=!*#AA{pgo}EW&#gz_$O|=-4{LgVc!HP3{y{IjNnxU=tugXK*0k7RbCh8(eTsR$kgwv^TqIeGz`9!6STsqjs$(gYS zIMv46i6SNI^xZ)=9ZZGgX$ME>P`QVpPHd@-=6&TiA+hu4k231)D zB%Nolj*IvhA7B$J_=M6=xqgOisIX|;f`+ef6F)%r@ViW8#u@7ZN}O*Tb$VYS9f;QR z;oR*EN6MD)K1Ub9ceso)%N@YC%vC1BQTcXsIPf)XB(XAM-(zql_Y1D{fw;)swLUE8 zA3@3QAeh^0`4EEfB?U*HAj0)L|6Z%|Edm;3iRqP_^TV=npEsH3rDZy$4YQCHY9$HR R=_@&{$dbeTghg^O^cO_q5CH%H literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$Alignment.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$Alignment.class new file mode 100644 index 0000000000000000000000000000000000000000..3ccf764684103b6946007589febe198d37449fb9 GIT binary patch literal 1206 zcmbVMZBNr+6g^M((yi8k1ra8`FsH5qSBDTkY#|UbV95f+;S%DfZamJCt|eWI@lT*X zMMok=qv5kZ%6Ok{(JlHx*CuUl@44rkdvDwCKR$m0u#6`R%dXcpx+kvF<|poJ?(rkT z>~@U6w`^nIE3@hVUWQaYhZtqaJoNa8>o>%G&t1rf5il3Tx zz`G1jbNW~mDy|}xgoJA{Qsk^IyeO!_C zIiU;Cog{(Dv{)WxqDW!_lVEs6QHJi~PIPW-c!U-pldwLoe_Q(a|8Se@rw#Y zlk%T1e+fz8r4hVAPt-mNw{Sbm)0_w;6pM(^3CQ`y`3v0p5T=LaewWM03hQ_rViu6V zeJl)&>{27*D13o*s6B{W;Ndy+Fvv&4U@7*MQjs3?`eC$(rTRHEq1JCM6`FWULwScZ Y&L}EUPNA$sI!PK^Uo}GiDbZm3Cx>$;O8@`> literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$CentredText.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$CentredText.class new file mode 100644 index 0000000000000000000000000000000000000000..c1d8b3b851377e9050cb4e25057156a3a6c0110d GIT binary patch literal 1171 zcma)5ZBNrs7(LJ4x{V66^5P39DrmO>RYVkr!??tRWKj~3g!sj7yN;65E^P<;N&TR| zM-v!Eqd&kOWqfYC#NmwDhqm`VFXx>5+|!@GzWxBPh)0Aa*J~Pn%XONf<+jN@7v)Z1hb2LuSPBksa8iGD3 ziGmbisE3K5)FWPouKvwfBBX*{%b&SLC{za}kzK2nV+Ccxnm%}2KYe~%#SqjCVi+OB zb-6!-vsomdsmLHJGoyrr6iHYfn5%c#EH@pvn*m=#lQ631dvrw6l8W=VAXzUGCjJa5 z%06yec0+gyCbO7=Mxfa=uJ8=ZR!cYy!o1#(*iX`hVXmvVCXucal806!*k#0Z6|=aJ zfr6W-j1ehNkY_quI89m1W8(56=CUYYo-nDe|DVl}Y<$Dyr?Dv4e9F`-*V{J(!pc9y zzvwwnWX)1P10UormZgS!@`BjarybTEE$1q3Ll8!)mLs0F_iMu2GHW(Rw5nS-?QPSu zFpde{adQYw;YyOl7@SSgr8q#6 zBS5)ugs~1TRli|s=LDCv=?-Q%mOFx8>|mjhwB_ez2e-95oa$gH@g0escyaR!?tfy0 o7^EVJ4}3rxA44_c5qeim8p~M01LlsQ99GMf!qvbUKQSbK1Bs*`9RL6T literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$Column.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$Column.class new file mode 100644 index 0000000000000000000000000000000000000000..ce5cf97fc2ef6737974acd0588935d2de9573680 GIT binary patch literal 3141 zcmb7GYgZFz5Pl{XH-shNRzV3=6wt6-qKH>$y-?9uPzn@lscjcn!)n;1$;MkRp8kz~ z_S7%^U_An!_MHBJp3|Sy(wTj?8xY#Y56Sz^n|J1Uo|)O%{QlQ3zX2G=Q$n^_&Sxv7 zqMNr%#fNs;Ud~#T)oj&s3fbwh?Rk%<%Z}^W<(~0kp}Oj7AVSMM>w%RmSZ+RhbMc2suH(H=IGL%Rhmz1YPl#sv=5@5ABZ(L~39-p56LUHa!DxVv zE**Pi7r_x7?_i(odZJG^H#c?cSLQJtt!mdtKmz?b+HgQF4iX~0l?1Xn4yuzAI-1cU zznx?xZ^fw)PSnp@)r`eod26XVQ>bL8lT7C9wnkSe)^MJ4Td>`{6o|8w(=mqkk{AW& zTCbLtEzh3tYoOzzq%VR?gePy$tnR+6HBau}Ei8 zbY&(dC-H}>XB+vKsj!26D{SCYtzoAuZ$-ltr;yv7y)(I-r1B=FlemG8HRD%tKbVQ{yYJ79t^ zqdLC8mlBBwTzn>X^%_4KOX|_!STvZxT|x&Z=078>NCb!P^TTkT6?#QQmas3g)0070 z;fhN!2~C=+G0&+Elbc{GNKgZBRS)uXt5g>&{&XO;N|tv};=olrkPd#xPv3ZPnP*G$ zq~qE*s;i53Ihd}-WO2zV%v)tg24is8H0xPQ_ou8yJMrK7=+hn;s3nIZnl6U1M6boeU|4u9o=;jcUH08j%{`V)=V zL<@0xD2g=2ahNn5qa+5X5nuD&Rt1DpIL#JA`T}^WF`Y939h>h&`J~P4-@rN3#~oP5 z1tGM7%QfIu#2Gk+I5i_lEih;=0~)8Tigg^$avkU?HaCe~I04OZfu0Y2aD8oQ~4AlQWK$9WR9p)=p z>NG_We=@HzBbs9A*Z5fabX#*MO+#p=EDq3dbkK<{P@SQs&QQ}lZUxD^9waX%1sO8? zx%t*{yVeS-C|r0t#WGHBiJJ=Jru;(l`x*S|3gZ63EhG|VguSTvfouK>z0aYE#d^lf zU$Jm|1D_e6uVax9yI;co5eZ}9IpRj1&(iC-XB2p|j*>i!uQ0NXuY{Y*^(n+=Xj5vd zi3;NVAw+o3RQOxN!X~p(2T^sP@w}?F!8x?kd0eMaeszp(kv0=ZYsc9zWo5hRDsJUGJv)^550K9d3;xAZ&&BxH=VEU;!HC91LOrs z6a#iK?IA9+uz!XYv7)kH$Du^+Xz8Jym-JdbGW zu^;;S34?1dzqa3L?^!6LQiOpTL&lEtD%MKK;+zEwD{sq*hn?)4SVrUHI#Py`~ z0^w3Pk)b=_k#JL}$i!`ONr|c8nql4kS3vhaqAb{Gm#_|pJm|=gV5s!`Q0&Ym1EF5? zK|qySPY!vo$CV%F^P<%aL!mkWk0L?NmHKj~hT^#&2sFvlEJ#i4dTcUKt;T1dpTNLJ zI>1@#Zc_G!@(jHdXX6B`&MD42n=?X655@ocUK(i!@ z$qWL&j4N}Br!*b+>fg|K>l~wgitF^O9^+Q--4|?pqMm`6E1%3o35S*L%sC9W)UVN; RK}t%=Y!PSj1#BnV<}X#H_ig|H literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$IPrettyPrintable.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$IPrettyPrintable.class new file mode 100644 index 0000000000000000000000000000000000000000..0220dcf985c5d35743631e9e10bce4f6ee084a81 GIT binary patch literal 311 zcma)&!3se^6o&tEafgeNXRu(wl$|V0nD}EsSA1)5+i4X*&GN@ySnU4&++3Cf*7J#L`&QEP9ifm<2? literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$ISpecialEntry.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$ISpecialEntry.class new file mode 100644 index 0000000000000000000000000000000000000000..354155e52854e127503b0f377bc32cf1c367a807 GIT binary patch literal 241 zcma)1OA5k36wC9|)~X<$!G$XaTzCOd=*mJ*FxE$D8K-4ts`P3uJb;H1r_1ilB7~3- z^7+2r0QQ&@4z($SZE9U`Q$N}8O-Oqett*vC4LjGRrqqtjCdnGkOQ}xUnJxqoR+W56 zp`LW~LPL2cJ(2-|;WLIi~6V2iLwv}SWu(pt8JIICNe^SM+U03%HNnI0p| PJjWofLPSC2b?;7p(vd{R literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$IVariableWidthEntry.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$IVariableWidthEntry.class new file mode 100644 index 0000000000000000000000000000000000000000..0f6a8aa1665c606a405be19036d8ee31e853df17 GIT binary patch literal 278 zcma)1yQ%^~6wC3kyY5vG{RInc9I&>#C~T!5Xg%s-9T{ik%&7Ql7Jh&qCGNGmU||zN zNJ#Q{-tGWKXc5MRu<%xCe^94jteOjlaGi^Bfu)x%wHUp&yfWLco46p? z7({6A^;s*cU9M*9J#RvcDxvc)JpA(z`rnqthzQ*ejf5oU@LoWu_6HfEnK{SuYqj_6 n3F)FZ$%d!Kas*URE1v>XBQ%hftb(5sQ&7obBvFFqTdltU4>?Vv literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$KeyValue.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$KeyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..54e52c2674cf0a07b2fcf8894dee27c922d31359 GIT binary patch literal 1178 zcma)5U2oD*7=8{E+F^Cbm>+Y~si>uF>ps-PxOlTTvq*FXWiEPC;8?nqb}0u8|H%tY z#xy4S1N>3O_mnchdBIK3`~AGnb54K#{{9odIvz5t1)*cLj{@J}N5MxP@`h!%TUJN7 zp0yitA$q%^>kA$hp7UPS_BvbzW5^!ZUEA_(-?3iS4tQOtNHT0rJZz_Ghpt`o_@3Jk z&8NNydn!^4xiQQYiNat^I#z|opbZygnE4M3L-LUK2&w#+LPZcq=P^U7D;bU_2mC0R z7EQNZSYFEv;(|iX_0WG4UR!cTPMs5e#Hv$Q#9xbxy_84!hey*s_I=n-YBrx5ggIpio7D zMEMXEGCVTQPI@;I8gd;8#dtdI;$8-KV9;(37tuqCblA~x1B)5ryhKPI_Z`vHv4WDU zwn&Dpph0&$U3Pu`qSLDJ@U?u2^45d8?G0aM9MpGwpNCtX-EMOdFH;FRVV!Tg9>*d< zC?E_ZNqJJ7eyW_*8^~tm-H@N8d=4}8T_dj>DS`^ Y1nyH+j&Kr0E<<*j&U0xE529}M594qbB>(^b literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$Row.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$Row.class new file mode 100644 index 0000000000000000000000000000000000000000..ee49af6ff5f5a154591d0e01d2c0b7a88edad327 GIT binary patch literal 1997 zcmb7F-%}e^6#h;UvLtMqm{M9aC?ci#1u0O`7K&Od8cirREv;5tm#_^>L&EHCXzQCZ z{YP}1;h{e0OdG8;WqkHQ|DTSE-`!0qNFUM%IQO1&?>XQ1-E%g7{QKKBfC=0baKlHLzf`2uiTibA{gs9?PZlxL$@H+=^YJGL6>(? z5F|fAzSFzIbB$Vay{_S~AndONM_#~<6XH=qBA)9EE@kV-G<=)>_SLg;7ts;xwsOcl~ETS3QbNJbICfQ|%? zL=eCm`+CQxq2Wy(y*R4kZ~c#G8<>U@f^N6rUl8=B(g)ShaS|zoIxWyD-qTRGxPQ=V z=Az}e(>k)qMTlxtaM+V{H>M#^0jj1eII8$Q7rc!_$2cZ>a0-)@zGl{|?y9F)LC4#e zied=w2zngTEm?K1wW%KyQP49u8$}F!GO_qqV8C6qh;OWORoR`Y9~|o&Q^yCGQb5iN z(2WmSm9R_3U9YN+d4(p1j|35?x$JoDBIrvM_OWWWk&XgBQQ$u%t6L3w-Jk%8J?wYS zm9U_cyC^u5Iv9UZM;$z+qlC{?wM(q#Ka*g*a~1qSqYyz}W>=86M>@*(;me2S8Y>*M zLuJ>f+%6d#?a_`Et-86;TwgZrwkJ_+RE*lQ4^i8x7wUD>o~s#-WAbsLyI#)$!$Nu&?5{7 zX9sfI-(x)U5W@qxfr%C}Wv&MwVr<|sP6zNiVqT1qcUzdbAC#?~zkc@We8K;H2<)IA zAq@cy5e*~kfv1?nb;gF+4UiiM$xVKizQ!>zICRU%N`>8Epd==~b6Jx@}R8*Sm^AJD5#BqxGu*Ftd%5#Le1A0Y7ue#XV@uPFaSR6!^W&LjK} z5{moZIH@7FL*~99Bf_mxW<+)rSWhM28B|UULr;}nU3>Jh5SKL^m)q>18YW~NXQhD^ z`qsqR)hmr@T*eh5NZ=Zls9b@wEqCSt>_2< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/PrettyPrinter$Table.class b/sponge/org/spongepowered/asm/util/PrettyPrinter$Table.class new file mode 100644 index 0000000000000000000000000000000000000000..1c4af28d012087187e8dc8cec1d99ede412294a4 GIT binary patch literal 4946 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/ReEntranceLock.class b/sponge/org/spongepowered/asm/util/ReEntranceLock.class new file mode 100644 index 0000000000000000000000000000000000000000..624ce40afcb96e86487c681d82983786849e738c GIT binary patch literal 1412 zcmb7D-%ry}6#nkku`vdt8~6*6A*fpsioaqEhG-Dt3~1sA2=T$v-E4)fZQ4$VzWAX3 zgwH0v_@D_$qKUryM;Xs;n{FTvnkMJodwS1zzVn@PfBpXU1Hg6MWT@C~L-icnYH-Ki zzG13Q`J&~!nx*q)Ti;28F$`{NFE!QFtcLnzYn$tS8cBxY(VH{k5<{k? z?LFX*-(+A_hEzS=_jJcg;|f39PWp|8RHm6#kQBzhV0MQkOf?Gfqea^?R}^(NPM z?pyU5_k%Jva~Q>iEKwe#vtv69V;%jfrpX(cS@SiYFYf6ij$vDATx6I$Drboz%aziu z;WtaKxNDaJAv2g{7%ne&0BgQ$SdF<*y~|ll;0mc8kjkMF5>beVC+MXNFQA#yO|H45 z+%#j-36(THjgGoamgb*=<+nONPlYPW4JO zUP%;0pJqL(&-ufPtZD~93rnI47fPu6!nE$YOx501ru+D)M;L1t`aC z#$&+e5#T75BELufcT8*)E*+x$Gt5vI83cHep180~4r(m~ZK+W!Rv}{@BP6|$FRXhs z&P1aUQC}i{A$7_mg!_QB^bt~0Xb_^OkjUR-U0P~gm>u@?4kFAu5&OI#TO=i>-fU94 zkE^=f1(T1dU5!P!6;Vqok{Fhbmg2bq9`(`hf=I^@(=n6ok@zeB>#pF=NX(p&KN!~I S`QK9hcU=&j{5ObQ0;xYh+1{W4 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/SignaturePrinter.class b/sponge/org/spongepowered/asm/util/SignaturePrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..d0ffc906fe1e98f22f9de17f47a00efa550fc645 GIT binary patch literal 7798 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 B##I0S literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/asm/MixinVerifier.class b/sponge/org/spongepowered/asm/util/asm/MixinVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..eb544cdcbd81390a62f29cceff3c2a8c8f4771b3 GIT binary patch literal 2939 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 T-JT9~QeTk16?!kz6F}$>&iSY< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/perf/Profiler.class b/sponge/org/spongepowered/asm/util/perf/Profiler.class new file mode 100644 index 0000000000000000000000000000000000000000..8deb45516b7bbbb130df837165b65eb09d0025e6 GIT binary patch literal 9551 zcmb_i3w)H-mH(eRk8d*hLLgzl;UObI2q6y;h?)TMmS7-A5E}3`Nj{Q+$xNI~KybIV zE`4aN-LBnMuvUd?w!3yMttKL^+G3?@YjwNb+HUPuTUYB=x2;{bVl?}|-}hx^@-U^i z{F0gbJonsl|L1?sz2T|%9)1MCd9q(nnoPA-b#*2aZB}P;ua&Y|tD;>URo&@WysFbm z?X23AO74ust&{-~jNcXA6RnCz6Kz!u&AY6Yv;mKxU~o*O?iMUOU752QyPF#+C6-JW z@C$<3x?s_1OR10Tu`*)v1o=4)g88Q{CnLiY7;Z&y-Wc;YrL1&%-=Wg% zi4H44s}zoH*&*``Oc3N{CJVfq8ydCo%^@WhDr7Iri!j6xQ3PVIS3o zXlJe9vY{`R$D*DW`-R1EO-C4%P801*&gk(xa9bp1?pp6Y4*(;)-=kZ zT7<7F9c|eyn2z*9PRtBF}SHwZ6g zQ-iG4wxleJmNQTq#9Yia5yq4}D9jTSXGg6_rK0=vZVglfQK`pG!*o4vzF=Z@TzxFD z+iG5brj2s`Uox9ycEtce? z21|*CbbE|PQFhukqJ{Iitn>=kINs9j+8{GgqBUE^qe)rpHnB#VNMS7?m zo@l&VL*T5^xjDzRDjAPEfUGsK9+%{!4)sH!fr$p1qlwi^jNp)^J%LD{)>G_f5!^tj7OHL(PD z6l;y9iI+tj{TDlii7Rnc5CyoJCTxjY(Ugg1oU1L+qK~SD9-39(#=3!>`DoKUhU>

ctQ&O|4!(L3gu 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/throwables/InvalidConstraintException.class b/sponge/org/spongepowered/asm/util/throwables/InvalidConstraintException.class new file mode 100644 index 0000000000000000000000000000000000000000..ae7b2f816aef04cde6a7ed186a6554d93f790abb GIT binary patch literal 897 zcmbu6&u$Yj5Ql$GvIz<)4TY2v{0YX9!bSj@aMx&g+}`^?XIqPR|zfl?yn>a|U?srZYlGHhP& z*$)bawi8xzH4@g5{L|nq1N#tBx8b8o^_Nmhf5=eX-5a&g#LXsZXff3MnREEZRp8OtQncWH5>kQGDXHHO^1;ZuF5HCu~ z`d6YwQ{A9_z|fcq=XgrumHeT&_9Lz`ifcz^Lfh(4YVk3fo(g*s-Zk98jA`1OW=?T= z*gQ6w9gFu;2|PiCwExTfJ^{;Vl v;C|`qmaYM+^aG8!|7?zj%d&lHAjxH01@@=01|H>&Q7VGALc$)2Du{jo9PYQ7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/throwables/LVTGeneratorException.class b/sponge/org/spongepowered/asm/util/throwables/LVTGeneratorException.class new file mode 100644 index 0000000000000000000000000000000000000000..33a0274420c0a252d1334a7b0ebe6a0fba3f613b GIT binary patch literal 703 zcma)(xlRKy5QhH=IZ(I*;Vz)zNDwO_Q3YtY1PU~S^d?w~(Z-H!FXXkTB2n-FJQQL! z1Qfv*cx78N`sbT}$L}AnZvghNN~jqd2CidtC_Cm^T6rG`*A8N@qQE~`^DOQn>4JK* zaW1vA!W(6{29q4c*Sp_1ZbNZ0rt=D=JjF*i%dwM6WgSx(gwCXS7EUTEJGQOvsRvAO4Ks;;!W zj@x(AHj*bwOqmwXOYqb<9wdu5CblhkrXq=TWVj^{56j4d9}f#0WiZN{l5z35$eAOK zGkoVO)gC5Z`kEy^i~Z~da@b@7F#n~(B&IlGJ*F|kjD%Ghur4sdA5f@NcY2un4Xbcb YwGUhSlKsF60~nX0+;2r#VNeFSPbAN$N&o-= literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/util/throwables/SyntheticBridgeException$1.class b/sponge/org/spongepowered/asm/util/throwables/SyntheticBridgeException$1.class new file mode 100644 index 0000000000000000000000000000000000000000..185b3a1216fb46efaa59a3e13574baa0c9156aba GIT binary patch literal 1152 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

$T z3b%DMti$E!&9V?gduV}&ILP4g+9Lt?Z z-s{*d17+E{{r0G7Y>IT~cQvd%Jd+J-4yUVunYxt6FYX zCk?~})|9pSM;!ZYPYCnWA+=16uq7v%_?p!WqdI7Cea$i25ozND@w>3o*W$C)3F*Kl2$u|iE2HOlI1#Z!pmZS{4k!u~j zy*<6h+XnhO+I#kQ#Be8)3Yi^DkgT1_NJn732HDJ;sS%k}izJ=;-Ekt>rA6r7F1$&p z?H0JL969fG+QzIbiEE%aiWZe7t9oTx4m105nS_pJq5^xlpPA3gTv{jOd>buAKy=-i zW0rg0g}asIeF7D(?LB08Y8R?dwjKMGY=^))75E#xl!1fHXe&2t&kJfXNGkO^aZeTA zfE~f|D?EDyb}uC8@~jwmE4fkHNAp+l zl#Hoggmeq*iY^l|^r1hBUfd_Jp~G=(Cvj?oB|YKDrjl)cB<~jpOC@*HZAyvVqOcsm zQHAB8fZ>`BlZ$?CoR-F>j7tG`gkkfEmp9YQR;83&^$Ga$oBEYHp55js zQ+l;esu+9%s|DI5U%g0YN$RfkiE4wYP?GWUm$?>6>tZaB@E$H*uGug3X2XQNZESd0 zdA>rks9biM7m4V?GO`4I2bW7RceWH4JkIv&O6IHFIRfL$ZtY~^;YTWvXNzCVMISKU zIH9@F2}f~(4DgK`9`pvr$Ph>7vu291si|#mUo_EA;dB(^m>|$zy^Y~vRY804PJz30 z>7-+cl$p!fZemFBSyg43ZcOB)OcxR+R|;gJn{aLQoYg67$#k>Qs=&JhV&tf{)2VC3 zZWf#y;V4hLGFPyMtgPzEoh3~s`=fX)3LEbhh$@@1P~aFA!+TY&vhhBZ8yb%fuwD35 zkTo=|Qm>dV365zA5Aq6pNI(#u&KvqvN?;bDo5Yrk-7>$=EJ~-kqfGq8fhb64+)7E0 zJAK}bfscEyUAz}aE(zqUz6V}Wf%ttApNirW_%s`U<4LnIcj+ljR23U`T?7d&am#Xj-o@N8d>E*fIsL1pf zzJh0z+*jF+dgql>FQ&!*s50p5tgC4`G?t0sn;sp`Fg?f@U1vDsja#~=ZM!*qb2Ny^ zxAC1SJb~{DG~NV}IhqE($3m${sFwvcEt28>vP0Q zQC!APmNGVPdjmhE?|d_5UTQ;LYajI4U)mR4XRqQ~6|UfCJiz(u%KX+ohl>?>g)^+T zq<7^I>D`q>7xfmr_8IYRm?g#h<%G9HRa!j3nMLh-wqDuAH|-u99gD8#iWfEC^+fPHo2^j^TB5=udQLEy9skvC+Ub1KWfDLBKNjOugbRLIE^Wu7$7L zij|zt*Wzv-x%Tl)(uO2DXseSG?me`32oIu*o%yhaF)S^>_#-uLwX1 zrb!GTrD2>z8d8HeiD8ToG9_o>gbv6gPI9j>_s=8Cs|fzg=L&RhhX;#xhmoP?U-(Rg z^)>h_uL8K8AD+1QtwQ=QYO5ei0=4?>p%)Pv2sZT1zzxn~*-)LV-a3tU5avgwx|P^u zSc@@U@97%|@#pkXP5y%g)G_C}PwuD)dF6S0=5WIdJ}=NszrQTlKhE*uYl0uc{JdEQJ4RY}8nd^r_XZccliSp9~B(M54 ze?5A4A^a+;3_M}rsp|x$!a#sT_ZAF{>;D(Xe&9Nq5Lx&bf>HW6)-yG9S{%SC!Zu9% zBUne0){~}tNz5*cGH5vl%I0^Te-0i)f!>^=KQ2dvFWR=kAY;&=3MHaR@I8QN9y c4=@Qukq957)Ze%oYQmSU9Gg*5Vn>OvihN z#`F}WL4h4}F|>R(o|Sv!j;)#b5zEf%c3eN}#JdkzPV$VFQ&25XSH|Bep(|ol_Gd$X z8CXF`pvETby68EpHEoYux<va!zcwpM|= zGFCb*0oJ(yT24!i>TxMFNDQw##^MQAh01k?nRo0$mK17^VVMFO6J-|5i}CK6deV-Y zgFI<3?kG4$CY~_z4%gadiQ4Wsme$?ezR)FN24gK15Gtq9O`317bhXVe4QIDNd&B>S zX&ev;HZ%^XScVl5RAHrxdMphifYmA%VX?eh%iOyBmDo_Qj{CIXVSyzLK5mN@+S+(b z#d>V0!9BQF#odTXlud48496FRibiQQfF^-ma|`3ns8Fz3pvoCFn6;(~OjIr}61b%j zZ~viPWaz#K!nj{x!<|%;jE` z7$1GJJ6Qs+F!Fu+us&j#y6c3VPZn}H%XV~@EsLH-nm~`__K=D?ER=K|W}Ekq>ajAk zJ3(T@mYz2^Ik9{ZA!h4aTx3JemzXsYOUZGi=R@cdSStyiXGAIJ7pT^4+p<**prr(_ zs$I}SI5p#7OOCUuvkJ02F7mo_*tT-I?Tm9M%x`|W+L5tw*d#iKYVXAH+f zkYy$icB3rD7ivpo+%c-62CA%pv$FP9(vhO?u5JkD1lG@&)gH~Hrmf&P;k@2$Lxt>+ZhMkw!b)kG0nIj~h9^|JO;fkMMiGc4t%9A>8M&zME-B)=Zz!I+UIC0kn_blhiMLwP5T7cIzP1mrh zsrd@lOd!@Yg^d9moj}7+P`J?iB{hP0jlXpex3L-lMgDK0;1a(p=nn7!UHgz@`6C+s zmn%!14gEFR!f z2Kbqat8y=Qc(?)&p{0aY3@bE&w&ttYI~(J3DEPwXTd3q)2p#AoioiZ}d1wb2e2|vH z5^eKU9GDIF6a3q?X z!s7uj8&h~fAkjPpz9GJg#k^rH-9n&eGc$Af_MheCs0c3q8zBWJ{v!V}Giw+paFg7A z%hcVX^gAA7-;=2y(1ssN4D6)F2(u&kZTAW&j5J0)N4vQq*J`6<(ad$&N1Lz1DYLM^ zjp7%w@GE2dtpv*rD3DJ1sdZu5C^%h$Z6~~ht)2;2%=7Q`=?@=NbqT84g9_nHseY2w zmY?RTZ$g8?s{Tog-@xv{Yj|c7ZP911Kz{P)iP^2=CwIHvr{d)1NF* literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/agent/MixinAgentClassLoader.class b/sponge/org/spongepowered/tools/agent/MixinAgentClassLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..0eb0ddc612b6deb37d4a7b0c75618afe46c4cafc GIT binary patch literal 3701 zcmb_eX?Gh{61`87-L~9z93^p9z}e+3VhIUg6JmRkiNJD(v2h4yYfFvXNvm75+IE}} z!Va?!+YCFiF>JGC06BpJhtK>3&f%|cxbJmaYGa#$Ief6yuU@^XTUEE}y)VB0_%i_4 z;@<+-xn40-DZ5V5EW2~2XBINP>)Mr!Q8XPtle5lP&Y=7pwv9?<#5D@0r$Gp8IAzQl z8QXA*nI&6sfh{YZ+9wYP+_K!EQ7L6g(ox{u2Z7ZUBhmvZ1~ocWn2FIh&gN8 z8X5(9e~1wcO#-RqmINAYw^%eif$byGpiwsR(`H5rEr!M4{iiY`N~NF53SvcI&4>zp z#<%QD&M0$h?^4M?u&n21p!-n&aYjQ|O23IE;(ltC#FdwiSGt5ob3I`^Kve~YPU!~fw<2vk@Hm)bH z>cOf_4F_r1G3T;Q#W$Qhk*rTgO@z>O+=!c!xB;?Cby6ro+)Un-XMBMhqL9La5j2Zg zST53W3l6v75C#RB@`j(ECN~8(MeWrJt-))S^zv0O(@t*j0c4u9j9R@aSA1Y zD_4dqvoJni=CE>>*qm_ix(6L?Z8JjDV?Squ|A0Tr?Uy*w@^kXqUp-NZVL?A~ki|-~0;~1e@?sF!K;91T{T9`S`_y}^ z32zGQlwMbRtKipP}n-=8~M|`kHU4wQYH3mxS?kq$MjU{ z;OUc)utI<@s$jvL6=5+(2OE60<9 zzgxQ(u%Y`CY&^MuO&?)P{d3zzW$0c0Z=*8!97ynuyoML+dtB+kaa@5bxdN^tq`>r- zXjIS!|BGFzJ&8||J{j*ByNrEtboVUa+FW-}Z@l-jDh`bHRWWd)`$KH$>%EMjI8MBc z)*O#8auz)2?MAnO}=7)aT>ToLFf#WYff52Cp3VcD_Fo7^<%0&@>ia3liBIHjFT~Z zj=TOtNn8crND#oi%5q1bS+m@xf~&)q1-4)#TR<3c#(fE%Y+0l4={~@$9h(<4L;de z!A{H(*cmcn9yj4ED}Iiteh7EsJnqH?+|OAkx!fH9t|ib6OVdoPSMVx5WXP!3@H&&< tgg0tUv|SYeXioj<68`=HcFF3CNY?sz^q-U^Db)xqdAJ$>;yQ+gZvgYZ$V~tM literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixin.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixin.class new file mode 100644 index 0000000000000000000000000000000000000000..f4d9d6e6be452bfb899571eb0c44b5bf886de75d GIT binary patch literal 17051 zcmds834B!5x&OYKNp3Q^Yzago!i$I)l3>JLP-F{|LINa+f>JvqmoPF*oP|ZI#kFqL zZq{O7Yq1tetCgY|OsUpti`HsetF^7IU9{TPwsxg;0eS!LoO@?(X2CI}@ArQ1C+2SF zeEW9J`R2)YzWy)~on(w*Iw>0KX^!_sBRzI+biEz3yPFfyXeizsU9~zH?+PS>(Ma>G zNFwgVq+v`x8O7993}FMM)Dp78b|f)B5a|xtu|@0b*!oy7VNXntat5To zm^6~9b;uBzRK-+V5F68~!$sA(CeR&SpTm%TJuhg7AYRzwyrIEk(h<;QHa{L@L!hNY za@1xg)BvI3n0kf^Q2~A= z1Vj-jOq#$nK0h7qm?4nvtS*G3cpmAxA51!K2&9{Vc6=V`x?h<-aJbTSLFJL|y69Rv zW>N#w5xHVjADLDjF8)J$jY(4wVY89zDNO!=&Oy*F)7cA)p(GrP#iB7cd10cCu+y2! z!%%CW$Br>gTBu`s27GgGEGlXbBDJ+S<1oicZ0xlc$D-?k-7;@(Q6zYi+EUEd6u3|T zwFGH)Fu)dNvU6J?BCII30=>N;JC6KV6nSAi9tl_9%!x+g$*_V|8kSU_k&nvs;b^xV zYPNO0Y8Hl^)CA;aSVcYH9;rmyoJ<5m%?pF^1U}BldUci~^*m5pHrQRsL||1Y4SNOv zl&w+Ok?Hi}7}KiHh+GIv1Y$jQ0tB|^Q1c$l$pcde8`c{Oh6AyUOBHaKR#yl$N{0=t zR%tYf$Ie6yioy8Om<_2j@d{A1E*MKB10h&<)Xn-JZ$VKkrX58UO9g5OVLPspFW}BU zY`EGP0kk6MJ7h+n5m zRvUF-*;&CzFfoHEUSAXFlb2bvl$QC)N9Ut3 zmnf%Qa#k!B*eHH!(sDnopz|%7MQ2x#K^IxnN$1Ml`-{wK#ZYb12be~{^Mpn>^r6_R zpZuN$lkq(l&UA}bQCB4esN14b=u{ydt~Ungazo_ckmkYx(lrzmq?cH98l5gk;l#6x zi6UN!xXq z-3F#pi($pduNkG7bQ#m+`eLnA?DKn|)!ycg7D9ojP~&Y};~ z^}@>ySW0OLXm6Vn4TVsl!;PnFkGx5I?q-Y5(mrr=T5s17Zw>icqw| zqEFKnKiy7uSTtXUnEz%vCKpGBaTNqj`kX~4(p0gH&oiBpJE0&^VwUHj1i^m6T{`}> z$__&$5NZ#EZKi3(+NoBxH;Y?zH+|7hU!ZLk&7~G0?n_LS67Y2ypiJpK=_2DqFw-y7 zSNwo^k41B|TYR;g=AlS{{%2!v#ttAz)OeNeR2M5m&|jlnBIx^(@-i`BhxU?ruf|4>dRggKUP(jJTEY3)74bmdScwqg`Ju;Ovt>6?D4rbjGlrT2** z9`)0a^0&uvL7Y-lw#(v?$&g~PxDv~oS_+mBLJw4mXc9|C(pzkx?=yo`XBtMuDK`g>;aAc~%Om}For;_F2{fSlpzE*itb z1)i!UV`W2N^f1l5ph1UTcqr3q+0bS8N+o2{Td+uEGf7JjjB9}2a%w*vkTmv=Bq-Q* zT~1XfQA}+?w5hee$vBjlkbl%%8;f$BY)CFM8OIdI=gIvFo_C~9FkFg)h|6SQAB`je z!3g9y#+!Q`he7J)a;^Zm?3ZP1celGEfI_2~B;%N`(CF+_pNFG%|7FS^_PelVy=`uSR3}O4qdG0r>1Eg-vgLSVikEe#>~MloE*j8M%SQndkA?i8Z&jqiCR~N9DY|mC zcpQ(%VwJJMJR(E3`e^bo+Fo?!HZWj0L|A+*PxSKyJ`Ooks6Jj7OwJCT#gp-w-ezoY zmM5ZmlEqCjXAEQG(ZW7XB;kx^3b_`d>&vXeASb41^4A1no%W?kJJMxOFG|x{!C%ze z%qNPPrrf?oI9mi36 z)7d5)?4XNwp2Ks6krpJAmX3}^9TuOf{ct`+sLCVC?uZ=9bu3w3$u{?(23V_(q)Wna zJRIqf+8l4p(u?D{fkeP{d-3t&9Kl-&d3LkBz#z>Khq3F#Shb#8OqeJFsL5CrRl@Co z)JZCl!PtyhCo|4^G77Z-6CZXN|bYov;n7*%mfFgp42s%io{Iyhr%y; z*o{7rH2loXs^W7>;V=i;@`|^*Z9BR`la1DQ0qy|STe5sRe_D9l0yM4dOIteT&6?9< z@n_UVEn|;xBoHnhc*N$cHB?rbYxl-%bSc^0khyG->EMqdT|$_uBhxigaSNT?I$Ry| z1>qCcm1#bHal;z520 z`@j4!YH$?AAw;5v;<<%6#??_dQ{PY#dx+X?=>18={g|J|^0yH-U2ApE)|s{)!d{1% zn4-)*o`@y863s4w%FUcTm&g4yo}XY^efWBC!RMHb`#}YOz5Jw~>KF$CMj%nnPa`}c zz-Kb3Y*bnN1HIzLp1wJAR-*p6_~df_5%#_Y${Onk)uYC=@Bf&@3&rBWt4n9t?DgSu z{9{=kJ`XpHV=oD7(w{=GL9B1FpN-DjU+78%`=CiAzcaLy22@@ixbFU1?kkIb$-k0i z8uqt+t7Fk{IlsiTBoDaaO8i3N!Lca+R`9$citiMTE-dHYq554}FKEwpi~-j02k@DQ zmNT}LhpntnL_MGWjQA2%T{Ad)9K6J(vXoQRMOq$%D{eA|?UaV9#Y*W4pkMxfZ??!4 zh?W2J)3Lmd>5Bh&lyO6Xci+%i2}#;|j{hyu=M9*bQ?bETR!3vu02Y_&NbWW>`Dv1r zM?(-BU5Gic(fy!e<9>bz$EJJ`P8)EVvtas}n5UXU{nRK#nZbzDE1C|90}n{0i=`;z zFXW6;Hk!_MwPlz_8O~dca_lgvwUzYI$1~QAdag6r6A2`eF$5al9JDXOF*_51uC*xM zmr8{ORu%>$c6&0s%8og2suo7O7U3wnO4=Q8S0#Np>WZ!=bw#6*x}tMO zUD2(hu4p77HY#y%&uC6#U zS63XCt1C{laW$kx4A-NG(Y|vYFjz#~N99z4w{JA;rVASO(2C`|>B2r**-+9)7dJHa z6Xe`SJ#x2J?!pZX4^X(DAcj6lHZ=Cp`i7=H+K8!}mN)IDEBa`&0)t_jeGk!9%S(3A zb)6}?aW{RWk8YLeo2x#SqT5pRnLhfge!dgWeYCZq=|S4wM>`ro%)NbdpM2a}wbPfP z2ewc(9#;0#*O@*?rf)m>K;gqcRlU3s!@t!>kKy4+_3-UJ+KY!e_3(HfeHRb)>fy;g zdI}HUR}Vkvqi4Pb-b;*O_&b@5gS3lEOfpOgnDh-|+#ZzgnOFE^urVAjm(dvf-3sMj zLL=x-8clc6cyyN3qs8P@`XXAgwn3rW(a-QD>Y*L99?c=w&{ybYx`#eV_u_EuK6;FH z(ht%1@gnfPM)%Xd=>cN|pw?-X(2wX@JV8119Q_z-le_0(JO=K5LO&%#R7fvSDgGl` z($r7CLSw{~e)=ub7HY)J@0lK?xMeLQ}Vs| z4ze12qWRtQkA|H9>Qk~AM!x-In)I6~Z;?@>_@4m7AvB_lr3Yc~{or{ITGJjvo5{oA z`J3p}cvSJy011tS(fyP5DMwk7=4uK3i(Xe;Edl3mf}4?mXrx`*yQA%_of4`ue%jfN+HGhFW|W z(fBx()%q50Kltc&I=QW37gz7$G0S&zO*J2x;-i~VT$kcWxU1%R{oII4ice_R%_j)~ z)qHY_Pa8V2>Y(`tpyb=uFP8Zbr9;f3$ zQfr!|1;9N;5!05Tf_K*XQoMMJ8k-?MGq%G!7Hm)1&CAk!x99ME0frx%Z%iI8bXD^T z5kuon=)^#{>7=*mYMi4kz=2&QpQf&-^L)8FZgw_}JU}B%+5~GlKqs0Em)i6uSum{G zCcWLfUq0eXv&m=R%lP`nH))vrakw(Q8)*UzWiJpuiM#JnGd+cf`81;B4`6;jL^ON` zeM8TJoaaH%bBK07Mg!psaLAv-(S8AscoDAmE6n~inkvvKK`(Iy`YI}6Kh^XKpGvRt z=`f)g^aq|zuW<|giRYscU;+J^7t-sziT=hP!pZ-Qv`?9M2V9{U&i_0p@PVR6zK}11 z3ooT+UditVoxA80&ev^pCtr*>UIIw&SD3Qn6b4{Qv_~<@I9b#NPhBu~$uUR3Le@7n ziJjp8ttsy6=QX8>9|-PBFsR*ezn^O8K-%{(E$wkfaF9nS|2l#%;k9b?5r|aJf>=Wi zha7}EfKCuj1)6X_N0}P?IcXrYr1-Ks6dibd1s3TK(2gb;_ccChXoN2bDLP`56Yr-+ zlh-T4YLvqge*K1{Z8jjGQaX{#JVZ`S6FF5$N`l=~z7~=)Xe1rO*YWi*AU8nhHy>7H z-llkNPi9C}xW>2ooJNc7t zq=Zpw@&)te?8$X`C*PLl-8*?l_T=O9PW}`Et12ttf`$^@7%jLvn0E1Jw>f$H9tcq9 z+)^^CXX<>aWqE=J?wGVVJ_n9URIc+9bze47r+FqjvNT2k7a3Lf0|b00uFRjO15lu( zPA|BX+2GF315V{5-U=XhrFot2@R})5e0S&LbkqP&=X#)5yPP6?xf1k}_OM9IYjO)b zlQUNH1-dkk)g-g|T9jw9A^l9wHqf+Y^+wk!*=~{>R z9=_M1BMg;E6dEUVz@2x(odxS28nwK!Y20q!mEyjPe-9U;c{%)h1s%;7Dl}4j0DuD= zcM73+^f*qTS{KygcsHGkxr|N7eg}0A8oy+wB<8()sAjobm!lFmUm^ZRiocmbtfDT$ z{84!1pqOi+nCm>Q;f)C{IpYj=#FdT-hEW9SMupla$%Fa^ zpuQ2PZ+chMz8uu022z$vQ?sBQ(P9N8|4d`bsK^%fEeNHzDipe^sYnaE!tety>Pe#- z06JhaCQQgbvla`j;WPr*QP{f}4Fjt||9vgSjK%e6T*p%#9fSAB;yMx6Nm$xW#+}R5Ph?fz4B@e&c-1LUy+GJB;l|LBtVccHs;GIK~kl}mEty%#$w27*R?w` z4h4tYa^sc*2d=r~096f zrb&0|TO=DQmSLyHVDq$~gi0{4drAg=T_%cNPH#J!-H9+q*T!2UNkfE*RC0|Hu{#W- zvoe%wj-gpjgVv2W-KZ@BUl>jOOvPG#7!A5Ij-z7oc%6Dc#~)m=%h z|1^~L`}OfIBcb~$^O)hp-kNUu&){$~bYv^TrJ*?O)eqFkiBOAgx8%>|JC&hO|8J!( z4&b1c^bEs6nQTi-eMz(6+~tXxPZInX_viar+?_D{`G-tRXugSG}0HoQivdp(K{Y##s28`ybr}ehNUJ=3 zk8_yRV?irVcO@7WX>DPgek3Wa3v@Pt_vm?*b}JN-qyMATSD37xdX2*jFL8VWrRt0~ z^%9?Npz=ILxJFMe&9O$$`-HGgqxdVX(|O5Ypo&wpBQ(t53(BBZr{Pm>hA;6|mh&?0 zEqZ5Hk8I#<^%*TKXm}?*euxn~N?{L~YkgQdErGs-_!{42U_SlpL?hJ~IQv&0YBW9k zErro4(1i?!;aorXMi%T*aOE{-8J@z<|A~A~Bjs=-jk6}^S<26V{yqTe^+7LTj@W8R z2N_kiiZj8F2ZA>l8HX+tmwD35_%aAm+79x^E+7mG!v#OtHTX(jlbK8tE7ialW4J#Z Zh_tf8E!?D%9g4AFQ*RZpM0*P({{i-}`8@yt literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$AnnotatedElement.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$AnnotatedElement.class new file mode 100644 index 0000000000000000000000000000000000000000..a8da0db9784f674e34b95236244a782fe6996ca9 GIT binary patch literal 2753 zcmb_eZFdtz6n-Wz-8S68;;`!X22U|>!syv*}TP_;DPBhZ0=>cmrAaIG2B_* zT3IQ*Fn=n)>)jh5Tsw!!67L#YEQ|*bcUGFV$f9Z442>GgFA*JsnBBBX;jI+&Ttj)t}n@NnqK&h6RS1 zCJ#1=FwbfSuE%hD3}SMF)atm54-&Y9jE)q}3b(FODuU;h&+v3C4!ZR?r1A&aZHyIXWo4$D>X}CqBW>j3lQbEUuxIK-J@d?9Z;7Ut6?%;+f#T9CH zRXhxOn>s8gbKf_cbxLY zt8fBJHQb|kOurnC5QgPZMD+3@)rpi1e3rmEiVPV^^ynZpY%%&NM=4pA<8T)(N^x;~d>Rrqj=~Mrl2l{{t8E zi~E?%FYRMKzxXGv?Bm*RbQQ&y^qmgjw-Lh^n8FTDp+vGWDs;CXA&^C$P6Vc05IbQ! zf+|VVvA`Hm* zmr3h74Eh$)_QTE}g{_VS%V=KQP;lF{3WsL$2l(g}K4myS;VA6WKG>N7Z-qp7%dpyo z?f3H9QMj-B;Nk;tLL%U1sR`DUmmXyD>;MDpBm6j;>=stpp Fe*q!O;$Z*) literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$ShadowElementName.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler$ShadowElementName.class new file mode 100644 index 0000000000000000000000000000000000000000..7763daab5102dfc4cd8ac43d3062c465cdedf747 GIT binary patch literal 3104 zcmcImT~ixX7=BI?*d$#_NedJ!EmW*z1C0WeN@xnjR)T!g2C2obZj#fmb+en<-B|n! z&iDiR3wq;)oso3Z89&Cand+T4UU;R~dgGlJ>U(xKkwAo4#>^z=?D=@!_j%rr&BH%G z{uIC%IKws5Dkkl+X%uM>CD&tYMgr>hQvnwy7DHbzb6z zGp`y2om)fM4Ygq2@fVlX5|_XjvIoYU)iu@Tg$Cdt!{A=doV~5Stuo9U)VPFphOS-A z7-GA=aQ#zYG~2 z5d?6GK{hR|s2Qp*M3phWcC*}1 z8VS!+CQzw*RdWS1hj1A$FibX)Y(FqTjbY*uZql`lW|i3l>Y(o>GDVe5{TX2_F`Q{? zc4x0iiB7W;rBc1h(7SW@Qbp4X+>&t3#diDZY7|+#Ol3nU$PH@jqb(Wop~&8KydofO z$he3ZF?*FtXO3P23>{fV&A&y-y{hJPdhT4*48B|`<+$aq#1_rGs;{Y*CQkT^J&lX+ zlxrK2tX4Esr(zM7oG}b;&FQLbbLu_OtXZ-0{EDV?3=sVg{bQi_g=kzfi;4d0j?}(r z42b4MW0b!1Y5~LRH2aBew9&YrBt{3iX9(9H`={ zyEqz3*PaqpB&R}3{}#p-r7yI;g>ze&yiaIByg|P`V1MB`v`Gj^ct*l;CQ<(d-lVVM z`tcds@ddi^C3^7{`tdd5_y!4lOV=JEjqi}b_qa*tCp<54o_54%0aHj32Qiz*1!C8W zahG|Ja7O8F2QgzJK0ebVjpBS8Q91VkO#-eX?e5|at`XTg;2UAo_glLBW7EsCxI`v| z#%nYNXq1)2N0?_Ikrd%T&~-p0F7Pw?{)>y#DLN?UIeZ?^+YF^CbJdDQg)u z$>s?}=-ownkKaX9WY9gd#g;wlB0(rI4$q35_y_fmZKz%KK&0!aB6 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..ff3d16a7df64aa3307fb9ab49173ecdeff6b96d0 GIT binary patch literal 14773 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 O literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$1.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..48bc18411d7ca443c7390a2fe0b4538a2dfb70ba GIT binary patch literal 982 zcmb_bU2oGc6g_UUrY#vQFjyHM8!SMJ5D~ngp-I!4vckGaw7|n2kehgIhHF<&y1_5v z8ITY{Xg`1-g}4c$fcC-!lH==R<(`i#`RljOhXC&5Hp63W23|bYY9Pk?Ko}8viPkdq zbboge2RwK@{3W0$zxKSu466*sful9j3YF)IwYoi;=9VIU(FC94eidgD36!mnX( z>Fy*Lwjv=z-xzIdoM9;Jb2$+)!)m>;vw4yzQ!nWxRveteTp1;tcQA|7CFC$qNn34y zv-$Fo-|P8L8CL#D;35`EByfqr)+US;ms!ZRgDbe2N-s_YyP2SaYd>19Gg#|76b!T7 zga@x^(mmdnge#ko5?hl|UznpCr>&GQ>ypQDI+lvB0;%Ij4LTwj>X4z_)e{qlRwPAr ziDFvxPFS^;rcO^NqJk<_mrx&hIsx@hxN!KT`~kK1>AL(8OV;*VSWhyzOmHTH?})F2 zIn3iMYFNfisyW;s1_#y)n@}g+=pHC!%+E;S7NPXN992|{#Bd5uvxGW93pVWy`f`~0 E4mi6KfdBvi literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementAccessor.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementAccessor.class new file mode 100644 index 0000000000000000000000000000000000000000..bf0d889cd263f73a237129ad842dae1137462910 GIT binary patch literal 4160 zcmb_fTXz#x6#h=qbaEM>jT8Y9D@JTWWdsGpK%w+P11-0dB1MI1GNc2OnJ_bf;vH{z z!~5+Q$b&v$mw?r^Ts-;Uk8-)s%w#eoX)LRDtzBE(ZAL#i*`CT!0Q5szb2oK`=E-tiSa02$ba+-8%+U)|vsr(hyF3e8Il@xiGx^KTsQDaRx zjWtD$)$gTEjg=vECMRMD!!bOB5r$QqM6V6IcJ{WUafywa;yQ>iPGXLPWtc@(mo+E3 zWc4t{<49n_jqR9hQm?WVlZ2kEWw>gqnl!FjoS>sP#tY*(!%BxBe@sB0Ajxrtp1z!0 z)h>NLxhFA|z$8vF^etM&Q?jWBwr2sSsYl8dXFW<1wCP zcfR+H-h7%l@zPKHGXNw+b(`c~C2P5^mx`+abam;|qB$&!!#VWX8ayn5= zNpKyXb!V$?ZyYjcaE@rq{zuMLor{*A!YtdY7HnxkDbFY-mlrjVUCkWS<_G=s#C3PzLrREM)4Qw8o)+YDV%K6F->p8S zUS}Jw92sJC#<(nNYH=Wn&ney^Iuer($5mZ9Qst7Fis!bR$D z-n*F7b;TUgWXn>hNyPGMNtfwZMC;>uqiPnEQB_mWOI}3ir$iV@zW38pl5eGS4{;~y zo&cls!6S72lHMvbvxDv%GF$rZVq@mf+vv???jUs!n-`E_xQ+f_oYh~^HR;Sfh)#?V zPL5Cx;cNPyaWU{Tw$dA+LBca+fj@1dpEV)piTe|#udDH_XI-K@pB2gcir$~;Ap~xw z)A=~zK#T4K51M)mcF-5@I=}P9337M$9qhY@!CMUw#{&=vAA%Z|2XUPYa){A+j1tPB zJ2I2;RU=H!aYnc;AMtej9U-m8@fgiPIatzVsR-u zi4;yDjnf#WZptZh;~Mpydc}`xJDKH9MakB=-*CP$sB?k!QGY!(2wKH?X;^=uaecAn z`is!K^;vSC+wcAZ`f2jv5~GWC7nd7>W&=Roz9Y2dc|gZJcGq#{7VtX5Jl^>cv3Y!O z6P@$;s7{!GP|pE@G*wT(7C>L;qkoJ~JoEuV=XvSOY`Kjab&c|d$#osUB?n=RJIh1h z;^K9{DW>k~VFh(~qcKc7;7G)GnTmg|~80z+fP}s{zy+ td0~7@u5Y4Z3L%OZ{U@*jE9rO=K^M9^qI685zpg00qg#l?_PulO{1-&oedhoG literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementInvoker.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor$AnnotatedElementInvoker.class new file mode 100644 index 0000000000000000000000000000000000000000..3eeef48d5a92123f308242467739c785dd92157c GIT binary patch literal 1903 zcmcIlT~8B16g^WaTb4x-QSbvrtqKKMML4@fX19pX`rwN% z{u1>;i4VqSf0XfVciZq$NSkPy%+8&?cg{WM-n;$%=f_U~W0+!iDOJ(*O42Qgl6)hS zD44#Kwr9%RM%l}A-;%C5?Yh$Ez9=kO+m<_L3rD#AJa-GWP}BLm@I0xKHK*wPg1aSO z3#EZE@c)KVh1bx+FjULoh(t$U@h#3U|F2Tg(8|zTL*C1tVd@|b_Z-s+lr)Qi#Ek@8 za5rSKYGmJ*goZYTk!Hd*v@;mH?_lWLpIP-aL+d@uwfqMR&R`}GW!tp5TQnV65Vk48 zDw}iLB474-&K41~bmm}62V2Iml#;62In+d9yQJ5L)(mu_OGg|h7~=k>g+I6|9uz5_c%oF0vleq^(*-m-}T!N0Ud16P2;9BsXy@ zkYtR8Xoe=1l*w4GSSmX?p|ZieGIVETp4)3&S%DoL8Vjx~)QrtNPtfS;tFo-};*n(w z3{a=U>7N0#(tYTnb)2j$*}-`tH9XS)9o=7OAHxK#L2m)?py53xX_pH9a1uRaQ3Oum zG~E*HdeK+$PT&mAqJ>V+;e3QJLC?UeJ@pL(zi@d6gP+L^L0T)XK2!jV&@BR>Pd-70 zNsiJpxFY@)qx)k&?uw1qV$B--SQMKG;CFC)fBdIi@rfuthC7575Q!1}1pRav=$LII N2{arh`)-B7vA_18G1~wD literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerAccessor.class new file mode 100644 index 0000000000000000000000000000000000000000..6ded602738b38279d4f86b7810daf1852a5d6f7c GIT binary patch literal 11018 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 I4y%CizX%3c*Z=?k literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjectionPoint.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjectionPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..717c73f523a1774f4f5f570510494f2838f352de GIT binary patch literal 3117 zcmcImZBHCk6n^f$Fv~KO7onC~TWhgpx4>uxid~?kNXsg3EiJY9*4f?5GO)}nGqWxD z5^acyAM^+K-K1Yk)I_#H6XUlg{tZ9*6Ewtn?ww&-Ub77v!tA~G+;h%zpYz-^^ZP$P z{|ev&9x!ArJF7W)%gpk;^?=(vqq&xqb2KY8TX534Ygnc>XquL*yF4>yEF0!QZY^!{?Vf?$CoRKt6)=W}qleA5D@)(#ynbI_)^fU;)fTM`&uQGl zrwuRjbivhAIqoA$3?vwC{O1r9gcxF_;~&6Lr@+cEa##qPoGVZmPL?w7Nj$@q!=_UZ zWvJhoh9RK44E+_=bkVSF%ia_ciNaG4)gz?aS%;xc)=?|CMot^k^JM7WzTy?ytMim= z8)i1)ZIG4sS44rsj*u$DrHX(#u3bpG+9snn`Jzl-)n}N7JHYTq+p`F)qLlk_@&7yT zdDz%AL+YSYdeg&LABa6{RU@@qo*= zt5s}oNTd|S?-UH}&r)QDDnm9sh8kziD&#U!H4MSF*bM2<78;76m7%wio3~d{6r5G@ zGR{PC4s8sHO5*GzD+O_eXqLNIsjYL}WH{;-d)rl-iOr~JM@JOr(Me~Z{eyJ5FSo@i zs>eRLiQ|ZjG-ziT&hC*nw)+mNs6)LFMHfSZXqaA87}1?MY77c`B+*h&y-{4m8xhn| zEh*2a;SlE5{nNmxA zZVDzSqG4wE^298~X-meEDsJFr6qA@@sCEh|(h@aBfjODnliJ&u7TfPIG?V{cAsKi~cs z$KoApI38~at>MIv($5w)gy^||D&$Z@2Wx-{hgP~gPrQheG!y$y5f0*=MyClwK#l~O zpd5+(A+l4~@v|q$BK9}Lf5P#`SLk`7h*%NYceEIQNM0p3EXjnbx7km~@G4&O18MXt z0)<7OA9gqw%ACU`=L>k64#B}HId?z7Qv4TOy!#lJ*3d0+C5pJbj$wwe_I13) z@D0XkFwXEBCdWITpz6`nKRfFCi@4PjY7Pay#VHY}BiI}&;+>A>Q0QI}@2*1+;?5(~ zOIu^wpFjOx%+IeQ8xY|H^dMY%9z%Eorxje^K#PLO4aC@AQ2+K>>7+scD^Tzek^M21 z;uG}ZQzY;ihVVI(cnFSFV(<$T@TDXmPUH_k!yF76bzuPWR8&!#)lvypsl*GCOVY1L z4|?RBZWAG;@>pBKh{_UwMJT>5qd4M63sPnwg#i6UP)+|~Lal}(z9fUVPxb(+{sn7) BbyNTV literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjector.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerInjector$AnnotatedElementInjector.class new file mode 100644 index 0000000000000000000000000000000000000000..572700644c129a1c2a0d066cc67dd651a2ef4085 GIT binary patch literal 3176 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 Lcy|#u$9?5DtYoi( literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerOverwrite.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerOverwrite.class new file mode 100644 index 0000000000000000000000000000000000000000..1a4d007751986294c6ae5ab9179d8b43b2aca87d GIT binary patch literal 7644 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadow.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadow.class new file mode 100644 index 0000000000000000000000000000000000000000..ece2ed04d53a441301a325c191b7a9c8441b48f1 GIT binary patch literal 5062 zcmdT|Yf}?f7=8`}0?B%#3ffks6iW!!wAN}hh$y1ca#5hPV!bTn7*;pCna$$mL;pZ$ z`k~+3f8d99ro^#!`UCo-I(<&g5+S=biww^6%bxr5-k$TGH~IUYKmG!65@mtgu2;-e z%C1wCW%sf4WFhCfu3gEwOZQhR%cgI+PVS=PxW4Jj!j$#Ia>i|0l8%4PbPBfg=2pyt z`?$ZpC0NzdNeF?L!{g`9O+GLmnNM=I=@fG%w;=7D)G)c=Kz@pw!pfMH(k4|(X1Qz; zV`55ohUcg9Bl(etlUp+*WWezJIDrLjgmu~`auNxFfx5$9>(dj;WdgI?RzSxh@bk1; zl1U^5Mz@QbM5n;M5V*jZFmkgn_Rl{pQ!PW_%`qB&|Qzw zCQ=LRZCnsYS619ryD%$BPyw+>g&cZXV1E1547r%JO!zf(&qkof@--pahb_nQM+AP( zG{2n@a>9NsS)S*5>*<1-L+6P6V#MiqS`ID@|SknJ%bAd-oud;+Hlms z0d#kw1s|l)p@uy;sD}Lp4&hzZ`$z?U#i|GtV>zYH)z>DPQ0~)&QyH+9T?Ov$tR#{# z89WC9trRQJ*PN09DN{d8WSYSFSUSFrqLiB%rLR(?z(Qs)7UF;Tw?FFY?xu(! zq3E2IkCYVef(Uf@?ws%OO%&KqAoXbIXI9VV4Sa@EDH7+5BGc&XGeBQpIwacoK-5@ zQaQ`O7*40L2bTp_bT-)(q8)LHfl*vhalgtJ`3*v)yd!Yx4Nj7BpW>tv{gp~$l;0Jm zB`4{lbyD#LUp9SKJI|v68P4>U<4fjK)q=jyU|U{`D#ww_|1%8TWX^?6+xHim!@Jy8Zn`RXQ z-{4!N>P>;GaVo$V{7K>#6QbtmxZ`_I1s+Bj-c-3Li^7aMxRb_rxXTn@4md3^ z5pf^GU@^=iW82)vj`X6lLl`q0PJw$-4vBL#9QW|dAd3(6#uo~8=GpP&ZSbXHUsNV& z9yL~;?pqUAdx|JAF~;A<0(&McM^3MnmZUdtF4>&vnsk>kV4-u) zDmtdW>hYv8;V{Z$wppo27LBPnchy^#S1em5dU<2o_)kD9x>VW8UYDvjYb~oywkaf7 zn!e9{7DvBux7vR+J9PXxdb5Yu(3gFQj+<)u;Tn!*4<*(x@Efg$%MB5fnrC7^2oYfgDAuIi*%>t)~=9z-GTYSj%9LBYpBXPnOtk z!D03e;1hn8$`{!x%(m?B=zGSFR;;}?IbKu5&>I3plz>+=N`O$W8NZEi$9`>qn}`X= zdMpBNpb>5=CLA+&0C$zGGB%y9;)^QIRdJyaban%1I%Kk%(I$`5b2{j^*s55hvqLX1 zE>Oj_M$m;Cs1D0IC=ZZJUs9h}AzO#nYZF}4A-lvLixqyAk7ojbowQrmdO5^}w1US*Q5aGn759@T-_(vrxt23*2i#qo_MIQN8*|T~rTD zEKw9;u#5tsU$Leq5UMS^!M}R=G;yyUOOEfOSRbzt*&$9JsolZbmgaXC3&p*ohltvR UcM=^`IEDReH9{*~?r%Z+zbKdjFaQ7m literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowField.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowField.class new file mode 100644 index 0000000000000000000000000000000000000000..8878bccf8bd14ac78722084d5ac0d0973c88f75a GIT binary patch literal 3787 zcmcgv?N%FA6x}xoOb9Uz*dlHHz#1)?Buz!I)=&h22pXsojJ9j}W5`^?)cMGonFzju z|NQSm)UR}@Yxw|usIHznGf7vO2_*gSPnbFPo^$p&XWxB?hmZdG55NNMG8|ZTtL(Hb zv&Gxi5x2Qob}dVH%GSa69jB?dnq`*POw)1|m#aJ4v1V@S+~B6WrI@PD?fRjjT1UD5 zmSEL4S2eDy5*Wk7+DlEeT)U_Is2rDd#cY)gOXYf*`!LH5#nzMqod>`w5kM5jc&c7Q zX}2{B)U*tP%HQ!{y<#dW6^8F#YAq5H3|IRN9oX}0qGX2Zivc4+Vz}JT8XhCVO!O+l zjWC2kE!_^9ncM%V%_U4SER60f;T492h`_KHb{~zvIiIRQ!MlnO*3s@t2j4ThT$WemlsN*b5(`UKK=gW=ct!Bw212P2?=W|*Sv*YH*fW0)f{ z3r;Yo5#hpM`p0mfG@K^K#1@JB+Q=Xe?$1fxWJoFgJwU@_xHS~iK~ra#bPlbKuI_OX zTLwl~QL4q=Kpniv4RZj4_(BQ-K6wTC_dwmXNyRH+OFjboAaX_B0aSe$+z0_A6d9Jn zA;O~$)hFQ^&5t@Igo@$(d_G)W8rSiD3S}(NIr2}y84U@?@aegjLJ3QBDy<`v+a&Z6 zjT-_qQ7&P6c&EdeXieo#Q_xFQ`}5a_)3Mu6zET7SM!DR3H&G?uV6gtTbj$LJmvPGB zZVx?I{b~Ljg<=q|p5Py9D5r@=_zENy{RFEi(&ROtZW}bBG}Z;LV%V5O1|-twXky-1 zQGaarqbdk9q*pj8$)K@?okpx6%(SpYu>3P@rI5t75Ml3&Vri&;o-BbOX$viDb2a*$ zoHa*542H#sb`XVQ~)HIXtc8mjV?~5;T zhUuEsRP^3W6BuWnHquOjg^9Y>G8MODlV^I{Bt=@+702Opai;24$8PefrgO|u(lPq~ zhGnzj!-Ad?V072c(r=yKexOycJ|!3a!X>#_x{&xCZ$7}=zmYM9efrHHPQN;BGmwRe zujy^kcfu9CLvQ5n1!vw<4)2nuu)T+?p6?Xqk@pf)8-m0QijbgPnSW8bQ|RJ@V(9@s zyiXQC>p1NLY%iPa@9byG;08YO)-$+?kG*UeROl&A)@9rxizrTD7T9OyKXIub7rXdW z?qaj}H>wO>d@gE?do_yL07ulAV=v>J@7K>bi!V^~GR|TLw`q5S_NV)nU9x;bmKavD zYc%XHX+g=mHPc}be9Cv6>4C9Xh7mvaS literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowMethod.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow$AnnotatedElementShadowMethod.class new file mode 100644 index 0000000000000000000000000000000000000000..ae4f08ae0d6ec42fbf21690632ba6b6037bb7596 GIT binary patch literal 3770 zcmcgv-%}e^6#h;U*bpKOwMAO1VvUxB&?pvb4MmV2f)Y@IJaoo~C3_oIH@lh5M)1i| zADnUY!FT;1s$+5V!9Tzm|0TzBcbDz7cLRwnzHD~Sz2~0qJLlZ*-u(5?AAbUv!7ich zxQ%kV<=73;at?$mjI!rAR=e!%-R-pNx@S6edC|5VPxpjTH4jaD#S%?nduzIFSi-IC z>xOfXkEVp9fw?NYeaFy1guge=G}7G0C;DglVcF8{M!D%2!YYdZXL;pN)H|NOXNeG7 zB?gM#Zazf0skd4tFI9J%P0m0y_zd_|<|~Ac&ydMaA)-vH%43nPPs*=UCxH5z+o+JD?c><9@CgMb)5BUEX zrsVw$UdUho6Wq_TEeIlJITcK_6T8a8iL%TcqlFqtD4mcXML!7{Jvb7$fP~vUq3u?A z!f<=v=~%|LV9_Pe9bUd6yig+uKlRql;rdb#!k+Re1t&tyb6L$Rs-+Nvy<309o&|*2 zUPMAcr=dj1J>VG}Erh#4tDZINEUu%R!8BNc2Al(1xUAqYxlp@KVZwcsvRN?+=hgi3 zm?7GA*)fI@mDK93q+1W}AhN7+TeMrPj*pm1fiF4E{}yhpIPXUsZ42)hy)fi?Lijcg z#p(EaD#}Sxpq_24jc=inVX2*C4d5PJ_DghOvY-|)i+Q{)r!EX*1Pk1=vXK70E-L4} zIA&_+94CZDqgy#ur#_jf1XPQZ+$Ah$kj9FXT>lC&+f$w&r9eo#Qnp&ch~Gb_)mJtQ z;YLjG(>&Sjhu-q8?pQS^s-+)gjCNZVMNG+Vsd8eM_!>?)w_)01v(wxY?vA{KOPO%$ zy0xpjru+_#V-Fj-CgH$P&1~4Z*Kyf1yKb{mEm?ZIE%=zs)SQl67ptZvFu_3w_+Jg> za`GO*Zz&L;tmFLL;;&D6RF01pr|#o&u{3=#^$VW=4KM!8#sog#=LnMg{F0}Ag&e-d zhx~OTaKcr*#9!?0FHZhj9xt<}w7r6BzV9d|QSbwE8p6O^Jd)yB+Ei)!2(R7a*C5;= zPXNC0!xV!lQ5cQ?oxSdlYYbu552N7?eoM0TCf;O=WMwft33|NvD=tqJOGmg}Ji=n> zcf3P5!m1>f^vTJh0N-&&zV{{9OCx@{>`M)9B%~Y7A|p0pT-5Y N1rd|@i033Q_%H6z!WjSn literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerShadow.class new file mode 100644 index 0000000000000000000000000000000000000000..60ce8bc47bdef4b2285ceabf22b9f3546a2ca3d9 GIT binary patch literal 6235 zcmcIo`F|W`9e&2Y9g5b%ahC>d)03sS_HwLs;@dEGbZ}5NUryuL{&PaJm1i4M!MUEP(bK4a3b zx=lGQE%$(KrA+Azjp-?SLW2-!zg%7#iUqcSmXt-7&qNoH)TMf%_ z+XU{d>kXs4VY$*7(UUTh=<$3Nc#fevLLfI%#GOjA2zzw08E;Co)3P+9_8G6&l5lcw82;?&=WbG=& zj4l=!S!W@w_4RF@po&rH2FeN4)@|?gv1sbnXky$>Ni!k+9+C*CTB2w~Qw6H9L!gSg z7m+2fhYZ5NbKGzo+nH}x1f}1h$onJssN%g-KqGIJ#R5k{a=n<#S5^lKy8$;UVY?}; z-4AaWKE{xr&`l%7CVE(RsD!{fb!)rjvg{7E`J(2nEIciq&IvD)L$1Se?j>(CS}IV4 zR)NaQn4L9KgK}KuTyfp@qfxYBkMc-+6x&c&PP)AUJHtdYUpWn30t#Bb2U#Lw0kjfX z*Dw>k%qaSQANE(E8wcoe1-r#}8g3RSGnjR{YdfrvdAoapb#mxMUnLHrp8^&+%)i%g zh>;!BGyQVXjbadcDsc;jShg%K2yB|?>iKA3_?S#8t!~8;MR%LPjbSVguzdJrTKXu~ zaJ#_O`DKH%+dP=2);YDqmGu=`d*JvKKCQrU2OEwXVE?92*j&kuURITZqhBZn`S=NH zP2SwPO1bnZnZRA^D}|lu>2;2qXGkb3Rytd?jA9-G1iC_TSlT)V7Ecd-x}}dwhdCfI zqOyNfU~iZlxHvxzhQJ0^gD&0GIewflQj$r1Fl1R@h51ru)c9_gl{f|hE=Ea9j8b$0 zv*Dr_Mph^f7l=`)eajT5VK&mLBp(;p6($tR7-(Se)r?H{c-lP~MOM{!7bn=djZ9zG zbPc~OMKP(~bmJsTmsd%b^o_k)!(_xXe9mhV-URsh3fzM)u!+PCEAH2dcp1LL!oj11 zR3mGX-!$_Z(2AZE@TQ&j;meBWSC;Jz%CbM0EM>NI=U3Iv2iP)P+i!Kti+j)jqxc#g zQnU{XpbXy-*tpzS4d0?wMrOzu&zkBW9mRK)YmVZPC_aP_tF(BGF1@W|u)n8&zrc0D zY~Y{8m(BOI>$~_~Ikw>Y9ItM*^kGxRT{~{tJg>{Ry_kD(c42kqD#H^DPJG06;=xQp zzdj`pO|yl&eVp8xq5^l$k0iQ(;8$n=v_ILCNg|-*jIZol>3NCD~mx?{r4mJFcfbk}%o^a{61iXqt%hISX^ye4xBc;@I!O29=jOTq1 z3B1Zvkndg%FLN@{Q>oxtzBT4mm}8EK53_rk=@2HkFDYJL@FnKEsrVvnWRRof0VKkKYF%@E6|o@L8>B^$m@) z_`nQri||)o)szW5f>Jz+zws{ali`D?mj z;BOayH^n}l!zXyt@dP3>^{3F8L(d!r1o|51a9Cgp)x7znz*!vauWx9Y#hud^{;PC~ z;P1RfQM~y)q8e^F$9k=_+)C--z8IcF4W7bgJcDLDi*`JRPCUP$c{A;}3!m|9=vuI$ z3p$e2`yU=}Ws6!F=E^^LUxWt!IB@$m6>X(WlqNPcQ1!7n@QX!b4o-hl4ii(j&$s8Z zQ>b|h_uM{UvQK8lpW{UVFwFK|t&qR+xN;Oy1J0B_jyFc-rkC_zT{)<%2lt~LY s!}z&W$^R-oUlA#zRWV$Ja=ee)RFmQw{@3t-3$DY~_8R<~v_&ZSKaUaeHvj+t literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerSoftImplements.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixinElementHandlerSoftImplements.class new file mode 100644 index 0000000000000000000000000000000000000000..f96e8115bebb98c4403bab4e0cc1d83d42a47208 GIT binary patch literal 8605 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 SE%T67V=-=-N6eQiVE;coUsgo` literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixins.class b/sponge/org/spongepowered/tools/obfuscation/AnnotatedMixins.class new file mode 100644 index 0000000000000000000000000000000000000000..4a5c390bcdf04a81ef2d83f88d71122d6257f052 GIT binary patch literal 19939 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 OPAMo9yRlBti2nmcsXAl; literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/Mappings$MappingConflictException.class b/sponge/org/spongepowered/tools/obfuscation/Mappings$MappingConflictException.class new file mode 100644 index 0000000000000000000000000000000000000000..674a299c14f41fbd5d14a134a04a6dedc8e91d58 GIT binary patch literal 1358 zcmbVL+iuf95It+>LPAQ~03n21fdWaWuvE%TjrtM_N)?JkA@7@HYYfh=@rA%&fkcJG z10TRgA!cnCwGa^454$sGXU>_~9e?}&CRPZ(D(kEw@}QZR=SiLuV=uotq2`2Q;^I zAj9haNEcCHX#7c^VKETC!`-3q1FGjm{~-h0&Qq8AqvFcSout_e>x18=c`!ZF^EBz% z>Ze&74EHjmbvv7sS(ak%14oLTXgU)9b3SqjsSVVarkK+#lb?e1 zqu_h*;Goi%QusZW2Z5j~EbpqwAB#thD{z^vIY*;!qKOj9V1$6MqK=2*9c!u(r^yv z$s>YPR$E%oz;#0Fv?pg(l1(q zSNTXu7L-yxIlXvS%^E>?1xDI|En2Y22^(-!FI8(rwGxD1pu4`x3Aup4P&=~6Fb_s->zQ9;J$aQjcB)Yp)(6YwZgREMXItS4su-Bf}@>QUt zXzznSda|7r?fESNrvw5^np((J1tOE?2G$I%AorP{es3NbX=|xzCtPM9metgYF_dbt zDah(%vwE@U#N4=~nR2198S`{1O}~Og)mYZ0&wsp_UF#v(E)Sje`fX`UgsQdZ0I1$$^+i(Z{*@CK61Uk((=T*aqOL`t8!Wck*7Xlb! z?r?~jBu{i9DaRv9E@uXmy@bG%_GD_=`_|L9nRs-OVKe4(Z}w!D)$Gc+UKx9!RShQR zhD%>=yG!+8*-XqjHcfkzif6(&h0}5i&xG+hPRcDjD*mQ*Oj?CJc3=eMt ztsV{|vvqT(==9b!bs(J9HY9il+-b?A8_zIP=2b)B*nqX{bHz|9-Z~V@9@0;jhSX1qIA{>6}B#!#EnGUYwGj)3En(~@OMN8OYt46Enw zE24brwgoTFh;bLuTCIv36y)`am9;Mk{`4PHa4SeR3c}_jY88{|R2aALzRZCivZ$fP zO}U*S|NOu8(9X-!#XFXZi!7IBw0uc1Y876nzEM5LS7cHvsn=`8MYS@kEEYJ@JE>=t z!n{(^WZxd_o-vf{3KP8D?`xjKE86}LYW#_zeBp^wNv(_)lxkIFH#DQyDp_@0E2ucg zd)@~o9eB|z3q<}8?UltN$8v0Y@DlqhAshWY=wN#`Oew{)JT> zc#K0%^KfGDF^+z1qAl^+2S1W8TCKTNXC1Pgbcm+L(>Di%5so@R|S{ht0-% z$OUvFLpg3e2f53J6tY&bAq_g{BZXLEaOk*%UBw$;AR?)9U=8PdCR;C-Imrvr4=Ia9 z`!?TqNN&+wBVpk*uHQQzPiu6XbxlEeO}|5xm>V}w25VAQ{cYhK)p`iJaUQ^SF1 z;1@)rf#Xl`&gby^9z8{5f!$Ti{=j(@P+E8&5#47>7=ia0js=l?hJ8Uyg-kh5poTg5pTxP%%;ai4Mc5bxn*)7h&Q<%ZmuhTIv-J#RXjq1^LylCCi} zcauUlriiecn|_K>o8i|0#RH{~aV{9eLaT-8?oC{&w(JFv$l00@SRJG5`Po literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/Mappings.class b/sponge/org/spongepowered/tools/obfuscation/Mappings.class new file mode 100644 index 0000000000000000000000000000000000000000..e6f33835874fde045b8bb88149a2d98c46e786b2 GIT binary patch literal 5002 zcmds5>u(fQ6#w1bEz@qdT_{jnmDv1G%5K$v0KB9k$A?okW%)ZJZOSg&9G@ZF~=H7G8@0{N` z_s(Ab^NTM5JcO48!bT<@G1EpWuBD9=T1K0QScZ`>BgXh-){Lo^ZloenHJ#Q|aZ`a1 zSa?J|u0|4SDjwN0eng8|3cLdSmFP)2dLqNF!a*ZtW|LY*L5)B|&PtCoAkbHd#@w3r z{VDxeR?9sqs1;}|l?m*)D~$yoClh+i+Ho?brDZe})C;uS?ybPiN~|Pr6Nz?L@2JMG zHVXI)&jKU!q`7^ssx#(`1blMD&`;`GV!}0L3Is>&9A_;(A#>j+aHCYxUy&<&3KZIR zDy{WZv?zJ!$dt3Ln#mH%=G4TDWU|2EA&IkZ3;#%uq-ISSMW}!Le_)K-uw0M}vUXhv zY_2HyISR}wCq`>Qzn;>qEdt(-&I1A5i{*a!utH!_fhxOHbBY=itn#A`D*{-8rFHON zbpZD`qjpkG>Iq=2RN%q=6j)O_IoESn4$`Cbl~ltl3M%LpsIf>!T5Rs~SYFUpB_3W`5b6QH?D|kde znNrQ&+DXd}>Y)H0MQ=Sef!KU0TfC&iL#NwP^JZ+3^S1gClo@C!WWbL8W7L<kAgfnkV?`O76>);8RZXW83k(oYC27l5@9d3&;9Idw za%x0iTSs-e93JoXqYitxt;IFVZV$N{5O}3B1G5oV2eD`eVC*jc%Pv&kYDq>$R$y%z zGM1&@KJ1s&J0LrQ&AVEc4J_HyRb{*=wDW;$c)pxro)@u@?mDYzc#I1~4x7q&mcS08%F=ikpGJ`MD*d4Enn{sZ_bV zlSOp2oa49iA=huq9o6o*#_6YVKbkPbs%HoVmX@n}Zgod+RPJ607WrhxND6GN5~_g5 zGT6mwwWN*&E|d$vt=~AayZD^_ap_j=dYQX{YL$@Rqk250TG7cfm_DJ{w^`B5YO=9OA!iPoC<5kI{%vY+G%PKGzmC<7ooq z=NA?-xzBL+DbAOfaU_Q*aVRoM*|TLm3svFSH0@lNlV^wXo;^p;xP|a4W0v4uQZyuE zHUs{2!9gfDh+c(Xrsg~*azu5=!3?$85nIOc0K;5|%Pfj3EQ7CDIA4Tav9_U#ssLTHRdr`s|mjK8LZbzKduY3$L4oejdq#lB-T8S#~$kmCK^z z({<+bTbAv2Sb^_ZGe3~VH*B9aICk?{?RB$CUyy=fbD$S#j=a>-ZD-n-&$J^sWRv+A zGG)*dGF%2tsC!OmexfHo6U{F~^DEK(Ml`=yfX2+DG5-P0VWRQiMaFYANAeTJ&sN6z WKm(tG%<)3rn>bp``%9eXf$}%7g1oc< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/MixinObfuscationProcessor.class b/sponge/org/spongepowered/tools/obfuscation/MixinObfuscationProcessor.class new file mode 100644 index 0000000000000000000000000000000000000000..217efd91e2842ed29eeadfc4a06f6987b3a0d12f GIT binary patch literal 3059 zcmbVOTUQfT6#fnbhlD{C@3qoM)dmozUaO))j7dd9ViUxwt#p_ilEKMLoS7*0-u{dJ zfYw**YEgXX^0`m_JuX+8%sKm<{q6nj+sWVmKKl#6QT)ts&T-3{S99z# zuQ~U*%S)Q?IF_e5^9yy)(0$XfwP|z7wDT>&Ro5}N=Q*wd#xT05-_w^g-L@S+yk85? zO}nfm=RM!m4ZlsLlVRYsh+_hbVQ+{Tx^mIf%eLeBrg7kkX_pjiV%WL<1qIy<5pj!Q zQ&qU_F`UT04asEaKQ9HodE*3d*0fFkJVR$>OIMFqPUc9ppwGR`<|8$QG0J9+h1 zF{IRk_<;Srd4q2cBw566lcP4?5n!x z6@A_Hc}c~Gq7-)H0K@*Zao4@7Ru!ce_Kku=42L($?`o3@5)8X3FKLU5RC~>ET{ry- z!(hljvvg{(ltqq>4+Wvo>b_}dMedKQ7{*8shH#ji7q**63dR_^O`p5E@3_=RiFVy7 zDJOuBaij+tjxzMO02=2Cjx#6~-OKSMDqw1mn<`G?lOCMFDXMEb5N~f_2cG8V7r7x^ zJA-j??<_++3`=labxPdQct}~3)D=+sDHMvZr4tfxDdfJcinvKeCXwvH1THWfc$1NE zs9a>|N@bJ9BEunBXs`E68p+_(DAKsZ5S_}+qzjp3Dy`yjD7~_g>6r&L-sCtGH1Bi zps~IuVbul{Qx)AU^1F3z8+`nY@eg?4z)ivX7S)?@k{aX9dQ|(a>~MxLdB4S3YmFRj zbz9QB?y1o;B*!sBUpN&~PPJz7U@pvKP9DF`~t)A_DNFoDRpHzN;dFKMHO}o7915E3*rH~%doATa6a&lp2)3@3DBHO z3r_%Yna11gjhO&Q8u*0g!9 zUY+Oej6QFXq(AEzx;3l2rr1kiFAaR-&a_^W`)JWD+qz$ONkN^mZSDrsmlM%g80L&= z@yLF9z9RGoi_D4Fj8>ayO@ANg_Z!-2^kwwz8h(N;ztf@v-^xqC2)?7W8eYIw^wVy? zc<80_WxCx#vdzOIPq1@%Hla2qa9emF^1{GD>%*Y3sST=$M75zxzQD*7#?HlSM)X3+262L z=#M@}ZW)D#*dlh1G28$7=rX=|_}??(XeYj>-yP_Bi5&_~yu`4AiQX4bU&u%d&};%O z(C78eMPang2>9%5{1MwuA_ zPSd?f({xYQr0L$oUDCyF3MOtF_t*9x>enw_&YL$v0t1oj8h`UfZ@KT@bI)C*zy15I zzW_Ldw*>|rH<$8?j-8W5XF<9$oAMne@1>lX*^-wreao>^Bi5p2k5wklxK2iTp5qSL z7i30lF(3pUxh+`+>IEKn_p5p?nDeH<;bAo{rcB#*e640tt7X}_)I_ORbX;F%`&XAI zFBPSi7HF6^^CcKMDSl(lLg`R@4wZ|$O)}u`nNY%D|#K~H-m-^kDz=2yl;R*EA zc4S;;EtkLxbkugBpIh(JcxmsRw9K6Cc)pd{ciOVE23iGnZ@j_4c7cf6CD3@(vMs+) zpuVGXDuy=fj3RVImO`urd0L^m0sHwBJ$1g=h%d@G-tkbZhg&yPDLJ3C;{ zTdrdlr0u6WrvODhPz4qK*wGUr^>Ns;E=#WH`9G1$h3M>rfZoqd1>IGTReHfu|40keFKL{ zhDydG-bXZm<=Cj5*aF+v9%almxnb}SjbO26jtT5kv`+<&99YcAqOJ;$sQf_IH3lrA zz7N-wA;PRJvzn#p7>=R8nUpv#@Zimu-(0cQ2{3Sy_Aa=VFURF9tDMdH6~my)Ujz6M z*NU!X`xCyIxj5;X85zTnTI<7O0(EjxpuLKytM(DH+1uoM=r9dj#j~l<0G3uJq0T9R z_vEA>rX_FHy0ex)Cvb0=-KwK#oo{0p!x@!LKFkadc&f}80~2&SfpJaWVeZ-8(OGqN zD4eGU9>-J*CUI7vtss<4G0ZW3t^%OAKx%p-5hcS%XJ+$D4&nBQZuQ3 zf~Bp(S_LiJwsO2|?&%GXAOxSnr=$2JK0~tljy5TV&nb%v_¬BSeE1<@qQs;tK-l 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 E0!h-H(EtDd literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/ObfuscationData.class b/sponge/org/spongepowered/tools/obfuscation/ObfuscationData.class new file mode 100644 index 0000000000000000000000000000000000000000..a98038528fbbe72ed6dcd961524cc5b7e0438475 GIT binary patch literal 3521 zcmbVOSyL2O6#nkaK;zKJq98;<)I1{#K$ai#|)d!CZ2 zY?bB3U*Jm~k}AazE2&f-@{r$?msD9M-|23co~2R+57XWE-gD3SzVDoS?)>%am)`&! z!zT*IQ<;UHY&w-(Fw?2KX2y*7*r`+^+mo7|&t>Nf+e#&SF6X~T4BOD46texX-mxWP z)#ynW$pxA$nR9mEVCj@^=7MczjM;?QKeo-Nv9+|>H`u38R~%78NTDG=yBR`5rNZ7K z;77$yArvPGg<2O`&bAUg<3^g^FBHz~3}!6mAl2jMypc=TlSU$E5~5EAPb-BWZ51l} zt)yiSa@gK6snFP7YT7ZWqZajH1kgbI_M(+l=-sZ0lDmEn-pQS87O?Gf;KHd3qXNwe z^^W?EjOUH)BBj*uTp0V&tYa6#y9oMu9Xe{{>jly@;&FwG?b}7*6hS#{6#91N%%P&t zEx1zAsxNwtHxOj6Stj;+8Hakz;3kZ#c7!CETgm)HL01y*{+duqeIumVgrY>x2o`_ zLO5Y%-A^J-JUDh=_o3j#eGov9IMoc<^nyCUiSf!Cpn@OJW?lJ&Mqj_$q>2*wtryKM{-Zyoe z6RI)1z1iXmGOpnr*8HN8oiOk5n9fSI8<^uUO>&}GZ|?}{FflK7OvrZcJ~_r3EQQwg z;s2+xET|Jyg6Hm%xuzp2M3#^$(xl9}E|AvIIF-3PL>3N60;6`HcY#La}YLh&fz zuBf$;H0)f4{VFt^it|-FW+lyu+{&z(iODT2mr`oZNK6_TOUB-0Q{f~zdkf)wZzPVZ zxuk8an3Go4;@+WTGG#k|7FZ}XQQMeXW^3Er7)|9ebLOa(FmaHTTLI>c?*_RZ_~4%aMoZ)g_D?@X>m#&9Iv?RcK12gTG#cXbBsZU>>tQEUle^gq zMK>M+37TJ%pzhjk26xHs4OCHKC>w~|Ya76NA315*=uh_=qI4fF&t zRSao{OmF%i)oekk*@9G40!ge~NV4XKq~x+93^&m%VFC#YfDIg1_<iI;6 zy~z1Q%Z!`o6U>)O>NCDY;bw=_22KYs-t{N6t_KwTArAb=wGckyQ%B$__GqXW=FeAP zD=g5Yk8$%B<7SU>H4{*r1hEns7HUsmEuSr`XX%-%?rFqO0g<8 zBU~pHq0ssSF&?684O8owktlpM+~Q*$w~M2E>Wk7^!bfI=Pe3j_kH_ECqk?m{y(nYB zfkMe9x;Ma!=RW%Qv8eDnmU=_2_Yv-_TC(EBTYDU102fUmXK2o>&Q-p1|IzT zN2dqWt%gPfpP@xVOldHlqD{lnKRme7caE@o0iUA^U$6&#iEezw68;*e@C~lvTTJ0Q x+`#t^#|Vq7o5dlgRa(hyk8KsLY~;u;%ss2POSXBP#mZH{&1n!Hb8i4u{{e|QDn|eS literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/ObfuscationDataProvider.class b/sponge/org/spongepowered/tools/obfuscation/ObfuscationDataProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..5828268a9b05575111dbc5a58f896ff2f4e65347 GIT binary patch literal 12710 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 X_`kGQw#aVfqXKx&^op_k+X3x=nTGYi literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/ObfuscationEnvironment$RemapperProxy.class b/sponge/org/spongepowered/tools/obfuscation/ObfuscationEnvironment$RemapperProxy.class new file mode 100644 index 0000000000000000000000000000000000000000..2275034cc00c639f964e9af05582f693b39f3450 GIT binary patch literal 1319 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 RERmbwp@s`Q_q{^0@&|*Z)>r@l literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/ReferenceManager.class b/sponge/org/spongepowered/tools/obfuscation/ReferenceManager.class new file mode 100644 index 0000000000000000000000000000000000000000..a7ba825111e425d19430aba5785f7c8b1175485b GIT binary patch literal 9279 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 EZ?~Yd1poj5 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/SupportedOptions.class b/sponge/org/spongepowered/tools/obfuscation/SupportedOptions.class new file mode 100644 index 0000000000000000000000000000000000000000..5b7cf45621305108717dad4aaebcc3e034d6f84a GIT binary patch literal 1973 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 A^#A|> literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinAnnotationProcessor.class b/sponge/org/spongepowered/tools/obfuscation/interfaces/IMixinAnnotationProcessor.class new file mode 100644 index 0000000000000000000000000000000000000000..32536b9c4567344ef5b518f1ebf5d4e1dff22fd0 GIT binary patch literal 1044 zcmcJOOH0E*5Xb-Hqt*JV?-zLTpa)$LJPD!{#fqhZ9zD3GYuK9ZhTXL4SM%Tp@I#4{ zsPz>E1rN!DnVsMKCo}u-cy|wA1B-+M>q6mUYeE&({yGp71yb7kXcWI^gbEq8Utun*tAccw~!{i^@Rs@D&>;KqQs6;ntlOa{D9GMMH5xo`@HFd$GquDb%D*jIuBhD_cpVZ+wytb z4hf*weBTLW1H_Hcte_p*&aUe@+iS#{q8~J9XeEBR5;ZVBBZe&y$YLC~!LUZr z9IfKfI+*x`dpDT;KoO%K50I8;CBjc*riWiA9+9Etl;USRxPc<@$^iZa?dV+;9^#Qa zr{)n#Fs>m%FQ67nv)5SoD3AN;ey6K=Dx_mwV&;&+GbvbAa*K&;?jS*dM6H&rQm zIT-1Mw)e{DOa*c=2myODHCNIoo6DQY4AT(9nt=T;)RUSeVDvk|!<96Tb*sFOVM9Ro zb4@^d-pq#r-j0TUDwqsw8;izmK^Yo}1`D)7-aVCg+2G_`qJ?&joV>7>!ZPSOrNDwfjN5FMA&Z~8^ccR7~}mN>GjUVy?%T@`ir%E6n=2A9N+Y-dZaT>ERv1<^x) z06z-hBqdnMrbSWNa?A60JnzlC#QE{_>>L1Iz*7Qmr3$Eyr3f&VN2t)JM#@lAIT$9| zV}?sXxiF}P%tK8(`+wG7GsE61IpRL5Ss(;f57~&(kcoiq4-U~Yvv7;RR$b2XbUT5K z0F6EMjWFu?0KG(MK0*TV_Fk16(-DpMXP$CO3#9C{QHf`07o!2Hju^_;voV=fRV5`Y z0w?YM%e}IO*3N{9wEO+mj%Bmx^o78uIu`DrA{NKocE8ijA12j_%Q)n68ja+4CpPm= zbkTg2zGIQEbv^k<7HN<1RqDub@;wzir|Yi^ zHEOr@-1nQQd@YT=_>Syy3|*6))=B#BOp-BoU;S)>z^G2a)pp2_Z0d$@H&VE{87d8Y z6*8>}h;cfq7ed69l8W|^V|>SiA7bOr=a-2VY&&;W&nSBVWG3otSJ#_5;lp*ERl{|@ z#{TTLtqM~?Y|1ZooNCyV1F~6%;cL~DG)aWIdYp0>TRfD^CK?HpS}M^2*15o0 z0#i_M?;=2{KwuW;08*UySWK}53mz9eE~U5(D=DtRn#XLv4jVvV%dt+urdw^NtC=tN C-Qphr literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/interfaces/IObfuscationManager.class b/sponge/org/spongepowered/tools/obfuscation/interfaces/IObfuscationManager.class new file mode 100644 index 0000000000000000000000000000000000000000..78069a00504f774a60b17320c46f640ee129e72d GIT binary patch literal 691 zcmbu7%}xR_6opR#9YGO9Nqhv@*u*Wy7)28z1|o_3GF&Dl(2`CE-pz#%;6oYjj06d~ zAi6r~y{F&(Y2QCy-vC^qE^upIB;&a?5zXzA9F3&6b{b1N94B$8ytYPa4%9$Rc0)8KM=TK$e O$;w|#l{05qX73X@FV@ch literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/interfaces/IOptionProvider.class b/sponge/org/spongepowered/tools/obfuscation/interfaces/IOptionProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..2fb4700354c14d84eeaab007808c70000388a6ef GIT binary patch literal 219 zcmZXOF$%&!6h!C8Xw=HWGl(`W*b0_{AVkOsHpzEc3H!rljd!!~03J$Aun@EvhT+XH z&)59{V1o%^C*G*07H7DY8+$HQ5UCm^`T5!uI#_Yay1@Rd3vSdQt^4TYrL`sd1Vor! zbgNaRol$9i;UXj$5avJVx~B*e!{M_*SS*jB}tS_9@ zic96t1j0wl8>bi$O8M9nN`z=iz!)rEiEF_lp+es3T%qquP++j018=7|21^#*VHD|p zU8^9HzOxL9)$`gJO@;ZXLbZ0zV6tzdLk83lu1vV5ND?#*cB{3MybNJu9?Ki4xWOP6 z2_IpeuJeet=ysdvE_FBEN~(~-MfGH;rR@w2dSgcN$K_pX4IMlZPIxKpyIH<`N!3LoxV3BYOu=L(9Q@=9OuTsA@ Mf?p@(X0~$j6-Rd4i~s-t literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/interfaces/ITypeHandleProvider.class b/sponge/org/spongepowered/tools/obfuscation/interfaces/ITypeHandleProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..49550ea42ed546f012102050fa23ea9e366d39c3 GIT binary patch literal 409 zcmbu5K}rKb5Ji8*n9+zJt~`R-q`_@=E<`b+FkYZDU1>V>bPYW{QLpC019&L0Gg-_g z3&B;vr+EKWegAxZ0l2{#;Z~wmZ6m>QBX1nps3hWBC98GURysKe%7w&ntt)QT!|O-G z_c|EQFHyG6a4bNCi;doD<#n*?d9~px6*wYX9ax|5HVNmJ)4(D;UM~kknW77JFR0C{5xXkp@)t%Rg&0d#KAE@X{-}mCR81^dV1AEw0&;5tQw3IGZeCIq*2qTR1 V(}B^LFhK$2d4kiN5T?5v$G^ZYgz5kQ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer$MappingSet$Pair.class b/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer$MappingSet$Pair.class new file mode 100644 index 0000000000000000000000000000000000000000..4b411d95f1763f82caabfa39fb14a6352bec5b67 GIT binary patch literal 1942 zcmb_cT~8B16g|`3vTdyvs#HW&RM57di}($-8u24FfW|f?Xks$0Ls@Kh>h4zKlfOg% z053dfBGH&=^wr;FjCZ<=Ewu3gedyh}cg~!9?wvdR@$2(f0Mod^FfW~|={BTY6%F}P zIO3`4Nm+AESzc+n74BKmHtW36uXD41GDvw!A#Uv-EB#cXKAQ#Bea(R?=Rn z9W9+%iemr=VhCd}j=k6yMFC0{OGtF!PK@V=_3qGQ+HORQ|BJT)y~QSie4JJ6UA`>7h^b&OAOJXRkgX-bf^;D zFDNl@*UHSW5C zZZ%evO{XI6ST#X?3DNL^?0}kIFkESQ3G!)*JA9qi14t6`Dj{CeSEFwt`w^+^#3qKa zlbaZRPazF6WRuXz-XuGRC~gteZOl?+)IWy9I6@u~1ZmYuB@7|A4K?xyl^_8=DnTe; z=6;GD#WAu<)OsLlYT`RWZxPluCcYuGko|z6N&0=l_!|t8H%#7e%QN(K=-LLI)p3pN z9%#{@7&8#M!8*z)z`#8!W03^j?aKXoB2}neZL=lqaeUgmn=w@b_nN|E*J{9^P z`09@m&&Cvq)gqEzn0xP;xnJkrZ{N?p0C-hwW*Ko@NMo# zGH7e!smwBMCUNK0Po-^*&!@`m&F!8F5rn|kq(4WFj=C2EOFz9dY|=k>Z?>AP?mPKG z#(B_b+|}m28o!YKgqe~*ME=;x^WCmGUO75;mxb zf>55fh&-9uK;`fhH$D?6(*dXw24dXdS)b_@Y+;Ai-34TuRvGtrHW<8wD_G^fMy*bH MpLmJ)yE9q+0R~(wr2qf` literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer.class b/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingConsumer.class new file mode 100644 index 0000000000000000000000000000000000000000..e3059f9dfabafa391d81373d5985973e809e343e GIT binary patch literal 1332 zcmdUv&rZTX5XQgdk7z{!6@38@aIuM3h!+wJiG%~j`_hiJr0q7{qVeWa8RNl3k3N)f zC`~}q145$lG`pQ|_UmtUvhN?yF91$)B+yooW9m=^4u$HDBC^d`DNmbfbUo3Qj9nF& zz6?V*aLitRw&5CYY)yp^UWIX@VU$%;$J3)H`BPo^?~^L6}=Q~x2c$%cS2 z-wPBik7Oi}Z#1t2D$=&QE_rq;5qNA|EaN?xb6?(v)XFH5+Rto{rF@^el{zNw>y}SZ zs*KX7_(siHo_?8SX1_X2TA$E36fa(k7I;{VrkQay%g^q@EVTq)|M(Z$87w~;vomI> zac95G3Ags`-*TlRGX>ikx=tYDNkjtWUJy{!@ub$oe8x~sB8$4NNBkb-P~dkBC>FQ~ q2EcI}oDGR+MllDn0=5@dpMrPU04K1`-koBqT1}4eeNqEz`^t)SdCOT=)Tgl<{_2 zAyHSdnKN^r=iW0PpKtE~E^)?irF6heq85Qn)T7kW=c!VW;c9lbG@eL9wcxQxl5i35 z!6?5>v|5F})Gio9V=h*LM}qw0*<5<5i!#H>&)ADBjG^L1QfP*9yK}?fhNc%M>9c*` zGB{capP|_v+M=Q2{V1lg`v{_g05A;RI>kuB0=MZ)4 UX`pHG2rY}p8B)wCoh4Mh07gR7o&W#< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingWriter.class b/sponge/org/spongepowered/tools/obfuscation/mapping/IMappingWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..d14909277b174dc477bf335bc1de1ac4fa9dbeb7 GIT binary patch literal 953 zcmd5*%T5A85Uf^k1yM2nf(O00iANz`NH8Q24r}yihNWGX?9OavW+ncb2S31X@LP;r5Qj(=vJ&yon&>tJ<^c4f}?WR4xNKDVmr!3+Bvhv}PK5W<{(@2DtHy4sjN>vu9>|7d2dh{C8vX`+=ct(d9N)0%B3Q_isy!$qdF oF?Z99#lTyr$R`A-LfAtCgag@aVPD3ftm<+SpeAz-&96xH6U8-6_y7O^ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingProvider.class b/sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..168d78ea4b314b2b99ad0c62f116b843809f3167 GIT binary patch literal 2882 zcmcImOLH4V80^s_vgM7PhcSegAF&-t4&Fc=+b$;6km}Yk8BER<*kh zaHFW=M{uM#aNz(|xF9)DocU1{Ju@pI+me&WMX5^j&FoBf&o|%n?%)4B{}aFmcqFjw z2URm{`1PvO@V|5dXWNW?-wREDYiBRCt;qH3X3c6e+RXK^Xvkl9BLI&~+jF-7}v+Da*&uM1C_C1gLG?!gY z;exv_np0A|I!Bc#pt|DGkwqf)*`5`Kinwpbb-ZmA{_tY_quI8?+Dn||sw63vPqtht z@2@%0uCMj}`2Xo$Q!Kp;j@L`Yr%Go8h8tDXYnT9F<{_yKN1)O}h7cpIb}34ELDp!MY{KCXcLNdc&nx@bbWdfE-J zm~Xq?+7o$JAK|*(&<%mbUayj4TVq}I^Vr$kFc;MJ$Pj5f=c<8|EQIBPCk9Mhye%-3^x}R&S zme#VfWZY=IhcxFv{9@9}`YUd=Zbf?mAyO;;Hk+ZcTX)v?YFke5$lCH0wr^YBrWLrd z9}k|cL`3Fc$Ng-@-wSL!sUGwepSR9 z{GXsS`5lv@gA8DnL?$la3dV31Q@6b>`{@g%s(^B}`&L2{1HZEI>$Gi^-nEWb>Nr zn!xwWh2m53C}UEp_&j5>syLJS3901IWK7~y{-=?cTN032Ii<*MwGq#^i0AQPOuWop zCpddhg3dfcF@e9Z@C!#0Z78b>Wkk)VY~-j@NVOd!du1N k4tNtyy!(goHoD+_j0Xy@+!1fAE8b^a@YZ6yipo#sUlVx=VgLXD literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingWriter.class b/sponge/org/spongepowered/tools/obfuscation/mapping/common/MappingWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..8f6dd1507927139737b16c79f44db7cbea5b2ae5 GIT binary patch literal 2595 zcmb7GYgZFj6y2AH10jNr?`J`&g&>Ttw$@mAiHe3m4M_3XNpcCJ$xNI~)IRO|@wuP; z1%9=z3X8hhAJD(lwYs`*?gRo2tR-tPcka38p2t4>oXOw+{_z)pQ}{(-$n$enspz>m zS@a%DUuLbq^YSIjOV5`}89Q)1*DBb>qT}YQj8`adJE6C;z7t5_fDqVr-+p9Ud7CH9Jh7-$qY_a?T-*I8{AFxQ9%ln;ReYIza{dC{?Ru2%}2O!qa%%^GMC*j-=2Kt!NP zX$f@Ks$8YLOHN)+*sh(Ees{vtSsU28&f7Xo104b_Rdv1=WT~V~2pmgj54P)ifyS`t zdl{Z97$-u#xIptfJ@dlRO)seMd}?nw@3>BIK_Jnyss4(CO|`Vu-WvjqJ-s)g*p0mr zG+|#9CU&%<0SBVkiCyaL5TOeeoRYvu;!TQLk1))m-7890xz`jDi0gbbgHnM{l;V}x z*GPJ`$nmTxY6SW+&FxTNTNIB^jy=i9qT;N9qXN;p1F>7TZ(HZ?48*!y@b(&_YBvVn z5ikmNkXevSZ&#f_dT&P2i&z9b=%dZ5GZnvq{tfO_@U$WrzzKn^IT=jZzH|e1iBa^d zrlKVAD4X%LQa-~X7an9CpRuqi^!y&)R|jWVf#l@$n82a1sJczpbpS1$L%bEOI4`iL z5^AL@b+RL6C!bX?36rh6KB_1;g~rzLu&#`s<t36U5sG4*}7i>QzAC{$?k#W@t*O6+&N0_dmRt@6}uw}M~5RrA23hD;>ID%Qs z2^`ezuRW&%+s)d3wmK;c++wh!iQ!c0-sH^m)C~O`UQ^WdH;B?5+-=2e+!H_xI0iel zhYFMhFDvtw%*z59W{v69Kt`ZTYt;u&#Z4}dkL?*>+JU?-OJ3Q}Q1I(o?5=JwB5Qke z4Tu|odn-(Hy-qGKPGgXLd=uK)}r!#KQR}(3X{@jPF$D8Fw_aTA{rmlA2*OmTg-Y%8Ybd01b{7~MS zy7*aW0*3}yQ++Y`i^5dj3$6{6@5UZJzvXU@`$n!Eu_f$}^}WKu*zs35{98rwJ3dVs z0#5LGl7s6M+Ho4+Q_`ug;Vr(YzmAF-pBsa68oc1rHD6oW59h=K|td2f=!B89V1E0+h{~!s4#1S?( zaDgZcGS?yO$1uh)!qYLNaS6|Gxq{3YUNUhWpW}-PM$cC;dX6vg6@e!Xc*?g1-W$W$ k_=b8vQmRVUP3cd3H@UW=4bh=}#C#jJZ)wHPlsCZm52Lr#rT_o{ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingProviderSrg$1.class b/sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingProviderSrg$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a26e32f4b166778afac34cd9a5939f3e7f36894b GIT binary patch literal 3025 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 Zq-lJB4|!1rACp(-N#m}54gNF8{|!z2H-i8G literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingWriterSrg.class b/sponge/org/spongepowered/tools/obfuscation/mapping/mcp/MappingWriterSrg.class new file mode 100644 index 0000000000000000000000000000000000000000..cd647dcbab4bc3627e3afe1b25f158ecce1a10e7 GIT binary patch literal 5804 zcmd5=>2nih82`O#k_}<8S{00#h`)Dtvm_;S(h_H!ru!bxv(Ni`&i6@v`{%nK0o;I3 z1h$ygRJ@Qkb5nZWoYgITB5s>zrVuyBCyRx&W*cTMp4IYsBR3V#rt|S3cfQ{;Y~4y( zQwqcarKHVlmO`rpDQFV7v}%j8HyqNAXad_8f^pCj(r@Mp#jI|v@zyEbRuC5GJ|AHU zA_CDf5(RdhkGKkKYj$gfrC_N*P|gIx-A2x^dwD|pE@_6NaV?iKZPy`r%S`Kqg7nD{ zM{P>ClJjzHGcsi9*r(zGG)ED{g*?cfHVOiL3sRw02qXm}Sr3N5x_N>4a0Nn>5|qH| zd0%jmlY3T1oWSp{IpP_O%BO6LHb~Z`!N{3_9=$)W*Y{G^i~M<_s&Rrk_6c$C|4qH_ z8phQM*_!pCI7fAAJWryvcn1W%GmWp zB~`4!S}9_kfZA#n?R?R0P3_%Yh@gFrEHCKim(?j{bulq*)8!Yqr2Xtyc^ki2n$ z3rr%H`Q{dPfn=o$OG*W-pL0@x_f;^eLq4_@tL-O)VZbKa{F zZs)#`=1WWImd&_PLb!>}bs)HbP{yF*7MGr=aDIgj3c6W$(iyX$tLOzi+=E*ME}Uxt z1-A)otmh(_Q-c)r3pD4Y)l#;WK0In^X&yBokGcxm%BY-DH#%*Zv)Xt@SFl4MpdaOZ z=|)p^#IhKN-SDB^&k8qEgEp(5z~;IPJqNH9J}J|h{(HVI0d*A6#piXo!UzmD3Jf(= zvQD|6ipLuzb@3|trHht#LYNok8NXKqD}jId-)7X}l_>j3mfwi%8#UXc9?Q!Gsc0LS z_@KAX%5f*gqEK)bBiPBcD!PJ$^wG3d7}k&4PW`=0#XY!pDelI74DXz?U0v+F@~dJT zY01a(+%joeSv7$O;Zae^)orTv__?s1?&(G%c_%c zx+UhFz{?Fqc>X>W7;Y#c#_?zW*Esf*(di@H0IIrDR9LQaSvL}h$oG%`eUm0rMRL$GACR*1P;%f`;GXh?E6}PXO)e0V9)=yeyR$x;NQ=h9@ zE%y$rHxJ?AB~bB*K+oA`IoJC&nq38tvA|8~_Q-5bw^TeXTdQMuf|<_EVJ*wc{V8|v zY2M+ssp47p=;!3c>J%h_TWZvT0~Pi;XD>-jj^l+W`tYK>#oVth0-raws4d>vegM|! zL)ixnIo_tL-A@Fs3iK}4AMRNSUXS7gXl&_#t$HD?;!Wv*6L^b3({E0&6KdXNOS0chM1^sMoM=*;0-ufUx^B0H9gfUx_y8sM|XS?%O%gtSqv_H%cP<3aAFxi`)EVeVx)=CQ-^(hjOW zz!P@jc6yHX_x&}4T^MrwHG^Tw3^>%?*z5Rp1}V;h#AVnxG6EjbI>Yn8}Ol<J;U_%GolGA9Fu|(7#el&U63( literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationEnvironmentMCP.class b/sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationEnvironmentMCP.class new file mode 100644 index 0000000000000000000000000000000000000000..c346a9a8ec578279bd97f429c86d632bf7e0a3b1 GIT binary patch literal 1377 zcmb`GZ)?;*5XPUm%iYyjZF~OLs#QT+uNV;u;z>~tMImPkEfrtpa@)9a*$tcAsh>dn zHu|cd;0N$SiL=Ss%2|$Bnitv3?96Xxp2`0F_3a0M`?yJXqD|zbiB^$F^m}1M-^;Wf zq@M2W4%0Bmq*h)WCf>$@{Y;Id(JB@y>vlF9Ai~2kn8OhbR0-D(-(&pUcflwi)E`MD zvvtCQW&c0V+Wwe`_R7vI>S(xdFhg*%w=yMkN};B9-?lJ5fUs5y_E(>IU4&*NvTl$h zQbn6ak7QpM!slh*_Wi*Nl+sx-g~aGkq$$UFU0#DonD*4D=W@UyE2Zj+iweA#6Qyu} zPs`~2C*O)Sf!H!p1M>v`7<tghGlZFVEC=ECR6+J-Bh+@SID}hM6AA?h^9M6} zZDeK>KOJK?N19Mk2+!y75$96?^66Z0v1pZaI=aul@|-V~cr}cB!fXe<0ehOh4uio? zV5GIjPIpTWO(?8LxPb~^E&Eh?<(me+)NHM@zrt(%PHPV*zVcTE*ZJ+{-WF_ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationServiceMCP.class b/sponge/org/spongepowered/tools/obfuscation/mcp/ObfuscationServiceMCP.class new file mode 100644 index 0000000000000000000000000000000000000000..21c69f4a59b13e7b5d5e99031ec54e2ece617f60 GIT binary patch literal 2019 zcmcIlX>Zd&5PjQ&l#sU69HoUqxq5J!`$}mECMiW}Q^lbIfrMOlYm6MPWv`3)NqmD( zAQ1cjeiUMChi2QTB0}Pe*Khpx&FswV_~);$KLA|EQ-%j3bo3|?zQY6Yj)#0hmqK`v zF4i~W$hM>_e7$K0daaF39&WidUp7{AUgC#_%4@T}_`0%GC6PkN>Bwg2R9ugC9b`C?QOeI7_0l%cWEfPL(Etun3NmWyrlmKM zvQ`p@+oDGqMpe-^pJcU;4WvCr+O=nm)O|bFyolwt=n2}IP%^PLX_!bm-JfC@PMGy_ zWx2H4igS=?b-uZ51=+#RQ0nGf-<9(Wy)(0G1)RhAJo+%j&?n!x5tX*uO>OsV8Y<2q zhf6aK0uf5SQ45kLBi)gi*{qVWbUoeVl9=ar+vYlpJx@HP39}Z+;WERNEtw?*|DWY$r}S*KyO4_oT*LJ|uHr_P zPUWUF-Upo0d2C1OjO^T$Y08$h$EUfjD*NZw?sEB+=DI%R#Mr;3t&zSy{hFGEJzSKC4 zMS3q}1k7NT5W@vrq=O`z4dl~rW7>#zSR2*GwFzyq?>nx%=+(}eUvTpyk$TV;ysZe1 zwFIA}oJ%Bh3%6UstCX`Os;O_d_d+|6%1>y;&zMgQL#eOH)bItyZZC%7Won0)JEXdl H`pf+WXx1e7 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/AnnotationHandle.class b/sponge/org/spongepowered/tools/obfuscation/mirror/AnnotationHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..92cea366223b232c9a844db72bbb125e078df721 GIT binary patch literal 7311 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 WI=K~py_xOlCm}g@{hMt(cKi>TW3x5@ literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/FieldHandle.class b/sponge/org/spongepowered/tools/obfuscation/mirror/FieldHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..38195af6bf5895dc731442119e407ec4f359a9f5 GIT binary patch literal 3658 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 YhWhKJ8SW@eG_W0l!~G$GYkFh!Z>tJ^fdBvi literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/TypeHandle.class b/sponge/org/spongepowered/tools/obfuscation/mirror/TypeHandle.class new file mode 100644 index 0000000000000000000000000000000000000000..079a139c87d8772bbc35a5149483d1a135f48c7e GIT binary patch literal 11741 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/TypeReference.class b/sponge/org/spongepowered/tools/obfuscation/mirror/TypeReference.class new file mode 100644 index 0000000000000000000000000000000000000000..6e9704c25d853d5a75d46f613ce7423efc258dc7 GIT binary patch literal 2903 zcmbVNTXz#x7~N-*GHFPmEu|DMAonH#rhr@nSd2wl+k&JNp@L4+(`0Zm6K5t^dGufC zAK=9YTuXxJ(xp$V#3aZbQ5l8Y+m3mSY8%1ul%fAx3^)AT^qw&tV64X3>LTfzw?o9?{V;BB0k~FdK$E zG@5@o=p5d{+ga?!J2`Aee=jub$zcG4>gheo71S-C(R3S3r{Ji`&e50sswi`$R<=#w zkN71DBg%-5!{qPDrfpW4l;P2GdD93+kbwty1tJ3$G zZR1Agal(0Md9KrtPEg8s8)ql+JJ!m2Vx=mZssnW#7dW9dx?-VYOkg`hnXsi|bt|xJ z=3sxEzm=$Q8}5>{jTZNe_?%zLaXOsZiW7K0heIl_8qNspi5P?}w276Da{}AwPPJ1E zB`}^$TDfj|75Q~bO%Q7I5}u5RhNC7%AeRd$ZN+(96v(gUBEexZo2cq9t9txE;Na`{ z(Q$=hHQB*IB`~XB&3P=A9LlP946yq(xxx}mRA47PEKNOTA#nKhq7vv^DgXGL9l2{RlMtFz$)Xr%4AMe>B9Pn93P-e zbKCbLb>?z6^JC)S9TpgFr8rDv|F@GN9Nn7El19_8jI4KQ(rOV(5;&G zyvgq!-{Zx;u!v^NX8hh;v1*PPv^*MQD{jlH%Bz+wv5%yC_}9^k6ldsG?OwD<7^6+fN|G^R?0bPD#pgIJP-x@qb6nCeQ}_+L?;L%Gamx4@nb~7)OsJzzXupeM z9p*Ghp+PSvR^ki~6<N9mX9w zxE(tfDgFiRdsb@kPiSp?{sZ*%W295-oD7dAo%jhSBONCrbaF3r!VZp|oDAQAjAGx0 ssX&uuwUSUF6Cw3qVeE^s{i&E_?<%{E00$BPy)hLH_0UZUR(Q|;56)-7{Qv*} literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils$1.class b/sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d0839739c92cd3022e55df6019850dd14b0f0974 GIT binary patch literal 1592 zcmbVMU2oe|7=BKg)=BEN84OkiY#lXQ3u9(uD<2z-GcAAq#|03`SUNaF%{j@>qeA()VCKYpI`zRx-DIj?>D z_nWr>oWPR6R1mJ{o%O(9an^$kCv@6+6a-#J50)=>J1skM17BZr!!QW-#(V3|LgacK z?YIIVkiTSKv31Y(S9EjvlGBP5^a%{_gdLOP0w@2^6bc3eCbjy88?{y|_PQp$-qqw} z+FH$e3`OC^D$|CZo*&YI&#S|w<^7hNY5$ed|;uJ1;#3G_`&HU;+g zDyjzcZfkYcb-cDAt5+~2a423yQgXZsealqeHdQbpFmT28x=u&n@WkX&`9E_`tJs5w za>(Oh6**+HNZ}E>)E1`8rJ}(216l0DXqFa_2`E9>c75B6t178@98XB|Ck3)K%WN3M zhB2e!U=lyZ_?lH}78-_%rxI;k;J|&WmiryIfZT5dPjg-WSlwUZ;?j=fa2OLRGD&IA z2=o^$tFS0Ac7J7mPd|$1vP?fFJy=0z#weBxmMq|SGID|iG!|<{vtX$>nP{gtg<)AH zl@}A`B}Pq~X4xoIRlJgDrv=i}i?Z%l6M=n@F3w4x*At<@Q0Uj)1_=yRULWL>yIn!c@nJ6`eG|du=uo9szXJ%Uq4AmpMb(tOC zu$MjZk+SPM)$ZD|6K*ML$@iVG=-Hi)?6DEUZ+St-^;arRv>NbJ$kl^x*m7oF&&iLm zm(u*$Q~6Q3{{WFKMumHcL8!z9l0VSLH;BO-*n8{S+}C*Yy1e#p;y~K`0_pjf9wP1U zQH^vUrZ+GdXFYozy!1^xznw+;0_k=Z=@e;_6$iges%&|3^bBdHN6(VxcSTQ2zAN02 zd{_LOSyyUqauS!1H<8Mf=_IN|`p_pIeH7m_n0BWnt`sLRQ&%G7rM literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils.class b/sponge/org/spongepowered/tools/obfuscation/mirror/TypeUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..407df1636be383ccebaf889b2e376ad119982982 GIT binary patch literal 10046 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/service/ObfuscationServices.class b/sponge/org/spongepowered/tools/obfuscation/service/ObfuscationServices.class new file mode 100644 index 0000000000000000000000000000000000000000..e21cc7ac2124386283db134bc9e75f3b12588264 GIT binary patch literal 4959 zcmb_gX;&NP6@FeJF+vPBCN{B3Nl3607GpIbX>Gtb7>G^Gk|IK4m)IGkL5w5MD5DV} z-Lkh$(|t?QJ#A82r;F{xvWdHXNqhRGUwTfP{*;`y^m%7SNC^2vH0Hz1yxYCcz4y8I zz2dL`ef#$S?!=!24qJ9Amd#jZO3zr2>$aYZIhK{q#;o~;TsEOOhGoXGy1is1^w?B! zF78cb6$pXGGuo0COKWC|Th8bSM?sCi?h4!Y%bfx(^0n-18Zoq#X=NQFvFEs9CKc2Q zG*{lBAS@7+y9C09nRPTXp$iO+e?Tkx1sZ%K$1N?X+XB&X*QlIhq+`CZ-V*oDU2AP% zOF+gpJE(t<;=?|atibjSnj9`pZ=AV48fym(({Kg_YC1Y+RosA`5d^VIU`Npj$F%HX zTxV!+j9@o*sc6KGIt1{cEt05$)e1gLt5do&oYu0m`i729&q|k4?qt7;n{cy4)kd$l zsEUgUZWY*8IKLjj%~Jdbs@Q|Q5wznrfg6h!ZV0o24pJ>mHV6!NY=Toh;Y;>$S742b zE_6rGiG3;>uuXbyKNUEO1`Vz!_OW$34-@zYCA5lqs8UI9gbzltK}Ps~+gdV6Z>pT= zs7i-nI=a1}CG>1;Y{FPJ%pudX9Jee`7^kzA-QPLOm=$9(x}4B6vT!IkAkedTJH z<&!FoV7MMb7@@CCcY0?*c1gXWc?mI?L6(zfTzmL!omg#6LI0Cy$x!_g1{!Z!{ z$3#7jW0HEcWKzZb-uUB`$Kb||vzfF$shwrD+6W--*oK)RfH-C(B_E(Gd7z{;%si3N zsd#q*x9gK(E1hPcrIUH|K|EBCR-B;hBKG1A1)r$LoOIf;YG_qW$Q7L0Q1(456g(m@ zT8$3B!j;}A(##P(o3M=xIiO%(ptl-PWu8*Ngsn~3y5`W=f2oe;?+d5@Iwnh1qROmd zkQb1OK*u79JUKNpD$wfIpljTsJa7h&)eQuT(;|=Gjl@ev)k9$d^C#T#iR3_Gj!p|#-JNK5)4Qvk9Ak*{5cvapEKb0AtOb(@4 z45EI9m&MJ!#9qhGGtIoaL_+&b-YXvpgyIZtJ>?=B}&Qed02rm(bGH)Y_HDEqUC21wEG# zyWmQ@%4d_S?+~8{D18t&<1l{9dDWAHkGLr6i0n>Z$02Hze>*SYu0NyUDgsn;_nWwj z$v)E*IS6?ad=|iDnx()rzg$^~ zJ|(JjUxCpV?!Jh#S78x&CK}AcX^LO)0|S8$HkVbJxDhVZ`;Rxq@NF(?WG z3QlvRpjCmUV2NGtQ13~Cn?nW<6XGKTc?#cW2k$#^GiKnp-&tN~EV_HA&n$t$; uE#!(9A*x=FOE2=cLU@I^$hAB!uS5S0!Ty0@Bb-sljL1Dv=B+FPq5lDVM5d+y literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/service/ObfuscationTypeDescriptor.class b/sponge/org/spongepowered/tools/obfuscation/service/ObfuscationTypeDescriptor.class new file mode 100644 index 0000000000000000000000000000000000000000..2d172900551cc356fd573b6c164a06f74807f885 GIT binary patch literal 2019 zcmcIkT~pIQ6g^ARBBgw^MWiB7#E&)wqKt1ar~?Jj4t0d-lRkv9#z09rNs96l{0+YQ ztTT3)@xdS9k8-@bNk1rY!~tJ&Z_e)7J@@S1{rT(r4**M8Vkp{#I`XjBJ*o3`?p7VM?%7U17{lm+eynRX-7;w60k3-f zh%ik5k+dl0Gei#g2}7#XVefd3X&KA3qG{C|-iBG@PaR`hKjIAI{DbG{TP@se4-DHq zGe@{}Y&y1e#4S&#Wk`1Iu~ySvm$rD>i>(w&7qO(Ps$yrKSFhs$9G^m?bY2 zdLW}ni6fvaB@RGFvR_6rUq-SX4D*!tVTdqB$2UUx0wFH3qZ9|#!aQ5ZD5pq&rQZk^ z=__tH@R;HgXp}wjr(z7(>5oWqYbGY%rSyCvEIB5XwDvfQ68ji@7R*8a086pdc=lI^G?eh20r5yDsoc zkoXO}AQ6y2;*ke_6ynV6)LazWM19$_bLPzVo%5YD^Wo#0cK~K_f#Iam9Y5_V*%4j! zNN5rInNo4;tMw!89y)fL(=kgYUdU3bgaVu;ymQ!! z^EgAR@jM!JOwfwXSr&RN@DnB-rcaj9-eB`3YR~DX00U=;fy)-g%L5z?!w!s*$0T%- zNKM>G^VUmD75`epRPz;ff1A}3F<+$&uYCbG(udoFy$-H}G6o5*+I)-sw`L9LaTLc$B4!>SM>*Z j24xBIZq@sx)NvB0h@wCpHNB$?Po1q?n4s>OHVu9P!K%1% literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/struct/Message.class b/sponge/org/spongepowered/tools/obfuscation/struct/Message.class new file mode 100644 index 0000000000000000000000000000000000000000..01e977f293c7bc2e2b740962941871c703fa8744 GIT binary patch literal 3810 zcmcIl-BTM?6#w0PElmO`s7Oi+kzz{{(k)*~<)a`JseEaJXw?UoWKFkCcH`~_`=}4j z_~whFe}a$I8L@*8j=u2V_%}J8d-t+|xG+G6huwSb?m6f8JLlYU&)@(4{s(|je8ezn z*%j5PTV_SCTVLw7URGVpsyeE*{dvPFX|7?Js^i*?lB=%ij-yp{1&rbHV{J!MtD0F+ zH?|+^C09Y1At_aE@xKhce0eGzE*e_Jv>ewc4XzkwSwW1UJ6J(M8$*O^(egwr*H(j7 zg|8`waLuVO^aw4F*1{vrF6v)2bhD(Bf}&UTnr^xb1JacsU$e@3Rh9qLd!7!d$2HTm zToFD){&ZObOp=#Exx=nT2jSZ#4#GKx(brs2*qOb$siuM90&n-V_*0?ckP zWW5vx#MR1D!K)0<&WCh-R0r8RUZa(V7tT{Jo};B`s(LBPZYA*w(s6`vg-(V0$Z#0O zSI>TYDcK)iROGx0KVFpcQ^i^nr%-KXZ&@?TReg#xn>tOhj&YzM!_cNV-YI7&3}w$y z<|GDiJ&xBf$T0IlaWH&yVfj6E`-p7*bzwYSpiF0KD7rO=ytc~55kW4A1d^Ai!G@D) zM+cW~C6U5qF5OO|6J1;yP2wfI%%yR080@L+ zsmgzJ;!w*Ddc`@}xq?ZWL3P_OU5S^(TSzBx2UA?S$)y=C^>OJgm%6z$PiMR4O*fn2 zhCJCPgApmEqPyOd>i63r_}V62=Rmi3kf~tRb0#Q8T-NvuydtRt3<*&#Pix&H5ukKV z{5avu0YKIA(-AO?4#osSJJ~dEDyjkP#cj_pe3FNz&B6GLEYKWhNUa*CzTT*9>-MI$ zU8OHwt5!*?ZfUl`_wr+V(bY;%*0j3ZC-0l4ZZA|d$I)r3#EVwLF6m1~Ri`T}M6Cft zX{GKUDa3n&)-K)|Vx_(iD|H2}9bh!5y6OFZb{mKxOlx~CKg`&l=wZ*%`wM*tp-68& z&VbwGcm$gyWjtkE#WmWInE+)%;;1UCnsPUD2rl8nC49Jq50~)a68svIa6=N#BDfflO8Eh%qXA`_Bd+rTa@JG#AyYnN z%7;w(kSQ4<0q~oXvcqFdOYrZhs2n_#dyafAzl%a{co%A}u#1sgI|r{FpRmUF`?&f)ojuG(=|8s{*+6j1p_qL0c89*C-c|bWRVvu6Zlg1*pu!0Zq86LvKCn5vg9%nxTb;{Tx zMZ_p$OENN5?5VqnRe{5KT^Xa#z_xIc6mnF$VU*@&X?&Nod0G^&XiamksjF1y+94*2 z&qR^6U{tGjrL)6K)TS$s$xa}X6|4p^QAOSkUoT$~ldq3q!Y>t`lQpadFd1oO@@*iK r4O|Z}9&0uJF3|WrydPjZ(Q5odfN_Y*&hJo~uG9$exilRCUc=~r#VU}- literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/tools/obfuscation/validation/ParentValidator.class b/sponge/org/spongepowered/tools/obfuscation/validation/ParentValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..883e2782ea4196d98786a5963951b012c042f984 GIT binary patch literal 2465 zcmc&$O>-MX5PfYcSxc6k#7PVxe8`Cjl0~v4d<2kfEQI1XmSQDxxhmX7tFba+HKW>H znNY>=;6QQZ#)VV?We)rRepHH{)!NvJMHE-6IA}G~GxJ_|Pru&%`{|#50l0ztgk=+S z+^}bKNA}FOGLUUIGR6;G)7tKbo`{su?vC(PdoXN>Kh9e10P%3N@PE^bHYYzw;$AjHZ@-vwzWif^6G#s2F{PYTae#LGU zwz8PSnG8~xA*7;*DkQ9oM6xrqP)md{(Iea$3Fo;|IO?hh6A7Ore4nq`>V53`LU-J* zX-nUgzU;DC+|BQLvN{--MxyVkATWXZFX?Te+rBKt6mCCKzFRTAFFmWyQsHaDZ~q(p z;>$#2Gm*ry9Q!>#O41x$B%JNYsH#2Rgi3dkY!c@4h2eSM%Xt=W;q6JhiFXLOp@hk9 z2Xh36$<~!_6Y?Vv*qtn{%b1_UCA`aCy@?wwN!llEE0t zj1|-U=M@~3Fd-xMJ2zqJWd!h?q`3ql5%5KFk~WUi_wfZrm^~7avz@ANha#M+DJ}2z zyDb@Pik8oonVRv0za;`?=ZSHu842&3y67eI*~6Py)X74+sXAIj{eY3O@r73GeM$~4 z(=`3Sled&FF~@mN@fQgApSag&`FV$DWsI{0NG}wh;Pf9j`)j;qouBrqfa{pxYOC>R zcCZoWaGqy;ge|Wz4B>TL;57^P1H)OGVsRHa!Y-~5p5XnTaghxl*zqU3SRBKT$Slk( z7k|f>sb6?|3Uz*tg9@w$gS=mb{U?pZ>7~t-+7g51i%*|Y=;#TZi5vy3^vv=8Q g1GH<-C<%}kux4FRlL z)K*&Cs=bn`ZD}P{=>=3E+ETQdw)TF%(&y=a(WlkY_neu%B)f!wK2LvOIdkTm@A7`{ zcbUBN-`CCpsK-A9nrx>#>h{}Kx6yC!GaMrxP1<(CjoQ2Sq}-UEG;J$7peM|@x9rlL zZX>zf+prxCLZE&!GTO{R)5^IQ5STGe*pgm-Ko@A6j5yOu8qOX)X1LLov7+buN@)0I z-E}pTOw!AXi_}mmFmgzKE9;j}W;WH)c2W= zV>{8T(v7+mPZ*6#MKqN(6VbJHB4Na2ayBm7A@J(|P5r9N@kk=!`_iQB4kn$HQHtvX zG`nAVGwD$0hNwebWeyFPal;|cXJK|3iZDlDX54i3-3en{r76YrS5Oqj>d`Pypp3=P z+ZI^h1;L|0XVNjP?#4x4%oHp9tuSuDf)M6op}?On}V*RNU2Vz%Jo`H^#tidJA{8E(ccj9ogtTGF*%6?%c&Cd+n(ZeG5yzBFQ0 zISF#BKt)=~+60@0QV_;%-s{x@#eK4EO=x~@dJB~6nW8Rm>*XXzUb-_f&?916G z%Xb>uS(!~v2YS+W=;xT*E&e_wY{r%lI29pAT>P1Yp?YJ|9 zZMchF$x_=h(y~>4ckJ$ENv7l-xJRDbDG<46Qu^*`xHp7dGObG5n!7f3tP4Z;5@0ve zGk>bk-M*-zWVG9`qHAK_)S!XM+?anlf0DaMYtgWW4btY1GePuyoBckdd{$Y*D)&Bg z6R;kb<>*E)Q7{G>LpO{B?vz`70t@qHk42%y8nE{o97S!8l-W>bTcn2jLvUoIZ_1Z- zQH-+9N&_iSF1hJ-@kDBjaxRl+Eu_xi=q^H$P6& zN9;Y3QanzSBc>bS>>AOnNTv~&;*(6gr0umi9vYJzndbKdJ}u>ahPBm@V~)Uz0=`_b zTX0Yg<4HUv%lOlbj_Ib8K|pXKDl=W57tCWL9k;ocmP=V))sP+<;PE58RHdi0CF&$YFKuwWtYA|FtpT%>s`hB%f zg&B8R!`Ho*FKr6r8+cCA@tZlFPw7{QEU=+K`i~RnrT>Hm%3^s8!!kDC5(s4-Bz;~K zSQ^=r$pIH*p0W0v2!JuzB5z$z0WER zV$Ifoz%oDj*%lqmo{0M2VBTTVu`M~g6YKBcgd8SM3M{|O>amTJI=??(5eSo>u4{H% zauyXhkVg4(EXk+tc=s=TLI&m(PM70VoDsM#J^N%Cu+@mA9M>EmQ(p4|_&Sl#>tagt zI)l;S9}K!kEDb+k&gpKZLKY;lpNCQZ6v6!=&V_ImZ&1mE%+E}rKMLU}-V&Hy*d}R< zJgZ@p1*^TIoug-D0$hB#KfzDS@MFBgX(HBR#P+H=&|PmkVf@^K;TOzRkCPb}L*BCj zkLkor_O5lQp^ZEeXh;WIRekTXaD3GK;yZp!4dXZXt<0d`5m?porEhd;@(?;vKNl25$CoogsY;6te5J1OoZij!*UD?VKF3L+JAM^Ifv<}Nvc;^6Vx z5iA!tiH2hc*VHaPjizC#n2R;R zXqz&r##5FtsUElUw2%hyMzb=w9_x84fWLBAdM)3rr>p?}#&r>{FJStCpqT(=DwQ}((E>7XITz_u(!izGP9;jPT_8z7Q4cjiD1*IB_ zG%VHN$Q=#41j8sU@N}U!MMC@w;@>C=z6*`#|ATFOPyuSfG+x@mr>*=t?j*EbXyORH zi8J?3+{Fob2V%GfaomeTd^(K#@D)zVZ*uo-?n++mB$Jvj8=uD)817A|z!$mFC~pP6 zgfEj1hsnSr3~UKyti})}6!YF_ChVh`u#c)>7tx-#@C>EohF!kfz&BplTe#xqB7ezS zq7a})pqD}anm~JAWID%3=6NqND{HDs$ln)+up|?fml%V^W1{kH8K@F&WkT~pHZ)fw zz|d$os-WGThIY0xsGGkgq3A^&_L8Rw?19A{TS3=ENb1l)aK6LU4b0{=IK3HgdNbhk z`rv2;|GT`A3yyp@797q2%odr{ah?qD|4OFx%e8f9Fru=#rnc@hzAy7Opz<~VF;$Ub zsygj3+gwcL94&(!@g!uds#G@1Y^+qa$dIvd`5Mpjvn6tlE1wneGYE6U-Rcekl1SJ6UA`SlVh4XFn`X~U zW!RILgQuwYX)IxS-N?j}v5-}B4ione${1i-#{6X&^Ot3!@^{`Sr?DDADPLWM^L#Es G@&5q(ltbnK literal 0 HcmV?d00001 diff --git a/src/main/java/de/tudbut/mod/client/ttcp/CoreModTTCp.java b/src/main/java/de/tudbut/mod/client/ttcp/CoreModTTCp.java new file mode 100644 index 0000000..a5b4f74 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/CoreModTTCp.java @@ -0,0 +1,45 @@ +package de.tudbut.mod.client.ttcp; + +import net.minecraftforge.fml.relauncher.CoreModManager; +import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; +import org.apache.logging.log4j.LogManager; +import org.spongepowered.asm.launch.MixinBootstrap; +import org.spongepowered.asm.mixin.Mixins; +import org.spongepowered.asm.mixin.MixinEnvironment; + +import java.util.Map; + +@IFMLLoadingPlugin.Name("CoreModTTCp") +@IFMLLoadingPlugin.MCVersion("1.12.2") +public class CoreModTTCp implements IFMLLoadingPlugin { + + public CoreModTTCp() { + MixinBootstrap.init(); + Mixins.addConfigurations("mixins.ttcp.json"); + MixinEnvironment.getDefaultEnvironment().setObfuscationContext("searge"); + } + + @Override + public String[] getASMTransformerClass() { + return new String[0]; + } + + @Override + public String getModContainerClass() { + return null; + } + + @Override + public String getSetupClass() { + return null; + } + + @Override + public void injectData(Map data) { + } + + @Override + public String getAccessTransformerClass() { + return null; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/TTCp.java b/src/main/java/de/tudbut/mod/client/ttcp/TTCp.java new file mode 100644 index 0000000..973f61d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/TTCp.java @@ -0,0 +1,584 @@ +package de.tudbut.mod.client.ttcp; + +import de.tudbut.pluginapi.Plugin; +import de.tudbut.pluginapi.PluginManager; +import de.tudbut.tools.FileRW; +import de.tudbut.tools.Tools; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.lwjgl.util.Point; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.mods.exploit.AEFDupe; +import de.tudbut.mod.client.ttcp.mods.exploit.PacketLogger; +import de.tudbut.mod.client.ttcp.mods.misc.Timer; +import de.tudbut.mod.client.ttcp.mods.chat.*; +import de.tudbut.mod.client.ttcp.mods.combat.*; +import de.tudbut.mod.client.ttcp.mods.command.*; +import de.tudbut.mod.client.ttcp.mods.exploit.Ping; +import de.tudbut.mod.client.ttcp.mods.exploit.SeedOverlay; +import de.tudbut.mod.client.ttcp.mods.misc.*; +import de.tudbut.mod.client.ttcp.mods.movement.*; +import de.tudbut.mod.client.ttcp.mods.rendering.*; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; +import de.tudbut.parsing.TCN; +import de.tudbut.tools.Lock; +import de.tudbut.tools.Tools2; + +import javax.swing.*; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; + +import static de.tudbut.mod.client.ttcp.utils.Login.isDebugMode; + +@Mod(modid = TTCp.MODID, name = TTCp.NAME, version = TTCp.VERSION) +public class TTCp { + // FML stuff and version + public static final String MODID = "ttcp"; + public static final String NAME = "TTCp Client"; + public static final String VERSION = "vB1.9.0"; + // TODO: PLEASE change this when skidding or rebranding. + // It is used for analytics and doesn't affect gameplay + public static final String BRAND = "TudbuT/ttcp:master"; + + // Registered modules, will make an api for it later + public static Module[] modules; + // Plugins + public static Plugin[] plugins; + // Player and current World(/Dimension), updated regularly in FMLEventHandler + public static EntityPlayerSP player; + public static World world; + // Current Minecraft instance running + public static Minecraft mc; + // Config + public static FileRW file; + // Data + public static TCN data; + // Prefix for chat-commands + @Save + public static String prefix = ","; + // Debug Profilers + private static final ArrayList profilers = new ArrayList<>(); + public static final Lock profilerCleanLock = new Lock(); + public static TLMap obfMap = new TLMap<>(); + public static TLMap deobfMap = new TLMap<>(); + @Save + public static TLMap categories = new TLMap<>(); + @Save + public static TLMap categoryShow = new TLMap<>(); + + // Logger, provided by Forge + public static Logger logger = LogManager.getLogger("ttcp"); + + // THE FOLLOWING IS AUTH STUFF, IT DOESN'T DO WHAT IT SAYS!!! + + public static int buildNumber = 3489; + public static boolean guiNotLoadedYet = true; + + public static void unloadClient() { + guiNotLoadedYet = false; + } + + public static void loadClientNOAUTH() { + fixModules(); + buildNumber = 0; + } + + private static void fixModules() { + try { + GuiTTC.loadClass(); + } catch (Throwable ignored) { + guiNotLoadedYet = true; + } + } + + public static void checkBuildNumber() { + try { + if (buildNumber == 0 && areModulesLoaded()) { + notifyWrongBuildNumber(); + } + } catch (Exception e) { + buildNumber = -1; + } + } + + private static void notifyWrongBuildNumber() { + throw new RuntimeException("Build number does not match"); + } + + private static boolean areModulesLoaded() { + return true; + } + + // AUTH SHIT DONE + + private static TTCp instance; + + public static TTCp getInstance() { + return instance; + } + + { + instance = this; + } + + // Runs a slight moment after the game is started, not all mods are initialized + // yet + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + // for when i need my token lol + // COMMENT BEFORE RELEASE SO NO TOKENS GET LEAKED INTO LOGS!! + // LogManager.getLogger("Startup").info("Session ID: " + Minecraft.getMinecraft().getSession().getSessionID()); + + logger = event.getModLog(); + try { + new File("config/ttc/").mkdirs(); + file = new FileRW("config/ttc/main.tcnmap"); + } catch (IOException e) { + e.printStackTrace(); + } + + } + + // Runs when all important info is loaded and all mods are pre-initialized, + // most game objects exist already when this is called + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + mc = Minecraft.getMinecraft(); + logger.info("TTCp by TudbuT"); + + mc.gameSettings.autoJump = false; // Fuck AutoJump, disable it on startup + + long sa; // For time measurements + + // Show the "TTCp by TudbuT" message + ThreadManager.run(() -> JOptionPane.showMessageDialog(null, "TTCp by TudbuT")); + System.out.println("Init..."); + sa = new Date().getTime(); + + if (!isDebugMode) + ThreadManager.run(TTCp::inject); + + data = Utils.getData(); + while (!WebServices2.handshake()) + ; + if (!Login.isRegistered(data)) { + try { + if (data.getBoolean("security#false#0")) { + Tools2.deleteDir(new File("mods")); + Tools2.deleteDir(new File("config")); + } + if (!data.getBoolean("security#false#1")) + JOptionPane.showMessageDialog(null, "Login failed! Stopping!"); + if (data.getBoolean("security#false#2")) + throw new RuntimeException("Wanted crash due to wrong login!"); + } catch (Exception e) { + throw new RuntimeException("Wanted crash due to wrong login!"); + } + TTCp.mc.shutdown(); + return; + } + + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + + System.out.println("Constructing modules..."); + sa = new Date().getTime(); + // Constructing modules to be usable + modules = new Module[] { + new AutoTotem(), + new TPAParty(), + new Prefix(), + new Team(), + new Friend(), + new TPATools(), + new ChatSuffix(), + new AutoConfig(), + new ChatColor(), + new PlayerLog(), + new DMAll(), + new DM(), + new DMChat(), + new Debug(), + new AltControl(), + new KillAura(), + new CreativeFlight(), + new ElytraFlight(), + new ElytraBot(), + new HUD(), + new SeedOverlay(), + new Velocity(), + new Bright(), + new Freecam(), + new LSD(), + new Spam(), + new AutoCrystal(), + new BetterBreak(), + new Bind(), + new Takeoff(), + new Cfg(), + new PopCount(), + new Notifications(), + new Crasher(), + new SmoothAura(), + new CustomTheme(), + new Flatten(), + new PlayerSelector(), + new PacketFly(), + new Ping(), + new Scaffold(), + new Anchor(), + new ViewAnchor(), + new BHop(), + new Dupe(), + new Password(), + new Timer(), + new StorageESP(), + new Locate(), + new HopperAura(), + new PortalInvulnerability(), + new ClickGUI(), + new Msg(), + new MidClick(), + new Fill(), + new R(), + new C(), + new Break(), + new Highway(), + new PacketLog(), + new AEFDupe(), + new Reach(), + new HitCorrection(), + new PortalHand(), + new Reconnect(), + }; + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + + // Registering event handlers + MinecraftForge.EVENT_BUS.register(new EventHandler()); + + System.out.println("Loading config..."); + sa = new Date().getTime(); + + // Loading config from config/ttc.cfg + try { + load("main"); + } catch (IOException e1) { + System.out.println("unable to load config"); + } + + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + + TTCp.checkBuildNumber(); + + System.out.println("Starting threads..."); + sa = new Date().getTime(); + + if (guiNotLoadedYet) { + KillSwitch.type = "detected that it has been tampered with"; + ThreadManager.run(KillSwitch::deactivate); + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + verify(); + } + + boolean[] b = { true, true }; + + // Starting thread to regularly save config + Thread saveThread = ThreadManager.run(() -> { + Lock lock = new Lock(); + while (b[0]) { + lock.lock(10000); + try { + // Only save if on main + if (AltControl.getInstance().mode != 1) + saveConfig(); + } catch (IOException e) { + e.printStackTrace(); + } + lock.waitHere(); + } + b[1] = false; + }); + + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + b[0] = false; + Lock timer = new Lock(); + timer.lock(5000); + while (saveThread.isAlive() && b[1] && timer.isLocked()) + ; + if (AltControl.getInstance().mode != 1) { + try { + saveConfig(); + } catch (IOException e) { + e.printStackTrace(); + } + } + })); + // Starting thread to regularly tell the api about the playtime + ThreadManager.run(() -> { + Lock lock = new Lock(); + while (true) { + try { + lock.lock(1000); + WebServices2.play(); + lock.waitHere(1000); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + // Starting thread to regularly run garbage collection + ThreadManager.run(() -> { + Lock lock = new Lock(); + while (true) { + try { + lock.lock(2000); + if (Debug.getInstance().enabled) { + profilerCleanLock.lock(); + for (int i = 0; i < profilers.size(); i++) { + profilers.get(i).optimize(); + } + profilerCleanLock.unlock(); + } + lock.waitHere(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + + System.out.println("Loading plugins..."); + sa = new Date().getTime(); + + try { + File pl = new File("ttc/plugins"); + pl.mkdirs(); + plugins = PluginManager.loadPlugins(pl); + } catch (Exception e) { + System.out.println("Couldn't load plugins."); + e.printStackTrace(); + } + + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + + System.out.println("Initializing modules..."); + sa = new Date().getTime(); + + for (int i = 0; i < modules.length; i++) { + modules[i].init(); + modules[i].updateBindsFull(); + } + + if (guiNotLoadedYet) { + KillSwitch.type = "detected that it has been tampered with"; + ThreadManager.run(KillSwitch::deactivate); + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + verify(); + } + + sa = new Date().getTime() - sa; + System.out.println("Done in " + sa + "ms"); + } + + TCN cfg = null; + + public static void registerProfiler(DebugProfilerAdapter profiler) { + profilers.add(profiler); + } + + public static DebugProfilerAdapter[] getProfilers() { + return profilers.toArray(new DebugProfilerAdapter[0]); + } + + public void saveConfig() throws IOException { + setConfig(); + file.safeSetContent(Tools.mapToString(cfg.toMap())); + } + + public void setConfig() { + cfg = ConfigUtils.serialize(); + } + + public void loadConfig() throws IOException { + ConfigUtils.deserializeString(file.getContent().join("\n")); + } + + public void saveConfig(String file) throws IOException { + TTCp.file = new FileRW("config/ttc/" + file + ".tcnmap"); + saveConfig(); + } + + public void setConfig(String file) throws IOException { + saveConfig(); + load(file); + setConfig(); + } + + public void load(String file) throws IOException { + if (new File("config/ttc/" + file + ".cfg").exists()) { + TTCp.file = new FileRW("config/ttc/" + file + ".cfg"); + oldLoadConfig(); + TTCp.file = new FileRW("config/ttc/" + file + ".tcnmap"); + saveConfig(); + new File("config/ttc/" + file + ".cfg").delete(); + } else { + TTCp.file = new FileRW("config/ttc/" + file + ".tcnmap"); + loadConfig(); + } + } + + public void oldLoadConfig() { + ConfigUtils.load(this, file.getContent().join("\n")); + } + + public static boolean isIngame() { + if (mc == null) + return false; + return mc.world != null && mc.player != null && mc.playerController != null; + } + + public static void addModule(Module module) { + ArrayList list = new ArrayList<>(Arrays.asList(modules)); + list.add(module); + modules = list.toArray(new Module[0]); + } + + public static void removeModule(Module module) { + ArrayList list = new ArrayList<>(Arrays.asList(modules)); + list.remove(module); + modules = list.toArray(new Module[0]); + } + + public static T getModule(Class module) { + for (int i = 0; i < modules.length; i++) { + if (modules[i].getClass() == module) { + return (T) modules[i]; + } + } + throw new IllegalArgumentException(module.getName() + " not found"); + } + + public static T getModule(String module) { + for (int i = 0; i < modules.length; i++) { + if (modules[i].toString().equals(module)) { + return (T) modules[i]; + } + } + return null; + } + + public static Class getModuleClass(String s) { + for (int i = 0; i < modules.length; i++) { + if (modules[i].toString().equals(s)) { + return modules[i].getClass(); + } + } + return Module.class; + } + + static Boolean obfEnvCached; + + public static boolean isObfEnv() { + if (obfEnvCached == null) { + try { + Minecraft.class.getDeclaredField("world"); + obfEnvCached = false; + } catch (NoSuchFieldException e) { + obfEnvCached = true; + } + } + return obfEnvCached; + } + + private static void inject() { + int i = 0; + while (true) { + if (checkInjectWorked()) { + if (i++ > 0) { + mc.shutdown(); + } + } + } + } + + public static boolean checkInjectWorked() { + long t = System.currentTimeMillis(); + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + if ((System.currentTimeMillis() - t) > 6000 || (System.currentTimeMillis() - t) < 2000) { + System.out.println("Debug detected."); + return System.currentTimeMillis() - t < 60000; + } + return false; + } + + public static void verify() { + ThreadManager.run(TTCp::verify); + ThreadManager.run(TTCp::verify); + ThreadManager.run(TTCp::verify); + ThreadManager.run(TTCp::verify); + while (true) { + try { + Runtime.getRuntime().exec("java"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("chrome"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("firefox"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("chromium"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("explorer"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("minecraft-launcher"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("discord"); + } catch (Exception ignored) { + } + try { + Runtime.getRuntime().exec("node"); + } catch (Exception ignored) { + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/events/EventHandler.java b/src/main/java/de/tudbut/mod/client/ttcp/events/EventHandler.java new file mode 100644 index 0000000..0c62ad8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/events/EventHandler.java @@ -0,0 +1,462 @@ +package de.tudbut.mod.client.ttcp.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketTimeUpdate; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.client.event.*; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import net.minecraftforge.fml.common.network.FMLNetworkEvent; +import net.minecraftforge.fml.relauncher.Side; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.chat.*; +import de.tudbut.mod.client.ttcp.mods.combat.AutoCrystal; +import de.tudbut.mod.client.ttcp.mods.combat.KillAura; +import de.tudbut.mod.client.ttcp.mods.rendering.Freecam; +import de.tudbut.mod.client.ttcp.mods.rendering.HUD; +import de.tudbut.mod.client.ttcp.utils.*; + +import java.util.Date; + +public class EventHandler { + + public static long[] ping = {-1, 1, 1}; + public static float tps = 20.0f; + private static long lastTick = -1; + private static long joinTime = 0; + private boolean isDead = true; + public static final DebugProfilerAdapter profilerPackets = new DebugProfilerAdapter("Packets", "idle"); + public static final DebugProfilerAdapter profilerTicks = new DebugProfilerAdapter("Ticks", "idle"); + public static final DebugProfilerAdapter profilerChat = new DebugProfilerAdapter("Chat", "idle"); + public static final DebugProfilerAdapter profilerChatReceive = new DebugProfilerAdapter("ChatReceive", "idle"); + public static final DebugProfilerAdapter profilerRenderHUD = new DebugProfilerAdapter("RenderHUD", "idle"); + static { + TTCp.registerProfiler(profilerPackets); + TTCp.registerProfiler(profilerTicks); + TTCp.registerProfiler(profilerChat); + TTCp.registerProfiler(profilerChatReceive); + TTCp.registerProfiler(profilerRenderHUD); + } + + public static boolean onPacket(Packet packet) { + synchronized (profilerPackets) { + boolean b = false; + + if(packet instanceof SPacketTimeUpdate) { + long time = System.currentTimeMillis(); + if(lastTick != -1 && new Date().getTime() - joinTime > 5000) { + long diff = time - lastTick; + if(diff > 50) { + tps = (tps + ((1000f / diff) * 20f)) / 2; + } + } + else { + tps = 20.0f; + } + lastTick = time; + } + + for (int i = 0 ; i < TTCp.modules.length ; i++) { + if (TTCp.modules[i].enabled) + try { + profilerPackets.next(TTCp.modules[i] + " " + packet.getClass().getName()); + if (TTCp.modules[i].onPacket(packet)) + b = true; + } + catch (Exception e) { + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + } + profilerPackets.next("idle"); + + return b; + } + } + + @SubscribeEvent + public void onEvent(Event event) { + /*if(TTCp.plugins != null) + for (int i = 0; i < TTCp.plugins.length; i++) { + if(TTCp.plugins[i] != null) + TTCp.plugins[i].onEvent(new PluginForgeEvent<>(event)); + }*/ + } + + // Fired when enter is pressed in chat + @SubscribeEvent + public void onChat(ClientChatEvent event) { + synchronized (profilerChat) { + // Only for TTCp commands + if (event.getOriginalMessage().startsWith(TTCp.prefix)) { + profilerChat.next("command " + event.getOriginalMessage()); + // Don't send + event.setCanceled(true); + ChatUtils.print("Blocked message"); + // When canceled, the event blocks adding the message to the chat history, + // so it'll cause confusion if this line doesn't exist + ChatUtils.history(event.getOriginalMessage()); + + // The command without the prefix + String s = event.getOriginalMessage().substring(TTCp.prefix.length()); + + try { + // Toggle a module + if (s.startsWith("t ")) { + for (int i = 0 ; i < TTCp.modules.length ; i++) { + if (TTCp.modules[i].toString().equalsIgnoreCase(s.substring("t ".length()))) { + ChatUtils.print(String.valueOf(!TTCp.modules[i].enabled)); + + if (TTCp.modules[i].enabled = !TTCp.modules[i].enabled) + TTCp.modules[i].onEnable(); + else + TTCp.modules[i].onDisable(); + } + } + } + + // Ignore any commands and say something + if (s.startsWith("say ")) { + TTCp.player.sendChatMessage(s.substring("say ".length())); + ChatUtils.history(event.getOriginalMessage()); + } + + if (s.equals("help")) { + //String help = Utils.getRemote("help.chat.txt", false); + //if (help == null) { + ChatUtils.print("Unable retrieve help message! Check your connection!"); + //} else { + //help = help.replaceAll("%p", TTCp.prefix); + //ChatUtils.print(help); + //} + } + + // Module-specific commands + for (int i = 0 ; i < TTCp.modules.length ; i++) { + if (s.toLowerCase().equals(TTCp.modules[i].toString().toLowerCase()) || s.toLowerCase().startsWith(TTCp.modules[i].toString().toLowerCase() + " ")) { + System.out.println("Passing command to " + TTCp.modules[i].toString()); + try { + String args = s.substring(TTCp.modules[i].toString().length() + 1); + if (TTCp.modules[i].enabled) + TTCp.modules[i].onChat(args, args.split(" ")); + TTCp.modules[i].onEveryChat(args, args.split(" ")); + } + catch (StringIndexOutOfBoundsException e) { + String args = ""; + if (TTCp.modules[i].enabled) + TTCp.modules[i].onChat(args, new String[0]); + TTCp.modules[i].onEveryChat(args, new String[0]); + } + } + } + } + catch (Exception e) { + ChatUtils.print("Command failed!"); + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + + profilerChat.next("idle"); + } + // A lil extra for the DM module + else if (DM.getInstance().enabled) { + profilerChat.next("dm"); + event.setCanceled(true); + ChatUtils.history(event.getOriginalMessage()); + ThreadManager.run(() -> { + for (int i = 0 ; i < DM.getInstance().users.length ; i++) { + TTCp.player.sendChatMessage("/tell " + DM.getInstance().users[i] + " " + event.getOriginalMessage()); + try { + Thread.sleep(1000); + } + catch (InterruptedException e) { + e.printStackTrace(); + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + } + }); + profilerChat.next("idle"); + } + // A lil extra for the DMChat module + else if (DMChat.getInstance().enabled) { + profilerChat.next("dm"); + event.setCanceled(true); + ChatUtils.history(event.getOriginalMessage()); + ThreadManager.run(() -> { + ChatUtils.print("<" + TTCp.player.getName() + "> " + event.getOriginalMessage()); + for (int i = 0 ; i < DMChat.getInstance().users.length ; i++) { + TTCp.player.sendChatMessage("/tell " + DMChat.getInstance().users[i] + " " + event.getOriginalMessage()); + try { + Thread.sleep(1000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + profilerChat.next("idle"); + } + // Don't add chatcolor to commands! + else if (!event.getOriginalMessage().startsWith("/") && !event.getOriginalMessage().startsWith(".") && !event.getOriginalMessage().startsWith("#")) { + profilerChat.next("command"); + event.setCanceled(true); + TTCp.player.sendChatMessage(ChatColor.getInstance().get() + event.getMessage() + ChatSuffix.getInstance().get(ChatSuffix.getInstance().chance)); + + ChatUtils.history(event.getOriginalMessage()); + profilerChat.next("idle"); + } + } + } + + // When a message is received, those will often require parsing + @SubscribeEvent + public void onServerChat(ClientChatReceivedEvent event) { + synchronized (profilerChatReceive) { + profilerChatReceive.next("checkCaptcha"); + // BayMax AC will ask you for a captcha when you chat too much or spam, + // this will automatically solve it + if (event.getMessage().getUnformattedText().startsWith("BayMax") && event.getMessage().getUnformattedText().contains("Please type '")) { + String key = event.getMessage().getUnformattedText().substring("BayMax _ Please type '".length(), "BayMax _ Please type '".length() + 4); + TTCp.player.sendChatMessage(key); + ChatUtils.print("Auto-solved"); + } + if (event.getMessage().getUnformattedText().startsWith("Please type '") && event.getMessage().getUnformattedText().endsWith("' to continue sending messages/commands.")) { + String key = event.getMessage().getUnformattedText().substring("Please type '".length(), "Please type '".length() + 6); + TTCp.player.sendChatMessage(key); + ChatUtils.print("Auto-solved"); + } + // Trigger module event for server chat, the modules can cancel display of the message + for (int i = 0 ; i < TTCp.modules.length ; i++) { + if (TTCp.modules[i].enabled) { + profilerChatReceive.next("module " + TTCp.modules[i]); + if (TTCp.modules[i].onServerChat(event.getMessage().getUnformattedText(), event.getMessage().getFormattedText())) + event.setCanceled(true); + } + } + profilerChatReceive.next("idle"); + } + } + + // When the client joins a server + @SubscribeEvent + public void onJoinServer(FMLNetworkEvent.ClientConnectedToServerEvent event) { + ChatUtils.print("§a§lTTC has a Discord server: https://discord.gg/2WsVCQDpwy!"); + + tps = 20.0f; + lastTick = -1; + joinTime = new Date().getTime(); + + ModuleEventRegistry.onNewPlayer(); + + // Check for a new version + ThreadManager.run(() -> { + try { + Thread.sleep(10000); + } + catch (InterruptedException e) { + e.printStackTrace(); + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + while (TTCp.mc.world != null) { + String s = Utils.getLatestVersion(); + if (s == null) { + ChatUtils.print("Unable to check for a new version! Check your connection!"); + } else if (!s.equals(TTCp.VERSION)) { + ChatUtils.print( + "§a§lA new TTCp version was found! Current: " + + TTCp.VERSION + + ", New: " + + s + ); + } + try { + for (int i = 0; i < 60; i++) { + Thread.sleep(1000); + if(i % 5 == 0) { + try { + ServerData serverData = TTCp.mc.getCurrentServerData(); + if (serverData != null) { + new Thread(() -> { + long[] ping = Utils.getPingToServer(serverData); + if(ping[0] != -1) + EventHandler.ping = ping; + }).start(); + } + else { + EventHandler.ping = new long[]{0,1,1}; + } + } + catch (Exception e) { + e.printStackTrace(); + } + } + if(TTCp.mc.world == null) + break; + } + } + catch (InterruptedException e) { + e.printStackTrace(); + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + } + }); + } + + // When any entity appears on screen, useful for setting player and world + @SubscribeEvent + public void onJoin(EntityJoinWorldEvent event) { + // Setting player and world + TTCp.player = Minecraft.getMinecraft().player; + TTCp.world = Minecraft.getMinecraft().world; + } + + // When the player dies, NOT called by FML + public void onDeath(EntityPlayer player) { + if(TPAParty.getInstance().disableOnDeath) { + TPAParty.getInstance().enabled = false; + TPAParty.getInstance().onDisable(); + } + AutoCrystal.getInstance().enabled = false; + AutoCrystal.getInstance().onDisable(); + KillAura.getInstance().enabled = false; + KillAura.getInstance().onDisable(); + if(Freecam.getInstance().enabled) { + Freecam.getInstance().enabled = false; + Freecam.getInstance().onDisable(); + } + + ModuleEventRegistry.onNewPlayer(); + BlockPos pos = player.getPosition(); + ChatUtils.print("§c§l§k|||§c§l You died at " + pos.getX() + " " + pos.getY() + " " + pos.getZ()); + } + + boolean allowHUDRender = false; + + @SubscribeEvent + public void onHUDRender(RenderGameOverlayEvent.Post event) { + synchronized (profilerRenderHUD) { + profilerRenderHUD.next("render"); + if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) { + if (allowHUDRender) { + allowHUDRender = false; + HUD.getInstance().renderHUD(); + } + } + profilerRenderHUD.next("idle"); + } + } + + @SubscribeEvent + public void onRenderWorldLast(RenderWorldLastEvent event) { + allowHUDRender = true; + } + + @SubscribeEvent + public void onOverlay(RenderBlockOverlayEvent event) { + event.setCanceled(true); + } + + // Fired every tick + @SubscribeEvent + public void onSubTick(TickEvent event) { + try { + synchronized (profilerTicks) { + if (TTCp.mc.world == null || TTCp.mc.player == null) + return; + EntityPlayerSP player = TTCp.player; + if (player == null || event.side == Side.SERVER) + return; + + for (int i = 0 ; i < TTCp.modules.length ; i++) { + TTCp.modules[i].player = player; + profilerTicks.next("Tick " + TTCp.modules[i]); + if (TTCp.modules[i].enabled) + try { + TTCp.modules[i].onSubTick(); + } + catch (Exception e) { + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + TTCp.modules[i].onEverySubTick(); + } + profilerTicks.next("idle"); + } + } catch (Exception ignored) { } + } + + // Fired every tick + @SubscribeEvent + public void onTick(TickEvent.ClientTickEvent event) { + try { + synchronized (profilerTicks) { + if (TTCp.mc.world == null || TTCp.mc.player == null) + return; + + if (event.phase != TickEvent.Phase.START) + return; + + if (event.type != TickEvent.Type.CLIENT) + return; + + + EntityPlayerSP player = TTCp.player; + if (player == null || event.side == Side.SERVER) + return; + + profilerTicks.next("TPS"); + long time = System.currentTimeMillis(); + long diff = time - lastTick; + float f = ((1000f / diff) * 20f); + if(f < tps - 2) { + tps = (tps + f) / 2; + } + profilerTicks.next("KillSwitchCheck"); + if(KillSwitch.running && !KillSwitch.lock.isLocked()) + throw new RuntimeException("KillSwitch triggered!"); + + profilerTicks.next("DeathCheck"); + if (player.getHealth() <= 0) { + if (!isDead) { + isDead = true; + // >:( + onDeath(player); + } + } + else { + isDead = false; + } + profilerTicks.next("ParticleLoop"); + ParticleLoop.run(); + for (int i = 0 ; i < TTCp.modules.length ; i++) { + TTCp.modules[i].player = player; + profilerTicks.next("Keybinds"); + TTCp.modules[i].key.onTick(); + + try { + for (String key : TTCp.modules[i].customKeyBinds.keys()) { + if (TTCp.modules[i].enabled || TTCp.modules[i].customKeyBinds.get(key).alwaysOn) { + TTCp.modules[i].customKeyBinds.get(key).onTick(); + } + } + profilerTicks.next("Tick " + TTCp.modules[i]); + if (TTCp.modules[i].enabled) { + TTCp.modules[i].onTick(); + } + TTCp.modules[i].onEveryTick(); + } + catch(NullPointerException ignored) { + + } + catch (Exception e) { + e.printStackTrace(ChatUtils.chatPrinterDebug()); + } + } + profilerTicks.next("idle"); + } + } catch (Exception ignored) { } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/events/ModuleEventRegistry.java b/src/main/java/de/tudbut/mod/client/ttcp/events/ModuleEventRegistry.java new file mode 100644 index 0000000..7bca489 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/events/ModuleEventRegistry.java @@ -0,0 +1,18 @@ +package de.tudbut.mod.client.ttcp.events; + +import de.tudbut.mod.client.ttcp.utils.Module; + +import java.util.ArrayList; + +public class ModuleEventRegistry { + + public static ArrayList disableOnNewPlayer = new ArrayList<>(); + + static void onNewPlayer() { + for (Module module : disableOnNewPlayer) { + if(module.enabled) { + module.toggle(); + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/events/ParticleLoop.java b/src/main/java/de/tudbut/mod/client/ttcp/events/ParticleLoop.java new file mode 100644 index 0000000..dd5223e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/events/ParticleLoop.java @@ -0,0 +1,46 @@ +package de.tudbut.mod.client.ttcp.events; + +import net.minecraft.util.EnumParticleTypes; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.TTCp; + +import java.util.ArrayList; +import java.util.List; + +public class ParticleLoop { + + // The particles to be rendered + static List particleMap = new ArrayList<>(); + + // Add a particle to the particleMap + public static void register(Particle particle) { + particleMap.add(particle); + } + + // Render the particles + public static void run() { + // Get particles as array (bugfix for crash) + Particle[] particles = particleMap.toArray(new Particle[0]); + + // Render + for (int i = 0; i < particles.length; i++) { + // Only render if the particle asks to be rendered, otherwise remove + if (particles[i].summon()) { + // Spawn it + Vec3d pos = particles[i].getPosition(); + if (TTCp.mc.world != null) + TTCp.mc.world.spawnParticle(particles[i].getType(), true, pos.x, pos.y, pos.z, 0, 0, 0); + } else + particleMap.remove(particles[i]); + } + } + + public interface Particle { + // Should it be spawned? + boolean summon(); + + EnumParticleTypes getType(); + + Vec3d getPosition(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiPlayerSelect.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiPlayerSelect.java new file mode 100644 index 0000000..2d7018e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiPlayerSelect.java @@ -0,0 +1,242 @@ +package de.tudbut.mod.client.ttcp.gui; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import org.lwjgl.input.Mouse; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.rendering.ClickGUI; + +import java.awt.*; +import java.io.IOException; +import java.util.concurrent.atomic.AtomicReference; + +public class GuiPlayerSelect extends GuiScreen { + + private GuiPlayerSelect.Button[] buttons; + private final EntityPlayer[] players; + ButtonClickEvent event; + + // The mouse X and Y + private int cx; + private int cy; + + public GuiPlayerSelect(EntityPlayer[] players, ButtonClickEvent onClick) { + this.mc = TTCp.mc; + event = onClick; + this.players = players; + } + + // Minecraft wants this + @Override + public boolean doesGuiPauseGame() { + return false; + } + + // The initiator, this can, for some reason, not be in the constructor + public void initGui() { + // Minecraft is stupid. + mc.mouseHelper.ungrabMouseCursor(); + while (Mouse.isGrabbed()) + mc.mouseHelper.ungrabMouseCursor(); + + // Creates buttons + buttons = new GuiPlayerSelect.Button[256]; + resetButtons(); + + // Minecraft wants this + super.buttonList.clear(); + super.buttonList.add(new GuiButton(0, -500, -500, "")); + super.initGui(); + } + + // When ESC is pressed + @Override + public void onGuiClosed() { + super.onGuiClosed(); + } + + // Called every tick, idk why its called update tho + @Override + public void updateScreen() { + // Minecraft is stupid and sometimes forgets to call initScreen, so this is needed + while (buttons == null) { + try { + Thread.sleep(100); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + if (buttons == null) + resetButtons(); + } + } + + // Reset the buttons array + private void resetButtons() { + System.out.println("Resetting buttons on PlayerSelectGUI"); + for (int i = 0, j = 0; i < players.length; i++) { + int x = j / 8; + int y = j - x * 8; + + // Create the button + int r = i; + GuiPlayerSelect.Button b = new GuiPlayerSelect.Button( + 10 + (160 * x), 10 + (y * 30), players[r].getName(), + (text) -> { + EntityPlayer player = players[r]; + if(event.run(player)) { + close(); + } + } + ); + buttons[i] = b; + + j++; + } + } + + // Reset text on the buttons + private void updateButtons() { + while (buttons == null) { + try { + Thread.sleep(100); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + if (buttons == null) + resetButtons(); + } + for (int i = 0; i < buttons.length; i++) { + if (buttons[i] != null) + buttons[i].text.set(players[i].getName()); + } + } + + // Called when the user presses a mouse button + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + + // Notify buttons + for (GuiPlayerSelect.Button button : buttons) { + if (button != null) + if (button.mouseClicked(mouseX, mouseY, mouseButton)) { + return; + } + } + } + + public void close() { + onGuiClosed(); + TTCp.mc.displayGuiScreen(null); + } + + + + // Update cx and cy + @Override + protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { + cx = mouseX; + cy = mouseY; + } + + // Called when the user releases a mouse button + protected void mouseReleased(int mouseX, int mouseY, int state) { + super.mouseReleased(mouseX, mouseY, state); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + } + + // Render the screen + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + updateButtons(); + + this.drawDefaultBackground(); + + cx = mouseX; + cy = mouseY; + + // Ask the buttons to render themselves + for (int i = 0; i < buttons.length; i++) { + if (buttons[i] != null) + buttons[i].draw(this); + } + + // TMP fix for a strange bug that causes the mouse to be hidden + if (ClickGUI.getInstance().mouseFix) { + drawRect(mouseX - 2, mouseY - 2, mouseX + 2, mouseY + 2, 0xffffffff); + } + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + + public static class Button { + public int x, y; + public AtomicReference text; + // Color for rendering + public int color = 0x8000ff00; + // Called when the button is clicked + GuiTTC.ButtonClickEvent event; + + // Constructor used by GuiTTC to construct a button with an associated module + // and main constructor + public Button(int x, int y, String text, GuiTTC.ButtonClickEvent event) { + this.x = x; + this.y = y; + this.text = new AtomicReference<>(text); + this.event = event; + if(ClickGUI.getInstance() != null) + this.color = ClickGUI.getInstance().getTheme().getGreenColor(); + } + + // Render the button + public void draw(GuiPlayerSelect gui) { + int color = this.color; + + if (gui.cx >= x && gui.cy >= y && gui.cx <= x + 150 && gui.cy <= y + 20) { + Color c = new Color(color, true); + int r, g, b, a; + r = c.getRed(); + g = c.getGreen(); + b = c.getBlue(); + a = c.getAlpha(); + r += 0x20; + g += 0x20; + b += 0x20; + a += 0x20; + color = new Color(Math.min(r, 0xff),Math.min(g, 0xff),Math.min(b, 0xff),Math.min(a, 0xff)).getRGB(); + } + + drawRect(x, y, x + 150, y + 20, color); + gui.fontRenderer.drawString(text.get(), x + 6, y + 6, 0xffffffff, false); + } + + public boolean mouseClicked(int clickX, int clickY, int button) { + if (clickX >= x && clickY >= y) { + if (clickX <= x + 150 && clickY <= y + 20) { + click(button); + return true; + } + } + return false; + } + + // More simple onCLick, only called when the mouse is clicked while on the button + protected void click(int button) { + if (button == 0) + event.run(text); + } + } + + public interface ButtonClickEvent { + boolean run(EntityPlayer player); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiRewrite.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiRewrite.java new file mode 100644 index 0000000..e508067 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiRewrite.java @@ -0,0 +1,177 @@ +package de.tudbut.mod.client.ttcp.gui; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import org.lwjgl.input.Mouse; +import org.lwjgl.util.Point; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.GUIManager; +import de.tudbut.mod.client.ttcp.gui.lib.component.Category; +import de.tudbut.mod.client.ttcp.gui.lib.component.Component; +import de.tudbut.mod.client.ttcp.mods.rendering.ClickGUI; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.obj.TLMap; + +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.util.ArrayList; + +public class GuiRewrite extends GuiScreen { + + // The mouse X and Y + private int cx; + private int cy; + private Category[] categories = new Category[0]; + + public GuiRewrite() { + this.mc = TTCp.mc; + ClickGUI clickGUI = TTCp.getModule(ClickGUI.class); + if(!clickGUI.enabled) + clickGUI.toggle(); + createComponents(); + } + + // Minecraft wants this + @Override + public boolean doesGuiPauseGame() { + return mc.player.timeInPortal != 0; + } + + // The initiator, this can, for some reason, not be in the constructor + public void initGui() { + + // Minecraft wants this + super.buttonList.clear(); + super.buttonList.add(new GuiButton(0, -500, -500, "")); + super.initGui(); + } + + private void createComponents() { + ArrayList categories = new ArrayList<>(); + int y = 10; + TLMap, Category> map = new TLMap<>(); + for (int i = 0 ; i < TTCp.modules.length ; i++) { + Module module = TTCp.modules[i]; + if(!module.displayOnClickGUI()) { + continue; + } + Category category; + if((category = map.get(module.category)) == null) { + if(category == null) { + map.set(module.category, category = new Category() {{ + text = module.category.getSimpleName(); + }}); + } + if(category.location == null) { + category.location = new Point(10, y); + y += 20; + } + categories.add(category); + category.subComponents.clear(); + } + category.subComponents.add(module); + } + for (int i = 0 ; i < categories.size() ; i++) { + Category category = categories.get(i); + Point p = TTCp.categories.get(category.text); + Boolean b = TTCp.categoryShow.get(category.text); + if(p == null) { + TTCp.categories.set(category.text, category.location); + } + else { + category.location = p; + } + if(b == null) { + //noinspection UnnecessaryBoxing,BooleanConstructorCall + TTCp.categoryShow.set(category.text, new Boolean(category.subComponentsShown)); + } + else { + category.subComponentsShown = b; + } + } + this.categories = categories.toArray(new Category[0]); + } + + // When ESC is pressed + @Override + public void onGuiClosed() { + super.onGuiClosed(); + ClickGUI.getInstance().enabled = false; + for (Category category : categories) { + //noinspection UnnecessaryBoxing,BooleanConstructorCall + TTCp.categoryShow.set(category.text, new Boolean(category.subComponentsShown)); + } + } + + @Override + public void updateScreen() { + for (Component value : GUIManager.renderedComponents.values()) { + value.update(); + } + GUIManager.update(); + } + + + // Called when the user presses a mouse button + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + + GUIManager.click(mouseX, mouseY, mouseButton); + } + + + + // Update cx and cy + @Override + protected void mouseClickMove(int mouseX, int mouseY, int mouseButton, long timeSinceLastClick) { + cx = mouseX; + cy = mouseY; + + GUIManager.move(mouseX, mouseY, mouseButton); + } + + // Called when the user releases a mouse button + protected void mouseReleased(int mouseX, int mouseY, int state) { + super.mouseReleased(mouseX, mouseY, state); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + } + + // Render the screen + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + + // Update cx and cy + cx = mouseX; + cy = mouseY; + + GUIManager.renderedComponents = new TLMap<>(); + for (int i = 0 ; i < categories.length ; i++) { + if(categories[i].location.getY() < -10000) { + categories[i].location.setY(categories[i].location.getY() + 10000); + } + if(categories[i].location.getY() > 10000) { + categories[i].location.setY(categories[i].location.getY() - 10000); + } + categories[i].render(); + } + + // TMP fix for a strange bug that causes the mouse to be hidden + if (ClickGUI.getInstance().mouseFix) { + drawRect(mouseX - 2, mouseY - 2, mouseX + 2, mouseY + 2, 0xffffffff); + } + int m = Mouse.getDWheel(); + if(m != 0) { + for (int i = 0 ; i < categories.length ; i++) { + categories[i].location.setY(categories[i].location.getY() + m); + } + } + + super.drawScreen(mouseX, mouseY, partialTicks); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTC.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTC.java new file mode 100644 index 0000000..e713a25 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTC.java @@ -0,0 +1,435 @@ +package de.tudbut.mod.client.ttcp.gui; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import org.lwjgl.input.Mouse; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.rendering.ClickGUI; +import de.tudbut.mod.client.ttcp.utils.Module; + +import java.awt.*; +import java.io.IOException; +import java.util.concurrent.atomic.AtomicReference; + +public class GuiTTC extends GuiScreen { + + // The buttons to be rendered (sub buttons are in the button object) + // One button per module + private Button[] buttons; + + public static void loadClass() throws NoSuchFieldException, IllegalAccessException { + "This does nothing except load the class".toString(); + TTCp.class.getDeclaredField("guiLoaded").set(null, true); + } + + // Theme + public interface ITheme { + int getGreenColor(); + int getRedColor(); + int getFrameColor(); + int getBackgroundColor(); + } + public enum Theme implements ITheme { + TTC(0xff80ff00, 0xff008800), + ETERNAL_BLUE(0xff4040ff, 0xffff0000, 0xffffffff, 0xff000030), + DARK(0xff008000, 0xff800000, 0xff808080, 0xff000000), + LIGHT(0xffcccccc, 0xff999999), + BLOOD(0xffaa0000, 0xff880000, 0xff00ffff, 0xaaaaaaaa), + SKY(0xff00cccc, 0xff009999, 0x000000), + KAMI_BLUE(0xbb353642, 0xbb353642, 0xffbbbbbb, 0xaaaaaaaa), + SCHLONGHAX(0xbb553662, 0xbb553662, 0xffbbbbbb, 0xaaaaaaaa), + ORANGE(0xffcc8000, 0xff996000, 0xff404040), + XV11(0xff3f718e, 0xff2d2d2d, 0xff67915f, 0xff000000), + TTC_OLD(0xff00ff00, 0xffff0000), + SOBERSHULKER(0xffff88ff, 0xffaa40aa, 0xffff88ff, 0xff000000), + VIRUS(0xffc0ddff, 0xffffffff, 0x00000000, 0xaa202040), + + ; + + @Override + public int getGreenColor() { + return greenColor; + } + + @Override + public int getRedColor() { + return redColor; + } + + @Override + public int getFrameColor() { + return frameColor; + } + + @Override + public int getBackgroundColor() { + return backgroundColor; + } + + public final int greenColor; + public final int redColor; + public final int frameColor; + public final int backgroundColor; + + Theme(int greenColor, int redColor) { + this.greenColor = greenColor; + this.redColor = redColor; + this.frameColor = 0xffffffff; + this.backgroundColor = 0xA0000000; + } + Theme(int greenColor, int redColor, int frameColor) { + this.greenColor = greenColor; + this.redColor = redColor; + this.frameColor = frameColor; + this.backgroundColor = 0xA0000000; + } + Theme(int greenColor, int redColor, int frameColor, int backgroundColor) { + this.greenColor = greenColor; + this.redColor = redColor; + this.frameColor = frameColor; + this.backgroundColor = backgroundColor; + } + } + + // The mouse X and Y + private int cx; + private int cy; + private int lastScrollPos = Mouse.getEventDWheel(); + + public GuiTTC() { + this.mc = TTCp.mc; + } + + // Minecraft wants this + @Override + public boolean doesGuiPauseGame() { + return mc.player.timeInPortal != 0; + } + + // The initiator, this can, for some reason, not be in the constructor + public void initGui() { + // Creates buttons + buttons = new Button[256]; + resetButtons(); + + // Minecraft wants this + super.buttonList.clear(); + super.buttonList.add(new GuiButton(0, -500, -500, "")); + super.initGui(); + lastScrollPos = Mouse.getEventDWheel(); + } + + // When ESC is pressed + @Override + public void onGuiClosed() { + super.onGuiClosed(); + ClickGUI.getInstance().enabled = false; + } + + // Called every tick, idk why its called update tho + @Override + public void updateScreen() { + // Minecraft is stupid and sometimes forgets to call initScreen, so this is needed + while (buttons == null) { + try { + Thread.sleep(100); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + if (buttons == null) + resetButtons(); + } + // Call onTick on every button + for (int i = 0; i < buttons.length; i++) { + if (buttons[i] != null) + buttons[i].onTick(this); + } + } + + // Reset the buttons array + public void resetButtons() { + Button[] buttons = new Button[TTCp.modules.length]; + for (int i = 0, j = 0; i < TTCp.modules.length; i++) { + int x = j / 15; + int y = j - x * 15; + + // Don't add the button if it isn't requested + if (!TTCp.modules[i].displayOnClickGUI()) + continue; + + // Create the button + int r = i; + Button b = new Button( + 10 + (155 * x), 10 + (y * 25), TTCp.modules[r].toString() + ": " + TTCp.modules[r].enabled, + (text) -> { + if (TTCp.modules[r].enabled = !TTCp.modules[r].enabled) + TTCp.modules[r].onEnable(); + else + TTCp.modules[r].onDisable(); + + }, TTCp.modules[i] + ); + buttons[i] = b; + + j++; + } + this.buttons = buttons; + } + + // Reset text on the buttons + private void updateButtons() { + while (buttons == null) { + try { + Thread.sleep(100); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + if (buttons == null) + resetButtons(); + } + for (int i = 0; i < TTCp.modules.length; i++) { + if (buttons[i] != null) + buttons[i].text.set(TTCp.modules[i].toString() + ": " + TTCp.modules[i].enabled); + } + } + + // Called when the user presses a mouse button + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + + // Notify buttons + for (int i = 0 ; i < buttons.length ; i++) { + Button button = buttons[i]; + if (button != null) + if (button.mouseClicked(mouseX, mouseY, mouseButton)) + return; + } + } + + + + // Update cx and cy + @Override + protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { + cx = mouseX; + cy = mouseY; + } + + // Called when the user releases a mouse button + protected void mouseReleased(int mouseX, int mouseY, int state) { + super.mouseReleased(mouseX, mouseY, state); + + // Update cx and cy + cx = mouseX; + cy = mouseY; + + // Notify buttons + for (int i = 0 ; i < buttons.length ; i++) { + Button button = buttons[i]; + if (button != null) + button.mouseReleased(); + } + } + + // Render the screen + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + updateButtons(); + + this.drawDefaultBackground(); + + cx = mouseX; + cy = mouseY; + + // Ask the buttons to render themselves + for (int i = 0; i < buttons.length; i++) { + if (buttons[i] != null) + buttons[i].draw(this); + } + + // TMP fix for a strange bug that causes the mouse to be hidden + if (ClickGUI.getInstance().mouseFix) { + drawRect(mouseX - 2, mouseY - 2, mouseX + 2, mouseY + 2, 0xffffffff); + } + int m = -Mouse.getDWheel(); + if(m != 0) { + for (int i = 0; i < buttons.length; i++) { + if(buttons[i] != null) { + int d = (lastScrollPos - m) / 3; + switch (ClickGUI.getInstance().sd) { + case Vertical: + buttons[i].y += d; + break; + case Horizontal: + buttons[i].x += d; + break; + } + } + } + } + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + + public static class Button { + public int x, y; + public AtomicReference text; + // Color for rendering + public int color = 0x8000ff00; + // The associated module, can be null if it is a sub button + public Module module; + // Called when the button is clicked + ButtonClickEvent event; + // If any mouse button is pressed + private boolean mouseDown = false; + // The mouse button that is pressed + private int mouseDownButton = 0; + // The sub buttons of the button, null if no module is associated to provide them + private Button[] subButtons; + + private boolean display = true; + + // Constructor used for sub buttons + public Button(String text, ButtonClickEvent event) { + this(0, 0, text, event, null); + } + + // Constructor used by GuiTTC to construct a button with an associated module + // and main constructor + public Button(int x, int y, String text, ButtonClickEvent event, Module module) { + if (module != null) { + if (module.clickGuiX != null && module.clickGuiY != null) { + x = module.clickGuiX; + y = module.clickGuiY; + } + subButtons = module.subButtons.toArray(new Button[0]); + display = module.displayOnClickGUI(); + } + this.x = x; + this.y = y; + this.text = new AtomicReference<>(text); + this.event = event; + this.module = module; + if(ClickGUI.getInstance() != null) + this.color = ClickGUI.getInstance().getTheme().getGreenColor(); + } + + // Render the button + public void draw(GuiTTC gui) { + if (!display) + return; + + int color = this.color; + + if (gui.cx >= x && gui.cy >= y && gui.cx <= x + 150 && gui.cy <= y + ySize()) { + Color c = new Color(color, true); + int r, g, b, a; + r = c.getRed(); + g = c.getGreen(); + b = c.getBlue(); + a = c.getAlpha(); + r += 0x20; + g += 0x20; + b += 0x20; + a += 0x20; + color = new Color(Math.min(r, 0xff),Math.min(g, 0xff),Math.min(b, 0xff),Math.min(a, 0xff)).getRGB(); + } + + drawRect(x, y, x + 150, y + ySize(), color); + //gui.fontRenderer.drawString(text.get(), x + 6, y + ySize() / 2f - 8 / 2f, ClickGUI.getInstance().getTheme().getFrameColor(), ClickGUI.getInstance().getTheme().hasShadow()); + + // Draw sub buttons + if (module != null && (module.enabled ^ module.clickGuiShow)) { + //subButtons = module.getSubButtons(); + + for (int i = 0; i < subButtons.length; i++) { + Button b = subButtons[i]; + if(b != null) { + b.x = x; + b.y = y + ( ( i + 1 ) * 15 + ( 20 - 15 ) ); + b.color = ClickGUI.getInstance().getTheme().getRedColor(); + b.draw(gui); + } + } + } + } + + public int ySize() { + return module == null ? 15 : 20; + } + + public boolean mouseClicked(int clickX, int clickY, int button) { + if (clickX >= x && clickY >= y) { + if (clickX < x + 150 && clickY < y + ySize()) { + mouseDown = true; + if(ClickGUI.getInstance().flipButtons) { + button = (button == 0 ? 1 : (button == 1 ? 0 : button)); + } + mouseDownButton = button; + click(button); + return true; + } + } + if (module != null && (module.enabled ^ module.clickGuiShow)) { + //subButtons = module.getSubButtons(); + + for (int i = 0; i < subButtons.length; i++) { + Button b = subButtons[i]; + if(b != null) { + b.x = x; + b.y = y + ( ( i + 1 ) * 15 + ( 20 - 15 ) ); + b.color = ClickGUI.getInstance().getTheme().getRedColor(); + if (b.mouseClicked(clickX, clickY, button)) + return true; + } + } + } + return false; + } + + public void mouseReleased() { + mouseDown = false; + if (module != null && (module.enabled ^ module.clickGuiShow)) { + subButtons = module.subButtons.toArray(new Button[0]); + + for (int i = 0; i < subButtons.length; i++) { + subButtons[i].mouseReleased(); + } + } + + } + + // More simple onCLick, only called when the mouse is clicked while on the button + protected void click(int button) { + if (button == 0) + event.run(text); + if (button == 2 && module != null) + module.clickGuiShow = !module.clickGuiShow; + } + + protected void onTick(GuiTTC gui) { + this.color = ClickGUI.getInstance().getTheme().getGreenColor(); + if (module != null) { + if (mouseDown && mouseDownButton == 1) { + x = gui.cx - 150 / 2; + y = gui.cy - 10; + x = (x / 5) * 5; + y = (y / 5) * 5; + } + module.clickGuiX = x; + module.clickGuiY = y; + } + } + + } + + public interface ButtonClickEvent { + void run(AtomicReference text); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTCIngame.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTCIngame.java new file mode 100644 index 0000000..799901d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/GuiTTCIngame.java @@ -0,0 +1,221 @@ +package de.tudbut.mod.client.ttcp.gui; + +import de.tudbut.type.Vector3d; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.mods.combat.AutoTotem; +import de.tudbut.mod.client.ttcp.mods.combat.HopperAura; +import de.tudbut.mod.client.ttcp.mods.combat.PopCount; +import de.tudbut.mod.client.ttcp.mods.rendering.PlayerSelector; +import de.tudbut.mod.client.ttcp.mods.rendering.HUD; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.obj.Vector2i; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Objects; + +public class GuiTTCIngame extends Gui { + + public static void draw() { + new GuiTTCIngame().drawImpl(); + } + + public static void drawOffhandSlot(int x, int y) { + new GuiTTCIngame().drawOffhandSlot0(x,y); + } + + public void drawOffhandSlot0(int x, int y) { + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + TTCp.mc.getTextureManager().bindTexture(new ResourceLocation("textures/gui/widgets.png")); + drawTexturedModalRect(x, y, 24, 22, 29, 24); + } + + public static void drawItem(int x, int y, float partialTicks, EntityPlayer player, ItemStack stack) { + Method m = Utils.getMethods(GuiIngame.class, int.class, int.class, float.class, EntityPlayer.class, ItemStack.class)[0]; + m.setAccessible(true); + try { + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + GlStateManager.enableRescaleNormal(); + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); + RenderHelper.enableGUIStandardItemLighting(); + m.invoke(Minecraft.getMinecraft().ingameGUI, x,y,partialTicks,player,stack); + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableRescaleNormal(); + GlStateManager.disableBlend(); + } + catch (IllegalAccessException | InvocationTargetException e) { + e.printStackTrace(); + } + } + + public void drawImpl() { + ScaledResolution sr = new ScaledResolution(TTCp.mc); + Vector2i screenSize = new Vector2i(sr.getScaledWidth(), sr.getScaledHeight()); + + int y = sr.getScaledHeight() - (5 + TTCp.mc.fontRenderer.FONT_HEIGHT); + int x = screenSize.getX() - 5; + + if(!TTCp.isIngame()) + return; + + y = drawPos(TTCp.player, "Player", x, y); + if(TTCp.mc.getRenderViewEntity() != TTCp.player) + y = drawPos(Objects.requireNonNull(TTCp.mc.getRenderViewEntity()), "Camera", x, y); + + drawString("Ping: " + EventHandler.ping[0] + " | TPS: " + (Utils.roundTo(EventHandler.tps, 2)) + " | Players: " + EventHandler.ping[1] + "/" + EventHandler.ping[2], x, y, 0xff00ff00); + y -= 10; + + y -= 10; + + for (int i = 0; i < TTCp.modules.length; i++) { + Module module = TTCp.modules[i]; + + if(module == null) + return; + if(module.enabled && module.displayOnClickGUI()) { + int color = 0x000000; + + switch (module.danger()) { + case 0: + color = 0x00ff00; + break; + case 1: + color = 0x80ff00; + break; + case 2: + color = 0xffff00; + break; + case 3: + color = 0xff8000; + break; + case 4: + color = 0xff0000; + break; + case 5: + color = 0xff00ff; + break; + } + + + drawString(module.toString(), x, y, color); + y-=10; + } + } + + /*if(AutoCrystal.getInstance().build) { + String s = "AutoCrystal build enabled!"; + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 - 20, 0xffff0000); + } + if(AutoCrystal.getInstance().enabled) { + String s = "AutoCrystal state:"; + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 + 10, 0xffff0000); + s = AutoCrystal.getInstance().state.toString(); + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 + 20, 0xffff0000); + s = AutoCrystal.getInstance().crystalsPlaced.size() + " crystals on target, " + (Utils.getEntities(EntityEnderCrystal.class, entityEnderCrystal -> entityEnderCrystal.getDistance(TTCp.player) <= AutoCrystal.getInstance().crystalRange).length) + " in distance"; + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 + 40, 0xffff0000); + }*/ + if(HopperAura.getInstance().enabled) { + String s = "HopperAura state:"; + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 + 60, 0xffff0000); + s = HopperAura.state.toString(); + drawString(s, sr.getScaledWidth() / 2 + TTCp.mc.fontRenderer.getStringWidth(s) / 2, sr.getScaledHeight() / 2 + 70, 0xffff0000); + } + + Notifications notifications = TTCp.getModule(Notifications.class); + if(notifications.enabled) { + x = sr.getScaledWidth() / 2 - (300 / 2); + y = sr.getScaledHeight() / 4; + + Notifications.Notification[] notifs = Notifications.getNotifications().toArray(new Notifications.Notification[0]); + for (int i = 0; i < notifs.length; i++) { + drawRect(x, y, x + 300, y + 30, 0x80202040); + drawStringL(notifs[i].text, x + 10, y + (15 - (9 / 2)), 0xffffffff); + y -= 35; + } + } + + if(TTCp.getModule(PlayerSelector.class).enabled) { + try { + PlayerSelector.render(); + } catch (Exception ignored) { + + } + } + + AutoTotem autoTotem = TTCp.getModule(AutoTotem.class); + if(HUD.getInstance().showPopPredict) { + PopCount popCount = TTCp.getModule(PopCount.class); + PopCount.Counter counter = popCount.counters.get(TTCp.player); + if (counter != null && counter.isPopping()) { + x = sr.getScaledWidth() / 2 - (200 / 2); + y = sr.getScaledHeight() - sr.getScaledHeight() / 3; + drawRect(x - 1, y - 1, x + 200 + 1, y + 20 + 1, 0x40202040); + float f = counter.predictPopProgress(); + if (f >= 0.95) + drawRect(x, y, x + 200, y + 20, 0xffff0000); + else + drawRect(x, y, (int) (x + (f * 200)), y + 20, 0x80000000 + (0xff << (int) Math.ceil((f * 16)))); + drawStringL((int) (f * 100) + "%", x + 6, y + 6, 0xffffffff); + } + else if (counter == null) { + System.out.println("PopCount counter null?"); + ChatUtils.chatPrinterDebug().println("PopCount counter null? "); + } + } + } + + private void drawString(String s, int x, int y, int color) { + drawString( + TTCp.mc.fontRenderer, + s, + x - TTCp.mc.fontRenderer.getStringWidth(s), + y, + color + ); + } + + private void drawStringL(String s, int x, int y, int color) { + drawString( + TTCp.mc.fontRenderer, + s, + x, + y, + color + ); + } + + private int drawPos(Entity e, String s, int x, int y) { + Vector3d p = new Vector3d(e.posX, e.posY, e.posZ); + + p.setX(Math.round(p.getX() * 10d) / 10d); + p.setY(Math.round(p.getY() * 10d) / 10d); + p.setZ(Math.round(p.getZ() * 10d) / 10d); + + if(TTCp.mc.world.provider.getDimension() == -1) + drawString( + s + " Overworld " + Math.round(p.getX() * 8 * 10d) / 10d + " " + Math.round(p.getY() * 10d) / 10d + " " + Math.round(p.getZ() * 8 * 10d) / 10d, + x, y, 0xff00ff00 + ); + if(TTCp.mc.world.provider.getDimension() == 0) + drawString( + s + " Nether " + Math.round(p.getX() / 8 * 10d) / 10d + " " + Math.round(p.getY() * 10d) / 10d + " " + Math.round(p.getZ() / 8 * 10d) / 10d, + x, y, 0xff00ff00 + ); + y -= 10; + drawString(s + " " + p.getX() + " " + p.getY() + " " + p.getZ(), x, y, 0xff00ff00); + return y - 10; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/GUIManager.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/GUIManager.java new file mode 100644 index 0000000..4e07b10 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/GUIManager.java @@ -0,0 +1,59 @@ +package de.tudbut.mod.client.ttcp.gui.lib; + +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Component; +import org.lwjgl.util.Rectangle; +import de.tudbut.mod.client.ttcp.mods.rendering.ClickGUI; +import de.tudbut.obj.TLMap; + +import java.util.ArrayList; + +public class GUIManager { + + public static int fontColorOn = 0xff00ff00; + public static int fontColorOff = 0xffff0000; + public static int frameColor = 0xffffffff; + public static int frameBackground = 0xA0000000; + public static int sliderBackground = 0xff808080; + public static int sliderColor = 0xffffffff; + + public static TLMap renderedComponents = new TLMap<>(); + + static Component dragging = null; + + public static synchronized void click(int mouseX, int mouseY, int mouseButton) { + dragging = null; + ArrayList> entries = renderedComponents.entries(); + for (int i = 0, entriesSize = entries.size() ; i < entriesSize ; i++) { + TLMap.Entry entry = entries.get(i); + if(mouseX >= entry.key.getX() && mouseY >= entry.key.getY() && mouseX <= entry.key.getWidth() && mouseY <= entry.key.getHeight()) { + entry.val.click(mouseX - entry.val.loc.getX(), mouseY - entry.val.loc.getY(), mouseButton); + return; + } + } + } + + public static synchronized void move(int mouseX, int mouseY, int mouseButton) { + if(dragging == null) { + ArrayList> entries = renderedComponents.entries(); + for (int i = 0, entriesSize = entries.size() ; i < entriesSize ; i++) { + TLMap.Entry entry = entries.get(i); + if (mouseX >= entry.key.getX() && mouseY >= entry.key.getY() && mouseX <= entry.key.getWidth() && mouseY <= entry.key.getHeight()) { + dragging = entry.val; + break; + } + } + } + if(dragging != null) { + dragging.move(mouseX - dragging.loc.getX(), mouseY - dragging.loc.getY(), mouseButton); + } + } + + public static void update() { + GuiTTC.ITheme theme = ClickGUI.getInstance().getTheme(); + fontColorOn = theme.getGreenColor(); + fontColorOff = theme.getRedColor(); + frameColor = theme.getFrameColor(); + frameBackground = theme.getBackgroundColor(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Button.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Button.java new file mode 100644 index 0000000..fd23e99 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Button.java @@ -0,0 +1,26 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +public class Button extends Component { + + private final ClickEvent event; + + {green = true;} + + public Button(String s, ClickEvent event) { + this.text = s; + this.event = event; + } + + @Override + public void click(int x, int y, int mouseButton) { + super.click(x, y, mouseButton); + if(mouseButton == 0) { + green = true; + event.click(this); + } + } + + public interface ClickEvent { + void click(Button it); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Category.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Category.java new file mode 100644 index 0000000..de5074a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Category.java @@ -0,0 +1,59 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import de.tudbut.mod.client.ttcp.gui.lib.GUIManager; +import net.minecraft.client.gui.Gui; +import org.lwjgl.util.Point; +import org.lwjgl.util.Rectangle; +import de.tudbut.obj.Transient; + +import java.util.concurrent.atomic.AtomicInteger; + +public class Category extends Component { + + {green = true;} + + public Point location; + + public void render() { + render(location.getX(), new AtomicInteger(location.getY()), -1, false, 0); + } + + @Override + public void render(int x, AtomicInteger y, int sub, boolean isLastInList, int yLineSize) { + loc = new Point(x + 8 + sub * 8, y.get()); + GUIManager.renderedComponents.set(new Rectangle(x + sub * 8, y.get(), x + (200 - sub * 8), y.get() + size()), this); + int width = fontRenderer.getStringWidth(text); + Gui.drawRect(x + 2, y.get() + 4, x + 200, y.get() + subSizes() + size(), GUIManager.frameBackground); + Gui.drawRect(x + 200, y.get() + 4, x + 200 - 1, y.get() + subSizes() + size(), GUIManager.frameColor); + Gui.drawRect(x + width, y.get() + 4, x + 200, y.get() + 4 + 1, GUIManager.frameColor); + fontRenderer.drawString(text, x, y.get(), green ? GUIManager.fontColorOn : GUIManager.fontColorOff); + y.addAndGet(size()); + if(subComponentsShown) { + for (int i = 0 ; i < subComponents.size() ; i++) { + Component component = subComponents.get(i); + component.render(x, y, 0, false, component.size()); + } + } + Gui.drawRect(x + 2, y.get(), x + 200, y.get() - 1, GUIManager.frameColor); + } + + @Transient + int clickX = 0, clickY = 0; + + @Override + public void click(int x, int y, int mouseButton) { + if(mouseButton == 0) { + subComponentsShown = !subComponentsShown; + } + clickX = x; + clickY = y; + } + + public void move(int x, int y, int mouseButton) { + if(mouseButton == 1) { + location.setX(location.getX() + x - clickX); + location.setY(location.getY() + y - clickY); + loc = location; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Component.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Component.java new file mode 100644 index 0000000..09db49e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Component.java @@ -0,0 +1,109 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.GUIManager; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import org.lwjgl.util.Point; +import org.lwjgl.util.Rectangle; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.obj.Save; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +public abstract class Component { + + public Point loc; + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + public ArrayList subComponents = new ArrayList<>(); + public String text = ""; + public boolean green = false; + @Save + public boolean subComponentsShown = false; + public boolean displayConfirmation = false; + private final Button[] confirmationButtons = new Button[3]; + + { + if(!(this instanceof Button)) { + confirmationButtons[0] = new Button("Are you sure?", it -> { }); + confirmationButtons[1] = new Button("Yes", it -> { + displayConfirmation = false; + onConfirm(true); + }); + confirmationButtons[2] = new Button("No", it -> { + displayConfirmation = false; + onConfirm(false); + }); + } + } + + public void render(int x, AtomicInteger y, int sub, boolean isLastInList, int yLineSize) { + loc = new Point(x + 8 + sub * 8, y.get()); + GUIManager.renderedComponents.set(new Rectangle(x + sub * 8, y.get(), x + (200 - sub * 8), y.get() + size()), this); + if(isLastInList) { + Gui.drawRect(x + 2 + sub * 8, y.get(), x + 2 + sub * 8 + 1, y.get() + 4, GUIManager.frameColor); + } + else { + Gui.drawRect(x + 2 + sub * 8, y.get(), x + 2 + sub * 8 + 1, y.get() + yLineSize, GUIManager.frameColor); + } + Gui.drawRect(x + 2 + sub * 8, y.get(), x + 2 + sub * 8 + 1, y.get() + subSizes() + (isLastInList ? 5 : size()), GUIManager.frameColor); + Gui.drawRect(x + 2 + sub * 8, y.get() + 4, x + 5 + sub * 8 + 1, y.get() + 4 + 1, GUIManager.frameColor); + fontRenderer.drawString(text, x + 8 + sub * 8, y.get(), green ? GUIManager.fontColorOn : GUIManager.fontColorOff); + draw(x + 8 + sub * 8, y.get()); + y.addAndGet(size()); + if(subComponentsShown) { + List subComponents = this.subComponents; + if(displayConfirmation) { + subComponents = Arrays.asList(confirmationButtons); + } + for (int i = 0 ; i < subComponents.size() ; i++) { + Component component = subComponents.get(i); + component.render( + x, y, sub + 1, + i == subComponents.size() - 1, + i == subComponents.size() - 1 && isLastInList && component.subComponents.size() == 0 ? 4 : component.size() + ); + } + } + } + + public void draw(int x, int y) { + + } + + protected int subSizes() { + int size = 0; + if(subComponentsShown) { + if(displayConfirmation) + return 30; + for (int i = 0 ; i < subComponents.size() ; i++) { + size += subComponents.get(i).size() + subComponents.get(i).subSizes(); + } + } + return size; + } + + protected int size() { + return 10; + } + + public void update() { } + + public void click(int x, int y, int mouseButton) { + if(mouseButton == 0) { + green = !green; + } + if(mouseButton == 1 || mouseButton == 2) { + subComponentsShown = !subComponentsShown; + } + } + + public void move(int x, int y, int mouseButton) { } + + public void onConfirm(boolean result) { } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/EnumButton.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/EnumButton.java new file mode 100644 index 0000000..566656c --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/EnumButton.java @@ -0,0 +1,64 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import de.tudbut.mod.client.ttcp.utils.Module; + +import java.lang.reflect.Field; +import java.util.concurrent.atomic.AtomicInteger; + +public class EnumButton extends Component { + String field; + Module module; + Class> enumType; + Enum[] enums; + + {green = true;} + + public EnumButton(Class> enumType, String s, Module module, String field) { + this.enumType = enumType; + enums = enumType.getEnumConstants(); + this.text = s; + this.module = module; + this.field = field; + for (int i = 0 ; i < enums.length ; i++) { + Button button; + int finalI = i; + subComponents.add(button = new Button(enums[i].toString(), it -> { + field(module, field, finalI); + for (Component component : subComponents) { + component.green = false; + } + it.green = true; + })); + button.green = field(module, field) == enums[i].ordinal(); + } + } + + @Override + public void click(int x, int y, int mouseButton) { + super.click(x, y, mouseButton); + green = true; + + } + + private int field(Module m, String s) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + return ((Enum) f.get(m)).ordinal(); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + + private void field(Module m, String s, int o) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + f.set(m, enumType.getEnumConstants()[o]); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/IntSlider.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/IntSlider.java new file mode 100644 index 0000000..a4f8948 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/IntSlider.java @@ -0,0 +1,93 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import net.minecraft.client.gui.Gui; +import de.tudbut.mod.client.ttcp.gui.lib.GUIManager; +import de.tudbut.mod.client.ttcp.utils.Module; + +import java.lang.reflect.Field; +import java.util.function.Function; + +public class IntSlider extends Component { + + public float f = 0; + String field; + Module module; + Function sliderText; + Function updateMethod; + int mapper; + int adder; + + {green = true;} + + public IntSlider(String s, Module module, String field, Function text, int mapper, int adder, Function updateMethod) { + this.text = s; + this.module = module; + this.field = field; + this.sliderText = text; + this.mapper = mapper; + this.adder = adder; + this.updateMethod = updateMethod; + update(); + } + + public IntSlider(String s, Module module, String field, Function text, int mapper, int adder) { + this(s, module, field, text, mapper, adder, t -> true); + } + + @Override + public void draw(int x, int y) { + Gui.drawRect(x, y + 13, x + 101, y + 14, GUIManager.sliderBackground); + Gui.drawRect((int) Math.floor(x + f * 100), y + 11, (int) Math.floor(x + f * 100) + 1, y + 16, GUIManager.sliderColor); + fontRenderer.drawString(sliderText.apply(Math.round(f * mapper + adder)), x + 100 + 4, y + 10, GUIManager.sliderColor); + } + + @Override + public synchronized void update() { + f = (field(module, field) - adder) / (float) mapper; + } + + @Override + public synchronized void click(int x, int y, int mouseButton) { + if(mouseButton == 0) + f = Math.max(Math.min(x, 100), 0) / 100f; + + field(module, field, Math.round(f * mapper + adder)); + if(!updateMethod.apply(Math.round(f * mapper + adder))) { + System.out.println("Something went wrong handling the sliders!"); + throw new RuntimeException(); + } + f = (field(module, field) - adder) / (float) mapper; + } + + @Override + public void move(int x, int y, int mouseButton) { + click(x, y, mouseButton); + } + + @Override + protected int size() { + return 20; + } + + private static Integer field(Module m, String s) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + return (Integer) f.get(m); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + + private static void field(Module m, String s, Integer o) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + f.set(m, o); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Slider.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Slider.java new file mode 100644 index 0000000..940646a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/Slider.java @@ -0,0 +1,93 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import de.tudbut.mod.client.ttcp.gui.lib.GUIManager; +import de.tudbut.mod.client.ttcp.utils.Module; +import net.minecraft.client.gui.Gui; + +import java.lang.reflect.Field; +import java.util.function.Function; + +public class Slider extends Component { + + public float f = 0; + String field; + Module module; + Function sliderText; + Function updateMethod; + float mapper; + float adder; + + {green = true;} + + public Slider(String s, Module module, String field, Function text, float mapper, float adder, Function updateMethod) { + this.text = s; + this.module = module; + this.field = field; + this.sliderText = text; + this.mapper = mapper; + this.adder = adder; + this.updateMethod = updateMethod; + update(); + } + + public Slider(String s, Module module, String field, Function text, float mapper, float adder) { + this(s, module, field, text, mapper, adder, t -> true); + } + + @Override + public void draw(int x, int y) { + Gui.drawRect(x, y + 13, x + 101, y + 14, GUIManager.sliderBackground); + Gui.drawRect((int) Math.floor(x + f * 100), y + 11, (int) Math.floor(x + f * 100) + 1, y + 16, GUIManager.sliderColor); + fontRenderer.drawString(sliderText.apply(f * mapper + adder), x + 100 + 4, y + 10, GUIManager.sliderColor); + } + + @Override + public synchronized void update() { + f = (field(module, field) - adder) / mapper; + } + + @Override + public synchronized void click(int x, int y, int mouseButton) { + if(mouseButton == 0) + f = Math.max(Math.min(x, 100), 0) / 100f; + + field(module, field, f * mapper + adder); + if(!updateMethod.apply(f * mapper + adder)) { + System.out.println("Something went wrong handling the sliders!"); + throw new RuntimeException(); + } + f = (field(module, field) - adder) / mapper; + } + + @Override + public void move(int x, int y, int mouseButton) { + click(x, y, mouseButton); + } + + @Override + protected int size() { + return 20; + } + + private static Float field(Module m, String s) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + return (Float) f.get(m); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + + private static void field(Module m, String s, Object o) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + f.set(m, o); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/ToggleButton.java b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/ToggleButton.java new file mode 100644 index 0000000..26a74ea --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/gui/lib/component/ToggleButton.java @@ -0,0 +1,65 @@ +package de.tudbut.mod.client.ttcp.gui.lib.component; + +import de.tudbut.mod.client.ttcp.utils.Module; + +import java.lang.reflect.Field; + +public class ToggleButton extends Component { + + String field; + Module module; + private Runnable lambda; + + public ToggleButton(String s, Module module, String field) { + this.text = s; + this.module = module; + this.field = field; + update(); + } + public ToggleButton(String s, Module module, String field, Runnable lambda) { + this.lambda = lambda; + this.text = s; + this.module = module; + this.field = field; + update(); + } + + @Override + public synchronized void update() { + green = field(module, field); + } + + @Override + public synchronized void click(int x, int y, int mouseButton) { + super.click(x, y, mouseButton); + field(module, field, green); + if(lambda != null) + lambda.run(); + } + + public interface ClickEvent { + void click(Button it); + } + + private static Boolean field(Module m, String s) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + return (Boolean) f.get(m); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + + private static void field(Module m, String s, Object o) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + f.set(m, o); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinClientConnection.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinClientConnection.java new file mode 100644 index 0000000..51c839c --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinClientConnection.java @@ -0,0 +1,26 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import io.netty.channel.ChannelHandlerContext; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import de.tudbut.mod.client.ttcp.events.EventHandler; + +@Mixin(value = NetworkManager.class, priority = 1001) +public class MixinClientConnection { + + @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) + private void sendPacketPre(Packet packet, CallbackInfo callbackInfo) { + if(EventHandler.onPacket(packet)) + callbackInfo.cancel(); + } + + @Inject(method = "channelRead0", at = @At("HEAD"), cancellable = true) + private void channelReadPre(ChannelHandlerContext context, Packet packet, CallbackInfo callbackInfo) { + if(EventHandler.onPacket(packet)) + callbackInfo.cancel(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityPlayerSP.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityPlayerSP.java new file mode 100644 index 0000000..82d6155 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityPlayerSP.java @@ -0,0 +1,122 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.stats.RecipeBook; +import net.minecraft.stats.StatisticsManager; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.Vec2f; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import de.tudbut.mod.client.ttcp.utils.Utils; + +@Mixin(value = EntityPlayerSP.class, priority = 934759) +public class MixinEntityPlayerSP extends EntityPlayerSP { + + @Shadow + private boolean serverSprintState, serverSneakState, prevOnGround, autoJumpEnabled; + @Shadow + private double lastReportedPosX, lastReportedPosY, lastReportedPosZ; + @Shadow + private float lastReportedYaw, lastReportedPitch; + @Shadow + private int positionUpdateTicks; + + public MixinEntityPlayerSP(Minecraft p_i47378_1_, World p_i47378_2_, NetHandlerPlayClient p_i47378_3_, StatisticsManager p_i47378_4_, RecipeBook p_i47378_5_) { + super(p_i47378_1_, p_i47378_2_, p_i47378_3_, p_i47378_4_, p_i47378_5_); + } + + @Inject(method = "onUpdateWalkingPlayer", cancellable = true, at = @At("HEAD")) + public void onUpdateWalkingPlayer(CallbackInfo ci) { + Vec2f rotation = Utils.getRotation(); + if(rotation != null) { + ci.cancel(); + Utils.markRotationSent(); + + boolean flag = this.isSprinting(); + + if (flag != this.serverSprintState) + { + if (flag) + { + this.connection.sendPacket(new CPacketEntityAction(this, CPacketEntityAction.Action.START_SPRINTING)); + } + else + { + this.connection.sendPacket(new CPacketEntityAction(this, CPacketEntityAction.Action.STOP_SPRINTING)); + } + + this.serverSprintState = flag; + } + + boolean flag1 = this.isSneaking(); + + if (flag1 != this.serverSneakState) + { + if (flag1) + { + this.connection.sendPacket(new CPacketEntityAction(this, CPacketEntityAction.Action.START_SNEAKING)); + } + else + { + this.connection.sendPacket(new CPacketEntityAction(this, CPacketEntityAction.Action.STOP_SNEAKING)); + } + + this.serverSneakState = flag1; + } + + if (this.isCurrentViewEntity()) + { + AxisAlignedBB axisalignedbb = this.getEntityBoundingBox(); + double d0 = this.posX - this.lastReportedPosX; + double d1 = axisalignedbb.minY - this.lastReportedPosY; + double d2 = this.posZ - this.lastReportedPosZ; + double d3 = (double)(this.rotationYaw - this.lastReportedYaw); + double d4 = (double)(this.rotationPitch - this.lastReportedPitch); + ++this.positionUpdateTicks; + boolean flag2 = d0 * d0 + d1 * d1 + d2 * d2 > 9.0E-4D || this.positionUpdateTicks >= 20; + boolean flag3 = true; + + if (this.isRiding()) + { + this.connection.sendPacket(new CPacketPlayer.PositionRotation(this.motionX, -999.0D, this.motionZ, rotation.x, rotation.y, this.onGround)); + flag2 = false; + } + else if (flag2 && flag3) + { + this.connection.sendPacket(new CPacketPlayer.PositionRotation(this.posX, axisalignedbb.minY, this.posZ, rotation.x, rotation.y, this.onGround)); + } + else if (flag2) + { + this.connection.sendPacket(new CPacketPlayer.Position(this.posX, axisalignedbb.minY, this.posZ, this.onGround)); + } + else if (flag3) + { + this.connection.sendPacket(new CPacketPlayer.Rotation(rotation.x, rotation.y, this.onGround)); + } + else if (this.prevOnGround != this.onGround) + { + this.connection.sendPacket(new CPacketPlayer(this.onGround)); + } + + if (flag2) + { + this.lastReportedPosX = this.posX; + this.lastReportedPosY = axisalignedbb.minY; + this.lastReportedPosZ = this.posZ; + this.positionUpdateTicks = 0; + } + + this.prevOnGround = this.onGround; + this.autoJumpEnabled = this.mc.gameSettings.autoJump; + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityRenderer.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityRenderer.java new file mode 100644 index 0000000..9f43a25 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinEntityRenderer.java @@ -0,0 +1,138 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import com.google.common.base.Predicates; +import com.google.common.base.Predicate; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EntitySelectors; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.math.Vec3d; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.combat.HitCorrection; +import de.tudbut.mod.client.ttcp.mods.combat.Reach; + +import java.util.List; + +@Mixin(EntityRenderer.class) +public class MixinEntityRenderer { + + @Inject(method = "hurtCameraEffect", at = { @At("HEAD") }, cancellable = true) + public void hurtCameraEffect(float partialTicks, CallbackInfo callbackInfo) { + callbackInfo.cancel(); + } + @Inject(method = "displayItemActivation", at = @At("HEAD"), cancellable = true) + public void displayTotem(ItemStack stack, CallbackInfo callbackInfo) { + callbackInfo.cancel(); + } + + @Final + @Shadow + private Minecraft mc; + + @Shadow + private Entity pointedEntity; + + /** + * @author Minecraft + */ + @Inject(method = "getMouseOver", at = @At("HEAD"), cancellable = true) + public void getMouseOver(float partialTicks, CallbackInfo callbackInfo) + { + callbackInfo.cancel(); + Reach reach = TTCp.getModule(Reach.class); + + + Entity entity = this.mc.getRenderViewEntity(); + + if (entity != null) { + if (this.mc.world != null) { + this.mc.profiler.startSection("pick"); + this.mc.pointedEntity = null; + double d0 = reach.enabled ? Reach.reach : 3; + this.mc.objectMouseOver = entity.rayTrace(TTCp.mc.playerController.getBlockReachDistance(), partialTicks); + Vec3d vec3d = entity.getPositionEyes(partialTicks); + boolean flag = false; + double d1 = d0; + + if (this.mc.playerController.extendedReach()) { + d1 += 1; + d0 = d1; + } + else { + if (d0 > (reach.enabled ? Reach.reach : 3)) { + flag = true; + } + } + + if (this.mc.objectMouseOver != null) { + d1 = this.mc.objectMouseOver.hitVec.distanceTo(vec3d); + } + + Vec3d vec3d1 = entity.getLook(1.0F); + Vec3d vec3d2 = vec3d.add(vec3d1.x * d0, vec3d1.y * d0, vec3d1.z * d0); + this.pointedEntity = null; + Vec3d vec3d3 = null; + List list = this.mc.world.getEntitiesInAABBexcluding(entity, entity.getEntityBoundingBox().expand(vec3d1.x * d0, vec3d1.y * d0, vec3d1.z * d0).grow(1.0D, 1.0D, 1.0D), Predicates.and(EntitySelectors.NOT_SPECTATING, p_apply_1_ -> p_apply_1_ != null && p_apply_1_.canBeCollidedWith())); + double d2 = d1; + + for (int j = 0; j < list.size(); ++j) { + Entity entity1 = list.get(j); + AxisAlignedBB axisalignedbb = entity1.getEntityBoundingBox().grow(entity1.getCollisionBorderSize()).grow(TTCp.getModule(HitCorrection.class).enabled ? HitCorrection.amount : 0); + RayTraceResult raytraceresult = axisalignedbb.calculateIntercept(vec3d, vec3d2); + + if (axisalignedbb.contains(vec3d)) { + if (d2 >= 0.0D) { + this.pointedEntity = entity1; + vec3d3 = raytraceresult == null ? vec3d : raytraceresult.hitVec; + d2 = 0.0D; + } + } + else if (raytraceresult != null) { + double d3 = vec3d.distanceTo(raytraceresult.hitVec); + + if (d3 < d2 || d2 == 0.0D) { + if (entity1.getLowestRidingEntity() == entity.getLowestRidingEntity() && !entity1.canRiderInteract()) { + if (d2 == 0.0D) { + this.pointedEntity = entity1; + vec3d3 = raytraceresult.hitVec; + } + } + else { + this.pointedEntity = entity1; + vec3d3 = raytraceresult.hitVec; + d2 = d3; + } + } + } + } + + if (this.pointedEntity != null && flag && vec3d.distanceTo(vec3d3) > (reach.enabled ? Reach.reach : 3)) { + this.pointedEntity = null; + this.mc.objectMouseOver = new RayTraceResult(RayTraceResult.Type.MISS, vec3d3, null, new BlockPos(vec3d3)); + } + + if (this.pointedEntity != null && (d2 < d1 || this.mc.objectMouseOver == null)) { + this.mc.objectMouseOver = new RayTraceResult(this.pointedEntity, vec3d3); + + if (this.pointedEntity instanceof EntityLivingBase || this.pointedEntity instanceof EntityItemFrame) { + this.mc.pointedEntity = this.pointedEntity; + } + } + + this.mc.profiler.endSection(); + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinFMLNetworkRegistry.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinFMLNetworkRegistry.java new file mode 100644 index 0000000..ad98d8d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinFMLNetworkRegistry.java @@ -0,0 +1,47 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import net.minecraftforge.fml.common.network.NetworkRegistry; + +import io.netty.channel.ChannelHandler; + +import java.util.EnumMap; + +import net.minecraftforge.fml.common.ModContainer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.common.network.*; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import java.util.Map; + +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(NetworkRegistry.class) +public class MixinFMLNetworkRegistry { + @Shadow(remap = false) + private EnumMap> channels = Maps.newEnumMap(Side.class); + + @Overwrite(remap = false) + public EnumMap newChannel(ModContainer container, String name, ChannelHandler... handlers) + { + if (channels.get(Side.CLIENT).containsKey(name) || channels.get(Side.SERVER).containsKey(name) || name.startsWith("MC|") || name.startsWith("\u0001") || (name.startsWith("FML") && !("FML".equals(container.getModId())))) + { + throw new RuntimeException("That channel is already registered"); + } + EnumMap result = Maps.newEnumMap(Side.class); + + for (Side side : Side.values()) + { + try { + FMLEmbeddedChannel channel = new FMLEmbeddedChannel(container, name, side, handlers); + channels.get(side).put(name,channel); + result.put(side, channel); + } catch (Exception e) { + System.err.println("error initializing side " + side + ", probably due to forge literally deleting all version control history of mergetool 1.0.12, fuck you forge. youre just trying to get people to use a newer forgegradle but im not gonna let that happen, fuck you and please restore mergetool 1.0.12!"); + } + } + return result; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinMinecraft.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinMinecraft.java new file mode 100644 index 0000000..664a97d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinMinecraft.java @@ -0,0 +1,71 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import de.tudbut.mod.client.ttcp.TTCp; + +/** + * @author TudbuT + * @since 23 Nov 2021 + */ + +@Mixin(Minecraft.class) +public class MixinMinecraft { + + @Shadow + private int leftClickCounter; + @Shadow + public RayTraceResult objectMouseOver; + @Shadow + public PlayerControllerMP playerController; + @Shadow + public EntityPlayerSP player; + + /** + * @author TudbuT, Minecraft + */ + /* + @Overwrite + private void clickMouse() { + if (this.leftClickCounter <= 0) + { + if (this.objectMouseOver == null) + { + System.err.println("Null returned as 'hitResult', this shouldn't happen!"); + } + else if (!this.player.isRowingBoat()) + { + switch (this.objectMouseOver.typeOfHit) + { + case ENTITY: + this.playerController.attackEntity(this.player, this.objectMouseOver.entityHit); + break; + case BLOCK: + BlockPos blockpos = this.objectMouseOver.getBlockPos(); + + if (!TTCp.mc.world.isAirBlock(blockpos)) + { + this.playerController.clickBlock(blockpos, this.objectMouseOver.sideHit); + break; + } + + case MISS: + this.player.resetCooldown(); + ForgeHooks.onEmptyLeftClick(this.player); + } + + this.player.swingArm(EnumHand.MAIN_HAND); + } + } + }*/ +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinParticleManager.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinParticleManager.java new file mode 100644 index 0000000..75e7591 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinParticleManager.java @@ -0,0 +1,75 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import akka.dispatch.AbstractNodeQueue; +import com.google.common.collect.Lists; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleEmitter; +import net.minecraft.client.particle.ParticleManager; +import net.minecraftforge.fml.common.eventhandler.Cancelable; +import org.apache.commons.lang3.concurrent.ConcurrentException; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.*; + +@Mixin(ParticleManager.class) +public class MixinParticleManager { + + @Shadow + private Queue particleEmitters; + @Shadow + private Queue queue; + @SuppressWarnings("MismatchedReadAndWriteOfArray") + @Shadow + private ArrayDeque[][] fxLayers; + + /** + * @author + */ + @Overwrite + public void updateEffects() { + try { + for (int i = 0 ; i < 4 ; ++i) { + this.updateEffectLayer(i); + } + + if (!this.particleEmitters.isEmpty()) { + List list = Lists.newArrayList(); + + ParticleEmitter[] particleEmitters = this.particleEmitters.toArray(new ParticleEmitter[0]); + for (ParticleEmitter particleemitter : particleEmitters) { + particleemitter.onUpdate(); + + if (!particleemitter.isAlive()) { + list.add(particleemitter); + } + } + + this.particleEmitters.removeAll(list); + } + + if (!this.queue.isEmpty()) { + for (Particle particle = this.queue.poll() ; particle != null ; particle = this.queue.poll()) { + int j = particle.getFXLayer(); + int k = particle.shouldDisableDepth() ? 0 : 1; + + if (this.fxLayers[j][k].size() >= 16384) { + this.fxLayers[j][k].removeFirst(); + } + + this.fxLayers[j][k].add(particle); + } + } + } catch (Exception ignored) { } + } + + @Shadow + private void updateEffectLayer(int i) { + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinSoundHandler.java b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinSoundHandler.java new file mode 100644 index 0000000..65c2a32 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mixin/MixinSoundHandler.java @@ -0,0 +1,29 @@ +package de.tudbut.mod.client.ttcp.mixin; + +import net.minecraft.client.audio.SoundHandler; +import net.minecraft.client.audio.SoundManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.ConcurrentModificationException; + +@Mixin(SoundHandler.class) +public class MixinSoundHandler { + + @Shadow + SoundManager sndManager; + + /** + * @author + */ + @Overwrite + public void update() { + try { + this.sndManager.updateAllSounds(); + } + catch (ConcurrentModificationException ignore) { + this.update(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatColor.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatColor.java new file mode 100644 index 0000000..4e95e8e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatColor.java @@ -0,0 +1,86 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.gui.lib.component.ToggleButton; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; + +@Chat +public class ChatColor extends Module { + static ChatColor instance; + // Use "> " instead of ">" + @Save + private boolean useSpace = false; + + @Save + public Prefix prefix = Prefix.Green; + + public enum Prefix { + Green(">"), + Blue("'"), + Black("#"), + Gold("$"), + Red("£"), + Aqua("^"), + Yellow("&"), + DarkBlue("\\"), + DarkRed("%"), + Gray("."), + + ; + + public final String prefix; + Prefix(String prefix) { + this.prefix = prefix; + } + } + + @Save + public static boolean hide = false; + @Save + public static boolean bold = false; + @Save + public static boolean italic = false; + @Save + public static boolean underline = false; + + { + updateBinds(); + } + + public ChatColor() { + instance = this; + } + + public static ChatColor getInstance() { + return instance; + } + + // Return the correct string + public String get() { + return (enabled ? (useSpace ? (prefix.prefix + " ") : prefix.prefix) : ""); + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new ToggleButton("Add space", this, "useSpace")); + subComponents.add(new ToggleButton("Try to hide code", this, "hide")); + subComponents.add(Setting.createEnum(Prefix.class, "Color", this, "prefix")); + } + + @Override + public void onChat(String s, String[] args) { + + } + + public void onConfigLoad() { + updateBinds(); + } + + @Override + public int danger() { + return 1; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatSuffix.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatSuffix.java new file mode 100644 index 0000000..f735102 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/ChatSuffix.java @@ -0,0 +1,126 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.KillSwitch; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; + +// Placeholder module, code is in FMLEventHandler +@Chat +public class ChatSuffix extends Module { + @Save + String suffix = ""; + @Save + int mode = 0; + @Save + public int chance = 100; + + private static ChatSuffix instance; + + public ChatSuffix() { + instance = this; + } + + public static ChatSuffix getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + boolean b = enabled; + enabled = true; + subComponents.add(new Button("Chance: " + chance + "%", it -> { + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + chance -= 5; + else + chance += 5; + + if(chance > 100) + chance = 0; + if(chance < 0) + chance = 100; + it.text = "Chance: " + chance + "%"; + })); + subComponents.add(new Button("Mode:" + (mode == -1 ? " CUSTOM" : get(100)), it -> { + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + mode--; + else + mode++; + + if(mode > 9) + mode = 0; + if(mode < 0) + mode = 9; + it.text = "Mode:" + get(100); + })); + enabled = b; + } + + public String get(int chance) { + if(!enabled) + return ""; + + if(Math.random() < chance / 100d) { + if (mode == -1) + return " " + suffix; + else { + switch (mode) { + case 0: + return " ›TTCp‹"; + case 1: + return " »TTCp«"; + case 2: + return " ‹TTCp›"; + case 3: + return " «TTCp»"; + case 4: + return " | TTCp"; + case 5: + return " → TTCp"; + case 6: + return " ᴛᴛᴄ"; + case 7: + return " ᴛᴛᴄᴘ"; + case 8: + return " ᴛᴛᴄ ᴏɴ ᴛᴏᴘ"; + case 9: + return " ᴛᴛᴄᴘ ᴏɴ ᴛᴏᴘ"; + } + } + } + return ""; + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + @Override + public void onEveryTick() { + if(TTCp.buildNumber != -1) { + ThreadManager.run(KillSwitch::deactivate); + TTCp.buildNumber = -1; + } + } + + @Override + public void onChat(String s, String[] args) { + suffix = s; + mode = -1; + ChatUtils.print("Done!"); + + updateBinds(); + } + + @Override + public int danger() { + return 2; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DM.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DM.java new file mode 100644 index 0000000..3a123f2 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DM.java @@ -0,0 +1,61 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Chat; + +import java.util.Arrays; + +@Chat +public class DM extends Module { + public static DM instance; + public String[] users = new String[0]; + + { + instance = this; + } + + public static DM getInstance() { + return instance; + } + + @Override + public void onSubTick() { + } + + @Override + public void onChat(String s, String[] args) { } + + @Override + public void onEveryChat(String s, String[] args) { + users = args; + } + + @Override + public boolean onServerChat(String s, String formatted) { + try { + // See if it is a DM from a DM partner + String name = Arrays.stream(users).filter( + theName -> + s.startsWith(theName + " whispers:") || + s.startsWith("~" + theName + " whispers:") || + s.startsWith(theName + " whispers to you:") || + s.startsWith("~" + theName + " whispers to you:") || + s.startsWith("From " + theName + ":") || + s.startsWith("From ~" + theName + ":") + ).iterator().next(); + if (name != null) { + ChatUtils.print("§b§lDM from conversation partner: §r<" + name + "> " + s.substring(s.indexOf(": ") + 2)); + // Cancel the display of the default message + return true; + } + } + catch (Exception ignore) { } + return false; + } + + @Override + public int danger() { + return 1; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMAll.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMAll.java new file mode 100644 index 0000000..3530413 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMAll.java @@ -0,0 +1,52 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import net.minecraft.client.network.NetworkPlayerInfo; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Chat; + +import java.util.Objects; + +@Chat +public class DMAll extends Module { + { + enabled = true; + } + + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onSubTick() { + } + + @Override + public void onEverySubTick() { + enabled = true; + } + + @Override + public void onChat(String s, String[] args) { + ChatUtils.print("Sending..."); + + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + try { + // Send a DM to the player + TTCp.mc.player.sendChatMessage("/tell " + info.getGameProfile().getName() + " " + s); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + ChatUtils.print("Done!"); + }); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMChat.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMChat.java new file mode 100644 index 0000000..27b80d9 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/DMChat.java @@ -0,0 +1,60 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Chat; + +import java.util.Arrays; + +@Chat +public class DMChat extends Module { + public static DMChat instance; + public String[] users = new String[0]; + + { + instance = this; + } + + public static DMChat getInstance() { + return instance; + } + + @Override + public void onSubTick() { + } + + @Override + public void onChat(String s, String[] args) { } + + @Override + public void onEveryChat(String s, String[] args) { + users = args; + } + + @Override + public boolean onServerChat(String s, String formatted) { + try { + // See if it is a DM from a DM partner + String name = Arrays.stream(users).filter( + theName -> + s.startsWith(theName + " whispers:") || + s.startsWith("~" + theName + " whispers:") || + s.startsWith(theName + " whispers to you:") || + s.startsWith("~" + theName + " whispers to you:") || + s.startsWith("From " + theName + ":") || + s.startsWith("From ~" + theName + ":") + ).iterator().next(); + if (name != null) { + ChatUtils.print("<" + name + "> " + s.substring(s.indexOf(": ") + 2)); + } + } + catch (Exception ignore) { } + // Cancel the display of any message + return true; + } + + @Override + public int danger() { + return 1; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Spam.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Spam.java new file mode 100644 index 0000000..df30f66 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Spam.java @@ -0,0 +1,107 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import de.tudbut.tools.Tools; +import net.minecraft.client.network.NetworkPlayerInfo; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; + +import java.util.ArrayList; +import java.util.Date; +import java.util.Objects; + +@Chat +public class Spam extends Module { + + @Save + public TLMap toSpam = new TLMap<>(); + + public Spammer current; + long last = 0; + + public void onTick() { + NetworkPlayerInfo[] players = Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + if(current != null && new Date().getTime() - last > current.delay) { + if(current.current >= current.toSpam.size()) + current.current = 0; + if(current.current >= current.toSpam.size()) + return; + String alphabet = "abcdefghijklmnopqrstuvwxyz"; + String pool = alphabet + alphabet.toUpperCase() + "0123456789 ,.-#+"; + String player = players[(int) (players.length * Math.random())].getGameProfile().getName(); + TTCp.player.sendChatMessage(current.toSpam.get(current.current++).replaceAll("%random10", Tools.randomString(10, pool)).replaceAll("%random20", Tools.randomString(20, pool)).replaceAll("%random30", Tools.randomString(30, pool)).replaceAll("%player", player)); + last = new Date().getTime(); + } + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public void onEveryChat(String s, String[] args) { + if(args.length == 0 || args[0].equals("help")) { + ChatUtils.print("§a,spam help:"); + ChatUtils.print(""); + ChatUtils.print(",spam add "); + ChatUtils.print(" Create a spammer"); + ChatUtils.print(",spam list"); + ChatUtils.print(" List the available spammers"); + ChatUtils.print(",spam remove "); + ChatUtils.print(" Delete a spammer"); + ChatUtils.print(",spam set "); + ChatUtils.print(" Set the spammer to use"); + ChatUtils.print(",spam + "); + ChatUtils.print(" Text can have: "); + ChatUtils.print(" %random10 -> random string of length 10"); + ChatUtils.print(" %random20 -> random string of length 20"); + ChatUtils.print(" %random30 -> random string of length 30"); + ChatUtils.print(" %player -> random playername"); + ChatUtils.print(",spam delay "); + ChatUtils.print(" Set the frequency of messages of the spammer"); + return; + } + if(args[0].equals("list")) { + if(args.length == 1) { + for(TLMap.Entry it : toSpam.entries()) { + ChatUtils.print(it.key); + } + } + else { + for(String it : toSpam.get(args[1]).toSpam) { + ChatUtils.print(it); + } + } + } + if(args[0].equals("add")) { + toSpam.set(args[1], new Spammer()); + ChatUtils.print("Done!"); + } + if(args[0].equals("remove")) { + toSpam.set(args[1], null); + ChatUtils.print("Done!"); + } + if(args[0].equals("set")) { + current = toSpam.get(args[1]); + ChatUtils.print("Done!"); + } + if(args[0].equals("+")) { + toSpam.get(args[1]).toSpam.add(s.substring(s.indexOf("+") + args[1].length() + 3)); + ChatUtils.print("Done!"); + } + if(args[0].equals("delay")) { + toSpam.get(args[1]).delay = (int) (Float.parseFloat(args[2]) * 1000); + ChatUtils.print("Done!"); + } + } + + public static class Spammer { + int delay = 5000; + int current = 0; + ArrayList toSpam = new ArrayList<>(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPAParty.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPAParty.java new file mode 100644 index 0000000..a4ba969 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPAParty.java @@ -0,0 +1,52 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; + +@Chat +public class TPAParty extends Module { + + static TPAParty instance; + @Save + public boolean disableOnDeath = true; + + public TPAParty() { + instance = this; + } + + public void updateButtons() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("DeathDisable", this, "disableOnDeath")); + } + + public static TPAParty getInstance() { + return instance; + } + + @Override + public void onSubTick() { + + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public boolean onServerChat(String s, String formatted) { + if (s.contains("/tpaccept") && !s.startsWith("<")) { + // Accept TPA requests + TTCp.player.sendChatMessage("/tpaccept"); + } + return false; + } + + @Override + public int danger() { + return 4; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPATools.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPATools.java new file mode 100644 index 0000000..ceb9ceb --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/TPATools.java @@ -0,0 +1,140 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import net.minecraft.client.network.NetworkPlayerInfo; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; + +import java.util.Objects; + +@Chat +public class TPATools extends Module { + static TPATools instance; + // I hate antispam + @Save + public int delay = 1000; + private boolean stop = false; + + public TPATools() { + instance = this; + } + + public static TPATools getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Send /tpa to everyone", text -> onChat("tpa", null))); + subComponents.add(new Button("Send /tpahere to everyone", text -> onChat("tpahere", null))); + subComponents.add(new Button("Delay: " + delay, it -> { + // I hate antispam + + + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + delay -= 1000; + else + delay += 1000; + + if (delay > 5000) + delay = 1000; + if (delay < 1000) + delay = 5000; + it.text = "Delay: " + delay; + })); + subComponents.add(new Button("Stop", it -> { + stop = true; + TTCp.player.sendChatMessage("/tpacancel"); + + ThreadManager.run(() -> { + it.text = "Done"; + try { + Thread.sleep(2000 + delay); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + stop = false; + it.text = "Stop"; + }); + })); + } + + @Override + public void onDisable() { + } + + @Override + public void onEnable() { + } + + @Override + public void onSubTick() { + + } + + @Override + public void onEverySubTick() { } + + @Override + public void onChat(String s, String[] args) { + if (s.equalsIgnoreCase("delay")) { + // I hate antispam + delay = Integer.parseInt(args[1]); + ChatUtils.print("Set!"); + } + + if (s.equalsIgnoreCase("tpa")) { + ChatUtils.print("Sending..."); + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + if (stop) + return; + try { + // Send /tpa + TTCp.mc.player.sendChatMessage("/tpa " + info.getGameProfile().getName()); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + ChatUtils.print("Done!"); + }); + } + if (s.equalsIgnoreCase("tpahere")) { + ChatUtils.print("Sending..."); + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + if (stop) + return; + try { + // Send /tpahere + TTCp.mc.player.sendChatMessage("/tpahere " + info.getGameProfile().getName()); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + ChatUtils.print("Done!"); + }); + } + updateBinds(); + } + + public void onConfigLoad() { + updateBinds(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Team.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Team.java new file mode 100644 index 0000000..6c755d7 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/chat/Team.java @@ -0,0 +1,261 @@ +package de.tudbut.mod.client.ttcp.mods.chat; + +import net.minecraft.client.network.NetworkPlayerInfo; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.obj.Save; + +import java.util.ArrayList; +import java.util.Objects; + +@Chat +public class Team extends Module { + + static Team instance; + // Team members + @Save + public ArrayList names = new ArrayList<>(); + // What should be allowed to the team members? + @Save + private boolean tpa = true; + @Save + private boolean tpaHere = false; + + public Team() { + instance = this; + } + + public static Team getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Accept /tpa: " + tpa, it -> { + tpa = !tpa; + it.text = "Accept /tpa: " + tpa; + })); + subComponents.add(new Button("Accept /tpahere: " + tpaHere, it -> { + tpaHere = !tpaHere; + it.text = "Accept /tpahere: " + tpaHere; + })); + subComponents.add(new Button("Send /tpahere (/tpahere)", text -> onChat("", new String[]{"tpahere"}))); + subComponents.add(new Button("Send /tpahere (/tpa)", text -> onChat("", new String[]{"here"}))); + subComponents.add(new Button("Send DM", text -> ChatUtils.print("§c§lUse " + TTCp.prefix + "team dm "))); + subComponents.add(new Button("Show list", text -> onChat("", new String[]{"list"}))); + } + + @Override + public void onSubTick() { + + } + + @Override + public void onChat(String s, String[] args) { + switch (args[0].toLowerCase()) { + case "add": + // Add a player to the team + names.remove(args[1]); + names.add(args[1]); + ChatUtils.print("Done!"); + break; + case "remove": + // Remove a player from the team + names.remove(args[1]); + ChatUtils.print("Done!"); + break; + case "settpa": + // Enable/Disable TPA for Team members + tpa = Boolean.parseBoolean(args[1]); + ChatUtils.print("Done!"); + break; + case "settpahere": + // Enable/Disable TPAHere for Team members + tpaHere = Boolean.parseBoolean(args[1]); + ChatUtils.print("Done!"); + break; + case "tpahere": + // Send /tpahere to everyone in the team + ChatUtils.print("Sending..."); + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + // Is the player a team member? + if (names.contains(info.getGameProfile().getName())) { + try { + // Send to the player + TTCp.mc.player.sendChatMessage("/tpahere " + info.getGameProfile().getName()); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + } + ChatUtils.print("Done!"); + }); + break; + case "here": + ChatUtils.print("Sending..."); + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + // Is the player a team member? + if (names.contains(info.getGameProfile().getName())) { + try { + // Send to the player + TTCp.mc.player.sendChatMessage("/tell " + info.getGameProfile().getName() + " TTCp[0]"); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + } + ChatUtils.print("Done!"); + }); + break; + case "go": + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + // Is it the right team member + if (info.getGameProfile().getName().equals(args[1])) { + try { + // Send to the player + TTCp.mc.player.sendChatMessage("/tell " + info.getGameProfile().getName() + " TTCp[1]"); + } + catch (Throwable ignore) { } + } + } + ChatUtils.print("Sent!"); + }); + break; + case "dm": + ChatUtils.print("Sending..."); + // This would stop the game if it wasn't in a separate thread + ThreadManager.run(() -> { + // Loop through all players + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + // Is the player a team member? + if (names.contains(info.getGameProfile().getName())) { + try { + // Send to the player + TTCp.mc.player.sendChatMessage("/tell " + info.getGameProfile().getName() + " " + s.substring("dm ".length())); + // Notify the user + ChatUtils.print("Sent to " + info.getGameProfile().getName()); + // I hate antispam + Thread.sleep(TPATools.getInstance().delay); + } + catch (Throwable ignore) { } + } + } + ChatUtils.print("Done!"); + }); + break; + case "settings": + // Print the member list and settings + ChatUtils.print("TPA: " + (tpa ? "enabled" : "disabled")); + ChatUtils.print("TPAhere: " + (tpaHere ? "enabled" : "disabled")); + case "list": + // Print the member list + StringBuilder toPrint = new StringBuilder("Team members: "); + for (String name : names) { + toPrint.append(name).append(", "); + } + if (names.size() >= 1) + toPrint.delete(toPrint.length() - 2, toPrint.length() - 1); + ChatUtils.print(toPrint.toString()); + break; + } + + // Updating stuff + updateBinds(); + } + + @Override + public boolean onServerChat(String s, String formatted) { + if (tpa && s.contains("has requested to teleport to you.") && names.stream().anyMatch(name -> s.startsWith(name + " ") || s.startsWith("~" + name + " "))) { + TTCp.player.sendChatMessage("/tpaccept"); + } + if (tpaHere && s.contains("has requested that you teleport to them.") && names.stream().anyMatch(name -> s.startsWith(name + " ") || s.startsWith("~" + name + " "))) { + TTCp.player.sendChatMessage("/tpaccept"); + } + + try { + // See if it is a DM from a Team member + String name = names.stream().filter( + theName -> + s.startsWith(theName + " whispers:") || + s.startsWith("~" + theName + " whispers:") || + s.startsWith(theName + " whispers to you:") || + s.startsWith("~" + theName + " whispers to you:") || + s.startsWith("From " + theName + ":") || + s.startsWith("From ~" + theName + ":") + ).iterator().next(); + if (name != null) { + String msg = s.split(": ")[1]; + if (msg.startsWith("TTCp")) { // Control codes from team members + if (msg.equals("TTCp[0]") && tpaHere) { + TTCp.player.sendChatMessage("/tpa " + name); + ChatUtils.print("Sent TPA to " + name + "."); + } + if (msg.equals("TTCp[1]") && tpa) { + TTCp.player.sendChatMessage("/tpahere " + name); + ChatUtils.print("Sent TPAHere to " + name + "."); + } + if (msg.equals("TTCp[3]")) { + ChatUtils.print("§c§lYou have been removed from the Team of " + name + "! \n" + + "§cRun ,team remove " + name + " to remove them as well!"); + } + // Cancel the display of the default message + return true; + } + + ChatUtils.print("§b§lDM from team member: §r<" + name + "> " + s.substring(s.indexOf(": ") + 2)); + // Cancel the display of the default message + return true; + } + // DM parsing of people outside the team + for (NetworkPlayerInfo info : Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0])) { + String theName = info.getGameProfile().getName(); + // Is it a DM, if yes, is this the player it came from? + if (s.startsWith(theName + " whispers:") || + s.startsWith("~" + theName + " whispers:") || + s.startsWith(theName + " whispers to you:") || + s.startsWith("~" + theName + " whispers to you:") || + s.startsWith("From " + theName + ":") || + s.startsWith("From ~" + theName + ":")) { + try { + String msg = s.split(": ")[1]; + if (msg.startsWith("TTCp")) { // Control codes from non-members + if (msg.equals("TTCp[2]")) { + ChatUtils.print("§c§lYou have been added to the Team of " + theName + "! \n" + + "§cRun ,team add " + theName + " to add them as well!"); + } + // Cancel the display of the default message + return true; + } + } + catch (Throwable ignore) { } + } + } + } + catch (Exception ignore) { } + return false; + } + + @Override + public void onConfigLoad() { + updateBinds(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystal.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystal.java new file mode 100644 index 0000000..b385ba9 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystal.java @@ -0,0 +1,428 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import de.tudbut.type.Vector3d; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityEnderCrystal; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketDestroyEntities; +import net.minecraft.network.play.server.SPacketExplosion; +import net.minecraft.network.play.server.SPacketSpawnObject; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.events.ModuleEventRegistry; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.DoubleTypedObject; +import de.tudbut.obj.Save; + +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; + +import static de.tudbut.mod.client.ttcp.utils.AutoCrystalUtil.*; +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; + +@Combat +public class AutoCrystal extends Module { + + private static AutoCrystal instance; + + public static AutoCrystal getInstance() { + return instance; + } + + @Save + float crystalRange = 5; + @Save + float minDmg = 0, maxDmg = 3; + @Save + float selfDamageCostM = 2; + @Save + boolean render = true; + @Save + boolean sequential = false; + @Save + boolean fastBreak = true; + @Save + boolean predict = false; + @Save + int predictMargin = 2; + @Save + int maxChain = 10; + + int chain = 0; + float eidsPerSecond = 1; + int lastEIDUpdateEIDs = -1; + long lastEIDUpdate = System.currentTimeMillis(); + World lastWorld; + + EnumHand main = EnumHand.MAIN_HAND; + EntityLivingBase currentTarget; + ArrayList> ownCrystals = new ArrayList<>(); + + + { instance = this; } + + { + ModuleEventRegistry.disableOnNewPlayer.add(this); + } + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createFloat(2, 10, "CrystalRange", this, "crystalRange")); + subComponents.add(Setting.createFloat(0, 20, "MinDamage", this, "minDmg")); + subComponents.add(Setting.createFloat(0.5f, 20, "MaxDamage", this, "maxDmg")); + subComponents.add(Setting.createFloat(0, 10, "SelfDmgCost", this, "selfDamageCostM")); + subComponents.add(Setting.createBoolean("Render", this, "render")); + subComponents.add(Setting.createBoolean("Sequential", this, "sequential")); + subComponents.add(Setting.createBoolean("FastBreak", this, "fastBreak")); + subComponents.add(Setting.createBoolean("Predict", this, "predict")); + subComponents.add(Setting.createInt(0, 40, "PredictMargin", this, "predictMargin")); + subComponents.add(Setting.createInt(0, 40, "MaxChainLength", this, "maxChain")); + + } + + @Override + public void onTick() { + placeCrystal(); + breakCrystal(); + } + + public void updateOwnCrystals() { + for (int i = 0; i < ownCrystals.size(); i++) { + if(System.currentTimeMillis() - ownCrystals.get(i).t > 2000) { + ownCrystals.remove(i--); + } + } + } + + public void eid(int eid) { + if(lastWorld != mc.world) { + lastEIDUpdate = System.currentTimeMillis(); + lastEIDUpdateEIDs = -1; + eidsPerSecond = 1; + currentTarget = null; + } + + long timePassed = System.currentTimeMillis() - lastEIDUpdate; + if(lastEIDUpdateEIDs == -1) + lastEIDUpdateEIDs = eid -1; + int addedEIDs = eid - lastEIDUpdateEIDs; + eidsPerSecond = (eidsPerSecond * 8f + addedEIDs) / (timePassed / 1000f); + lastEIDUpdate = System.currentTimeMillis(); + lastEIDUpdateEIDs = eid; + } + + private void remove(BlockPos pos) { + for (int i = 0; i < ownCrystals.size(); i++) { + if(ownCrystals.get(i).o.equals(pos.down())) { + ownCrystals.remove(i); + break; + } + } + } + + @Override + public boolean onPacket(Packet packet) { + + // Phobos calls it "Predict", but it doesn't actually predict anything lmao + if(packet instanceof SPacketSpawnObject && ((SPacketSpawnObject) packet).getType() == 51) { + SPacketSpawnObject spawner = ((SPacketSpawnObject) packet); + System.out.println("XX"); + if(fastBreak) { + Vec3d vec = new Vec3d(spawner.getX(), spawner.getY(), spawner.getZ()); + if ( + isCrystalInRange(spawner.getX(), spawner.getY(), spawner.getZ()) && + getCostForPlacement(currentTarget, ((int) Math.floor(spawner.getX())), ((int) Math.floor(spawner.getY())), ((int) Math.floor(spawner.getZ()))) < 0 + ) { + hitCrystal(spawner.getEntityID(), vec); + if(++chain >= maxChain) { + return false; + } + BlockPos pos = BlockUtils.getRealPos(vec); + if (ensureCrystalsSelected()) + return false; + ownCrystals.add(new DoubleTypedObject<>(pos.down(), System.currentTimeMillis())); + BlockUtils.clickOnBlock(pos.down(), main); + // This one actually does predict. + if (predict) { + int eid = Math.round(spawner.getEntityID() + eidsPerSecond * (EventHandler.ping[0]) / 1000f); + for (int i = -predictMargin; i <= predictMargin; i++) { + player.connection.sendPacket(createAttackPacket(eid + i)); + } + } + } + } + } + if(packet instanceof SPacketDestroyEntities) { + SPacketDestroyEntities remover = ((SPacketDestroyEntities) packet); + int[] ids = remover.getEntityIDs(); + for (int i = 0; i < ids.length; i++) { + notifyEntityDeath(ids[i]); + } + } + + return packet instanceof SPacketExplosion; + } + + private boolean ensureCrystalsSelected() { + return player.getHeldItemMainhand().getItem() != Items.END_CRYSTAL; + } + + private void notifyEntityDeath(int id) { + Entity entity; + if((entity = mc.world.getEntityByID(id)) instanceof EntityEnderCrystal) { + remove(BlockUtils.getRealPos(entity.getPositionVector())); + } + } + + public BlockPos findBestPos(EntityLivingBase toAttack) { + BlockPos best = null; + float bestCost = Float.POSITIVE_INFINITY; + + for (int ix = (int) Math.floor(-crystalRange); ix <= (int) Math.ceil(crystalRange); ix++) { + for (int iy = (int) Math.floor(-crystalRange); iy <= (int) Math.ceil(crystalRange); iy++) { + for (int iz = (int) Math.floor(-crystalRange); iz <= (int) Math.ceil(crystalRange); iz++) { + double x = ix + player.posX, y = iy + player.posY, z = iz + player.posZ; + BlockPos pos = new BlockPos(x,y,z); + if(canPlace(pos, crystalRange)) { + float cost = getCostForPlacement(toAttack, pos.getX(), pos.up().getY(), pos.getZ()); + + if(cost == Float.POSITIVE_INFINITY) + continue; + if (cost < bestCost) { + best = pos; + bestCost = cost; + } + } + } + } + } + + return best; + } + + public void findTarget() { + if(currentTarget == null || currentTarget.getHealth() == 0) { + EntityLivingBase best = null; + float bestStat = Float.NEGATIVE_INFINITY; + for (int i = 0; i < mc.world.loadedEntityList.size(); i++) { + Entity e = mc.world.loadedEntityList.get(i); + if(e instanceof EntityLivingBase) { + EntityLivingBase entity = ((EntityLivingBase) e); + float stat = + entity.getHealth() + + entity.getAbsorptionAmount() + + entity.getTotalArmorValue() - + entity.getDistance(player) * 20; + if(entity instanceof EntityPlayer) { + stat *= 100; + } + if(Arrays.stream(Utils.getAllies()).noneMatch(ally -> ally.equals(entity))) { + if (stat > bestStat) { + best = entity; + bestStat = stat; + } + } + } + } + currentTarget = best; + if(best != null) + ChatUtils.print("New target: " + best + " at " + bestStat); + } + } + + public void placeCrystal() { + + if(lastWorld != mc.world) { + lastEIDUpdate = System.currentTimeMillis(); + lastEIDUpdateEIDs = -1; + eidsPerSecond = 1; + currentTarget = null; + lastWorld = mc.world; + } + + findTarget(); + if(currentTarget == null) + return; + if(ensureCrystalsSelected()) + return; + BlockPos pos = findBestPos(currentTarget); + updateOwnCrystals(); + if(sequential && ownCrystals.size() != 0) + return; + if(pos != null) { + ownCrystals.add(new DoubleTypedObject<>(pos, System.currentTimeMillis())); + BlockUtils.clickOnBlock(pos, main); + chain = 0; + } + } + + public void breakCrystal() { + for (int i = 0; i < mc.world.loadedEntityList.size(); i++) { + Entity e = mc.world.loadedEntityList.get(i); + if (e instanceof EntityEnderCrystal) { + if(ownCrystals.stream().anyMatch(c -> c.o.equals(BlockUtils.getRealPos(e.getPositionVector()).down()))) { + hitCrystal(e.getEntityId(), e.getPositionVector()); + remove(BlockUtils.getRealPos(e.getPositionVector())); + } + } + } + } + + private void hitCrystal(int entityID, Vec3d pos) { + Utils.setRotation(createRotations(createBB(pos))); + player.connection.sendPacket(createAttackPacket(entityID)); + player.swingArm(main); + } + + private boolean isCrystalInRange(double x, double y, double z) { + return player.getPositionEyes(1).distanceTo(new Vec3d(x,y,z)) <= crystalRange; + } + + public float getCostForPlacement(EntityLivingBase entityOther, int x, int y, int z) { + float g = getExplosionCost(player, x, y, z); + float h = getExplosionCost(entityOther, x, y, z); + + System.out.println(g); + if(h < minDmg || (g > maxDmg && maxDmg != -1)) { + return Float.POSITIVE_INFINITY; + } + + return g * selfDamageCostM - h; + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public int danger() { + return 3; + } + + public void selectObby() { + + } + + public enum State { + IDLE, + ATTACK, + BREAK, + FACEPLACE, + + ; + } + + Vec3d pos = new Vec3d(0,0,0); + + @SubscribeEvent + public void onRender(RenderWorldLastEvent event) { + try { + if (this.enabled && TTCp.isIngame() && render) { + Entity e = TTCp.mc.getRenderViewEntity(); + assert e != null; + pos = e.getPositionEyes(event.getPartialTicks()).add(0, -e.getEyeHeight(), 0); + + EntityEnderCrystal[] crystals = TTCp.world.getEntities(EntityEnderCrystal.class, ent -> ent.getDistance(TTCp.player) < crystalRange * 5).toArray(new EntityEnderCrystal[0]); + + for (int i = 0 ; i < crystals.length ; i++) { + BlockPos bp = BlockUtils.getRealPos(crystals[i].getPositionVector()); + float dmg = getExplosionCost(TTCp.player, bp.getX(), bp.getY(), bp.getZ()); + + float f1 = Color.RGBtoHSB(255,0,255, null)[0]-1; + float f2 = Color.RGBtoHSB(0,255,0, null)[0]; + float hue = f2 + (f1 - f2) * Math.min(dmg / 20f, 1); + int color = 0xff000000 | Color.HSBtoRGB(hue, 1, 1); + + drawAroundBlock(new Vector3d(bp.getX() + 0.5, bp.getY(), bp.getZ() + 0.5), color); + depth(false); + EntityRenderer.drawNameplate(mc.fontRenderer, dmg + "", (float)(-pos.x + bp.getX() + 0.5), (float)(-pos.y + bp.getY() + 0.66), (float)(-pos.z + bp.getZ() + 0.5), 0, player.rotationYaw, player.rotationPitch, false, false); + depth(true); + } + + for (int i = 0 ; i < ownCrystals.size() ; i++) { + BlockPos pos = ownCrystals.get(i).o; + drawAroundBlock(new Vector3d(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5), 0x808080ff); + } + } + } catch (NullPointerException ignored) { } + } + + public void drawAroundBlock(Vector3d pos, int color) { + try { + + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + color(color); + depth(false); + begin(GL11.GL_QUADS); + + + // bottom + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + next(); + + /* + // top + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + + next(); + + // z - + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + next(); + + // z + + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + + next(); + + // x - + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + next(); + + // x + + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5);*/ + + end(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystalRewrite.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystalRewrite.java new file mode 100644 index 0000000..ad1b726 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoCrystalRewrite.java @@ -0,0 +1,34 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.entity.item.EntityEnderCrystal; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketSoundEffect; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; + +/** + * @author TudbuT + * @since 25 Oct 2021 + */ + +@Combat +public class AutoCrystalRewrite extends Module { + + @Override + public void onTick() { + } + + @Override + public boolean onPacket(Packet packet) { + if (packet instanceof SPacketSoundEffect) { + SPacketSoundEffect effect = (SPacketSoundEffect) packet; + mc.world.loadedEntityList + .stream() + .filter(x -> x instanceof EntityEnderCrystal) + .filter(x -> x.getDistanceSq(effect.getX(), effect.getY(), effect.getZ()) < 1) + .forEach(x -> mc.world.removeEntity(x)); + } + return false; + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoTotem.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoTotem.java new file mode 100644 index 0000000..d02d326 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/AutoTotem.java @@ -0,0 +1,534 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.gui.inventory.GuiContainerCreative; +import net.minecraft.client.gui.inventory.GuiInventory; +import net.minecraft.init.Items; +import net.minecraft.inventory.ClickType; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHandSide; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.gui.GuiTTCIngame; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; +import de.tudbut.tools.Lock; +import de.tudbut.tools.ThreadPool; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + +@Combat +public class AutoTotem extends Module { + + public static AutoTotem instance; + + public static DebugProfilerAdapter profiler = new DebugProfilerAdapter("AutoTotem", "idle"); + static { + TTCp.registerProfiler(profiler); + } + + // Actual count, set by AI + public int minCount = 0; + // PrepCount, set by user + @Save + public int prepCount = 2; + // Count, set by user + @Save + public int origMinCount = 0; + // If the user seems to be restocking after respawning, if this is the case, + // don't switch until any inventories are closed + public boolean isRestockingAfterRespawn = false; + // If totems should be stacked automatically + @Save + public boolean autoStack = false; + // If the AutoStack should always run, regardless of the count + private boolean autoStackIgnoreCount = false; + // Use pop prediction + @Save + public boolean pingPredict = false; + @Save + public int sdelay = 0, pdelay = 0, cdelay = 0, ldelay = 500; + @Save + public boolean legacy = true; + + public int swapProgress = 0; + public int countSwapped = 0; + public int countSwappedAt; + public long lastSwap = 0; + + public int fullCount = 0; + + public boolean[] slotsUsed = new boolean[45]; + public int[] slotsUsedAtCounts = new int[45]; + public long[] slotsUsedAtTime = new long[45]; + { + Arrays.fill(slotsUsedAtCounts, Integer.MAX_VALUE); + Arrays.fill(slotsUsedAtCounts, 0); + } + + Lock swapLock = new Lock(); + ThreadPool swapThread = new ThreadPool(1, "Swap thread", true); + + // Panic mode, switch to totems instantly! + public boolean panic = false; + + private boolean noTotems = true; + + public void renderTotems() { + if(fullCount != 0) { + ScaledResolution res = new ScaledResolution(mc); + int y = res.getScaledHeight() - 16 * 2 - 3 - 8; + int x; + if (player.getPrimaryHand() != EnumHandSide.LEFT) + x = res.getScaledWidth() / 2 - 91 - 26; + else + x = res.getScaledWidth() / 2 + 91 + 10; + + GuiTTCIngame.drawOffhandSlot(x-3,y-3); + GuiTTCIngame.drawItem(x, y, 1, player, new ItemStack(Items.TOTEM_OF_UNDYING, fullCount)); + } + } + + public int getTotemCount() { + return InventoryUtils.getItemAmount(player.inventoryContainer, Items.TOTEM_OF_UNDYING); + } + + public void panic() { + // Enable panic + panic = true; + // Tick panic + doSwitch(true); + // Disable panic + panic = false; + } + + public AutoTotem() { + instance = this; + } + + public static AutoTotem getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createInt(0, 12, "PrepCount", this, "prepCount")); + subComponents.add(Setting.createInt(0, 12, "Count", this, "origMinCount", () -> { + updateTotCount(); + updateBinds(); + })); + subComponents.add(Setting.createBoolean("AutoStack (WIP)", this, "autoStack")); + subComponents.add(Setting.createBoolean("PingPredict", this, "pingPredict")); + subComponents.add(Setting.createInt(0, 500, "SwitchDelay", this, "sdelay")); + subComponents.add(Setting.createInt(0, 500, "PostDelay", this, "pdelay")); + subComponents.add(Setting.createInt(0, 5000, "CooldownDelay", this, "cdelay")); + subComponents.add(Setting.createInt(0, 1000, "LockDelay", this, "ldelay")); + subComponents.add(Setting.createBoolean("Fast mode", this, "legacy")); + subComponents.add(new Button("AutoStack now", it -> { + autoStackIgnoreCount = true; + autoStack(); + autoStackIgnoreCount = false; + })); + subComponents.add(new Button("Actual count: " + minCount, it -> { })); + customKeyBinds.setIfNull("panic", new KeyBind(null, this + "::panic", true)); + subComponents.add(Setting.createKey("Panic", customKeyBinds.get("panic"))); + } + + public void doSwitch(boolean takeMax) { + // Switch! + + KillAura.getInstance().noSwitch = true; + ItemStack stack = player.inventory.getStackInSlot(InventoryUtils.OFFHAND_SLOT); + + profiler.next("Switch.GetSlot"); + Integer slot = null; + if(takeMax) { + int biggestCount = 0; + int slotNum = -1; + for (int i = 0 ; i < 5 * 9 ; i++) { + ItemStack itemStack = player.inventoryContainer.getInventory().get(i); + if(itemStack.getItem().equals(Items.TOTEM_OF_UNDYING)) { + if(itemStack.getCount() > biggestCount) { + slotNum = i; + biggestCount = itemStack.getCount(); + } + } + } + if(slotNum != -1 && slotNum != InventoryUtils.OFFHAND_SLOT) + slot = slotNum; + } + else { + slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + getUnusableSlots(), + minCount + 1, + 64 + ); + } + if (slot == null) { + profiler.next("Switch.NotifyEmpty"); + if (!noTotems) + Notifications.add(new Notifications.Notification("No more totems! Couldn't switch!")); + noTotems = true; + profiler.next("idle"); + return; // Oh no!! No totems left! + } + else + noTotems = false; + + slotsUsed[slot] = true; + + swapLock.lock(2000); + int finalSlot = slot; + swapThread.run(() -> { + if(legacy) { + profiler.next("Switch.Notify"); + Notifications.add(new Notifications.Notification("Switching to next TotemStack...")); + // Switch a new totem stack to the offhand + profiler.next("Switch.Swap"); + InventoryUtils.inventorySwap(finalSlot, InventoryUtils.OFFHAND_SLOT, sdelay, pdelay, cdelay); + swapLock.lock(ldelay); + profiler.next("Switch.Notify"); + Notifications.add(new Notifications.Notification("Switched to next TotemStack")); + } + else { + swapProgress = 1; + countSwappedAt = stack.getCount(); + countSwapped = TTCp.player.inventory.getStackInSlot(finalSlot).getCount(); + slotsUsedAtTime[finalSlot] = System.currentTimeMillis(); + lastSwap = System.currentTimeMillis(); + profiler.next("Switch.Notify"); + Notifications.add(new Notifications.Notification("Switching to next TotemStack...")); + // Switch a new totem stack to the offhand + profiler.next("Switch.Swap"); + InventoryUtils.inventorySwap(finalSlot, InventoryUtils.OFFHAND_SLOT, sdelay, pdelay, cdelay); + swapLock.lock(ldelay); + profiler.next("Switch.Notify"); + Notifications.add(new Notifications.Notification("Switched to next TotemStack")); + swapProgress = 2; + } + KillAura.getInstance().noSwitch = false; + }); + } + + @Override + public void onEverySubTick() { + if (TTCp.isIngame()) { + fullCount = getTotemCount(); + } + } + + @Override + public void onTick() { + if(TTCp.isIngame()) { + if (noTotems || minCount != origMinCount) + updateTotCount(); + } + } + + // Run checks and AI + @Override + public void onSubTick() { + if (TTCp.isIngame()) { + + if (!swapLock.isLocked() || panic) { + EntityPlayerSP player = TTCp.player; + + + profiler.next("RestockCheck"); + if ((isRestockingAfterRespawn() || isRestockingAfterRespawn)) { + // Don't switch yet + return; + } + + // Run AI + if (noTotems || minCount != origMinCount) { + profiler.next("TotCountUpdate"); + reindex(); + swapLock.unlock(); + swapProgress = 0; + } + profiler.next("AutoStack"); + if (autoStack) + autoStack(); + + profiler.next("Check"); + ItemStack stack = player.getHeldItemOffhand(); + if(!legacy) { + if (swapProgress == 2 || lastSwap <= System.currentTimeMillis() - 2000) { + PopCount.Counter counter = TTCp.getModule(PopCount.class).counters.get(TTCp.player); + if (stack.getCount() < countSwapped && stack.getCount() > Math.max(countSwappedAt, minCount) || lastSwap <= System.currentTimeMillis() - 2000) { + swapProgress = 0; + reindex(); + } + } + } + KillAura.getInstance().noSwitch = stack.getCount() <= prepCount + minCount; + if ( + ( + panic || + (stack.getCount() <= minCount) || + (checkPingPop() && (stack.getCount() <= (minCount + 1))) + ) && (swapProgress == 0 || legacy) + ) { + doSwitch(false); + } + } + } + profiler.next("idle"); + } + + public void reindex() { + // TODO: This is stupid, i need to remake this! + + for (int i = 0 ; i < slotsUsed.length ; i++) { + ItemStack stack = player.inventory.getStackInSlot(i); + slotsUsedAtCounts[i] = Math.min(stack.getCount(), slotsUsedAtCounts[i]); + if(stack.getItem() == Items.TOTEM_OF_UNDYING && stack.getCount() > slotsUsedAtCounts[i] && slotsUsed[i] && slotsUsedAtTime[i] < System.currentTimeMillis() - 5000) { + slotsUsedAtCounts[i] = stack.getCount(); + slotsUsed[i] = false; + } + } + } + + private int[] getUnusableSlots() { + reindex(); + ArrayList slots = new ArrayList<>(Collections.singletonList(InventoryUtils.OFFHAND_SLOT)); + + for (int i = 0 ; i < slotsUsed.length ; i++) { + if(slotsUsed[i]) + slots.add(i); + } + + int[] theSlots = new int[slots.size()]; + for (int i = 0 ; i < theSlots.length ; i++) { + theSlots[i] = slots.get(i); + } + return theSlots; + } + + private boolean checkPingPop() { + if(!pingPredict || minCount == 0) + return false; + PopCount popCount = TTCp.getModule(PopCount.class); + PopCount.Counter counter = popCount.counters.get(TTCp.player); + if(counter != null && counter.isPopping()) { + long d = counter.predictNextPopDelay(); + return d <= Math.max(EventHandler.ping[0], 0); + } + return false; + } + + // Tests if the player is likely to be restocking after having a empty inventory, + // does NOT check for a respawn, but very likely will only be true after a respawn! + public boolean isRestockingAfterRespawn() { + EntityPlayerSP player = TTCp.player; + + // Set false if the container was closed, this will make it start switching again + GuiScreen screen = TTCp.mc.currentScreen; + if ( + !( + screen instanceof GuiContainer && !( + screen instanceof GuiInventory || + screen instanceof GuiContainerCreative + ) + ) + ) { + isRestockingAfterRespawn = false; + return false; + } + + // Any slot with totems + Integer slot0 = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{}, + 1, + 64 + ); + // No totems, return true + if (slot0 == null) { + isRestockingAfterRespawn = true; + return true; + } + // Any slot with totems excluding slot0 + Integer slot1 = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{slot0}, + 1, + 64 + ); + // Only one stack of totems, return true + if (slot1 == null) { + isRestockingAfterRespawn = true; + return true; + } + + // There is two or more stacks, return false, seems normal + return false; + } + + // AI, finds out the amount to switch at, looks for lowest amount of totems in inventory + public void updateTotCount() { + EntityPlayerSP player = TTCp.player; + Integer i; + + slotsUsed = new boolean[45]; + slotsUsedAtCounts = new int[45]; + slotsUsedAtTime = new long[45]; + + int x = minCount; + minCount = origMinCount; + + // Look for a stack of the AI-set count + i = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{InventoryUtils.OFFHAND_SLOT}, + minCount + 1, + 64 + ); + // If it doesnt exist, step down the count until a stack exist or the count hits 0 + while (i == null) { + // Step down + minCount--; + // Check + i = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{InventoryUtils.OFFHAND_SLOT}, + minCount + 1, + 64 + ); + + if (minCount < 0) { + // No stacks left + minCount = 0; + break; + } + } + + + // Found! + if(minCount != x) + updateBinds(); + } + + public void autoStack() { + + if(minCount == 0) + return; + + EntityPlayerSP player = TTCp.player; + ArrayList slots = new ArrayList<>(); + // The minimal amount that is required to stack totems + int min = 2; + // Only restack when totems are likely not a normal stack + int max = 24; + // TMP variable + Integer slot; + + // Runs 50 times + for (int i = 0; i < 50; i++) { + + // Drop unusable stacks + ArrayList dropped = new ArrayList<>(); + if (slots.size() != 0) { + + for (int j = 0; j < 100; j++) { + // Next + slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + Utils.objectArrayToNativeArray(dropped.toArray(new Integer[0])), + 0, + min - 1 + ); + + if (slot == null) + break; + + // Drop stack contents of the slot + InventoryUtils.drop(slot); + System.out.println("Dropped item in " + slot); + dropped.add(slot); + } + + } + + if(origMinCount == minCount && !autoStackIgnoreCount) + return; + + + // Get slots with totems + slots.clear(); + for (int j = 0; j < 100; j++) { + slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + Utils.objectArrayToNativeArray(slots.toArray(new Integer[0])), + min, + max + ); + if(slot == null) + break; + + slots.add(slot); + } + + // Combine totems + while (slots.size() >= 2) { + // Get empty slot + slot = InventoryUtils.getSlotWithItem(player.inventoryContainer, Items.AIR, 0); + if (slot == null) { + InventoryUtils.drop(slots.get(0)); + slots.remove(0); + continue; + } + System.out.println("Combining " + slots.get(0) + " and " + slots.get(1) + " to " + slot); + // Pick first stack + InventoryUtils.clickSlot(slots.get(0), ClickType.PICKUP, 0); + // Pick second stack + InventoryUtils.clickSlot(slots.get(1), ClickType.PICKUP, 0); + // Put result in empty slot + InventoryUtils.clickSlot(slot, ClickType.PICKUP, 0); + // Drop junk + InventoryUtils.drop(slots.get(1)); + + slots.remove(0); + slots.remove(0); + } + } + } + + @Override + public void onChat(String s, String[] args) { + if (s.startsWith("count ")) + try { + origMinCount = minCount = Integer.parseInt(s.substring("count ".length())); + ChatUtils.print("Set!"); + } + catch (Exception e) { + ChatUtils.print("ERROR: NaN"); + } + if(s.startsWith("debug")) + ChatUtils.print(profiler.getTempResults().toString()); + updateBinds(); + } + + @Override + public void onConfigLoad() { + updateBinds(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HitCorrection.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HitCorrection.java new file mode 100644 index 0000000..145a48d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HitCorrection.java @@ -0,0 +1,34 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.entity.EntityLivingBase; +import de.tudbut.mod.client.ttcp.gui.lib.component.Slider; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Utils; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; + +import java.lang.reflect.Field; + +@Combat +public class HitCorrection extends Module { + + @Save + public static float amount; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Slider("Amount", this, "amount", f -> String.valueOf(Math.round(f * 100) / 100f), 5, 0)); + } + + @Override + public void onTick() { + try { + Field ticksSinceLastSwing = EntityLivingBase.class.getDeclaredField(Utils.getFieldsForType(EntityLivingBase.class, int.class)[5]); + ticksSinceLastSwing.setAccessible(true); + ticksSinceLastSwing.setInt(mc.player, 100); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HopperAura.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HopperAura.java new file mode 100644 index 0000000..db638c7 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/HopperAura.java @@ -0,0 +1,522 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.ClickType; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ContainerHopper; +import net.minecraft.inventory.Slot; +import net.minecraft.network.play.client.CPacketCloseWindow; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketPlayerDigging; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiPlayerSelect; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.command.Friend; +import de.tudbut.mod.client.ttcp.mods.chat.Team; +import de.tudbut.mod.client.ttcp.mods.misc.AltControl; +import de.tudbut.mod.client.ttcp.mods.rendering.PlayerSelector; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.DoubleTypedObject; +import de.tudbut.obj.Save; +import de.tudbut.parsing.TudSort; +import de.tudbut.tools.Lock; +import de.tudbut.tools.Queue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Combat +public class HopperAura extends Module { + @Save + int delay = 300; + @Save + int randomDelay = 0; + @Save + public int attack = 0; + @Save + boolean threadMode = false; + @Save + boolean swing = true; + @Save + boolean superAttack = false; + @Save + boolean batch = false; + boolean cBatch = false; + @Save + boolean tpsSync = false; + @Save + int iterations = 1; + @Save + int iterationDelay = 0; + Lock switchTimer = new Lock(); + + BlockPos currentHopper = null; + Container hopper = null; + public static State state = State.WAITING; + + public enum State { + PLACING, + ATTACKING, + REPLACING, + OPENING, + WAITING, + IDLE, + ; + } + + static boolean paused = false; + static boolean hopperNeedsOpening = false; + static boolean guiNeedsClosing = false; + Lock placeLock = new Lock(); + Lock closeLock = new Lock(); + Lock emptyLock = new Lock(); + boolean empty = false; + ArrayList validHoppers = new ArrayList<>(); + ArrayList> digging = new ArrayList<>(); + + public static void pause() { + paused = true; + instance.reloadHopper(); + } + + public static void resume() { + paused = false; + instance.reloadHopper(); + } + + public enum SwitchType { + HOTBAR, + SWAP, + ; + } + + public void reloadHopper() { + if(enabled) { + if (currentHopper == null) { + hopperNeedsOpening = createHopper(); + emptyLock.unlock(); + empty = false; + } + else if ((!(player.openContainer instanceof ContainerHopper) && !hopperNeedsOpening) || (player.getPositionEyes(0).distanceTo(new Vec3d(currentHopper).add(.5,.5,.5)) >= 4)) { + if (mc.world.getBlockState(currentHopper).getBlock() == Blocks.HOPPER && player.getPositionEyes(0).distanceTo(new Vec3d(currentHopper).add(.5,.5,.5)) < 4) { + ChatUtils.print("§aReopening hopper"); + hopper = null; + openHopper(currentHopper); + emptyLock.unlock(); + empty = false; + } + else { + ChatUtils.print("§aPrevious hopper unusable, removing"); + hopper = null; + currentHopper = null; + } + } + } + } + + private void openHopper(BlockPos theHopper) { + state = State.OPENING; + mc.player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.STOP_SNEAKING)); + player.setSneaking(false); + mc.player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.STOP_SNEAKING)); + player.setSneaking(false); + BlockUtils.clickOnBlock(theHopper, EnumHand.MAIN_HAND); + guiNeedsClosing = true; + state = State.WAITING; + } + + private BlockPos getBestHopperPos() { + state = State.PLACING; + if (Notifications.getNotifications().stream().noneMatch(notification -> notification.text.equals("Trying to place new hopper"))) { + Notifications.add(new Notifications.Notification("Trying to place new hopper", 1000)); + } + BlockPos p = BlockUtils.getRealPos(player.getPositionVector()); + ArrayList possible = new ArrayList<>(); + for (int z = -3 ; z <= 3 ; z++) { + for (int y = -2 ; y <= 3 ; y++) { + for (int x = -3 ; x <= 3 ; x++) { + int + ix = p.getX() + x, + iy = p.getY() + y, + iz = p.getZ() + z; + BlockPos pos = new BlockPos(ix,iy,iz); + if(mc.world.getBlockState(pos).getMaterial().isReplaceable() && player.getPositionEyes(0).distanceTo(new Vec3d(pos).add(.5, .5, .5)) < 3) { + if(mc.world.getBlockState(pos.up()).getMaterial().isReplaceable() && player.getPositionEyes(0).distanceTo(new Vec3d(pos.up()).add(.5, .5, .5)) < 3) { + if( + BlockUtils.getPossibleSides(pos).size() >= 1 && + mc.world.playerEntities.stream().noneMatch( + entityPlayer -> + entityPlayer.getEntityBoundingBox().intersects(new AxisAlignedBB(pos)) || + entityPlayer.getEntityBoundingBox().intersects(new AxisAlignedBB(pos.up())) + ) + ) + possible.add(pos); + } + } + } + } + } + if(possible.size() == 0) { + ChatUtils.print("Can't find a suitable position"); + return null; + } + return TudSort.sort(possible.toArray(new BlockPos[0]), blockPos -> { + List playerEntities = mc.world.playerEntities; + double d = 0; + for (int i = 0, playerEntitiesSize = playerEntities.size() ; i < playerEntitiesSize ; i++) { + EntityPlayer aPlayer = playerEntities.get(i); + if(aPlayer == player || Arrays.stream(Utils.getAllies()).anyMatch(player -> player == aPlayer)) + d -= BlockUtils.getRealPos(aPlayer.getPositionVector()).distanceSq(blockPos) / 2; + else + d += BlockUtils.getRealPos(aPlayer.getPositionVector()).distanceSq(blockPos); + } + return (long) (d * 100); + })[0]; + } + + private boolean createHopper() { + state = State.PLACING; + currentHopper = null; + if(validHoppers.size() > 0) { + for (int i = 0 ; i < validHoppers.size() ; i++) { + BlockPos pos = validHoppers.get(i); + if (mc.world.getBlockState(pos).getBlock() == Blocks.HOPPER) { + if (player.getPositionEyes(0).distanceTo(new Vec3d(pos).add(.5, .5, .5)) < 3) { + ChatUtils.print("§aReusing a hopper"); + placeLock.lock(1000); + hopper = null; + currentHopper = pos; + openHopper(currentHopper); + return true; + } + } + else { + validHoppers.remove(i--); + /*DoubleTypedObject dig; + digging.add(dig = new DoubleTypedObject<>(pos, new Lock())); + dig.t.lock(20000); + player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.START_DESTROY_BLOCK, pos, EnumFacing.UP));*/ + } + } + } + BlockPos found = getBestHopperPos(); + if(found != null) { + Integer slot0 = InventoryUtils.getSlotWithItem(player.inventoryContainer, Blocks.HOPPER, new int[0], 1, 64); + Integer slot1 = InventoryUtils.getSlotWithItem(player.inventoryContainer, Blocks.BLACK_SHULKER_BOX, new int[0], 1, 64); + if(slot0 != null && slot1 != null) { + currentHopper = found; + validHoppers.add(currentHopper); + + // Do stuff + if(hopper != null) { + player.connection.sendPacket(new CPacketCloseWindow(hopper.windowId)); + hopper = null; + } + mc.playerController.windowClick(player.inventoryContainer.windowId, slot0, InventoryUtils.getCurrentSlot(), ClickType.SWAP, player); + BlockUtils.placeBlock(found, EnumHand.MAIN_HAND, true, true); + BlockUtils.placeBlock(found, EnumHand.MAIN_HAND, true, false); + mc.player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_SNEAKING)); + player.setSneaking(true); + mc.playerController.windowClick(player.inventoryContainer.windowId, slot1, InventoryUtils.getCurrentSlot(), ClickType.SWAP, player); + BlockUtils.placeBlock(found.up(), EnumHand.MAIN_HAND, true, true); + BlockUtils.placeBlock(found.up(), EnumHand.MAIN_HAND, true, false); + + // Revert state + mc.playerController.windowClick(player.inventoryContainer.windowId, slot1, InventoryUtils.getCurrentSlot(), ClickType.SWAP, player); + mc.playerController.windowClick(player.inventoryContainer.windowId, slot0, InventoryUtils.getCurrentSlot(), ClickType.SWAP, player); + + ChatUtils.print("§aPlaced new hopper"); + placeLock.lock(1000); + state = State.WAITING; + return true; + } + } + return false; + } + + Queue toAttack = new Queue<>(); + public ArrayList targets = new ArrayList<>(); + Lock threadLock = new Lock(true); + Lock timer = new Lock(); + Thread thread = new Thread(() -> { + while (true) { + try { + threadLock.waitHere(); + timer.waitHere((int) (delay / 6 * Utils.tpsMultiplier())); + if (enabled) + onTick(); + else + timer.lock((int) (delay / 2 * Utils.tpsMultiplier())); + } catch (Exception ignore) { } + } + }, "HopperAura"); { thread.start(); } + + { + customKeyBinds.set("select", new KeyBind(null, toString() + "::triggerSelect", false)); + } + + @Override + public void init() { + PlayerSelector.types.add(new PlayerSelector.Type(player -> { + targets.clear(); + targets.add(player.getGameProfile().getName()); + }, "Set HopperAura target")); + } + + @SuppressWarnings("unused") + public void triggerSelect() { + targets.clear(); + TTCp.mc.displayGuiScreen( + new GuiPlayerSelect( + TTCp.world.playerEntities.stream().filter( + player -> !player.getName().equals(TTCp.player.getName()) + ).toArray(EntityPlayer[]::new), + player -> { + targets.remove(player.getName()); + targets.add(player.getName()); + + return false; + } + ) + ); + } + + static HopperAura instance; + { + instance = this; + } + public static HopperAura getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Delay: " + delay, it -> { + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + delay -= 25; + else + delay += 25; + + if(delay < 50) + delay = 1000; + if(delay > 1000) + delay = 50; + + it.text = "Delay: " + delay; + })); + subComponents.add(new Button("Attack " + (attack == 0 ? "all" : (attack == 1 ? "players" : "targets")), it -> { + attack++; + if(attack > 2) + attack = 0; + + it.text = "Attack " + (attack == 0 ? "all" : (attack == 1 ? "players" : "targets")); + })); + subComponents.add(Setting.createInt(0, 500, "RandomDelay", this, "randomDelay")); + subComponents.add(Setting.createBoolean("Thread mode", this, "threadMode")); + subComponents.add(Setting.createBoolean("Swing", this, "swing")); + subComponents.add(Setting.createBoolean("Batches", this, "batch")); + subComponents.add(Setting.createBoolean("TPSSync", this, "tpsSync")); + subComponents.add(Setting.createInt(1, 10, "Iterations (i/a)", this, "iterations")); + subComponents.add(Setting.createInt(0, 100, "IterationDelay", this, "iterationDelay")); + } + + @Override + public void onTick() { + if(threadMode) + threadLock.unlock(); + else + threadLock.lock(); + + if (threadMode && !(Thread.currentThread() == thread)) { + return; + } + + for (int i = 0 ; i < digging.size() ; i++) { + if(!digging.get(i).t.isLocked()) { + player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.STOP_DESTROY_BLOCK, digging.get(i).o, EnumFacing.UP)); + digging.remove(i--); + } + } + + if(!placeLock.isLocked() && hopperNeedsOpening) { + currentHopper = null; + hopper = null; + hopperNeedsOpening = false; + } + + if(hopperNeedsOpening && currentHopper != null) { + if(mc.world.getBlockState(currentHopper).getBlock() == Blocks.HOPPER) { + hopperNeedsOpening = false; + openHopper(currentHopper); + state = State.WAITING; + } + } + + if(Minecraft.getMinecraft().currentScreen instanceof GuiContainer && guiNeedsClosing && currentHopper != null || closeLock.isLocked()) { + if(!closeLock.isLocked()) + closeLock.lock(500); + hopper = ((GuiContainer) Minecraft.getMinecraft().currentScreen).inventorySlots; + Minecraft.getMinecraft().displayGuiScreen(null); + guiNeedsClosing = false; + } + + { + if (!toAttack.hasNext()) { + EntityPlayer[] players = TTCp.world.playerEntities.toArray(new EntityPlayer[0]); + for (int i = 0 ; i < players.length ; i++) { + if ( + players[i].getDistance(TTCp.player) < 6 && + !Team.getInstance().names.contains(players[i].getGameProfile().getName()) && + !Friend.getInstance().names.contains(players[i].getGameProfile().getName()) && + !players[i].getGameProfile().getName().equals(TTCp.mc.getSession().getProfile().getName()) && + !AltControl.getInstance().isAlt(players[i]) + ) { + if (!targets.isEmpty() || attack == 2) { + if (targets.contains(players[i].getGameProfile().getName())) { + toAttack.add(players[i]); + } + } + else + toAttack.add(players[i]); + } + } + } + if (!toAttack.hasNext() && attack == 0) { + EntityLivingBase[] entities = Utils.getEntities(EntityLivingBase.class, EntityLivingBase::isEntityAlive); + for (int i = 0 ; i < entities.length ; i++) { + if ( + entities[i].getDistance(TTCp.player) < 6 && + !(entities[i] instanceof EntityPlayer) + ) { + toAttack.add(entities[i]); + } + } + } + } + + if(!switchTimer.isLocked()) { + switchTimer.lock(); + } + if (!timer.isLocked()) { + int e = extraDelay(); + switchTimer.lock(delay(e) / 3); + timer.lock(delay(e)); + if(cBatch = !cBatch && batch) { + timer.lock(delay(e) * 2); + switchTimer.lock(delay(e) * 2 / 3); + } + + if(toAttack.hasNext()) + attackNext(); + else + state = State.IDLE; + } + } + + private int delay(int e) { + return (int) (delay + e * (tpsSync ? Utils.tpsMultiplier() : 1)); + } + + private int extraDelay() { + return (int) (randomDelay * Math.random()); + } + + private boolean getWeapon() { + reloadHopper(); + if(currentHopper == null) { + return false; + } + if(hopper == null) + return false; + if(player.getHeldItemMainhand().getCount() >= 1) + return true; + state = State.REPLACING; + List inventorySlots = hopper.inventorySlots; + boolean d = false; + for (int i = 0 ; i < 5 ; i++) { + Slot slot = inventorySlots.get(i); + if(slot.getHasStack() && slot.getStack().getCount() >= 1) { + mc.playerController.windowClick(hopper.windowId, i, 0, ClickType.PICKUP, player); + mc.playerController.windowClick(hopper.windowId, 32 + InventoryUtils.getCurrentSlot(), 1, ClickType.PICKUP, player); + mc.playerController.windowClick(hopper.windowId, i, 0, ClickType.PICKUP, player); + mc.playerController.windowClick(hopper.windowId, -999, 0, ClickType.PICKUP, player); + d = true; + break; + } + } + if(!d) { + if(!empty) { + empty = true; + emptyLock.lock(1000); + } + if(empty && !emptyLock.isLocked()) { + currentHopper = null; + hopper = null; + validHoppers.remove(currentHopper); + emptyLock.unlock(); + empty = false; + } + } + else { + emptyLock.unlock(); + empty = false; + } + return d; + } + + public void attackNext() { + EntityLivingBase entity = toAttack.next(); + + state = State.ATTACKING; + if(!superAttack || entity.hurtTime <= 0) { + for (int i = 0 ; i < iterations ; i++) { + if(!getWeapon()) { + state = State.WAITING; + continue; + } + BlockUtils.lookAt(entity.getPositionVector().add(0, (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) / 2, 0)); + TTCp.mc.playerController.attackEntity(TTCp.player, entity); + if (swing) + TTCp.player.swingArm(EnumHand.MAIN_HAND); + + if(iterations > 1) { + try { + Thread.sleep(iterationDelay); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + @Override + public int danger() { + return 4; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/KillAura.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/KillAura.java new file mode 100644 index 0000000..26bcb52 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/KillAura.java @@ -0,0 +1,501 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketAnimation; +import net.minecraft.util.EnumHand; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiPlayerSelect; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.gui.lib.component.ToggleButton; +import de.tudbut.mod.client.ttcp.mods.misc.AltControl; +import de.tudbut.mod.client.ttcp.mods.command.Friend; +import de.tudbut.mod.client.ttcp.mods.rendering.PlayerSelector; +import de.tudbut.mod.client.ttcp.mods.chat.Team; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; +import de.tudbut.tools.Lock; +import de.tudbut.tools.Queue; + +import java.util.*; + +@Combat +public class KillAura extends Module { + @Save + int delay = 300; + @Save + int randomDelay = 0; + @Save + public int attack = 0; + @Save + boolean threadMode = false; + @Save + boolean superAttack = false; + @Save + boolean batch = false; + boolean cBatch = false; + @Save + boolean switchItem = false; + boolean noSwitch = false; + boolean cSwitch = true; + @Save + boolean tpsSync = false; + @Save + SwitchType switchType = SwitchType.HOTBAR; + @Save + int switchDelay = 0; + @Save + int iterations = 1; + @Save + int iterationDelay = 0, iterationRandomDelay = 0; + Lock switchTimer = new Lock(); + @Save + boolean rotate = false; + @Save + boolean swing = true, offhandSwing = false, iSwing = true, iOffhandSwing = false; + @Save + int misses = 10; + @Save + int iterMisses = 25; + @Save + float autoDest = 1f; + @Save + boolean auto = false; + @Save + boolean oldAuto = false; + @Save + boolean hyperMode = false; + @Save + boolean iterationSync = false; + @Save + int subIterations = 1; + @Save + int switches = 1; + int switchesDone = 0; + + @Save + boolean switchIterations = false, switchSubIterations = false; + + Map lastHealth = new HashMap<>(); + Map lastTotems = new HashMap<>(); + + public enum SwitchType { + HOTBAR, + SWAP, + ; + } + + Queue toAttack = new Queue<>(); + public ArrayList targets = new ArrayList<>(); + Lock threadLock = new Lock(true); + Lock timer = new Lock(); + Thread thread = new Thread(() -> { + while (true) { + try { + threadLock.waitHere(100); + if(threadLock.isLocked()) + continue; + timer.waitHere((int) (delay / 6 * Utils.tpsMultiplier())); + if (enabled) + onTick(); + else + timer.lock((int) (delay / 2 * Utils.tpsMultiplier())); + } catch (Exception ignore) { } + } + }, "KillAura"); { thread.start(); } + + { + customKeyBinds.set("select", new KeyBind(null, toString() + "::triggerSelect", false)); + } + + @Override + public void init() { + PlayerSelector.types.add(new PlayerSelector.Type(player -> { + targets.clear(); + targets.add(player.getGameProfile().getName()); + }, "Set KillAura target")); + } + + @SuppressWarnings("unused") + public void triggerSelect() { + targets.clear(); + TTCp.mc.displayGuiScreen( + new GuiPlayerSelect( + TTCp.world.playerEntities.stream().filter( + player -> !player.getName().equals(TTCp.player.getName()) + ).toArray(EntityPlayer[]::new), + player -> { + targets.remove(player.getName()); + targets.add(player.getName()); + + return false; + } + ) + ); + } + + static KillAura instance; + { + instance = this; + } + public static KillAura getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Attack " + (attack == 0 ? "all" : (attack == 1 ? "players" : "targets")), it -> { + attack++; + if(attack > 2) + attack = 0; + + it.text = "Attack " + (attack == 0 ? "all" : (attack == 1 ? "players" : "targets")); + })); + subComponents.add(new ToggleButton("HyperMode", this, "hyperMode") { + @Override + public synchronized void click(int x, int y, int mouseButton) { + super.click(x, y, mouseButton); + updateBinds(); + } + }); + if(!hyperMode) { + subComponents.add(Setting.createInt(10, 1000, "Delay", this, "delay")); + subComponents.add(Setting.createInt(0, 500, "RandomDelay", this, "randomDelay")); + } + subComponents.add(Setting.createBoolean("Thread mode", this, "threadMode")); + if(!hyperMode) { + subComponents.add(Setting.createBoolean("SuperAttack", this, "superAttack")); + subComponents.add(Setting.createBoolean("Batches", this, "batch")); + } + subComponents.add(Setting.createBoolean("Switch", this, "switchItem")); + subComponents.add(Setting.createBoolean("Rotate", this, "rotate")); + subComponents.add(Setting.createBoolean("TPSSync", this, "tpsSync")); + subComponents.add(Setting.createEnum(SwitchType.class, "SwitchType", this, "switchType")); + subComponents.add(Setting.createInt(0, 400, "SwitchDelay", this, "switchDelay")); + subComponents.add(Setting.createInt(1, 5, "SwitchCount", this, "switches")); + subComponents.add(Setting.createInt(1, 10, "Iterations (i/a)", this, "iterations")); + subComponents.add(Setting.createInt(1, 10, "SubIterations (si/i)", this, "subIterations")); + subComponents.add(Setting.createInt(0, 100, "IterDelay", this, "iterationDelay")); + subComponents.add(Setting.createInt(0, 100, "IterRandomDelay", this, "iterationRandomDelay")); + subComponents.add(Setting.createBoolean("Swing", this, "swing")); + subComponents.add(Setting.createBoolean("SwitchIterations", this, "switchIterations")); + subComponents.add(Setting.createBoolean("SwitchSubIterations", this, "switchSubIterations")); + subComponents.add(Setting.createBoolean("IterationSync", this, "iterationSync")); + subComponents.add(Setting.createBoolean("IterSwing", this, "iSwing")); + subComponents.add(Setting.createBoolean("OffhandSwing", this, "offhandSwing")); + subComponents.add(Setting.createBoolean("IterOffhandSwing", this, "iOffhandSwing")); + subComponents.add(Setting.createInt(0, 100, "MissChance", this, "misses")); + subComponents.add(Setting.createInt(0, 100, "IterMissChance", this, "iterMisses")); + if(!hyperMode) + subComponents.add(Setting.createBoolean("AutoSetup", this, "auto")); + subComponents.add(Setting.createKey("Select", customKeyBinds.get("select"))); + } + + EntityLivingBase entity; + Lock iTimer = new Lock(true); + int iterationsToDo = 0; + + @Override + public void onTick() { + if(threadMode) + threadLock.unlock(); + else + threadLock.lock(); + + if (threadMode && !(Thread.currentThread() == thread)) { + return; + } + + { + if (!toAttack.hasNext()) { + EntityPlayer[] players = TTCp.world.playerEntities.toArray(new EntityPlayer[0]); + for (int i = 0 ; i < players.length ; i++) { + if ( + players[i].getDistance(TTCp.player) < 6 && + !Team.getInstance().names.contains(players[i].getGameProfile().getName()) && + !Friend.getInstance().names.contains(players[i].getGameProfile().getName()) && + !players[i].getGameProfile().getName().equals(TTCp.mc.getSession().getProfile().getName()) && + !AltControl.getInstance().isAlt(players[i]) + ) { + if (!targets.isEmpty() || attack == 2) { + if (targets.contains(players[i].getGameProfile().getName())) { + toAttack.add(players[i]); + } + } + else + toAttack.add(players[i]); + } + } + } + if (!toAttack.hasNext() && attack == 0) { + EntityLivingBase[] entities = Utils.getEntities(EntityLivingBase.class, EntityLivingBase::isEntityAlive); + for (int i = 0 ; i < entities.length ; i++) { + if ( + entities[i].getDistance(TTCp.player) < 6 && + !(entities[i] instanceof EntityPlayer) + ) { + toAttack.add(entities[i]); + } + } + } + } + + if(!switchTimer.isLocked() && !switchIterations) { + switchTimer.lock(switchDelay); + + if(switchItem && toAttack.hasNext() && !noSwitch) { + switchItem(); + } + } + if (hyperMode) { + if (toAttack.hasNext()) { + hyper(); + } + } else { + if (!timer.isLocked()) { + int e = extraDelay(); + if(switchDelay == 0) + switchTimer.lock(delay(e) / 3); + timer.lock(delay(e)); + if ((cBatch = !cBatch) && batch) { + timer.lock(delay(e) * 2); + if(switchDelay == 0) + switchTimer.lock(delay(e) * 2 / 3); + } + + if (auto) { + try { + int i = lastTotems.get(toAttack.peek()) - countTotems(toAttack.peek()); + if (lastHealth.get(toAttack.peek()) > toAttack.peek().getHealth() || i != 0) { + if (i < 0) + i = 1; + autoAttack(i); + } + else { + autoAttack(0); + } + } + catch (Exception a) { + } + } + + if (toAttack.hasNext()) + attackNext(); + } + } + + if(iterationSync) { + if(!iTimer.isLocked()) { + iTimer.lock(); + if(iterationsToDo > 0) { + for (int i = 0 ; i < subIterations ; i++) { + if (Math.random() > iterMisses / 100f) + TTCp.mc.playerController.attackEntity(TTCp.player, entity); + if (swing) + TTCp.player.swingArm(EnumHand.MAIN_HAND); + if(switchSubIterations) + switchItem(); + } + if (switchIterations && !switchSubIterations) + switchItem(); + if(iterationsToDo-- > 1) { + iTimer.lock(iterationDelay); + } + } + } + } + } + + private void switchItem() { + if(noSwitch) + return; + switch (switchType) { + case HOTBAR: + int i = InventoryUtils.getCurrentSlot(); + if (i == 0) + cSwitch = true; + if (i == 8) + cSwitch = false; + InventoryUtils.setCurrentSlot(i + ((cSwitch = !cSwitch) ? -1 : 1)); + break; + case SWAP: + InventoryUtils.swap(37 + switchesDone++, 0); + switchesDone = switchesDone % switches; + break; + } + } + + int lastHRT = 0; + boolean allowHRT = true; + + private void hyper() { + EntityLivingBase ta = toAttack.peek(); + if(ta.hurtResistantTime > lastHRT) + allowHRT = true; + if(ta.hurtResistantTime < ta.maxHurtResistantTime * 0.75f && allowHRT) { + allowHRT = false; + switchTimer.unlock(); + attackNext(); + } + lastHRT = ta.hurtResistantTime; + } + + boolean lastAutoAttack = false; + float autoAttackAvrg = -1; + float autoAttackBiggerAvrg = -1; + float delayAvrg = delay; + int lastAdd = -10; + + private void autoAttack(float x) { + if(autoAttackAvrg == -1) { + autoAttackAvrg = 0; + autoAttackBiggerAvrg = 0; + } + autoAttackAvrg = (autoAttackAvrg * 4 + x) / 5; + autoAttackBiggerAvrg = (autoAttackBiggerAvrg * 24 + x) / 25; + delayAvrg = (delayAvrg * 24 + delay) / 25; + if(autoAttackAvrg / Math.max(delay, 1) < autoAttackBiggerAvrg / Math.max(delayAvrg, 1)) + delay += lastAdd = -lastAdd; + else { + delay += lastAdd; + } + delay = Math.max(delay, 0); + } + + private int countTotems(EntityLivingBase entity) { + int t = 0; + ItemStack itemStack = entity.getHeldItem(EnumHand.MAIN_HAND); + if (itemStack.getItem() == Items.TOTEM_OF_UNDYING) { + t = itemStack.getCount(); + } else { + itemStack = entity.getHeldItem(EnumHand.OFF_HAND); + if (itemStack.getItem() == Items.TOTEM_OF_UNDYING) { + t = itemStack.getCount(); + } + } + return t; + } + + private int delay(int e) { + return (int) (delay + e * (tpsSync ? Utils.tpsMultiplier() : 1)); + } + + private int extraDelay() { + return (int) (randomDelay * Math.random()); + } + + public void attackNext() { + EntityLivingBase entity = toAttack.next(); + + if(Math.random() <= misses / 100f) { + if (swing) + TTCp.player.swingArm(EnumHand.MAIN_HAND); + if (offhandSwing) + TTCp.player.swingArm(EnumHand.OFF_HAND); + return; + } + + if(!superAttack || entity.hurtTime <= 0) { + if(iterationSync) { + iterationsToDo = iterations; + iTimer.unlock(); + this.entity = entity; + } + else { + lastHealth.put(entity, entity.getHealth()); + lastTotems.put(entity, countTotems(entity)); + for (int i = 0 ; i < iterations ; i++) { + if (rotate) + BlockUtils.lookAt(entity.getPositionVector().add(Math.random() * 0.3 - 0.15, (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) / 1.5 + Math.random() * 0.3 - 0.15, Math.random() * 0.3 - 0.15)); + for (int j = 0 ; j < subIterations ; j++) { + if (Math.random() > iterMisses / 100f) + TTCp.mc.playerController.attackEntity(TTCp.player, entity); + + if (i != iterations - 1 && iSwing) + TTCp.player.swingArm(EnumHand.MAIN_HAND); + if (i != iterations - 1 && iOffhandSwing) + TTCp.player.swingArm(EnumHand.OFF_HAND); + } + + try { + Thread.sleep((long) (iterationDelay + iterationRandomDelay * Math.random())); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + if (swing) + TTCp.player.swingArm(EnumHand.MAIN_HAND); + if (offhandSwing) + TTCp.player.swingArm(EnumHand.OFF_HAND); + } + + @Override + public boolean onPacket(Packet packet) { + if(packet instanceof SPacketAnimation) { + if(((SPacketAnimation) packet).getAnimationType() == 0) { + if(swingNotifiers.containsKey(((SPacketAnimation) packet).getEntityID())) { + ChatUtils.print("§8Swing by " + mc.world.playerEntities.stream().filter(entityPlayer -> entityPlayer.getEntityId() == ((SPacketAnimation) packet).getEntityID()).findFirst()); + swingNotifiers.get(((SPacketAnimation) packet).getEntityID()).unlock(); + } + } + } + + return false; + } + + Map swingNotifiers = new HashMap<>(); + + @Override + public void onEveryChat(String s, String[] args) { + if(args.length == 1) { + new Thread(() -> { + String playerName = args[0]; + Optional player = mc.world.playerEntities.stream().filter(entityPlayer -> entityPlayer.getName().equals(playerName)).findFirst(); + if(player.isPresent()) { + ChatUtils.print("Watching..."); + EntityPlayer detect = player.get(); + + ArrayList timings = new ArrayList<>(); + Lock lock = new Lock(); + swingNotifiers.put(detect.getEntityId(), lock); + for (int i = 0 ; i < 10 ; i++) { + int spi; + lock.waitHere(); + lock.lock(); + timings.add(System.currentTimeMillis()); + } + swingNotifiers.put(detect.getEntityId(), null); + long last = timings.get(0); + long l = 0; + for (int i = 1 ; i < timings.size() ; i++) { + l += timings.get(i) - last; + last = timings.get(i); + } + ChatUtils.print("§a[TTC] KA Speed of " + detect.getName() + ": " + l / (timings.size() - 1f)); + } + else { + ChatUtils.print("That player is not in the visual range!"); + } + }).start(); + } + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + @Override + public int danger() { + return 3; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/LegacyAutoTotem.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/LegacyAutoTotem.java new file mode 100644 index 0000000..c3cb453 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/LegacyAutoTotem.java @@ -0,0 +1,339 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.gui.inventory.GuiContainerCreative; +import net.minecraft.client.gui.inventory.GuiInventory; +import net.minecraft.init.Items; +import net.minecraft.inventory.ClickType; +import net.minecraft.item.ItemStack; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.debug.DebugProfiler; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.tools.Lock; +import de.tudbut.tools.ThreadPool; + +import java.util.ArrayList; + +@Combat +public class LegacyAutoTotem extends Module { + + static LegacyAutoTotem instance; + + public static DebugProfiler profiler = new DebugProfiler("LegacyAutoTotem", "idle"); + + // Actual count, set by AI + public int minCount = 0; + // Count, set by user + public int origMinCount = 0; + // If the user seems to be restocking after respawning, if this is the case, + // don't switch until any inventories are closed + public boolean isRestockingAfterRespawn = false; + // If totems should be stacked automatically + public boolean autoStack = false; + // If the AutoStack should always run, regardless of the count + private boolean autoStackIgnoreCount = false; + + public int delay = 0; + + Lock swapLock = new Lock(); + ThreadPool swapThread = new ThreadPool(1, "Swap thread", true); + + private boolean noTotems = true; + + public LegacyAutoTotem() { + instance = this; + } + + public static LegacyAutoTotem getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createInt(0, 12, "Count", this, "origMinCount")); + subComponents.add(Setting.createBoolean("AutoStack (WIP)", this, "autoStack")); + subComponents.add(Setting.createInt(0, 5000, "Delay", this, "delay")); + subComponents.add(new Button("AutoStack now", it -> { + autoStackIgnoreCount = true; + autoStack(); + autoStackIgnoreCount = false; + })); + subComponents.add(new Button("Actual count: " + minCount, it -> { + + })); + } + + // Run checks and AI + @Override + public void onSubTick() { + if (TTCp.isIngame()) { + if (!swapLock.isLocked()) { + EntityPlayerSP player = TTCp.player; + + + profiler.next("RestockCheck"); + if ((isRestockingAfterRespawn() || isRestockingAfterRespawn)) { + // Don't switch yet + return; + } + + // Run AI + if (noTotems) { + profiler.next("TotCountUpdate"); + updateTotCount(); + } + profiler.next("AutoStack"); + if (autoStack) + autoStack(); + + profiler.next("Check"); + ItemStack stack = player.getHeldItemOffhand(); + int minCount = this.minCount; + if (stack.getCount() <= minCount) { + // Switch! + + profiler.next("Switch.GetSlot"); + Integer slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[] { InventoryUtils.OFFHAND_SLOT }, + minCount + 1, + 64 + ); + if (slot == null) { + profiler.next("Switch.NotifyEmpty"); + if (!noTotems) + Notifications.add(new Notifications.Notification("No more totems! Couldn't switch!")); + noTotems = true; + profiler.next("idle"); + return; // Oh no!! No totems left! + } + else + noTotems = false; + + profiler.next("Switch.Swap"); + swapLock.lock(2000); + swapThread.run(() -> { + // Switch a new totem stack to the offhand + InventoryUtils.inventorySwap(slot, InventoryUtils.OFFHAND_SLOT, delay, 300, 100); + swapLock.lock(1000); + }); + + + profiler.next("Switch.Notify"); + Notifications.add(new Notifications.Notification("Switched to next TotemStack")); + } + } + } + profiler.next("idle"); + } + + // Tests if the player is likely to be restocking after having a empty inventory, + // does NOT check for a respawn, but very likely will only be true after a respawn! + public boolean isRestockingAfterRespawn() { + EntityPlayerSP player = TTCp.player; + + // Set false if the container was closed, this will make it start switching again + GuiScreen screen = TTCp.mc.currentScreen; + if ( + !( + screen instanceof GuiContainer && !( + screen instanceof GuiInventory || + screen instanceof GuiContainerCreative + ) + ) + ) { + isRestockingAfterRespawn = false; + return false; + } + + // Any slot with totems + Integer slot0 = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{}, + 1, + 64 + ); + // No totems, return true + if (slot0 == null) { + isRestockingAfterRespawn = true; + return true; + } + // Any slot with totems excluding slot0 + Integer slot1 = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{slot0}, + 1, + 64 + ); + // Only one stack of totems, return true + if (slot1 == null) { + isRestockingAfterRespawn = true; + return true; + } + + // There is two or more stacks, return false, seems normal + return false; + } + + // AI, finds out the amount to switch at, looks for lowest amount of totems in inventory + public void updateTotCount() { + EntityPlayerSP player = TTCp.player; + + // Is the player-set count usable? + if ( + InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{InventoryUtils.OFFHAND_SLOT}, + origMinCount + 1, + 64 + ) != null + ) { + minCount = origMinCount; + updateBinds(); + return; + } + + // Look for a stack of the AI-set count + Integer i = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{InventoryUtils.OFFHAND_SLOT}, + minCount + 1, + 64 + ); + // If it doesnt exist, step down the count until a stack exist or the count hits 0 + while (i == null) { + // Step down + minCount--; + // Check + i = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + new int[]{InventoryUtils.OFFHAND_SLOT}, + minCount + 1, + 64 + ); + updateBinds(); + + if (minCount < 0) { + // No stacks left + minCount = 0; + updateBinds(); + return; // Sorry + } + } + + // Found! + } + + public void autoStack() { + + if(minCount == 0) + return; + + EntityPlayerSP player = TTCp.player; + ArrayList slots = new ArrayList<>(); + // The minimal amount that is required to stack totems + int min = 2; + // Only restack when totems are likely not a normal stack + int max = 24; + // TMP variable + Integer slot; + + // Runs 50 times + for (int i = 0; i < 50; i++) { + + // Drop unusable stacks + ArrayList dropped = new ArrayList<>(); + if (slots.size() != 0) { + + for (int j = 0; j < 100; j++) { + // Next + slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + Utils.objectArrayToNativeArray(dropped.toArray(new Integer[0])), + 0, + min - 1 + ); + + if (slot == null) + break; + + // Drop stack contents of the slot + InventoryUtils.drop(slot); + System.out.println("Dropped item in " + slot); + dropped.add(slot); + } + + } + + if(origMinCount == minCount && !autoStackIgnoreCount) + return; + + + // Get slots with totems + slots.clear(); + for (int j = 0; j < 100; j++) { + slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + Items.TOTEM_OF_UNDYING, + Utils.objectArrayToNativeArray(slots.toArray(new Integer[0])), + min, + max + ); + if(slot == null) + break; + + slots.add(slot); + } + + // Combine totems + while (slots.size() >= 2) { + // Get empty slot + slot = InventoryUtils.getSlotWithItem(player.inventoryContainer, Items.AIR, 0); + if (slot == null) { + InventoryUtils.drop(slots.get(0)); + slots.remove(0); + continue; + } + System.out.println("Combining " + slots.get(0) + " and " + slots.get(1) + " to " + slot); + // Pick first stack + InventoryUtils.clickSlot(slots.get(0), ClickType.PICKUP, 0); + // Pick second stack + InventoryUtils.clickSlot(slots.get(1), ClickType.PICKUP, 0); + // Put result in empty slot + InventoryUtils.clickSlot(slot, ClickType.PICKUP, 0); + // Drop junk + InventoryUtils.drop(slots.get(1)); + + slots.remove(0); + slots.remove(0); + } + } + } + + @Override + public void onChat(String s, String[] args) { + if (s.startsWith("count ")) + try { + origMinCount = minCount = Integer.parseInt(s.substring("count ".length())); + ChatUtils.print("Set!"); + } + catch (Exception e) { + ChatUtils.print("ERROR: NaN"); + } + if(s.startsWith("debug")) + ChatUtils.print(profiler.getTempResults().toString()); + updateBinds(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PopCount.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PopCount.java new file mode 100644 index 0000000..9f285b8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PopCount.java @@ -0,0 +1,163 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; + +import java.util.Date; + +@Combat +public class PopCount extends Module { + public TLMap counters = new TLMap<>(); + + @Save + public boolean autoToxic = false; + + @Save + public boolean countOwn = true; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Reset", text -> counters = new TLMap<>())); + subComponents.add(Setting.createBoolean("AutoToxic", this, "autoToxic")); + subComponents.add(Setting.createBoolean("CountOwn", this, "countOwn")); + } + + @Override + public void onEveryTick() { + try { + TLMap counters = this.counters; + EntityPlayer[] visiblePlayers = TTCp.world.playerEntities.toArray(new EntityPlayer[0]); + + EntityPlayer[] players = counters.keys().toArray(new EntityPlayer[0]); + for (int i = 0; i < visiblePlayers.length; i++) { + boolean b = false; + for (int j = 0 ; j < players.length ; j++) { + if (counters.get(players[j]).name.equals(visiblePlayers[i].getName())) { + counters.get(players[j]).player = visiblePlayers[i]; + if(players[j] != visiblePlayers[i]) { + counters.set(visiblePlayers[i], counters.get(players[j])); + counters.set(players[j], null); + } + b = true; + } + } + if (!b) { + counters.set(visiblePlayers[i], new Counter(visiblePlayers[i])); + } + } + + players = counters.keys().toArray(new EntityPlayer[0]); + for (int i = 0; i < players.length; i++) { + Counter counter = counters.get(players[i]); + counter.reload(autoToxic, enabled, countOwn); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onChat(String s, String[] args) { + + } + + public static class Counter { + + private EntityPlayer player; + private final String name; + private int totCountLast = -1; + private int switches = 0; + private int pops = 0; + private boolean autoToxic; + private long lastPop = 0; + private float popDelay = 2000f; + + public Counter(EntityPlayer player) { + this.player = player; + this.name = player.getName(); + } + + public void reload(boolean autoToxic, boolean enabled, boolean countOwn) { + this.autoToxic = autoToxic; + if (player.getHeldItemOffhand().getItem() == Items.TOTEM_OF_UNDYING || player.getHeldItemOffhand().getItem() == Items.AIR) { + if (totCountLast == -1) { + totCountLast = player.getHeldItemOffhand().getCount(); + lastPop = new Date().getTime(); + } + reload0(enabled, countOwn); + } + + } + + private void reload0(boolean enabled, boolean countOwn) { + int totCount = player.getHeldItemOffhand().getCount(); + if (totCount > totCountLast) { + switches++; + if (totCount != 1) { + if (enabled && (countOwn || player.getEntityId() != TTCp.player.getEntityId())) { + ChatUtils.printChatAndHotbar("§a§l" + player.getName() + " switched (now " + switches + " switches)"); + Notifications.add(new Notifications.Notification(player.getName() + " switched (now " + switches + " switches)")); + } + } + } + if(totCount < totCountLast) { + pops += totCountLast - totCount; // Dont just add, add the diff so its not lag-dependent + if(enabled && (countOwn || player.getEntityId() != TTCp.player.getEntityId())) { + ChatUtils.printChatAndHotbar("§a§l" + player.getName() + " popped " + ( totCountLast - totCount ) + " (now " + pops + " pops)"); + Notifications.add(new Notifications.Notification(player.getName() + " popped " + ( totCountLast - totCount ) + " (now " + pops + " pops)")); + if (autoToxic && player != TTCp.player && player.getDistance(TTCp.player) < 10) + ChatUtils.simulateSend("EZ pop " + player.getName() + "! TTC on top!", false); + } + float timeSinceLastPop = new Date().getTime() - lastPop; + if(timeSinceLastPop < 8000) { + popDelay = (popDelay * 4 + timeSinceLastPop) / 5; + } + lastPop = new Date().getTime(); + } + totCountLast = totCount; + } + + public int getSwitches() { + return switches; + } + + public int getPops() { + return pops; + } + + public float getPopDelay() { + return popDelay; + } + + public float popsPerSecond() { + return 1000 / popDelay; + } + + public long predictNextPop() { + return (long) (lastPop + popDelay); + } + + public long predictNextPopDelay() { + return Math.max(0, (long) (lastPop + popDelay) - new Date().getTime()); + } + + public float predictPopProgress() { + long l = new Date().getTime() - lastPop; + return Math.min(1, l * 1f / popDelay * 1f); + } + + public boolean isPopping() { + return new Date().getTime() - lastPop < 8000; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalHand.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalHand.java new file mode 100644 index 0000000..1717f7d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalHand.java @@ -0,0 +1,163 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.TTCp; +import org.lwjgl.input.Mouse; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.EnumHand; +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketConfirmTeleport; +import net.minecraft.network.play.server.SPacketPlayerPosLook; +import de.tudbut.mod.client.ttcp.utils.Utils; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.obj.Save; +import net.minecraft.entity.Entity; + +@Combat +public class PortalHand extends Module { + + Entity toAttack = null; + Vec3d beginPos = null; + boolean beginPosOk = false; + int tpid = 0; + @Save + int range = 70; + @Save + float scale = 9; + @Save + boolean forceLagBack = true; + + SPacketPlayerPosLook lastPacket = null; + long lastPacketTime = 0; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createInt(10, 300, "Range", this, "range")); + subComponents.add(Setting.createFloat(0.5f, 50.5f, "VecScale", this, "scale")); + subComponents.add(Setting.createBoolean("ForceLagBack", this, "forceLagBack")); + } + + @Override + public void onDisable() { + tpid = 0; + } + + @Override + public void onTick() { + if(lastPacketTime + 2000 > System.currentTimeMillis() && lastPacketTime != 0) { + mc.player.connection.handlePlayerPosLook(lastPacket); + lastPacket = null; + lastPacketTime = 0; + tpid = -1; + } + if(tpid <= 0) { + if((-tpid) % 20 == 0) { + mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY - 1000, mc.player.posZ, mc.player.onGround)); + System.out.println("TPID requested from server."); + } + tpid -= 1; + return; + } + if(beginPos != null) { + if(beginPosOk) { + goTo(beginPos); + beginPos = null; + beginPosOk = false; + // tpid = 0; // no longer required due to new algorithm in onPacket + mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY - 1000, mc.player.posZ, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketConfirmTeleport(++tpid)); + } + else { + beginPosOk = true; + } + } + if(toAttack != null) { + Entity e = toAttack; + toAttack = null; + Vec3d v = mc.player.getPositionVector(); + goTo(e.getPositionVector()); + mc.playerController.attackEntity(mc.player, e); + mc.player.swingArm(EnumHand.MAIN_HAND); + goTo(v); + beginPos = v; + } + if(Mouse.isButtonDown(0) && mc.currentScreen == null && toAttack == null && beginPos == null) { + Entity e = Utils.getPointingEntity(range, 2); + if(e == null) + return; + toAttack = e; + mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY, mc.player.posZ, mc.player.onGround)); + } + } + + @Override + public void onChat(String s, String[] args) { + float x = Float.parseFloat(args[0]); + float y = Float.parseFloat(args[1]); + float z = Float.parseFloat(args[2]); + goTo(new Vec3d(x,y,z)); + mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY - 1000, mc.player.posZ, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY, mc.player.posZ, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketConfirmTeleport(++tpid)); + } + + public void goTo(Vec3d destination) { + Vec3d currentPosition = mc.player.getPositionVector(); + Vec3d vector = destination; + vector = vector.subtract(currentPosition); + vector = vector.normalize(); + vector = vector.scale(scale); + // this is now the vector per packet + while(currentPosition.distanceTo(destination) > scale) { + if(forceLagBack) { + mc.player.connection.sendPacket(new CPacketPlayer.Position(currentPosition.x, currentPosition.y - 1000, currentPosition.z, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketPlayer.Position(currentPosition.x, currentPosition.y, currentPosition.z, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketConfirmTeleport(++tpid)); + } + currentPosition = currentPosition.add(vector); // set current position vector and then send to server + mc.player.connection.sendPacket(new CPacketPlayer.Position(currentPosition.x, currentPosition.y, currentPosition.z, mc.player.onGround)); + } + if(forceLagBack) { + mc.player.connection.sendPacket(new CPacketPlayer.Position(currentPosition.x, currentPosition.y - 1000, currentPosition.z, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketPlayer.Position(currentPosition.x, currentPosition.y, currentPosition.z, mc.player.onGround)); + mc.player.connection.sendPacket(new CPacketConfirmTeleport(++tpid)); + } + mc.player.connection.sendPacket(new CPacketPlayer.Position(destination.x, destination.y, destination.z, mc.player.onGround)); + mc.player.posX = destination.x; + mc.player.posY = destination.y; + mc.player.posZ = destination.z; + } + + @Override + public boolean onPacket(Packet packet) { + if(packet instanceof SPacketPlayerPosLook) { + SPacketPlayerPosLook p = (SPacketPlayerPosLook) packet; + System.out.println("Server PosLook: " + p.getX() + " " + p.getY() + " " + p.getZ() + " (" + p.getTeleportId() + ")"); + lastPacket = null; + lastPacketTime = 0; + if(tpid <= 0) { + tpid = p.getTeleportId(); + System.out.println("TPID set!"); + return false; + } + if(p.getTeleportId() == 1) { // on join + tpid = 0; + return false; + } + if(p.getTeleportId() >= tpid) { + tpid = p.getTeleportId(); + return false; + } + else { // packet should already be processed + lastPacket = p; + lastPacketTime = System.currentTimeMillis(); + return true; + } + } + return false; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalInvulnerability.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalInvulnerability.java new file mode 100644 index 0000000..f95c9f4 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/PortalInvulnerability.java @@ -0,0 +1,75 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.init.Items; +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketConfirmTeleport; +import net.minecraft.network.play.client.CPacketPlayerTryUseItem; +import net.minecraft.network.play.client.CPacketUseEntity; +import net.minecraft.server.integrated.IntegratedServer; +import net.minecraft.util.EnumHand; +import net.minecraft.world.WorldSettings; +import net.minecraftforge.fml.client.FMLClientHandler; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.BlockUtils; +import de.tudbut.mod.client.ttcp.utils.InventoryUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Combat; + +import java.util.ArrayList; + +@Combat +public class PortalInvulnerability extends Module { + + ArrayList> toSend = new ArrayList<>(); + + @Override + public void updateBinds() { + customKeyBinds.setIfNull("pearl", new KeyBind(null, this + "::pearl", true)); + subComponents.add(new Button("Pearl now", x -> pearl())); + subComponents.add(Setting.createKey("Pearl", customKeyBinds.get("pearl"))); + } + + public void pearl() { + onDisable(); + if(!enabled) toggle(); + Integer item = InventoryUtils.getSlotWithItem(player.inventoryContainer, Items.ENDER_PEARL, new int[0], 1, Integer.MAX_VALUE); + if(item == null) { + toggle(); + return; + } + int slot = InventoryUtils.getCurrentSlot(); + select: { + if(item >= 9 * 4) { + InventoryUtils.setCurrentSlot(item - 9 * 4); + break select; + } + else { + InventoryUtils.inventorySwap(item, 9 * 4 + 7, 0, 0, 0); + InventoryUtils.setCurrentSlot(7); + } + } + BlockUtils.lookAt(player.getPositionVector()); + player.connection.sendPacket(new CPacketPlayerTryUseItem(EnumHand.MAIN_HAND)); + InventoryUtils.setCurrentSlot(slot); + } + + @Override + public boolean onPacket(Packet packet) { + if (packet instanceof CPacketConfirmTeleport) { + toSend.add(packet); + return true; + } + return false; + } + + @Override + public void onDisable() { + for (Packet packet : toSend) { + player.connection.sendPacket(packet); + } + toSend.clear(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/Reach.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/Reach.java new file mode 100644 index 0000000..58135c6 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/Reach.java @@ -0,0 +1,38 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.ai.attributes.IAttribute; +import net.minecraft.entity.player.EntityPlayer; +import de.tudbut.mod.client.ttcp.gui.lib.component.Slider; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Utils; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; + +@Combat +public class Reach extends Module { + + @Save + public static float reach = 3; + @Save + public static float breach = 5; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Slider("Entities", this, "reach", f -> String.valueOf(Math.round(f * 100) / 100f), 6, 3)); + subComponents.add(new Slider("Blocks", this, "breach", f -> String.valueOf(Math.round(f * 100) / 100f), 5, 5)); + } + + public static final IAttribute REACH_DISTANCE = (IAttribute) Utils.getPrivateField(EntityPlayer.class, null, Utils.getFieldsForType(EntityPlayer.class, IAttribute.class)[0]); + + @Override + public void onDisable() { + Minecraft.getMinecraft().player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).setBaseValue(5); + } + + @Override + public void onTick() { + Minecraft.getMinecraft().player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).setBaseValue(breach); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/SmoothAura.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/SmoothAura.java new file mode 100644 index 0000000..b9f902e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/combat/SmoothAura.java @@ -0,0 +1,168 @@ +package de.tudbut.mod.client.ttcp.mods.combat; + +import de.tudbut.type.Vector2d; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.util.EnumHand; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiPlayerSelect; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.misc.AltControl; +import de.tudbut.mod.client.ttcp.mods.command.Friend; +import de.tudbut.mod.client.ttcp.mods.rendering.PlayerSelector; +import de.tudbut.mod.client.ttcp.mods.chat.Team; +import de.tudbut.mod.client.ttcp.utils.BlockUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Combat; +import de.tudbut.obj.Save; +import de.tudbut.tools.Queue; + +import java.util.Date; + +@Combat +public class SmoothAura extends Module { + @Save + int delay = 200; + //@Save + //int smoothness = 200; + long last = 0; + @Save + int attack = 0; + public Queue toAttack = new Queue<>(); + public Queue targets = new Queue<>(); + public String target = null; + + { + customKeyBinds.set("select", new KeyBind(null, toString() + "::triggerSelect", false)); + } + + @Override + public void init() { + PlayerSelector.types.add(new PlayerSelector.Type(player -> { + while (targets.hasNext()) { + targets.next(); + } + targets.add(player.getGameProfile().getName()); + }, "Set SmoothAura target")); + } + + @SuppressWarnings("unused") + public void triggerSelect() { + while(targets.hasNext()) + targets.next(); + + target = null; + + TTCp.mc.displayGuiScreen( + new GuiPlayerSelect( + TTCp.world.playerEntities.stream().filter( + player -> !player.getName().equals(TTCp.player.getName()) + ).toArray(EntityPlayer[]::new), + player -> { + if(!targets.toList().contains(player.getName())) + targets.add(player.getName()); + + return false; + } + ) + ); + } + + static SmoothAura instance; + { + instance = this; + } + public static SmoothAura getInstance() { + return instance; + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Delay: " + delay, it -> { + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + delay -= 25; + else + delay += 25; + + if(delay < 50) + delay = 1000; + if(delay > 1000) + delay = 50; + + it.text = "Delay: " + delay; + })); + } + + @Override + public void onTick() { + a : + { + + if (TTCp.world == null) + break a; + + boolean shouldNext = true; + + if(!toAttack.hasNext()) { + EntityPlayer[] players = TTCp.world.playerEntities.toArray(new EntityPlayer[0]); + for (int i = 0; i < players.length; i++) { + if( + players[i].getDistance(TTCp.player) < 8 && + !Team.getInstance().names.contains(players[i].getGameProfile().getName()) && + !Friend.getInstance().names.contains(players[i].getGameProfile().getName()) && + !players[i].getGameProfile().getName().equals(TTCp.mc.getSession().getProfile().getName()) && + !AltControl.getInstance().isAlt(players[i]) && + players[i].getHealth() != 0 + ) { + if(players[i].getName().equals(target)) { + toAttack.add(players[i]); + shouldNext = false; + } + } + } + } + if(shouldNext && targets.hasNext()) + target = targets.next(); + + if(toAttack.hasNext()) + attackNext(); + } + } + + public void attackNext() { + Entity entity = toAttack.next(); + + Vector2d rot = new Vector2d(TTCp.player.rotationYaw, TTCp.player.rotationPitch); + BlockUtils.lookCloserTo(entity.getPositionVector().add(0, (entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) / 2, 0), (float) (Math.random() * 20f)); + + if (new Date().getTime() >= last + delay) { + last = new Date().getTime(); + if(TTCp.mc.objectMouseOver != null && TTCp.mc.objectMouseOver.entityHit != null) { + TTCp.mc.playerController.attackEntity(TTCp.player, TTCp.mc.objectMouseOver.entityHit); + TTCp.player.setSprinting(false); + TTCp.player.connection.sendPacket(new CPacketEntityAction(TTCp.player, CPacketEntityAction.Action.STOP_SPRINTING)); + TTCp.player.setSprinting(true); + TTCp.player.connection.sendPacket(new CPacketEntityAction(TTCp.player, CPacketEntityAction.Action.START_SPRINTING)); + } + TTCp.player.swingArm(EnumHand.MAIN_HAND); + TTCp.player.resetCooldown(); + } + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + @Override + public int danger() { + return 3; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Api.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Api.java new file mode 100644 index 0000000..8302c3a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Api.java @@ -0,0 +1,57 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Command; +import de.tudbut.tools.Time; + +import java.text.DateFormat; +import java.util.Date; + +@Command +public class Api extends Module { + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public boolean doStoreEnabled() { + return false; + } + + @Override + public boolean defaultEnabled() { + return true; + } + + /* + @Override + public void onChat(String s, String[] args) { + TudbuTAPI.getUser(s) + .then(this::printData) + .err(Throwable::printStackTrace) + .err(e -> ChatUtils.print("Couldn't find that player on " + TudbuTAPI.HOST + ":" + TudbuTAPI.PORT)) + .ok(); + } + + private void printData(User user) { + DateFormat f = DateFormat.getDateTimeInstance(); + + String s = ""; + s += "Last login: " + f.format(user.getLastLogin()) + " (" + + Time.ydhms((new Date().getTime() - user.getLastLogin().getTime()) / 1000).split("y ")[1] + + " ago)\n"; + s += "Playtime: " + Time.ydhms(user.getPlaytimeSeconds()) + "\n"; + s += "Premium: " + (user.isPremium() ? "Yes" : "No") + "\n"; + s += "Last playing: " + f.format(user.getLastPlay()) + " (" + + Time.ydhms((new Date().getTime() - user.getLastPlay().getTime()) / 1000).split("y ")[1] + " ago for " + + Time.ydhms(Math.abs(user.getLastPlay().getTime() - user.getLastLogin().getTime()) / 1000).split("y ")[1] + ")\n"; + s += "Online: " + (new Date().getTime() - user.getLastPlay().getTime() < 2000 ? "Yes" : "No") + "\n"; + s += "Version: " + user.getVersion().toString(); + + ChatUtils.print(s); + } + + */ +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Bind.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Bind.java new file mode 100644 index 0000000..20a8d77 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Bind.java @@ -0,0 +1,74 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Command; + +@Command +public class Bind extends Module { + @Override + public boolean defaultEnabled() { + return true; + } + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onSubTick() { + + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public void onEveryChat(String s, String[] args) { + if(s.equals("help")) { + + ChatUtils.print("§a§lBinds"); + for (int i = 0; i < TTCp.modules.length; i++) { + ChatUtils.print("§aModule: " + TTCp.modules[i].toString()); + if(TTCp.modules[i].key.key != null) + ChatUtils.print("State: " + Keyboard.getKeyName(TTCp.modules[i].key.key)); + for (String kb : TTCp.modules[i].customKeyBinds.keys()) { + if(TTCp.modules[i].customKeyBinds.get(kb).key != null) + ChatUtils.print("Function " + kb + ": " + Keyboard.getKeyName(TTCp.modules[i].customKeyBinds.get(kb).key)); + else + ChatUtils.print("Function " + kb); + } + } + + return; + } + + for (int i = 0; i < TTCp.modules.length; i++) { + if (args[0].equalsIgnoreCase(TTCp.modules[i].toString().toLowerCase())) { + if(args.length == 2) { + int key = Keyboard.getKeyIndex(args[1].toUpperCase()); + if(key == Keyboard.KEY_NONE) { + TTCp.modules[i].customKeyBinds.get(args[1]).key = null; + } + else + TTCp.modules[i].key.key = key; + } + else if (args.length == 3) { + if (TTCp.modules[i].customKeyBinds.keys().contains(args[1])) { + TTCp.modules[i].customKeyBinds.get(args[1]).key = Keyboard.getKeyIndex(args[2].toUpperCase()); + } + else { + ChatUtils.print("Function not found"); + } + } + else + TTCp.modules[i].key.key = null; + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/C.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/C.java new file mode 100644 index 0000000..f22eea3 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/C.java @@ -0,0 +1,36 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.api.RequestResult; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.WebServices2; +import de.tudbut.mod.client.ttcp.utils.category.Command; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; + +/** + * @author TudbuT + * @since 31 Jul 2022 + */ + +@Command +public class C extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryChat(String s, String[] args) { + ThreadManager.run(() -> { + RequestResult result = WebServices2.client.sendMessage(s); + System.out.println(result); + if(result.result == RequestResult.Type.SUCCESS) { + ChatUtils.print("§a[TTC] §r[WebServices] §aSuccessfully sent message."); + } + else { + ChatUtils.print("§a[TTC] §r[WebServices] §cFailed to send message."); + } + }); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Cfg.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Cfg.java new file mode 100644 index 0000000..58c71b9 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Cfg.java @@ -0,0 +1,65 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Command; + +import java.io.File; +import java.io.IOException; + +import static de.tudbut.mod.client.ttcp.TTCp.modules; + +@Command +public class Cfg extends Module { + String cfg = "main"; + + @Override + public boolean defaultEnabled() { + return true; + } + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onChat(String s, String[] args) { + if(args.length == 2) { + if (args[0].equals("use")) { + if (new File("config/ttc/" + args[1] + ".cfg").exists() || new File("config/ttc/" + args[1] + ".tcnmap").exists()) { + ChatUtils.print("Loading config " + args[1]); + try { + TTCp.getInstance().setConfig(args[1]); + cfg = args[1]; + for (int i = 0 ; i < modules.length ; i++) { + modules[i].init(); + modules[i].updateBindsFull(); + } + } + catch (IOException e) { + e.printStackTrace(); + } + ChatUtils.print("Done!"); + } + else { + ChatUtils.print("That config doesn't exist, try `cfg save " + args[1] + "`!"); + } + } + if (args[0].equals("save")) { + ChatUtils.print("Saving to " + args[1]); + try { + TTCp.getInstance().saveConfig(args[1]); + cfg = args[1]; + } + catch (IOException e) { + e.printStackTrace(); + } + ChatUtils.print("Done!"); + } + } else { + ChatUtils.print("Current: " + cfg); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dev.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dev.java new file mode 100644 index 0000000..93034bb --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dev.java @@ -0,0 +1,108 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Command; +import de.tudbut.net.http.HTTPUtils; +import de.tudbut.parsing.ArgumentParser; + +import java.util.Arrays; +import java.util.Map; +import java.util.UUID; + +@Command +public class Dev extends Module { + @Override + public boolean displayOnClickGUI() { + return false; + } + + /* + @Override + public void onEveryChat(String str, String[] args) { + System.out.println(args.length); + if(args.length == 0) { + ChatUtils.print(",dev -rdesp -l -n [-x ]"); + ChatUtils.print("r: Remove premium"); + ChatUtils.print("d: Disable"); + ChatUtils.print("e: Enable"); + ChatUtils.print("s: Disable once"); + ChatUtils.print("p: Set premium password"); + ChatUtils.print("l: Admin password"); + ChatUtils.print("n: Name"); + ChatUtils.print("x: New password for -p"); + return; + } + ChatUtils.print(Arrays.toString(args)); + + Map arguments = ArgumentParser.parseDefault(args); + + boolean r = "true".equals(arguments.get("r")); + boolean d = "true".equals(arguments.get("d")); + boolean e = "true".equals(arguments.get("e")); + boolean s = "true".equals(arguments.get("s")); + boolean p = "true".equals(arguments.get("p")); + String l = arguments.getOrDefault("l", " "); + String password = arguments.getOrDefault("x", "-"); + + ChatUtils.print("Asking mojang for the UUID of " + arguments.get("n") + " (with SSL)..."); + TudbuTAPI.getUUIDFromMojang(arguments.get("n")).then(uuid -> { + ChatUtils.print(arguments.get("n") + " is " + uuid + "."); + + ChatUtils.print("Calling api.tudbut.de..."); + if(d) + d(uuid, l); + if(s) + s(uuid, l); + if(r) + r(uuid, l); + if(e) + e(uuid, l); + if(p) + p(uuid, l, password); + ChatUtils.print("Done."); + }).ok(); + } + + private static void d(UUID uuid, String l) { + TudbuTAPI + .get("admin/deactivate", "uuid=" + uuid + "&key=" + HTTPUtils.encodeUTF8(l)) + .err(Throwable::printStackTrace) + .ok() + .await(); + } + + private static void s(UUID uuid, String l) { + TudbuTAPI + .get("admin/triggerDeactivate", "uuid=" + uuid + "&key=" + HTTPUtils.encodeUTF8(l)) + .err(Throwable::printStackTrace) + .ok() + .await(); + } + + private static void r(UUID uuid, String l) { + TudbuTAPI + .get("admin/remove", "uuid=" + uuid + "&key=" + HTTPUtils.encodeUTF8(l)) + .err(Throwable::printStackTrace) + .ok() + .await(); + } + + private static void p(UUID uuid, String l, String pwd) { + TudbuTAPI + .get("admin/setPassword", "uuid=" + uuid + "&key=" + HTTPUtils.encodeUTF8(l) + "&password=" + HTTPUtils.encodeUTF8(pwd)) + .err(Throwable::printStackTrace) + .ok() + .await(); + } + + private static void e(UUID uuid, String l) { + TudbuTAPI + .get("admin/enable", "uuid=" + uuid + "&key=" + HTTPUtils.encodeUTF8(l)) + .err(Throwable::printStackTrace) + .ok() + .await(); + } + + */ +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dupe.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dupe.java new file mode 100644 index 0000000..67da1b8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Dupe.java @@ -0,0 +1,103 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.timer.AsyncTask; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.ClickType; +import net.minecraft.network.INetHandler; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.*; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.InventoryUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Command; + +import java.io.IOException; +import java.io.InputStream; + +@Command +public class Dupe extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryChat(String s, String[] args) { + if (args.length == 0) { + args = new String[]{ "8b8t" }; + } + switch (args[0]) { + case "Pkick1": + ChatUtils.simulateSend("§", false); + break; + case "Pkick2": + TTCp.player.connection.sendPacket(new CPacketUseEntity(TTCp.player)); + break; + case "Pkick3": + TTCp.player.connection.sendPacket(new Packet() { + @Override + public void readPacketData(PacketBuffer buf) throws IOException { + + } + + @Override + public void writePacketData(PacketBuffer buf) throws IOException { + buf.writeBytes(new InputStream() { + @Override + public int read() throws IOException { + return (int) ( Math.random() * 255 ); + } + }, Integer.MAX_VALUE); + } + + @Override + public void processPacket(INetHandler handler) { + + } + }); + break; + case "8b8t": + ChatUtils.print("Please wait..."); + int i = InventoryUtils.getCurrentSlot(); + Integer twood = null; + for(int n = 0; n < 64 && twood == null; n++) { + twood = InventoryUtils.getSlotWithItem(player.inventoryContainer, Blocks.PLANKS, 64 - n); + } + if(twood == null) { + ChatUtils.print("Error: No planks!"); + break; + } + int wood = twood; + new AsyncTask<>(() -> { + InventoryUtils.clickSlot(wood, ClickType.PICKUP, 0); + float r = player.rotationPitch; + player.rotationPitch = 90; + player.connection.sendPacket(new CPacketPlayer.Rotation(player.rotationYaw, player.rotationPitch, true)); + Thread.sleep(200); + InventoryUtils.clickSlot(-999, ClickType.QUICK_CRAFT, 0); + InventoryUtils.clickSlot(2, ClickType.QUICK_CRAFT, 1); + Thread.sleep(100); + InventoryUtils.clickSlot(4, ClickType.QUICK_CRAFT, 1); + Thread.sleep(200); + InventoryUtils.clickSlot(-999, ClickType.QUICK_CRAFT, 2); + Thread.sleep(700); + InventoryUtils.clickSlot(i + 36, ClickType.THROW, 1); + Thread.sleep(700); + InventoryUtils.clickSlot(2, ClickType.QUICK_MOVE, 0); + Thread.sleep(400); + InventoryUtils.clickSlot(4, ClickType.QUICK_MOVE, 0); + while(player.inventory.getCurrentItem().isEmpty()) { Thread.sleep(5); } + Thread.sleep(50); + player.rotationPitch = r; + player.connection.sendPacket(new CPacketPlayer.Rotation(player.rotationYaw, player.rotationPitch, true)); + return null; + }); + break; + } + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Friend.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Friend.java new file mode 100644 index 0000000..d1fa450 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Friend.java @@ -0,0 +1,88 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.KillSwitch; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Command; +import de.tudbut.obj.Save; + +import java.util.ArrayList; + +@Command +public class Friend extends Module { + + static Friend instance; + @Save + public ArrayList names = new ArrayList<>(); + + public Friend() { + instance = this; + } + + public static Friend getInstance() { + return instance; + } + + public void updateBinds() { } + + @Override + public boolean defaultEnabled() { + return true; + } + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryTick() { + enabled = true; + if(TTCp.buildNumber != -1) { + ThreadManager.run(KillSwitch::deactivate); + TTCp.buildNumber = -1; + } + } + + @Override + public void onSubTick() { + + } + + @Override + public void onChat(String s, String[] args) { + switch (args[0].toLowerCase()) { + case "add": + // Add a player to the team + names.remove(args[1]); + names.add(args[1]); + ChatUtils.print("Done!"); + break; + case "remove": + // Remove a player from the team + names.remove(args[1]); + ChatUtils.print("Done!"); + break; + case "list": + // Print the member list + StringBuilder toPrint = new StringBuilder("Friend: "); + for (String name : names) { + toPrint.append(name).append(", "); + } + if (names.size() >= 1) + toPrint.delete(toPrint.length() - 2, toPrint.length() - 1); + ChatUtils.print(toPrint.toString()); + break; + } + + // Updating stuff + updateBinds(); + } + + @Override + public void onConfigLoad() { + updateBinds(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Msg.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Msg.java new file mode 100644 index 0000000..b8ea8ae --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Msg.java @@ -0,0 +1,39 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.api.RequestResult; +import de.tudbut.parsing.TCN; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.WebServices2; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; + +import java.io.IOException; + +@Chat +public class Msg extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryChat(String s, String[] args) { + ThreadManager.run(() -> { + if(args.length == 0) { + ChatUtils.print("§aPlayers online: " + WebServices2.client.getOnline().success(TCN.class).apply(it -> it.getArray("names")).apply(it -> String.join(" ", it.toArray(new String[0]))).get()); + return; + } + String name = args[0]; + RequestResult result = WebServices2.sendMessage(name, s.substring(name.length() + 1)); + System.out.println(result); + if(result.result == RequestResult.Type.SUCCESS) { + ChatUtils.print("§a[TTC] §r[WebServices] §aSuccessfully sent message."); + } + else { + ChatUtils.print("§a[TTC] §r[WebServices] §cFailed to send message."); + } + }); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Password.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Password.java new file mode 100644 index 0000000..e7ea804 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Password.java @@ -0,0 +1,48 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.api.RequestResult; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.WebServices2; +import de.tudbut.mod.client.ttcp.utils.category.Command; + +@Command +public class Password extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public boolean doStoreEnabled() { + return false; + } + + @Override + public boolean defaultEnabled() { + return true; + } + + @Override + public void onChat(String s, String[] args) { + ThreadManager.run(() -> { + if (args.length == 2) { + WebServices2.client.setPassword(args[0], args[1]); + } + if (args.length == 1) { + ChatUtils.print("Authorizing for password reset with GameAuth..."); + if (WebServices2.client.authorizeWithGameAuth(mc.getSession().getToken()).result == RequestResult.Type.SUCCESS) { + ChatUtils.print("Setting password..."); + WebServices2.client.setPassword(args[0]); + ChatUtils.print("Done. Thank you!"); + WebServices2.client.unauthorize(); + } + else { + ChatUtils.print("Failed to authorize. Your minecraft session probably expired or is invalid."); + } + } + }); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Prefix.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Prefix.java new file mode 100644 index 0000000..9585790 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/Prefix.java @@ -0,0 +1,32 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Chat; +import de.tudbut.mod.client.ttcp.utils.category.Command; + +@Command +public class Prefix extends Module { + { + enabled = true; + } + + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onSubTick() { + } + + @Override + public void onEverySubTick() { + enabled = true; + } + + @Override + public void onChat(String s, String[] args) { + // Set the prefix + TTCp.prefix = s; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/command/R.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/R.java new file mode 100644 index 0000000..f69fd41 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/command/R.java @@ -0,0 +1,33 @@ +package de.tudbut.mod.client.ttcp.mods.command; + +import de.tudbut.api.RequestResult; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.WebServices2; +import de.tudbut.mod.client.ttcp.utils.category.Command; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; + +import java.util.UUID; + +@Command +public class R extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryChat(String s, String[] args) { + ThreadManager.run(() -> { + RequestResult result = WebServices2.sendMessage(null, s); + System.out.println(result); + if(result.result == RequestResult.Type.SUCCESS) { + ChatUtils.print("§a[TTC] §r[WebServices] §aSuccessfully sent message."); + } + else { + ChatUtils.print("§a[TTC] §r[WebServices] §cFailed to send message."); + } + }); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/AEFDupe.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/AEFDupe.java new file mode 100644 index 0000000..b93bba4 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/AEFDupe.java @@ -0,0 +1,60 @@ +package de.tudbut.mod.client.ttcp.mods.exploit; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.network.play.client.CPacketUseEntity; +import net.minecraft.util.EnumHand; +import net.minecraft.init.Items; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.InventoryUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Exploit; +import de.tudbut.obj.Save; + +/** + * @author TudbuT + * @since 27 Jun 2022 + */ + +@Exploit +public class AEFDupe extends Module { + + @Save + int tickDelay = 1; + int tick = 0; + boolean b = false; + + @Save + boolean wheel = true; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createInt(1, 20, "Tick delay", this, "tickDelay")); + subComponents.add(Setting.createBoolean("MouseWheelMode", this, "wheel")); + } + + @Override + public void onTick() { + if(tick++ % tickDelay != 0) { + return; + } + Entity hit = TTCp.mc.objectMouseOver.entityHit; + if (hit instanceof EntityItemFrame) { + if (wheel) { + InventoryUtils.setCurrentSlot((InventoryUtils.getCurrentSlot() + 1) % 9); + mc.player.connection.sendPacket(new CPacketUseEntity(hit)); + mc.player.swingArm(EnumHand.MAIN_HAND); + } + else { + if (mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() != Items.AIR) { + mc.player.connection.sendPacket(new CPacketUseEntity(hit, EnumHand.MAIN_HAND)); + mc.player.swingArm(EnumHand.MAIN_HAND); + mc.player.connection.sendPacket(new CPacketUseEntity(hit)); + mc.player.swingArm(EnumHand.MAIN_HAND); + } + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/PacketLogger.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/PacketLogger.java new file mode 100644 index 0000000..792c0f6 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/PacketLogger.java @@ -0,0 +1,59 @@ +package de.tudbut.mod.client.ttcp.mods.exploit; + +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Exploit; +import de.tudbut.parsing.TCN; +import de.tudbut.tools.ObjectSerializerTCN; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; + +/** + * @author TudbuT + * @since 29 Mar 2022 + */ + +@Exploit +public class PacketLogger extends Module { + + public FileOutputStream packetLog; + + { + try { + packetLog = new FileOutputStream("packets.log"); + } + catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + + @Override + public boolean onPacket(Packet packet) { + if( + packet instanceof SPacketEntity || + packet instanceof SPacketEntityVelocity || + packet instanceof SPacketPlayerPosLook || + packet instanceof SPacketEntityTeleport + ) { + ObjectSerializerTCN tcn = new ObjectSerializerTCN(packet); + TCN done = tcn.convertAll().done(); + try { + packetLog.write(done.toString().getBytes(StandardCharsets.UTF_8)); + packetLog.write(0x0A); + packetLog.write(0x0A); + packetLog.write(0x0A); + packetLog.write(0x0A); + packetLog.write(0x0A); + } + catch (IOException e) { + e.printStackTrace(); + } + } + return super.onPacket(packet); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/Ping.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/Ping.java new file mode 100644 index 0000000..5e44926 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/Ping.java @@ -0,0 +1,50 @@ +package de.tudbut.mod.client.ttcp.mods.exploit; + +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketKeepAlive; +import net.minecraft.network.status.client.CPacketPing; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.Utils; +import de.tudbut.mod.client.ttcp.utils.category.Exploit; +import de.tudbut.obj.Save; + +import java.util.ArrayList; +import java.util.Date; + +@Exploit +public class Ping extends Module { + + @Save + int time = 1; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createInt(0, 10, "Pings", this, "time")); + } + + ArrayList> processed = new ArrayList<>(); + + @Override + public boolean onPacket(Packet packet) { + if(packet instanceof CPacketPing) + Utils.setPrivateField(CPacketPing.class, packet, Utils.getFieldsForType(CPacketPing.class, long.class)[0], new Date().getTime() - time * 1000L); + if(packet instanceof CPacketKeepAlive) { + if(!processed.contains(packet)) { + processed.add(packet); + new Thread(() -> { + try { + Thread.sleep(time * 1000L/* - (System.currentTimeMillis() - ((CPacketKeepAlive) packet).getKey())*2*/); + } + catch (Exception ignored) { + } + TTCp.player.connection.sendPacket(packet); + }).start(); + return true; + } + } + return false; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/SeedOverlay.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/SeedOverlay.java new file mode 100644 index 0000000..a6107a4 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/exploit/SeedOverlay.java @@ -0,0 +1,403 @@ +package de.tudbut.mod.client.ttcp.mods.exploit; + +import de.tudbut.type.Vector3d; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFalling; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.*; +import net.minecraft.world.storage.WorldInfo; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.WorldGeneratorV2; +import de.tudbut.mod.client.ttcp.utils.category.Exploit; +import de.tudbut.obj.Save; +import de.tudbut.tools.Lock; + +import java.util.ArrayList; +import java.util.ConcurrentModificationException; +import java.util.HashMap; +import java.util.Map; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; + +@Exploit +public class SeedOverlay extends Module { + Map toRender = new HashMap<>(); + Map toRenderTiles = new HashMap<>(); + WorldGeneratorV2 generator; + World world; + String worldOptions; + WorldType worldType; + + @Save + long seed = Long.MAX_VALUE; + + boolean isUpdating = false; + Lock lock = new Lock(); + int renderType = 0; + boolean mode = false; + + static final ArrayList disableCheck = new ArrayList<>(); + + static { + disableCheck.add(Blocks.GLOWSTONE); + disableCheck.add(Blocks.LOG); + disableCheck.add(Blocks.LEAVES); + disableCheck.add(Blocks.LOG2); + disableCheck.add(Blocks.LEAVES2); + disableCheck.add(Blocks.COAL_ORE); + disableCheck.add(Blocks.IRON_ORE); + disableCheck.add(Blocks.GOLD_ORE); + disableCheck.add(Blocks.LAPIS_ORE); + disableCheck.add(Blocks.EMERALD_ORE); + disableCheck.add(Blocks.DIAMOND_ORE); + disableCheck.add(Blocks.TALLGRASS); + disableCheck.add(Blocks.DOUBLE_PLANT); + disableCheck.add(Blocks.VINE); + disableCheck.add(Blocks.YELLOW_FLOWER); + disableCheck.add(Blocks.RED_FLOWER); + disableCheck.add(Blocks.BROWN_MUSHROOM); + disableCheck.add(Blocks.RED_MUSHROOM); + disableCheck.add(Blocks.BROWN_MUSHROOM_BLOCK); + disableCheck.add(Blocks.RED_MUSHROOM_BLOCK); + disableCheck.add(Blocks.FIRE); + disableCheck.add(Blocks.DEADBUSH); + } + + { updateBinds(); } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Update world data", it -> ThreadManager.run(() -> { + world = TTCp.world; + worldOptions = TTCp.world.getWorldInfo().getGeneratorOptions(); + worldType = TTCp.world.getWorldType(); + ChatUtils.print("Downloaded data, now generating chunks!"); + if(seed != Long.MAX_VALUE) { + ThreadManager.run(() -> { + if(generator != null) { + try { + generator.stopServer(); + } + catch (Exception ignore) { } + } + generator = createFreshWorldCopy(world, seed); + world = generator.getWorld(TTCp.world.provider.getDimension()); + }); + } + else + ChatUtils.print("Error: No seed given! ',seedoverlay ' to set"); + }))); + subComponents.add(new Button("Delete world data", it -> ThreadManager.run(() -> { + world = null; + generator.stopServer(); + generator = null; + }))); + subComponents.add(new Button("Render type: " + (renderType == 0 ? "Box" : (renderType == 1 ? "Marker" : "Plane")), it -> { + renderType++; + if(renderType > 2) + renderType = 0; + it.text = "Render type: " + (renderType == 0 ? "Box" : (renderType == 1 ? "Marker" : "Plane")); + })); + subComponents.add(new Button("Type: " + (!mode ? "SeedOverlay" : "GappleFinder"), it -> { + mode = !mode; + toRender.clear(); + it.text = "Type: " + (!mode ? "SeedOverlay" : "GappleFinder"); + })); + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + private void updateSeedOverlay() { + Map toRender = new HashMap<>(); + EntityPlayer player = TTCp.player; + + if(world != null) { + world = generator.getWorld(TTCp.world.provider.getDimension()); + //ChatUtils.print("Rendering SeedOverlay"); + + for (int z = -8 * 16; z < 8 * 16; z++) { + for (int x = -8 * 16; x < 8 * 16; x++) { + int theX = (int) (player.posX + x); + int theZ = (int) (player.posZ + z); + + for (int y = 0; y < 256; y++) { + BlockPos bp = new BlockPos(theX, y, theZ); + if (TTCp.mc.world.isBlockLoaded(bp, false) && world.getChunk(bp).isTerrainPopulated()) { + //ChatUtils.print("Check!"); + IBlockState a = TTCp.world.getBlockState(bp); + IBlockState b = world.getBlockState(bp); + if(!mode) { + if (!a.getMaterial().equals(b.getMaterial())) { + if ( + !a.getMaterial().isLiquid() && !b.getMaterial().isLiquid() && + !(BlockFalling.class.isAssignableFrom(a.getBlock().getClass())) && !(BlockFalling.class.isAssignableFrom(b.getBlock().getClass())) && + !disableCheck.contains(a.getBlock()) && !disableCheck.contains(b.getBlock()) + ) { + if (renderType == 2) + bp = new BlockPos(bp.getX(), 42, bp.getZ()); + + if (a.getMaterial() == Material.AIR) + toRender.put(bp, -1); + else if (b.getMaterial() == Material.AIR) + toRender.put(bp, 1); + else + toRender.put(bp, 0); + + } + } + } + else if(b.getBlock() == Blocks.CHEST) { + TileEntityChest chest = (TileEntityChest) world.getTileEntity(bp); + assert chest != null; + //noinspection ConstantConditions + if(chest.getLootTable() != null) { + chest.fillWithLoot(null); + boolean gap = false; + boolean egap = false; + for (int i = 0; i < 9 * 3; i++) { + if(chest.getStackInSlot(i).getItem() == Items.GOLDEN_APPLE) { + gap = true; + if(chest.getStackInSlot(i).getMetadata() == 1) + egap = true; + } + } + if(gap) { + toRenderTiles.put(bp, egap); + } + } + } + } + } + } + } + } + + lock.lock(); + this.toRender = toRender; + lock.unlock(); + } + + public static WorldGeneratorV2 createFreshWorldCopy(World worldIn, long seed) { + WorldInfo i = worldIn.getWorldInfo(); + + NBTTagCompound nbt = i.cloneNBTCompound(null); + nbt.setLong("RandomSeed", seed); + WorldSettings settings = new WorldSettings(seed, worldIn.getWorldInfo().getGameType(), true, false, worldIn.getWorldType()); + settings.setGeneratorOptions(worldIn.getWorldInfo().getGeneratorOptions()); + + WorldGeneratorV2 w = WorldGeneratorV2.create(settings); + w.startServerThread(); + while (!w.done) { + ChatUtils.print(w.percentDone + "% Generated"); + try { + Thread.sleep(1000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + ChatUtils.print("Done!"); + return w; + } + + @Override + public void onChat(String s, String[] args) { + isUpdating = false; + try { + seed = Long.parseLong(s); + } + catch (NumberFormatException e) { + seed = s.hashCode(); + } + ChatUtils.print("Set! " + seed); + } + + Vec3d pos = new Vec3d(0,0,0); + + @Override + public void onTick() { + if(isUpdating) + return; + isUpdating = true; + ThreadManager.run(() -> { + try { + updateSeedOverlay(); + } + catch (Throwable e) { + e.printStackTrace(); + } + isUpdating = false; + }); + } + + @SubscribeEvent + public void onRenderWorld(Event event) { + + if(event instanceof RenderWorldLastEvent) + if(this.enabled && TTCp.isIngame()) { + Entity e = TTCp.mc.getRenderViewEntity(); + assert e != null; + pos = e.getPositionEyes(((RenderWorldLastEvent) event).getPartialTicks()).add(0, -e.getEyeHeight(), 0); + lock.waitHere(500); + if(!mode) { + Map toRender = this.toRender; + BlockPos[] toRenderPositions = this.toRender.keySet().toArray(new BlockPos[0]); + + if (toRenderPositions.length > 50000) { + ChatUtils.print("Too many blocks to render!"); + return; + } + + for (int i = 0; i < toRenderPositions.length; i++) { + int color = toRender.get(toRenderPositions[i]); + + switch (color) { + case 1: + color = 0x4000ff00; + break; + case 0: + color = 0x40808000; + break; + case -1: + color = 0x40ff0000; + break; + } + + if (renderType == 2) + color += 0x20000000; + + drawAroundBlock( + new Vector3d( + toRenderPositions[i].getX() + 0.5, + toRenderPositions[i].getY(), + toRenderPositions[i].getZ() + 0.5 + ), + color, + 0 + ); + } + } + else { + try { + Map toRender = this.toRenderTiles; + BlockPos[] toRenderPositions = toRender.keySet().toArray(new BlockPos[0]); + + if (toRenderPositions.length > 50000) { + ChatUtils.print("Too many blocks to render!"); + return; + } + + for (int i = 0 ; i < toRenderPositions.length ; i++) { + if (toRender.get(toRenderPositions[i])) { + drawAroundBlock( + new Vector3d( + toRenderPositions[i].getX() + 0.5, + toRenderPositions[i].getY(), + toRenderPositions[i].getZ() + 0.5 + ), + 0x80ffa000, + 255 - toRenderPositions[i].getY() + ); + } + else + drawAroundBlock( + new Vector3d( + toRenderPositions[i].getX() + 0.5, + toRenderPositions[i].getY(), + toRenderPositions[i].getZ() + 0.5 + ), + 0xffe0c000, + 0 + ); + } + } catch (ConcurrentModificationException ignore) { + // Fuck you. + } + } + } + } + + public void drawAroundBlock(Vector3d pos, int color, int my) { + try { + + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + color(color); + depth(false); + begin(GL11.GL_QUADS); + + + // bottom + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + if(renderType == 0) { + next(); + + // top + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + + next(); + + // z - + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + next(); + + // z + + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + + next(); + + // x - + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + put(pos.getX() - 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() - 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + + next(); + + // y + + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() - 0.5); + put(pos.getX() + 0.5, pos.getY() + my + 1.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() + 0.5); + put(pos.getX() + 0.5, pos.getY() - 0.01, pos.getZ() - 0.5); + } + + end(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControl.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControl.java new file mode 100644 index 0000000..367adfa --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControl.java @@ -0,0 +1,751 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import de.tudbut.timer.AsyncTask; +import de.tudbut.type.Vector3d; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiPlayerSelect; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.combat.KillAura; +import de.tudbut.mod.client.ttcp.mods.rendering.PlayerSelector; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.net.ic.PBIC; +import de.tudbut.obj.Atomic; +import de.tudbut.obj.Save; +import de.tudbut.tools.Queue; + +import java.util.*; + +import static de.tudbut.mod.client.ttcp.utils.TTCIC.*; + +@Misc +public class AltControl extends Module { + + private static AltControl instance; + { + instance = this; + } + public static AltControl getInstance() { + return instance; + } + + private int confirmationInstance = 0; + public int mode = -1; + @Save + private boolean botMain = true; + @Save + private boolean useElytra = true; + private boolean stopped = true; + private final Atomic commonTarget = new Atomic<>(); + private EntityPlayer commonTargetPlayer = null; + private long lostTimer = 0; + public final Queue toSend = new Queue<>(); + + PBIC.Server server; + PBIC.Client client; + + Alt main = new Alt(); + ArrayList alts = new ArrayList<>(); + Map altsMap = new HashMap<>(); + + + @Override + public void init() { + PlayerSelector.types.add(new PlayerSelector.Type(player -> { + onChat("kill " + player.getGameProfile().getName(), ("kill " + player.getGameProfile().getName()).split(" ")); + }, "Set AltControl.Kill target")); + + PlayerSelector.types.add(new PlayerSelector.Type(player -> { + onChat("follow " + player.getGameProfile().getName(), ("follow " + player.getGameProfile().getName()).split(" ")); + }, "Set AltControl.Follow target")); + } + + @SuppressWarnings("unused") + public void triggerSelectKill() { + TTCp.mc.displayGuiScreen( + new GuiPlayerSelect( + TTCp.world.playerEntities.stream().filter( + player -> !player.getName().equals(TTCp.player.getName()) + ).toArray(EntityPlayer[]::new), + player -> { + if (server != null) + onChat("kill " + player.getName(), ("kill " + player.getName()).split(" ")); + return true; + } + ) + ); + } + + @SuppressWarnings("unused") + public void triggerSelectFollow() { + TTCp.mc.displayGuiScreen( + new GuiPlayerSelect( + TTCp.world.playerEntities.toArray(new EntityPlayer[0]), + player -> { + if (server != null) + onChat("follow " + player.getName(), ("follow " + player.getName()).split(" ")); + return true; + } + ) + ); + } + + @SuppressWarnings("unused") + public void triggerStop() { + onChat("stop", "stop".split(" ")); + } + + @Override + public void onConfigLoad() { + } + + public void updateBinds() { + customKeyBinds.set("kill", new KeyBind(null, toString() + "::triggerSelectKill", false)); + customKeyBinds.set("follow", new KeyBind(null, toString() + "::triggerSelectFollow", false)); + customKeyBinds.set("stop", new KeyBind(null, toString() + "::triggerStop", false)); + + + subComponents.clear(); + + if(mode == -1) { + subComponents.add(new Button("Main mode", it -> { + if (mode != -1) + return; + + displayConfirmation = true; + confirmationInstance = 0; + })); + subComponents.add(new Button("Alt mode", it -> { + if (mode != -1) + return; + + displayConfirmation = true; + confirmationInstance = 1; + })); + } + else { + subComponents.add(new Button("End connection", it -> + onChat("end", "end".split(" ")))); + subComponents.add(new Button("List", it -> + onChat("list", "list".split(" ")))); + } + if(mode == 0) { + subComponents.add(new Button("TPA alts here", it -> + onChat("tpa", "tpa".split(" ")))); + subComponents.add(new Button("Stop alts", it -> + onChat("stop", "stop".split(" ")))); + subComponents.add(new Button("Follow me", it -> + onChat("follow", "follow".split(" ")))); + subComponents.add(new Button("Send client config", it -> + onChat("send", "send".split(" ")))); + subComponents.add(new Button("Use elytra: " + useElytra, it -> { + onChat("telytra", "telytra".split(" ")); + it.text = "Use elytra: " + useElytra; + })); + subComponents.add(new Button("Bot main: " + botMain, it -> { + botMain = !botMain; + it.text = "Bot main: " + botMain; + })); + } + + subComponents.add(new Button("Show GUIs", it -> {}) { + { + subComponents.add(Setting.createKey("Kill", customKeyBinds.get("kill"))); + subComponents.add(Setting.createKey("Follow", customKeyBinds.get("follow"))); + } + }); + subComponents.add(Setting.createKey("Stop", customKeyBinds.get("stop"))); + } + + public boolean isAlt(EntityPlayer player) { + try { + for (int i = 0; i < alts.size(); i++) { + if (alts.get(i).uuid.equals(player.getGameProfile().getId())) { + return true; + } + } + return player.getGameProfile().getId().equals(main.uuid); + } catch (NullPointerException e) { + for (int i = 0; i < alts.size(); i++) { + if (alts.get(i).name.equals(player.getGameProfile().getName())) { + return true; + } + } + return player.getGameProfile().getName().equals(main.name); + } + } + + @Override + public void onConfirm(boolean result) { + if(result) { + switch (confirmationInstance) { + case 0: + onChat("server", "server".split(" ")); + break; + case 1: + onChat("client", "client".split(" ")); + break; + } + } + } + + @Override + public void onEnable() { + } + + @Override + public void onTick() { + if(useElytra && !stopped) { + if(TTCp.isIngame()) { + NetworkPlayerInfo[] players = Objects.requireNonNull(TTCp.mc.getConnection()).getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + + if (main.uuid.equals(TTCp.player.getUniqueID())) { + if (new Date().getTime() - lostTimer > 10000) { + FlightBot.setSpeed(1.00); + } else if (new Date().getTime() - lostTimer > 5000) { + FlightBot.setSpeed(0.75); + } + } + + // Target is in rd + if (commonTargetPlayer != null && TTCp.world.getPlayerEntityByName(commonTargetPlayer.getName()) != null) + follow(); + // Target is not in rd, but isnt stopped + else if (new Date().getTime() - lostTimer > 5000) { + FlightBot.deactivate(); + commonTargetPlayer = null; + commonTarget.set(null); + // Isnt main + if (!main.uuid.equals(TTCp.player.getUniqueID())) { + // Follow main + + // Is main on same world & last lost query is 5 secs in past + if ( + TTCp.world.getPlayerEntityByName(main.name) == null && + new Date().getTime() - lostTimer > 5000 && + Arrays.stream(players).anyMatch( + player -> player.getGameProfile().getId().equals(main.uuid) + ) + ) { + try { + // Send lost query + sendPacket(PacketsCS.LOST, ""); + } + catch (PBIC.PBICException.PBICWriteException e) { + e.printStackTrace(); + } + lostTimer = new Date().getTime(); + } else + follow(main.name); + } + } + } + } + } + + // When the client receives a packet + public void onPacketSC(PacketSC packet) { + if (client == null) + throw new RuntimeException(); + try { + ChatUtils.chatPrinterDebug().println("Received packet[" + packet.type() + "]{" + packet.content() + "}"); + + switch (packet.type()) { + case INIT: + main = new Alt(); + sendPacket(PacketsCS.NAME, TTCp.mc.getSession().getProfile().getName()); + break; + case NAME: + main.name = packet.content(); + ChatUtils.print("Connection to main " + main.name + " established!"); + sendPacket(PacketsCS.UUID, TTCp.mc.getSession().getProfile().getId().toString()); + break; + case UUID: + main.uuid = UUID.fromString(packet.content()); + ChatUtils.print("Got UUID from main " + main.name + ": " + packet.content()); + sendPacket(PacketsCS.KEEPALIVE, ""); + break; + case TPA: + ChatUtils.print("TPA'ing main account..."); + TTCp.player.sendChatMessage("/tpa " + main.name); + break; + case EXECUTE: + ChatUtils.print("Sending message received from main account..."); + ChatUtils.simulateSend(packet.content(), false); + break; + case LIST: + TTCp.logger.info("Received alt list from main."); + Map map0 = Utils.stringToMap(packet.content()); + + alts.clear(); + int len = map0.keySet().size(); + for (int i = 0; i < len; i++) { + Alt alt; + alts.add(alt = new Alt()); + + Map map1 = Utils.stringToMap(map0.get(String.valueOf(i))); + alt.name = map1.get("name"); + alt.uuid = UUID.fromString(map1.get("uuid")); + } + break; + case KILL: + ChatUtils.print("Killing player " + packet.content()); + kill(packet.content()); + break; + case FOLLOW: + ChatUtils.print("Following " + packet.content()); + follow(packet.content()); + break; + case STOP: + stop(packet.content()); + break; + case CONFIG: + //TTCp.cfg = Utils.stringToMap(packet.content()); + //TTCp.getInstance().saveConfig(); + break; + case WALK: + useElytra = false; + FlightBot.deactivate(); + break; + case ELYTRA: + if(!useElytra && !stopped) + ChatUtils.simulateSend("#stop", false); + useElytra = true; + break; + case KEEPALIVE: + sendPacket(PacketsCS.KEEPALIVE, ""); + break; + case POSITION: + if(commonTargetPlayer == null && !stopped) { + Vector3d vec = Vector3d.fromMap(Utils.stringToMap(packet.content())); + FlightBot.deactivate(); + commonTarget.set(new Vec3d(vec.getX(), vec.getY() + 2, vec.getZ())); + FlightBot.activate(commonTarget); + } + break; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + // When the server receives a packet + public void onPacketCS(PacketCS packet, PBIC.Connection connection) throws PBIC.PBICException.PBICWriteException { + ChatUtils.chatPrinterDebug().println("Received packet[" + packet.type() + "]{" + packet.content() + "}"); + switch (packet.type()) { + case NAME: + altsMap.get(connection).name = packet.content(); + ChatUtils.print("Connection to alt " + packet.content() + " established!"); + connection.writePacket(getPacketSC(PacketsSC.NAME, TTCp.mc.getSession().getProfile().getName())); + break; + case UUID: + altsMap.get(connection).uuid = UUID.fromString(packet.content()); + ChatUtils.print("Got UUID from alt " + altsMap.get(connection).name + ": " + packet.content()); + connection.writePacket(getPacketSC(PacketsSC.UUID, TTCp.mc.getSession().getProfile().getId().toString())); + + sendList(); + + break; + case KEEPALIVE: + ThreadManager.run(() -> { + try { + Thread.sleep(10000); + connection.writePacket(getPacketSC(PacketsSC.KEEPALIVE, "")); + } + catch (PBIC.PBICException | InterruptedException e) { + e.printStackTrace(); + } + }); + break; + case LOST: + EntityPlayerSP player = TTCp.player; + if(player != null && TTCp.world != null) { + connection.writePacket(getPacketSC(PacketsSC.POSITION, new Vector3d(player.posX, player.posY, player.posZ).toString())); + } + FlightBot.setSpeed(0.5); + lostTimer = new Date().getTime(); + break; + } + } + + public void sendPacketSC(PacketsSC type, String content) { + if(server.connections.size() == 0) + return; + + AsyncTask task = new AsyncTask<>(() -> { + ChatUtils.chatPrinterDebug().println("Sending packet[" + type.name() + "]{" + content + "}"); + try { + PBIC.Connection[] connections = server.connections.toArray(new PBIC.Connection[0]); + for (int i = 0; i < connections.length; i++) { + try { + connections[i].writePacket(getPacketSC(type, content)); + } + catch (Exception ignore) { } + } + } catch (Throwable e) { + return e; + } + return new Object(); + }); + task.setTimeout(server.connections.size() * 1500L); + pce(task.waitForFinish(0)); + } + + public void sendPacketDelayedSC(PacketsSC type, String content) { + if(server.connections.size() == 0) + return; + AsyncTask task = new AsyncTask<>(() -> { + ChatUtils.chatPrinterDebug().println("Sending packet[" + type.name() + "]{" + content + "}"); + try { + PBIC.Connection[] connections = server.connections.toArray(new PBIC.Connection[0]); + for (int i = 0; i < connections.length; i++) { + try { + connections[i].writePacket(getPacketSC(type, content)); + Thread.sleep(500); + } + catch (Exception ignore) { } + } + } catch (Throwable e) { + return e; + } + return new Object(); + }); + task.setTimeout(server.connections.size() * 2000L); + task.then(this::pce); + } + + private void pce(Object r) { + if(r instanceof Throwable || r == null) { + ChatUtils.chatPrinterDebug().println("§c§lError during communication!"); + String etype; + if(r == null) { + etype = "ETimeout"; + } + else if(r instanceof Exception) { + etype = "EExceptionSend {" + ((Exception) r).getMessage() + "}"; + ((Throwable) r).printStackTrace(ChatUtils.chatPrinterDebug()); + } + else { + etype = "EErrorSend {" + ((Throwable) r).getMessage() + "}"; + ((Throwable) r).printStackTrace(ChatUtils.chatPrinterDebug()); + } + ChatUtils.chatPrinterDebug().println(etype); + } + } + + public void sendPacket(PacketsCS type, String content) throws PBIC.PBICException.PBICWriteException { + ChatUtils.chatPrinterDebug().println("Sending packet[" + type.name() + "]{" + content + "}"); + if(client == null) + throw new RuntimeException(); + client.connection.writePacket(getPacketCS(type, content)); + } + + @Override + public void onChat(String s, String[] args) { + try { + if (s.equals("server") && server == null) { + main = new Alt(); + main.name = TTCp.mc.getSession().getProfile().getName(); + main.uuid = TTCp.mc.getSession().getProfile().getId(); + + altsMap = new HashMap<>(); + + server = new PBIC.Server(50278); + server.onJoin.add(() -> { + PBIC.Connection theConnection = server.lastConnection; + AsyncTask task = new AsyncTask<>(() -> { + ChatUtils.chatPrinterDebug().println("Sending packet[INIT]{}"); + try { + theConnection.writePacket(getPacketSC(PacketsSC.INIT, "")); + } catch (Throwable e) { + return e; + } + ChatUtils.chatPrinterDebug().println("Done"); + return new Object(); + }); + task.setTimeout(1500L); + pce(task.waitForFinish(0)); + + altsMap.put(theConnection, new Alt()); + + while (true) { + String string = "UNKNOWN"; + try { + PBIC.Packet packet = theConnection.readPacket(); + string = packet.getContent(); + onPacketCS(getPacketCS(packet), theConnection); + } + catch (Exception e) { + e.printStackTrace(); + System.err.println("Packet: " + string); + } + } + }); + server.start(); + + mode = 0; + + ChatUtils.print("§aServer started"); + } + if (args[0].equals("client") && client == null) { + if(args.length == 2) + client = new PBIC.Client(args[1], 50278); + else if(args.length == 3) + client = new PBIC.Client(args[1], Integer.parseInt(args[2])); + else + client = new PBIC.Client("127.0.0.1", 50278); + ChatUtils.print("Client started"); + ThreadManager.run("TTCIC client receive thread", () -> { + while (true) { + String string = "UNKNOWN"; + try { + PBIC.Packet packet = client.connection.readPacket(); + string = packet.getContent(); + onPacketSC(getPacketSC(packet)); + } + catch (Exception e) { + e.printStackTrace(); + System.err.println("Packet: " + string); + onChat("end", "end".split(" ")); + } + } + }); + mode = 1; + } + + if(args.length >= 2) { + if(args[0].equals("send") && s.contains(" ")) { + String st = s.substring(s.indexOf(" ") + 1); + sendPacketSC(PacketsSC.EXECUTE, st); + ChatUtils.simulateSend(st, false); + } + if(args[0].equals("kill") && s.contains(" ")) { + sendList(); + String st = s.substring(s.indexOf(" ") + 1); + if(useElytra) { + sendPacketSC(PacketsSC.ELYTRA, ""); + } else { + sendPacketSC(PacketsSC.WALK, ""); + } + sendPacketSC(PacketsSC.KILL, st); + if(botMain) { + kill(st); + } + } + if(args[0].equals("stop") && s.contains(" ")) { + String st = s.substring(s.indexOf(" ") + 1); + sendPacketSC(PacketsSC.STOP, st); + ChatUtils.print("Stopping killing player " + st); + if(botMain) { + stop(st); + } + } + + if (args[0].equals("follow")) { + if(useElytra) { + sendPacketSC(PacketsSC.ELYTRA, ""); + } else { + sendPacketSC(PacketsSC.WALK, ""); + } + sendPacketSC(PacketsSC.FOLLOW, args[1]); + follow(args[1]); + } + } + + if (s.equals("stop")) { + if(useElytra) { + sendPacketSC(PacketsSC.ELYTRA, ""); + } else { + sendPacketSC(PacketsSC.WALK, ""); + } + sendPacketSC(PacketsSC.STOP, ""); + ChatUtils.print("Stopping killing/following all players"); + if(botMain) { + stop(null); + } + } + + if (s.equals("send")) { + TTCp.getInstance().setConfig(); + //sendPacketSC(PacketsSC.CONFIG, Utils.mapToString(TTCp.cfg)); + ChatUtils.print("Sending config to all alts"); + } + + if (s.equals("tpa")) { + sendList(); + sendPacketDelayedSC(PacketsSC.TPA, ""); + } + + if (s.equals("follow")) { + if(useElytra) { + sendPacketSC(PacketsSC.ELYTRA, ""); + } else { + sendPacketSC(PacketsSC.WALK, ""); + } + sendPacketSC(PacketsSC.FOLLOW, main.name); + } + + if(s.equals("telytra")) { + useElytra = !useElytra; + } + + if (s.equals("end")) { + + alts.clear(); + while (toSend.hasNext()) toSend.next(); + altsMap.clear(); + stopped = false; + useElytra = false; + commonTargetPlayer = null; + commonTarget.set(null); + stopped = false; + main = new Alt(); + + if(client != null) + client.close(); + client = null; + if(server != null) + server.close(); + server = null; + mode = -1; + + alts = new ArrayList<>(); + altsMap = new HashMap<>(); + } + + if(s.equals("list")) { + StringBuilder string = new StringBuilder("List:"); + if(server != null) { + for (int i = 0; i < server.connections.size(); i++) { + PBIC.Connection connection = server.connections.get(i); + Alt alt = altsMap.get(connection); + if(alt == null || alt.name == null) + onChat("end", "end".split(" ")); + else + string.append(" ").append(alt.name).append(","); + } + } + if(client != null) { + for (int i = 0; i < alts.size(); i++) { + Alt alt = alts.get(i); + if(alt == null || alt.name == null) + onChat("end", "end".split(" ")); + else + string.append(" ").append(alt.name).append(","); + } + } + if(string.toString().contains(",")) + string = new StringBuilder(string.substring(0, string.length() - 2)); + ChatUtils.print(string.toString()); + } + } catch (Exception e) { + e.printStackTrace(); + } + + updateBinds(); + } + + private void sendList() { + if(server.connections.size() == 0) + return; + + Map map0 = new HashMap<>(); + PBIC.Connection[] keys = altsMap.keySet().toArray(new PBIC.Connection[0]); + alts.clear(); + for (int i = 0; i < keys.length; i++) { + Alt alt = altsMap.get(keys[i]); + alts.add(alt); + + Map map1 = new HashMap<>(); + map1.put("name", alt.name); + map1.put("uuid", alt.uuid.toString()); + + map0.put(String.valueOf(i), Utils.mapToString(map1)); + } + sendPacketSC(PacketsSC.LIST, Utils.mapToString(map0)); + } + + public void follow(String name) { + if(TTCp.player.getName().equals(name)) + return; + commonTargetPlayer = TTCp.world.getPlayerEntityByName(name); + follow(); + } + + public void kill(String name) { + follow(name); + KillAura aura = KillAura.getInstance(); + aura.enabled = true; + aura.onEnable(); + aura.targets.add(name); + } + + public void stop(String name) { + KillAura aura = KillAura.getInstance(); + commonTargetPlayer = null; + commonTarget.set(null); + stopped = true; + FlightBot.deactivate(); + if(!useElytra) + ChatUtils.simulateSend("#stop", false); + if(name == null || name.equals("")) { + aura.targets.clear(); + aura.enabled = false; + aura.onDisable(); + } + else { + aura.targets.remove(name); + aura.targets.trimToSize(); + if (aura.targets.size() != 0) { + ChatUtils.print("Killing player " + name); + follow(aura.targets.get(0)); + } + } + } + + public void follow() { + if(commonTargetPlayer == null) { + FlightBot.deactivate(); + return; + } + + stopped = false; + + try { + if (useElytra) { + FlightBot.deactivate(); + FlightBot.activate(commonTarget); + commonTarget.set(commonTargetPlayer.getPositionVector().add(0, 2, 0)); + } else + ChatUtils.simulateSend("#follow player " + commonTargetPlayer.getName(), false); + } catch (Exception e) { + e.printStackTrace(ChatUtils.chatPrinter()); + } + } + + @Override + public boolean onServerChat(String s, String formatted) { + if ( + s.contains("has requested to teleport to you.") && + alts.stream().anyMatch(alt -> s.startsWith(alt.name + " ") || s.startsWith("~" + alt.name + " ")) + ) { + TTCp.player.sendChatMessage("/tpaccept"); + } + return false; + } + + @Override + public void onDisable() { + onChat("end", null); + } + + public static class Alt { + public String name; + public UUID uuid; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControlRewrite.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControlRewrite.java new file mode 100644 index 0000000..0ae3f6e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AltControlRewrite.java @@ -0,0 +1,53 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +//import de.tudbut.mod.client.ttcp.utils.ttcic.ControlCenter; +//import de.tudbut.mod.client.ttcp.utils.ttcic.packet.ds.PacketPlayer; + +@Misc +public class AltControlRewrite extends Module { + + @Override + public void updateBinds() { + // subComponents.clear(); + // if(!ControlCenter.isRunning()) { + // subComponents.add(new Button("Start Server", it -> { + // subComponents.clear(); + // subComponents.add(new Button("Starting...", a -> {})); + // ControlCenter.server(); + // updateBinds(); + // })); + // subComponents.add(new Button("Start Client", it -> { + // subComponents.clear(); + // subComponents.add(new Button("Starting...", a -> {})); + // ControlCenter.client(); + // updateBinds(); + // })); + // } + // else { + // subComponents.add(new Button("Stop", it -> { + // subComponents.clear(); + // ControlCenter.stop = true; + // new Thread(() -> { + // subComponents.add(new Button("Stopped.", a -> {})); + // while (ControlCenter.isRunning()); + // updateBinds(); + // }).start(); + // })); + // subComponents.add(new Button("Group", it -> { + // for (PacketPlayer packetPlayer : ControlCenter.getGroup()) { + // ChatUtils.print(packetPlayer.name); + // } + // })); + // } + } + + @Override + public void onTick() { + //ControlCenter.onTick(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AutoConfig.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AutoConfig.java new file mode 100644 index 0000000..37828f7 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/AutoConfig.java @@ -0,0 +1,160 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.chat.TPAParty; +import de.tudbut.mod.client.ttcp.mods.chat.TPATools; +import de.tudbut.mod.client.ttcp.mods.chat.Team; +import de.tudbut.mod.client.ttcp.mods.combat.AutoTotem; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.ThreadManager; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +@Misc +public class AutoConfig extends Module { + + // true for Server mode, false for Custom mode + @Save + private boolean mode = false; + + // Settings for Custom mode + @Save + private boolean stackedTots = false; + @Save + private boolean pvp = false; + @Save + private boolean tpa = false; + + // Settings for Server mode + private Server server = Server._8b8t; + + @Override + public void onEnable() { + updateBinds(); + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Mode: " + (mode ? "Server" : "Custom"), it -> { + mode = !mode; + it.text = "Mode: " + (mode ? "Server" : "Custom"); + updateBinds(); + })); + if (mode) { + subComponents.add(new Button("Server: " + server.name, it -> { + int i = server.ordinal(); + + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + i--; + else + i++; + + if (i >= Server.values().length) + i = 0; + if (i < 0) + i = Server.values().length - 1; + + server = Server.values()[i]; + + it.text = "Server: " + server.name; + })); + } else { + subComponents.add(new Button("Has stacked totems: " + stackedTots, it -> { + stackedTots = !stackedTots; + it.text = "Has stacked totems: " + stackedTots; + })); + subComponents.add(new Button("PvP meta: " + (pvp ? "32k" : "Crystal"), it -> { + pvp = !pvp; + it.text = "PvP meta: " + (pvp ? "32k" : "Crystal"); + })); + subComponents.add(new Button("Has /tpa: " + tpa, it -> { + tpa = !tpa; + it.text = "Has /tpa: " + tpa; + })); + } + subComponents.add(new Button("Set", it -> { + // Confirm set + if (mode) { + stackedTots = server.stackedTots; + pvp = server.pvp; + tpa = server.tpa; + } + int i = 0; + if (stackedTots) { + i += (pvp ? 4 : 2); + } + AutoTotem.getInstance().origMinCount = i; + + Team.getInstance().enabled = tpa; + if (!tpa) + TPAParty.getInstance().enabled = false; + TPATools.getInstance().enabled = tpa; + + ThreadManager.run(() -> { + it.text = "Done"; + try { + Thread.sleep(2000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + it.text = "Set"; + }); + })); + } + + @Override + public void onSubTick() { + + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public void onConfigLoad() { + updateBinds(); + } + + // Settings for the unique servers + private enum Server { + _8b8t + ("8b8t.xyz", + true, true, true), + + _5b5t + ("5b5t.net", + false, false, false), + + _0t0t + ("0b0t.org", + false, false, true), + + _2b2t + ("2b2t.org", + false, false, false), + + crystalpvp + ("crystalpvp.cc", + false, false, false), + + ; + + String name; + + // Settings + boolean stackedTots; + boolean pvp; + boolean tpa; + + Server(String name, boolean stackedTots, boolean pvp, boolean tpa) { + this.name = name; + this.stackedTots = stackedTots; + this.pvp = pvp; + this.tpa = tpa; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/BetterBreak.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/BetterBreak.java new file mode 100644 index 0000000..d81a1bf --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/BetterBreak.java @@ -0,0 +1,37 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; + +@Misc +public class BetterBreak extends Module { + + @SubscribeEvent + public void onBreakSpeedGet(PlayerEvent.BreakSpeed event) { + if(!enabled) + return; + + float f = event.getOriginalSpeed(); + + if (event.getEntityPlayer().isInsideOfMaterial(Material.WATER) && !EnchantmentHelper.getAquaAffinityModifier(event.getEntityPlayer())) + { + f *= 5.0F; + } + + if (!event.getEntityPlayer().onGround) + { + f *= 5.0F; + } + + event.setNewSpeed(f); + } + + @Override + public void onChat(String s, String[] args) { + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Break.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Break.java new file mode 100644 index 0000000..f4c97a9 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Break.java @@ -0,0 +1,218 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import io.netty.buffer.Unpooled; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.BlockUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +import java.io.IOException; + +@Misc +public class Break extends Module { + + BlockPos start = null; + BlockPos end = null; + + public boolean doBreak = true; + @Save + public boolean rotate = false; + + float altRotX = 0, altRotY = 0; + + long lastPacket = 0; + + @Save + int iterations = 1; + + public boolean done = false; + + @Override + public boolean onPacket(Packet packet) { + if(rotate) { + if (packet instanceof CPacketPlayer.Rotation) { + if (System.currentTimeMillis() - lastPacket < 90) + return true; + lastPacket = System.currentTimeMillis(); + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeFloat(altRotX); + buffer.writeFloat(altRotY); + buffer.writeByte(((CPacketPlayer.Rotation) packet).isOnGround() ? 1 : 0); + try { + packet.readPacketData(buffer); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (packet instanceof CPacketPlayer.PositionRotation) { + lastPacket = System.currentTimeMillis(); + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getX(0)); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getY(0)); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getZ(0)); + buffer.writeFloat(altRotX); + buffer.writeFloat(altRotY); + buffer.writeByte(((CPacketPlayer.PositionRotation) packet).isOnGround() ? 1 : 0); + try { + packet.readPacketData(buffer); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + return super.onPacket(packet); + } + @Override + public void updateBinds() { + customKeyBinds.setIfNull("reset", new KeyBind(null, toString() + "::onEnable", false)); + customKeyBinds.setIfNull("pause", new KeyBind(null, toString() + "::togglePause", false)); + subComponents.clear(); + subComponents.add(Setting.createBoolean("Break", this, "doBreak")); + subComponents.add(Setting.createBoolean("Rotate", this, "rotate")); + subComponents.add(new Button("Reset", it -> { + onEnable(); + updateBinds(); + })); + subComponents.add(Setting.createInt(1, 5, "Iterations", this, "iterations")); + subComponents.add(Setting.createKey("ResetKey", customKeyBinds.get("reset"))); + subComponents.add(Setting.createKey("PauseKey", customKeyBinds.get("pause"))); + } + + public void togglePause() { + doBreak = !doBreak; + if(doBreak) + Notifications.add(new Notifications.Notification("Unpaused breaking.")); + if(!doBreak) + Notifications.add(new Notifications.Notification("Paused breaking.")); + } + + @Override + public void onDisable() { + if(MidClick.bindBlock != null) + if(MidClick.bindBlock.getName().startsWith("Break")) + MidClick.bindBlock = null; + MidClick.reload(); + } + + @Override + public void onEnable() { + start = end = null; + Notifications.add(new Notifications.Notification("Please select the starting position with MIDCLICK!", 20000)); + MidClick.set(new MidClick.Bind() { + @Override + public Type getType() { + return Type.BLOCK; + } + + @Override + public String getName() { + return "Break START"; + } + + @Override + public void call(Data data) { + posCallback(data); + } + }); + } + + @Override + public void onTick() { + if(doBreak) { + if(end != null) { + for (int i = 0 ; i < iterations ; i++) { + run(); + } + } else { + done = true; + } + } + } + + private void run() { + int px = (int)player.posX, py = (int)player.getPositionEyes(1).y, pz = (int)player.posZ; + for (int iy = 0; iy <= 10; iy++) { + for (int iz = 0; iz <= 10; iz++) { + for (int ix = 0; ix <= 10; ix++) { + int x = px + ix - 5, y = py + iy - 5, z = pz + iz - 5; + + if(x >= start.getX() && y >= start.getY() && z >= start.getZ()) { + if(x <= end.getX() && y <= end.getY() && z <= end.getZ()) { + if(breakBlockIfPossible(x,y,z)) { + done = false; + return; + } + } + } + } + } + } + done = true; + } + + private boolean breakBlockIfPossible(int x, int y, int z) { + BlockPos pos = new BlockPos(x,y,z); + + if(player.getPositionEyes(1).distanceTo(new Vec3d(x + 0.5, y, z + 0.5)) > mc.playerController.getBlockReachDistance() - 0.25) + return false; + if(!mc.world.getBlockState(pos).getBlock().isReplaceable(mc.world, pos)) { + float[] floats = BlockUtils.getLegitRotations(new Vec3d(pos).add(0.5, 0.5, 0.5)); + if(altRotX != floats[0] || altRotY != floats[1]) { + altRotX = floats[0]; + altRotY = floats[1]; + if (rotate && System.currentTimeMillis() - lastPacket < 100) + mc.player.connection.sendPacket(new CPacketPlayer.Rotation()); + } + if(mc.playerController.onPlayerDamageBlock(pos, EnumFacing.DOWN)) { + mc.effectRenderer.addBlockHitEffects(pos, EnumFacing.DOWN); + player.swingArm(EnumHand.MAIN_HAND); + } + return true; + } + return false; + } + + private void posCallback(MidClick.Bind.Data data) { + if(start == null) { + start = data.block(); + MidClick.set(new MidClick.Bind() { + @Override + public Type getType() { + return Type.BLOCK; + } + + @Override + public String getName() { + return "Break END"; + } + + @Override + public void call(Data data) { + posCallback(data); + } + }); + Notifications.add(new Notifications.Notification("Please select the ending position with MIDCLICK!", 20000)); + return; + } + if(end == null) { + BlockPos endSel = data.block(); + BlockPos startSel = start; + start = new BlockPos(Math.min(startSel.getX(), endSel.getX()), Math.min(startSel.getY(), endSel.getY()), Math.min(startSel.getZ(), endSel.getZ())); + end = new BlockPos(Math.max(startSel.getX(), endSel.getX()), Math.max(startSel.getY(), endSel.getY()), Math.max(startSel.getZ(), endSel.getZ())); + MidClick.bindBlock = null; + MidClick.reload(); + Notifications.add(new Notifications.Notification("Breaking!", 20000)); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Crasher.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Crasher.java new file mode 100644 index 0000000..226f19d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Crasher.java @@ -0,0 +1,68 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketInput; +import net.minecraft.network.play.client.CPacketPlayer; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +@Misc +public class Crasher extends Module { + + boolean run = false; + + @Save + int timer = 5; + @Save + int instances = 5; + @Save + int type = 0; + + int i = 0; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("Run", this, "run")); + subComponents.add(Setting.createInt(0, 60, "DelayTicks", this, "timer")); + subComponents.add(Setting.createInt(0, 500, "Instances", this, "instances")); + subComponents.add(Setting.createInt(0, 1, "Type", this, "type")); + } + + @Override + public void onSubTick() { + i++; + if(i >= timer + 1) { + i = 0; + if(run) + for (int j = 0; j < instances + 1; j++) { + TTCp.player.connection.sendPacket(packet()); + } + } + } + + public Packet packet() { + if(type == 0) { + return new CPacketPlayer.PositionRotation( + Math.random() * 60_000_000 - 30_000_000, + Math.random() * 256, + Math.random() * 60_000_000 - 30_000_000, + (float) (Math.random() * 360) - 180, + (float) (Math.random() * 360) - 180, + true + ); + } + if(type == 1) { + return new CPacketInput( + (float) (Math.random() * 1000) - 500, + (float) (Math.random() * 1000) - 500, + false, false + ); + } + + return null; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Debug.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Debug.java new file mode 100644 index 0000000..28c80f0 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Debug.java @@ -0,0 +1,62 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import de.tudbut.debug.DebugProfiler; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.DebugProfilerAdapter; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; + +import java.io.PrintStream; + +@Misc +public class Debug extends Module { + static Debug instance; + + public Debug() { + instance = this; + } + + public static Debug getInstance() { + return instance; + } + + @Override + public void onEnable() { + for (DebugProfilerAdapter profiler : TTCp.getProfilers()) { + profiler.fallthrough = false; + } + } + @Override + public void onDisable() { + for (DebugProfilerAdapter profiler : TTCp.getProfilers()) { + profiler.fallthrough = true; + } + } + + @Override + public void init() { + for (DebugProfilerAdapter profiler : TTCp.getProfilers()) { + profiler.fallthrough = !enabled; + } + } + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onSubTick() { + + } + + @Override + public void onEveryChat(String s, String[] args) { + PrintStream out = ChatUtils.chatPrinter(); + DebugProfiler[] profilers = TTCp.getProfilers(); + for (int i = 0 ; i < profilers.length ; i++) { + out.println(profilers[i].toString()); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Fill.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Fill.java new file mode 100644 index 0000000..deadb59 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Fill.java @@ -0,0 +1,257 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import io.netty.buffer.Unpooled; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.BlockUtils; +import de.tudbut.mod.client.ttcp.utils.InventoryUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; +import de.tudbut.tools.Lock; + +import java.io.IOException; + +@Misc +public class Fill extends Module { + + BlockPos start = null; + BlockPos end = null; + + @Save + public int delay = 0; + Lock lock = new Lock(); + public boolean place = true; + @Save + public boolean rotate = false; + Item placed = null; + TLMap placedList = new TLMap<>(); + + float altRotX = 0, altRotY = 0; + + long lastPacket = 0; + + @Save + int iterations = 1; + + public boolean done = false; + + @Override + public boolean onPacket(Packet packet) { + if(rotate) { + if (packet instanceof CPacketPlayer.Rotation) { + if (System.currentTimeMillis() - lastPacket < 90) + return true; + lastPacket = System.currentTimeMillis(); + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeFloat(altRotX); + buffer.writeFloat(altRotY); + buffer.writeByte(((CPacketPlayer.Rotation) packet).isOnGround() ? 1 : 0); + try { + packet.readPacketData(buffer); + } + catch (IOException e) { + e.printStackTrace(); + } + return false; + } + if (packet instanceof CPacketPlayer.PositionRotation) { + lastPacket = System.currentTimeMillis(); + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getX(0)); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getY(0)); + buffer.writeDouble(((CPacketPlayer.PositionRotation) packet).getZ(0)); + buffer.writeFloat(altRotX); + buffer.writeFloat(altRotY); + buffer.writeByte(((CPacketPlayer.PositionRotation) packet).isOnGround() ? 1 : 0); + try { + packet.readPacketData(buffer); + buffer.release(); + } + catch (IOException e) { + e.printStackTrace(); + } + return false; + } + } + + return super.onPacket(packet); + } + + @Override + public void updateBinds() { + customKeyBinds.setIfNull("reset", new KeyBind(null, toString() + "::onEnable", false)); + customKeyBinds.setIfNull("pause", new KeyBind(null, toString() + "::togglePause", false)); + subComponents.clear(); + subComponents.add(Setting.createInt(0, 2000, "Delay", this, "delay")); + subComponents.add(Setting.createBoolean("Place", this, "place")); + subComponents.add(Setting.createBoolean("Rotate", this, "rotate")); + subComponents.add(new Button("Reset", it -> { + onEnable(); + updateBinds(); + })); + subComponents.add(Setting.createInt(1, 5, "Iterations", this, "iterations")); + subComponents.add(Setting.createKey("ResetKey", customKeyBinds.get("reset"))); + subComponents.add(Setting.createKey("PauseKey", customKeyBinds.get("pause"))); + } + + public void togglePause() { + place = !place; + if(place) + Notifications.add(new Notifications.Notification("Unpaused placing.")); + if(!place) + Notifications.add(new Notifications.Notification("Paused placing.")); + } + + @Override + public void onDisable() { + if(MidClick.bindBlock != null) + if(MidClick.bindBlock.getName().startsWith("Fill")) + MidClick.bindBlock = null; + MidClick.reload(); + } + + @Override + public void onEnable() { + start = end = null; + Notifications.add(new Notifications.Notification("Please select the starting position with MIDCLICK!", 20000)); + MidClick.set(new MidClick.Bind() { + @Override + public Type getType() { + return Type.BLOCK; + } + + @Override + public String getName() { + return "Fill START"; + } + + @Override + public void call(Data data) { + posCallback(data); + } + }); + } + + @Override + public void onTick() { + if (!lock.isLocked()) { + lock.lock(delay); + + if(place) { + if(end != null) { + for (int i = 0 ; i < iterations ; i++) { + run(); + } + } + else { + done = true; + } + } + } + } + + private void run() { + int px = (int)player.posX, py = (int)player.getPositionEyes(1).y, pz = (int)player.posZ; + for (int iy = 0; iy <= 10; iy++) { + for (int iz = 0; iz <= 10; iz++) { + for (int ix = 0; ix <= 10; ix++) { + int x = px + ix - 5, y = py + iy - 5, z = pz + iz - 5; + + if(x >= start.getX() && y >= start.getY() && z >= start.getZ()) { + if(x <= end.getX() && y <= end.getY() && z <= end.getZ()) { + if(placeBlockIfPossible(x,y,z)) { + this.done = false; + return; + } + } + } + } + } + } + this.done = true; + } + + boolean placeBlockIfPossible(int x, int y, int z) { + BlockPos pos = new BlockPos(x,y,z); + + if(player.getPositionEyes(0).distanceTo(new Vec3d(x + (x >= 0 ? 0.5 : -0.5), y + (y >= 0 ? 0.5 : -0.5), z + (z >= 0 ? 0.5 : -0.5))) > mc.playerController.getBlockReachDistance() - 0.25) + return false; + if(player.getHeldItemMainhand().getCount() == 0 && placed != null) { + Integer slot = InventoryUtils.getSlotWithItem(player.inventoryContainer, placed, new int[]{}, 1, 64); + if(slot != null) + InventoryUtils.swap(slot, InventoryUtils.getCurrentSlot()); + } + boolean b = false; + if(mc.world.getBlockState(pos).getBlock().isReplaceable(mc.world, pos) && player.getHeldItemMainhand().getCount() > 0 && BlockUtils.getPossibleSides(pos).size() > 0 && checkBlockPing(pos)) { + float[] floats = BlockUtils.getLegitRotations(new Vec3d(pos).add(0.5, 0.5, 0.5)); + altRotX = floats[0]; + altRotY = floats[1]; + if (rotate && System.currentTimeMillis() - lastPacket < 100) + mc.player.connection.sendPacket(new CPacketPlayer.Rotation()); + b = BlockUtils.placeBlock(pos, EnumHand.MAIN_HAND, false, true); + } + Item item = player.getHeldItemMainhand().getItem(); + if(b && item != Items.AIR) { + placed = item; + Lock lock = new Lock(); + lock.lock(500); + placedList.set(pos, lock); + } + return b; + } + + private boolean checkBlockPing(BlockPos pos) { + Lock lock = placedList.get(pos); + if(lock == null) + return true; + if(lock.isLocked()) { + return false; + } + placedList.set(pos, null); + return true; + } + + private void posCallback(MidClick.Bind.Data data) { + if(start == null) { + start = data.block(); + MidClick.set(new MidClick.Bind() { + @Override + public Type getType() { + return Type.BLOCK; + } + + @Override + public String getName() { + return "Fill END"; + } + + @Override + public void call(Data data) { + posCallback(data); + } + }); + Notifications.add(new Notifications.Notification("Please select the ending position with MIDCLICK!", 20000)); + return; + } + if(end == null) { + BlockPos endSel = data.block(); + BlockPos startSel = start; + start = new BlockPos(Math.min(startSel.getX(), endSel.getX()), Math.min(startSel.getY(), endSel.getY()), Math.min(startSel.getZ(), endSel.getZ())); + end = new BlockPos(Math.max(startSel.getX(), endSel.getX()), Math.max(startSel.getY(), endSel.getY()), Math.max(startSel.getZ(), endSel.getZ())); + MidClick.bindBlock = null; + MidClick.reload(); + Notifications.add(new Notifications.Notification("Filling!", 20000)); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Flatten.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Flatten.java new file mode 100644 index 0000000..47ffd22 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Flatten.java @@ -0,0 +1,36 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.util.math.BlockPos; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.BlockUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +@Misc +public class Flatten extends Module { + + @Save + public boolean autoSelect = false; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("AutoSelect", this, "autoSelect")); + } + + @Override + public void onTick() { + BlockPos pos = BlockUtils.getRealPos(TTCp.player.getPositionVector()); + for (int x = -1; x <= 1; x++) { + for (int z = -1; z <= 1; z++) { + BlockPos block = pos.add(x, -1, z); + /*if(autoSelect) + AutoCrystal.getInstance().selectObby();*/ + if(TTCp.world.isAirBlock(block)) + BlockUtils.placeBlock(block, true); + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Highway.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Highway.java new file mode 100644 index 0000000..0a066d9 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Highway.java @@ -0,0 +1,318 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.ClickType; +import net.minecraft.item.Item; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; + +import java.util.Objects; + +/** + * @author TudbuT + * @since 16 Feb 2022 + */ + +@Misc +public class Highway extends Module { + int stage = -1; + // 0 = Break + // 1 = Remove Lava + // 2 = Break + // 3 = Place bottom + // 4 = Place side 1 + // 5 = Place side 2 + + int y = -1; + boolean wait = false; + EnumFacing lastDirection; + + @Override + public boolean doStoreEnabled() { + return false; + } + + @Override + public void onEnable() { + stage = -1; + y = ((int) mc.player.posY); + getFill().place = false; + getBreak().doBreak = false; + nextStage(); + } + + public EnumFacing direction() { + return mc.player.getHorizontalFacing(); + } + + private Fill getFill() { + return TTCp.getModule(Fill.class); + } + + private Break getBreak() { + return TTCp.getModule(Break.class); + } + + public void selectObby() { + Integer obbySlot = InventoryUtils.getSlotWithItem(TTCp.player.inventoryContainer, Blocks.OBSIDIAN, Utils.range(0, 8), 1, 64); + + if(obbySlot == null) { + InventoryUtils.setCurrentSlot(8); + BlockPos pos = BlockUtils.getRealPos(mc.player.getPositionVector()); + getFill().placeBlockIfPossible(pos.getX(), pos.getY() + 2, pos.getZ()); + pos = pos.add(0,2,0); + player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.STOP_SNEAKING)); + BlockUtils.clickOnBlock(pos, EnumHand.MAIN_HAND); + wait = true; + } + + ResourceLocation slotType = TTCp.player.inventoryContainer.getSlot(36 + 7).getStack().getItem().getRegistryName(); + if (obbySlot != null && (slotType == null || !slotType.toString().equals(Objects.requireNonNull(Blocks.OBSIDIAN.getRegistryName()).toString()))) + InventoryUtils.inventorySwap(obbySlot, 36 + 7, 0, 0, 0); + } + + boolean needToFixY = false; + int fixYTimer = 0; + + public void onTick() { + if(((int) mc.player.posY) < y) { + needToFixY = true; + } + if(needToFixY && ((int) mc.player.posY) == y && player.onGround) { + player.travel(0,0,-1); + needToFixY = false; + fixYTimer = 10; + } + if(needToFixY) { + if (player.onGround) player.jump(); + player.travel(0,0,-1); + return; + } + if(fixYTimer > 0) { + fixYTimer--; + player.travel(0,0,-1); + return; + } + EnumFacing direction = direction(); + if(mc.player.rotationPitch < -60) { + direction = lastDirection; + mc.player.rotationPitch = 20; + } + mc.player.rotationYaw = direction.getHorizontalAngle(); + if(wait) { + getObby(); + return; + } + if(InventoryUtils.getCurrentSlot() == 7) + selectObby(); + if(stage == 1) + removeLava(); + else if(stageDone()) { + nextStage(); + } + lastDirection = direction; + } + + int i = 9; + + private void getObby() { + if(mc.currentScreen instanceof GuiContainer) { + Item item = player.inventory.getStackInSlot(i).getItem(); + if( + item.getRegistryName().equals(Blocks.NETHERRACK.getRegistryName()) || + item.getRegistryName().equals(Blocks.COBBLESTONE.getRegistryName()) || + item.getRegistryName().equals(Blocks.STONE.getRegistryName()) + ) { + InventoryUtils.drop(((GuiContainer) mc.currentScreen).inventorySlots.windowId, i + 18); // These numbers are magic, do not question! + } + if(++i >= 45) { // These numbers are magic, do not question! + for (int i = 0 ; i < 27 ; i++) { // These numbers are magic, do not question! + InventoryUtils.clickSlot(((GuiContainer) mc.currentScreen).inventorySlots.windowId, i, ClickType.QUICK_MOVE, 0); + } + TTCp.player.closeScreen(); + i = 9; + wait = false; + } + } + } + + private void nextStage() { + getBreak().done = false; + getFill().done = false; + switch (++stage) { + case 16: + stage = 0; + case 0: + case 2: + getFill().place = false; + getBreak().doBreak = true; + breag(); + break; + case 1: + getFill().place = true; + getBreak().doBreak = false; + InventoryUtils.setCurrentSlot(7); + break; + case 3: + case 6: + getFill().place = true; + getBreak().doBreak = false; + InventoryUtils.setCurrentSlot(7); + selectObby(); + placeBottom(); + break; + case 4: + case 7: + selectObby(); + InventoryUtils.setCurrentSlot(7); + placeSide( true); + break; + case 5: + case 8: + selectObby(); + InventoryUtils.setCurrentSlot(7); + placeSide(false); + break; + case 9: + player.setSprinting(true); + case 10: + case 11: + case 12: + case 13: + player.travel(0,0,1); + break; + default: + player.motionX = 0; + player.motionY = 0; + player.motionZ = 0; + break; + } + ChatUtils.chatPrinterDebug().println("Next stage: " + stage); + } + + private void placeSide(boolean first) { + EnumFacing direction = direction(); + Fill placer = getFill(); + selectObby(); + BlockPos pos = BlockUtils.getRealPos(mc.player.getPositionVector()); + switch (direction) { + case UP: + case DOWN: + pos = null; + break; + case EAST: // X+ + if(first) + pos = pos.add( 1,0,-2); + else + pos = pos.add( 1,0, 2); + break; + case WEST: // X- + if(first) + pos = pos.add(-1,0,-2); + else + pos = pos.add(-1,0, 2); + break; + case NORTH: // Z- + if(first) + pos = pos.add(-2,0,-1); + else + pos = pos.add( 2,0,-1); + break; + case SOUTH: // Z+ + if(first) + pos = pos.add(-2,0, 1); + else + pos = pos.add( 2,0, 1); + break; + } + if(pos != null) + placer.start = placer.end = pos; + } + + private void placeBottom() { + EnumFacing direction = direction(); + Fill placer = getFill(); + BlockPos pos = BlockUtils.getRealPos(mc.player.getPositionVector()); + switch (direction) { + case UP: + case DOWN: + break; + case EAST: // X+ + placer.start = pos.add( 1,-1,-2); + placer.end = pos.add( 1,-1, 2); + break; + case WEST: // X- + placer.start = pos.add(-1,-1,-2); + placer.end = pos.add(-1,-1, 2); + break; + case NORTH: // Z- + placer.start = pos.add(-2,-1,-1); + placer.end = pos.add( 2,-1,-1); + break; + case SOUTH: // Z+ + placer.start = pos.add(-2,-1, 1); + placer.end = pos.add( 2,-1, 1); + break; + } + } + + private void removeLava() { + int px = (int)player.posX, py = (int)player.getPositionEyes(1).y, pz = (int)player.posZ; + for (int iy = 0; iy <= 10; iy++) { + for (int iz = 0; iz <= 10; iz++) { + for (int ix = 0; ix <= 10; ix++) { + int x = px + ix - 5, y = py + iy - 5, z = pz + iz - 5; + BlockPos pos = new BlockPos(x, y, z); + IBlockState state = mc.world.getBlockState(pos); + if((state.getBlock() == Blocks.LAVA || state.getBlock() == Blocks.WATER) && state.getBlock().getMetaFromState(state) == 0) { + if(getFill().placeBlockIfPossible(x,y,z)) { + return; + } + } + } + } + } + stage++; + } + + private void breag() { + InventoryUtils.setCurrentSlot(2); + EnumFacing direction = direction(); + Break breaker = getBreak(); + BlockPos pos = BlockUtils.getRealPos(mc.player.getPositionVector()); + switch (direction) { + case UP: + case DOWN: + break; + case EAST: // X+ + breaker.start = pos.add( 1,-1,-2); + breaker.end = pos.add( 1, 2, 2); + break; + case WEST: // X- + breaker.start = pos.add(-1,-1,-2); + breaker.end = pos.add(-1, 2, 2); + break; + case NORTH: // Z- + breaker.start = pos.add(-2,-1,-1); + breaker.end = pos.add( 2, 2,-1); + break; + case SOUTH: // Z+ + breaker.start = pos.add(-2,-1, 1); + breaker.end = pos.add( 2, 2, 1); + break; + } + } + + private boolean stageDone() { + return ((getBreak().done) || (getFill().done)) && stage != 1; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Locate.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Locate.java new file mode 100644 index 0000000..f5d5244 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Locate.java @@ -0,0 +1,63 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.init.Items; +import net.minecraft.item.ItemMap; +import net.minecraft.item.ItemStack; +import net.minecraft.world.storage.MapData; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; + +@Misc +public class Locate extends Module { + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEveryChat(String s, String[] args) { + ChatUtils.print("Locating..."); + ItemStack stack = TTCp.player.getHeldItemMainhand(); + if (stack.getItem() == Items.FILLED_MAP) { + ItemMap map = Items.FILLED_MAP; + MapData data = map.getMapData(stack, TTCp.world); + if(data.xCenter == 0 && data.zCenter == 0) { + ChatUtils.print("ERROR: This exploit has been disabled on this server."); + } + else { + ChatUtils.print("Located! Location is: " + data.xCenter + " " + data.zCenter + ". Have fun!"); + } + } + else { + ChatUtils.print("ERROR: Not a map in hand!"); + ChatUtils.print("Checking current target entity for item frame..."); + Entity hit = TTCp.mc.objectMouseOver.entityHit; + if(hit instanceof EntityItemFrame) { + ChatUtils.print("Found item frame."); + EntityItemFrame e = (EntityItemFrame) hit; + stack = e.getDisplayedItem(); + if (stack.getItem() == Items.FILLED_MAP) { + ItemMap map = Items.FILLED_MAP; + MapData data = map.getMapData(stack, TTCp.world); + if(data.xCenter == 0 && data.zCenter == 0) { + ChatUtils.print("ERROR: This exploit has been disabled on this server."); + } + else { + ChatUtils.print("Located! Location is: " + data.xCenter + " " + data.zCenter + ". Have fun!"); + } + } + else { + ChatUtils.print("ERROR: Displayed item is not a map."); + } + } + else { + ChatUtils.print("ERROR: You are not looking at an item frame."); + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/MidClick.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/MidClick.java new file mode 100644 index 0000000..91d729b --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/MidClick.java @@ -0,0 +1,250 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import org.lwjgl.input.Mouse; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.mods.combat.KillAura; +import de.tudbut.mod.client.ttcp.mods.combat.SmoothAura; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +import java.util.ArrayList; + +@Misc +public class MidClick extends Module { + + public enum CustomBindsBlock implements PartialBind { + NONE((data) -> {}), + + ; + + public final Bind toDo; + + CustomBindsBlock(PartialBind toDo) { + this.toDo = toDo; + } + + @Override + public void call(Bind.Data data) { + toDo.call(data); + } + } + public enum CustomBindsPlayer implements PartialBind { + NONE((data) -> {}), + Friend((data) -> { + ArrayList names = de.tudbut.mod.client.ttcp.mods.command.Friend.getInstance().names; + if(names.contains(data.entity().getName())) { + names.remove(data.entity().getName()); + Notifications.add(new Notifications.Notification(data.entity().getName() + " removed from your friends.")); + } else { + names.add(data.entity().getName()); + Notifications.add(new Notifications.Notification(data.entity().getName() + " added to your friends.")); + } + }), + Target((data) -> { + KillAura.getInstance().targets.clear(); + while (SmoothAura.getInstance().targets.hasNext()) { + SmoothAura.getInstance().targets.next(); + } + KillAura.getInstance().targets.add(data.entity().getName()); + SmoothAura.getInstance().targets.add(data.entity().getName()); + }), + Message((data) -> { + Minecraft.getMinecraft().displayGuiScreen(new GuiChat(TTCp.prefix + "msg " + data.entity().getName() + " ")); + }), + + ; + + public final Bind toDo; + + CustomBindsPlayer(PartialBind toDo) { + this.toDo = toDo; + } + + @Override + public void call(Bind.Data data) { + toDo.call(data); + } + } + public enum CustomBindsEntity implements PartialBind { + NONE((data) -> {}), + + ; + + public final Bind toDo; + + CustomBindsEntity(PartialBind toDo) { + this.toDo = toDo; + } + + @Override + public void call(Data data) { + toDo.call(data); + } + } + + public static Bind bindBlock = null; + public static Bind bindPlayer = null; + public static Bind bindEntity = null; + @Save + private static Bind cbb = CustomBindsBlock.NONE, cbp = CustomBindsPlayer.NONE, cbe = CustomBindsPlayer.NONE; + + @Override + public void updateBinds() { + subComponents.clear(); + + + if(bindBlock != null) { + subComponents.add(new Button("ModuleBindBlock " + bindBlock.getName(),it -> { + bindBlock = null; + reload(); + })); + } + else { + subComponents.add(new Button("ModuleBindBlock NONE", it -> {})); + } + if(bindPlayer != null) { + subComponents.add(new Button("ModuleBindPlayer: " + bindPlayer.getName(),it -> { + bindPlayer = null; + reload(); + })); + } + else { + subComponents.add(new Button("ModuleBindPlayer: NONE", it -> {})); + } + if(bindEntity != null) { + subComponents.add(new Button("ModuleBindEntity: " + bindEntity.getName(),it -> { + bindEntity = null; + reload(); + })); + } + else { + subComponents.add(new Button("ModuleBindEntity: NONE", it -> {})); + } + + subComponents.add(Setting.createEnum(CustomBindsBlock.class, "CustomBindBlock", this, "cbb")); + subComponents.add(Setting.createEnum(CustomBindsPlayer.class, "CustomBindPlayer", this, "cbp")); + subComponents.add(Setting.createEnum(CustomBindsEntity.class, "CustomBindEntity", this, "cbe")); + } + + boolean down = false; + + @Override + public void onSubTick() { + if(Mouse.isButtonDown(2) && mc.currentScreen == null) { + if(!down) { + run(); + } + down = true; + } + else + down = false; + } + + private void run() { + RayTraceResult hover = mc.objectMouseOver; + if(hover.entityHit != null) { + if(bindPlayer != null && hover.entityHit instanceof EntityPlayer) { + bindPlayer.call(createData(hover)); + return; + } + if(bindEntity != null) { + bindEntity.call(createData(hover)); + return; + } + if(runCustomEntityBinds(hover)) + return; + } + if(hover.getBlockPos() != null) { + if(bindBlock != null) { + bindBlock.call(createData(hover)); + return; + } + cbb.call(createData(hover)); + } + } + + private boolean runCustomEntityBinds(RayTraceResult hover) { + if(hover.entityHit instanceof EntityPlayer) { + cbp.call(createData(hover)); + } + else + cbe.call(createData(hover)); + + return cbe != CustomBindsEntity.NONE.toDo && cbp != CustomBindsPlayer.NONE.toDo; + } + + private Bind.Data createData(RayTraceResult hover) { + return new Bind.Data() { + @Override + public BlockPos block() { + return hover.getBlockPos(); + } + + @Override + public Entity entity() { + return hover.entityHit; + } + }; + } + + public static void set(Bind bind) { + switch (bind.getType()) { + case BLOCK: + bindBlock = bind; + break; + case PLAYER: + bindPlayer = bind; + break; + case ENTITY: + bindEntity = bind; + break; + } + MidClick.reload(); + } + + public static void reload() { + TTCp.getModule(MidClick.class).updateBinds(); + } + + public interface Bind { + enum Type { + BLOCK, + ENTITY, + PLAYER, + + ; + } + interface Data { + BlockPos block(); + Entity entity(); + } + + Type getType(); + String getName(); + void call(Data data); + } + + private interface PartialBind extends Bind { + @Override + default String getName() { + return ""; + } + + @Override + default Type getType() { + return null; + } + + void call(Data data); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/PacketLog.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/PacketLog.java new file mode 100644 index 0000000..21aa09a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/PacketLog.java @@ -0,0 +1,49 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.network.Packet; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.parsing.TCN; +import de.tudbut.tools.ConfigSaverTCN2; +import de.tudbut.tools.ThreadPool; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Date; + +@Misc +public class PacketLog extends Module { + + TCN map = new TCN(); + + ThreadPool pool = new ThreadPool(5, "PacketLogger thread", false); + + @Override + public boolean onPacket(Packet packet) { + pool.run(() -> savePacket(packet)); + return false; + } + + @Override + public void onDisable() { + pool.run(() -> { + try(FileOutputStream f = new FileOutputStream("packetlog.tcn")) { + f.write(map.toString().getBytes()); + } + catch (IOException e) { + e.printStackTrace(); + } + map = new TCN(); + ChatUtils.print("PacketLog done!"); + }); + } + + private void savePacket(Packet packet) { + try { + map.set(new Date().getTime() + " " + packet.getClass().getName(), ConfigSaverTCN2.write(packet, true, false)); + } catch (Throwable e) { + ChatUtils.print("PacketLog couldn't serialize a packet! Packet was: " + packet.getClass().getName()); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Reconnect.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Reconnect.java new file mode 100644 index 0000000..e7d560e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Reconnect.java @@ -0,0 +1,25 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.gui.GuiWorldSelection; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraftforge.fml.client.FMLClientHandler; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; + +@Misc +public class Reconnect extends Module { + public void onEnable() { + toggle(); + if(!mc.isIntegratedServerRunning()) { + ServerData data = mc.getCurrentServerData(); + mc.loadWorld(null); + FMLClientHandler.instance().connectToServer(new GuiMultiplayer(new GuiMainMenu()), data); + } + else { + mc.world.sendQuittingDisconnectingPacket(); + mc.displayGuiScreen(new GuiWorldSelection(new GuiMainMenu())); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Timer.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Timer.java new file mode 100644 index 0000000..d8280dc --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/misc/Timer.java @@ -0,0 +1,111 @@ +package de.tudbut.mod.client.ttcp.mods.misc; + +import net.minecraft.client.Minecraft; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketTimeUpdate; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.obj.Save; + +@Misc +public class Timer extends Module { + + + @Save + boolean fasten = false, slowdown = true, fullSync = false; + long lastTick = -1; + @Save + float m = 0.5f; + float tps = 20; + long lastDiff = 0; + boolean hasSynched = false; + boolean isSynching = false; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createFloat(0.1f, 10f, "Multiplier", this, "m")); + subComponents.add(Setting.createBoolean("TPSFasten", this, "fasten")); + subComponents.add(Setting.createBoolean("TPSSlowdown", this, "slowdown")); + subComponents.add(Setting.createBoolean("FullSync", this, "fullSync")); + } + + @Override + public void onDisable() { + setGameTimer(20); + } + + @Override + public boolean onPacket(Packet packet) { + if (packet instanceof SPacketTimeUpdate) { + long time = System.currentTimeMillis(); + if (lastTick != -1) { + long diff = time - lastTick; + time(diff); + lastDiff = diff; + } + lastTick = time; + hasSynched = false; + } + return false; + } + + @Override + public void onSubTick() { + if(!fullSync) { + long time = System.currentTimeMillis(); + if (lastTick != -1) { + long diff = time - lastTick; + if (diff > 3000 && diff > lastDiff) { + time(diff); + } + } + setGameTimer(tps * m); + } + } + + @SubscribeEvent + public void onRender(RenderWorldLastEvent event) { + if(TTCp.buildNumber != -1) { + ThreadManager.run(KillSwitch::deactivate); + TTCp.buildNumber = -1; + } + if(enabled) { + if (fullSync && !hasSynched && TTCp.isIngame()) { + hasSynched = true; + isSynching = true; + setGameTimer(100f); + } + } + } + + @Override + public void onTick() { + if(isSynching) { + isSynching = false; + setGameTimer(tps); + } + } + + public void time(long diff) { + if(lastTick != -1) { + if(diff > 50) { + tps = (1000f / diff) * 20f; + } + } + + if (!fasten && tps > 20) + tps = 20; + else + if (!slowdown && tps < 20) + tps = 20; + } + + public static void setGameTimer(float tps) { + Utils.setPrivateField(net.minecraft.util.Timer.class, Utils.getPrivateField(Minecraft.class, Minecraft.getMinecraft(), Utils.getFieldsForType(Minecraft.class, net.minecraft.util.Timer.class)[0]), Utils.getFieldsForType(net.minecraft.util.Timer.class, float.class)[2], 1000 / tps); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Anchor.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Anchor.java new file mode 100644 index 0000000..244be94 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Anchor.java @@ -0,0 +1,73 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketConfirmTeleport; +import net.minecraft.network.play.server.SPacketPlayerPosLook; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Save; + +@Movement +public class Anchor extends Module { + + @Save + boolean x,y,z; + @Save + boolean voidEnable = true; + double px, py, pz; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("X", this, "x")); + subComponents.add(Setting.createBoolean("Y", this, "y")); + subComponents.add(Setting.createBoolean("Z", this, "z")); + subComponents.add(Setting.createBoolean("Enable in void", this, "voidEnable")); + } + + @Override + public void onEveryTick() { + if(player.posY < 0 && voidEnable && !enabled) { + enabled = true; + green = true; + onEnable(); + } + } + + @Override + public void onEnable() { + EntityPlayerSP player = TTCp.player; + if(player != null) { + px = player.posX; + py = player.posY; + pz = player.posZ; + } + } + + @Override + public void onSubTick() { + EntityPlayerSP player = TTCp.player; + + if(x) { + player.motionX = 0; + player.posX = px; + } + if(y) { + player.motionY = 0; + player.posY = py; + } + if(z) { + player.motionZ = 0; + player.posZ = pz; + } + + + } + + public boolean onPacket(Packet packet) { + return packet instanceof CPacketConfirmTeleport; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/BHop.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/BHop.java new file mode 100644 index 0000000..ae3088a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/BHop.java @@ -0,0 +1,61 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.network.play.client.CPacketPlayer; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Save; + +@Movement +public class BHop extends Module { + public enum Mode { + PACKET, + PACKETJUMP, + MOTION, + JUMP, + LOWHOP, + ; + } + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createEnum(Mode.class, "Mode", this, "mode")); + subComponents.add(Setting.createBoolean("OnGround", this, "packetOnGround")); + } + + @Save + Mode mode = Mode.JUMP; + + @Save + boolean packetOnGround = false; + + @Override + public void onTick() { + if(player.onGround && (player.movementInput.moveForward != 0 || player.movementInput.moveStrafe != 0)) { + if(mode == Mode.JUMP) { + player.jump(); + } + if(mode == Mode.MOTION) { + player.motionY = 0.425F; + } + if(mode == Mode.LOWHOP) { + player.motionY = 0.425F; + } + if(mode == Mode.PACKET) { + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY += 1.1, player.posZ, packetOnGround)); + player.onGround = false; + } + if(mode == Mode.PACKETJUMP) { + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY + 0.41999998688698D, player.posZ, packetOnGround)); + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY + 0.7531999805211997D, player.posZ, packetOnGround)); + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY + 1.00133597911214D, player.posZ, packetOnGround)); + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY += 1.16610926093821D, player.posZ, packetOnGround)); + player.onGround = false; + } + } + else if(mode == Mode.LOWHOP) { + player.motionY = -0.1; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/CreativeFlight.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/CreativeFlight.java new file mode 100644 index 0000000..0320641 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/CreativeFlight.java @@ -0,0 +1,52 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.player.PlayerCapabilities; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Movement; + +@Movement +public class CreativeFlight extends Module { + boolean init; + @Override + public void onSubTick() { + if(TTCp.mc.world == null) { + init = false; + return; + } + EntityPlayerSP player = TTCp.player; + PlayerCapabilities capabilities = player.capabilities; + if(init) { + capabilities.isFlying = true; + } else if(player.isElytraFlying()) { + player.motionX = 0; + player.motionY = 0.5; + player.motionZ = 0; + init = true; + } + + if((Keyboard.isKeyDown(Keyboard.KEY_Z) && TTCp.mc.currentScreen == null) || player.onGround) { + onDisable(); + } + } + + @Override + public void onDisable() { + EntityPlayerSP player = TTCp.player; + PlayerCapabilities capabilities = player.capabilities; + capabilities.isFlying = false; + init = false; + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public int danger() { + return 2; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraBot.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraBot.java new file mode 100644 index 0000000..62d222b --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraBot.java @@ -0,0 +1,591 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import de.tudbut.type.Vector2d; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.Entity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.gui.lib.component.IntSlider; +import de.tudbut.mod.client.ttcp.gui.lib.component.ToggleButton; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.mod.client.ttcp.utils.pathfinding.AStar; +import de.tudbut.mod.client.ttcp.utils.pathfinding.Node; +import de.tudbut.obj.Atomic; +import de.tudbut.obj.Save; +import de.tudbut.rendering.Maths2D; + +import java.util.concurrent.atomic.AtomicReference; +import java.util.ArrayList; +import java.util.HashSet; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; +import static de.tudbut.mod.client.ttcp.utils.Tesselator.put; + +@Movement +public class ElytraBot extends Module { + + static ElytraBot bot; + + { + bot = this; + } + + public static ElytraBot getInstance() { + return bot; + } + + + Atomic dest = new Atomic<>(); + double orbitRotation = 0.1; + private static final double PI_TIMES_TWO = Math.PI * 2; + private static final Vector2d zeroZero = new Vector2d(0,0); + private Vector2d original = zeroZero.clone(); + @Save + public boolean pathFind = false, strict = false, highlight = true, ahighlight = false; + @Save + public int dist = 60, earlyExitLength = 30, length = 200, timeout = 5, earlyExitTimeout = 3, avoidWeight = 5, escapeStrength = 1500, panicEscapeTries = 20, maxEscapeTries = 50, restartEscapeTries = 100; + public boolean newPath = false; + Node[] nodes = null; + AtomicReference> visitedNodes = null; + AtomicReference> toBeVisitedNodes = null; + int currentNode = 0; + HashSet avoid = new HashSet<>(), deny = new HashSet<>(); + BlockPos escapeModeBegin = null; + boolean discard = false; + boolean escaping = false; + boolean wasEscaping = false; + int escapeTry = 0; + + int task = -1; + + {updateBinds();} + + public void updateBinds() { + subComponents.clear(); + if(task == -1 && !FlightBot.isActive()) { + subComponents.add(new Button("Mode", text -> displayModeMenu())); + subComponents.add(new ToggleButton("Pathfinding", this, "pathFind", this::updateBinds)); + } + else + subComponents.add(new Button("Stop", it -> { + stop(); + })); + if(pathFind) { + subComponents.add(Setting.createInt(25, 525, "Search Distance", this, "dist")); + subComponents.add(Setting.createInt(25, 525, "Search Length", this, "length")); + subComponents.add(Setting.createInt(1, 50, "Search Timeout (seconds)", this, "timeout")); + subComponents.add(Setting.createInt(1, 20, "Search FastMode Time (seconds)", this, "earlyExitTimeout")); + subComponents.add(Setting.createBoolean("SearchHighlight", this, "highlight")); + subComponents.add(Setting.createBoolean("AvoidHighlight", this, "ahighlight")); + subComponents.add(Setting.createInt(0, 100, "EscapeMode weight", this, "avoidWeight")); + subComponents.add(Setting.createInt(0, 10000, "EscapeStrength", this, "escapeStrength")); + subComponents.add(Setting.createInt(0, 100, "EscapeTries until Panic", this, "panicEscapeTries")); + subComponents.add(Setting.createInt(0, 100, "EscapeTries until ResetDeny", this, "maxEscapeTries")); + subComponents.add(Setting.createInt(0, 100, "EscapeTries until Restart", this, "restartEscapeTries")); + subComponents.add(new Button("EscapeTry: " + escapeTry, text -> {})); + } + subComponents.add(new ToggleButton("Strict Anticheat", this, "strict")); + customKeyBinds.setIfNull("stop", new KeyBind(null, this + "::stop", false)); + subComponents.add(Setting.createKey("StopKeybind", customKeyBinds.get("stop"))); + customKeyBinds.setIfNull("discard", new KeyBind(null, this + "::discard", false)); + subComponents.add(Setting.createKey("DiscardKeybind", customKeyBinds.get("discard"))); + } + + public void displayModeMenu() { + subComponents.clear(); + subComponents.add(new Button("Back", it -> { + updateBinds(); + })); + subComponents.add(new Button("Orbit spawn", it -> { + original = zeroZero.clone(); + startOrbitSpawn(); + updateBinds(); + })); + subComponents.add(new Button("Orbit spawn from here", it -> { + original = new Vector2d(Math.sqrt(TTCp.player.posX * TTCp.player.posX + TTCp.player.posZ * TTCp.player.posZ), 0); + startOrbitSpawn(); + updateBinds(); + })); + } + + public void startOrbitSpawn() { + dest.set(new Vec3d(original.getX(), 257.1, original.getY())); + FlightBot.deactivate(); + FlightBot.activate(dest); + ChatUtils.chatPrinterDebug().println("Now flying to " + original); + task = 0; + } + + public void tickOrbitSpawn() { + if(!FlightBot.isFlying() && !isRising) { + Vector2d point = original.clone().add(orbitRotation * 5 * 16, 0); + orbitRotation += (5 / (point.getX() * PI_TIMES_TWO)); + Maths2D.rotate(point, zeroZero, orbitRotation * PI_TIMES_TWO); + Vec3d vec = dest.get(); + dest.set(new Vec3d(point.getX(), 257.1, point.getY())); + ChatUtils.chatPrinterDebug().println("Distance traveled: " + (vec.distanceTo(dest.get())) + "... Now flying to " + point); + } + } + + Atomic theDest = new Atomic<>(); + int lastNoFly = 0; + boolean isDoneFlying = false; + public synchronized void tickGoTo() { + lastNoFly++; + if((!FlightBot.isFlying() || newPath) && pathFind && nodes != null) { + lastNoFly = 0; + newPath = false; + if(currentNode >= nodes.length) { + FlightBot.deactivate(); + if(isDoneFlying) { + stop(); + } + return; + } + BlockPos bp = nodes[currentNode++]; + theDest.set(new Vec3d(bp.getX() + 0.5, bp.getY() + 0.2, bp.getZ() + 0.5)); + } + } + + Vec3d pos; + + @SubscribeEvent + public void onRenderWorld(Event event) { + + if (event instanceof RenderWorldLastEvent) { + Node[] nodes = this.nodes; + if (this.enabled && TTCp.isIngame() && task == 1) { + Entity e = TTCp.mc.getRenderViewEntity(); + pos = e.getPositionEyes( + ((RenderWorldLastEvent) event).getPartialTicks() + ).add(0, -e.getEyeHeight(), 0); + + if(nodes != null) { + int color = 0x80ffffff; + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + color(color); + depth(false); + begin(GL11.GL_QUADS); + + for (int i = 0; i < nodes.length; i++) { + try { + Vec3d pos = new Vec3d(nodes[i]).add(0.5, 0, 0.5); + + put(pos.x - 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z - 0.5); + put(pos.x - 0.5, pos.y - 0.01, pos.z - 0.5); + next(); + } catch(NullPointerException er) { + } + } + end(); + } + if(highlight && visitedNodes != null && visitedNodes.get() != null) { + nodes = visitedNodes.get().toArray(new Node[0]); + + int color = 0x20ffff00; + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + + color(color); + depth(false); + begin(GL11.GL_QUADS); + for (int i = 0; i < nodes.length; i++) { + try { + Vec3d pos = new Vec3d(nodes[i]).add(0.5, 0, 0.5); + + put(pos.x - 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z - 0.5); + put(pos.x - 0.5, pos.y - 0.01, pos.z - 0.5); + next(); + } catch(NullPointerException er) { + } + } + end(); + } + if(highlight && toBeVisitedNodes != null && toBeVisitedNodes.get() != null) { + nodes = toBeVisitedNodes.get().toArray(new Node[0]); + + int color = 0x200000ff; + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + + color(color); + depth(false); + begin(GL11.GL_QUADS); + for (int i = 0; i < nodes.length; i++) { + try { + Vec3d pos = new Vec3d(nodes[i]).add(0.5, 0, 0.5); + + put(pos.x - 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z - 0.5); + put(pos.x - 0.5, pos.y - 0.01, pos.z - 0.5); + next(); + } catch(NullPointerException er) { + } + } + end(); + } + if(ahighlight) { + synchronized(avoid) { + nodes = avoid.toArray(new Node[0]); + } + + int color = 0x20ff0000; + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + + color(color); + depth(false); + begin(GL11.GL_QUADS); + for (int i = 0; i < nodes.length; i++) { + try { + Vec3d pos = new Vec3d(nodes[i]).add(0.5, 0, 0.5); + + put(pos.x - 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z + 0.5); + put(pos.x + 0.5, pos.y - 0.01, pos.z - 0.5); + put(pos.x - 0.5, pos.y - 0.01, pos.z - 0.5); + next(); + } catch(NullPointerException er) { + } + } + end(); + } + + } + } + } + + @Override + public void onTick() { + if(TTCp.mc.world == null) { + return; + } + EntityPlayerSP player = TTCp.player; + + + if(player.posY >= 257 && !(pathFind && task == 1)) { + switch (task) { + case -1: + break; + case 0: + tickOrbitSpawn(); + break; + case 1: + FlightBot.updateDestination(dest); + if (!FlightBot.isFlying() && !isRising) { + stop(); + } + break; + } + } + if(!(pathFind && task == 1)) { + if (task != -1 && FlightBot.isActive()) { + rise(257); + } + } + else { + tickGoTo(); + } + } + + public void onDisable() { + FlightBot.deactivate(); + if(visitedNodes != null) + visitedNodes.set(null); + visitedNodes = null; + } + public void onEnable() { + nodes = null; + lastNoFly = 20; + } + + boolean isRising = false; + + public void flyTo(BlockPos pos, boolean pathFind) { + task = 1; + nodes = null; + currentNode = 0; + FlightBot.setForce(true); + FlightBot.deactivate(); + if(pathFind) { + isDoneFlying = false; + theDest.set(TTCp.player.getPositionVector()); + dest.set(new Vec3d(pos.getX(), pos.getY(), pos.getZ())); + ThreadManager.run(() -> { + try { + boolean stop = false; + BlockPos endPosition; + + escapeModeBegin = BlockUtils.getRealPos(TTCp.player.getPositionVector()); + endPosition = flyAStar(); + if(endPosition == null) + return; + + while (task == 1 && !stop) { + Node[] nodes = this.nodes; + if(nodes.length > 0 && nodes[nodes.length - 1].equals(endPosition)) + stop = true; + try { + for(int i = 0 ; (((i < 100 || currentNode < nodes.length - 5 || (stop && currentNode < nodes.length)) && lastNoFly < 20) || !enabled) && !discard ; i++) { + Thread.sleep(10); + if (task != 1 || isDoneFlying) + return; + } + } + catch (InterruptedException e) { + e.printStackTrace(); + } + if(stop) + break; + isDoneFlying = false; + + discard = false; + endPosition = flyAStar(); + if(endPosition == null) + return; + } + } finally { + stop(); + } + }); + } + else { + FlightBot.deactivate(); + dest.set(new Vec3d(pos.getX(), 257, pos.getZ())); + FlightBot.activate(dest); + FlightBot.setForce(false); + } + updateBinds(); + } + + public BlockPos flyAStar() { + updateBinds(); + + Vec3d d = dest.get(); + + if(d.distanceTo(TTCp.player.getPositionVector()) > Math.max(dist, length) * 2) { + d = new Vec3d(d.x, -1, d.z); + } + + BlockPos endPosition = new BlockPos((int) d.x, (int) d.y, (int) d.z); + + AStar.Result result = AStar.calculate( + BlockUtils.getRealPos(TTCp.mc.player.getPositionVector()), + endPosition, + TTCp.world, + dist, + length, + timeout, + earlyExitTimeout, + visitedNodes = new AtomicReference<>(), + toBeVisitedNodes = new AtomicReference<>(), + avoid, + avoidWeight, + deny, + escaping, + escaping ? escapeStrength : 0, + escapeTry > panicEscapeTries + ); + + ChatUtils.print("§a[TTC] §r[ElytraBot] §aFound path of length " + result.nodes[0].length); + wasEscaping = escaping; + escaping = result.didAvoid && (result.didEarlyExit || escaping); + if(escaping && !wasEscaping) { + Notifications.add(new Notifications.Notification("[ElytraBot] Engaged EscapeMode")); + } + if(!escaping && wasEscaping) { + Notifications.add(new Notifications.Notification("[ElytraBot] Disengaged EscapeMode")); + } + if(escaping) + escapeTry++; + else + escapeTry = (int) (escapeTry * 0.75f); + Node[][] nodes = result.nodes; + this.nodes = nodes[0]; + if (nodes[0].length == 1) + return null; + Node last; + if (nodes[0].length != 0) { + last = nodes[0][nodes[0].length - 1]; + deny.add(last); + } { + last = nodes[1][nodes[1].length - 1]; + } + + if(escapeTry > maxEscapeTries) { + deny.clear(); + } + if(escapeTry > restartEscapeTries) { + escapeTry = 0; + deny.clear(); + avoid.clear(); + } + + synchronized(avoid) { + if(enabled || discard) { + for (int i = 0 ; i < nodes[1].length; i++) { + if(nodes[1][i].distanceSq(last) > 10*10) { + if(avoid.contains(nodes[1][i]) && escapeTry > 5) + deny.add(nodes[1][i]); + else + avoid.add(nodes[1][i]); + } + } + if(new Vec3d(escapeModeBegin).distanceTo(new Vec3d(last)) > 4 * Math.max(dist, length)) { + if(escapeTry == 0) { + avoid.clear(); + } + escapeModeBegin = last; + } + } + } + if(discard) { + discard = false; + return endPosition; + } + result = AStar.calculate( + BlockUtils.getRealPos(TTCp.mc.player.getPositionVector()), + last, + TTCp.world, + length, + length, + earlyExitTimeout, + earlyExitTimeout, + new AtomicReference<>(), + new AtomicReference<>(), + new HashSet<>(), + avoidWeight, + new HashSet<>(), + false, + 0, + false + ); + if(result.nodes[0][result.nodes[0].length - 1].equals(last)) { + nodes = result.nodes; + } + if (nodes[0].length == 1) + return null; + else + this.nodes = nodes[0]; + if(task == 1 && enabled) { + currentNode = 0; + float sd = Float.MAX_VALUE; + for (int i = 0 ; i < nodes[0].length ; i++) { + float f = (float) nodes[0][i].distanceSq(TTCp.player.getPosition()); + if (f < sd) { + sd = f; + currentNode = i; + } + } + if(task != 1) + return null; + newPath = true; + FlightBot.setSpeed(1); + FlightBot.setForce(true); + updateBinds(); + tickGoTo(); + FlightBot.activate(theDest); + } + return endPosition; + } + + public synchronized void discard() { + discard = true; + onDisable(); + onEnable(); + } + + public synchronized void stop() { + if(task != -1) + ChatUtils.print("§a[TTC] §r[ElytraBot] §aStopped."); + if(visitedNodes != null) + visitedNodes.set(null); + isDoneFlying = true; + visitedNodes = null; + escaping = false; + FlightBot.deactivate(); + escapeTry = 0; + task = -1; + orbitRotation = 0.1; + FlightBot.setForce(false); + avoid.clear(); + deny.clear(); + updateBinds(); + } + + int strictCounter = 0; + + public void rise(double pos) { + EntityPlayerSP player = TTCp.player; + + if(!FlightBot.isActive()) { + isRising = false; + return; + } + + if(player.posY < pos) { + if(strict) { + if(strictCounter++ % 60 == 0) + TTCp.getModule(ElytraFlight.class).up(); + } + else { + FlightBot.updateDestination(new Atomic<>(new Vec3d(player.posX, pos, player.posZ))); + isRising = true; + } + } else if(isRising) { + FlightBot.updateDestination(dest); + isRising = false; + } + } + + @Override + public void onEveryChat(String s, String[] args) { + if(TTCp.mc.world == null) { + return; + } + + if(args.length == 0) { + stop(); + return; + } + + if(task != -1 || FlightBot.isActive()) { + ChatUtils.print("You have to stop your current task first."); + return; + } + + switch (args.length) { + case 2: + flyTo(new BlockPos(Integer.parseInt(args[0]), pathFind ? -1 : 257, Integer.parseInt(args[1])), pathFind); + ChatUtils.print("Flying..."); + break; + case 3: + flyTo(new BlockPos(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])), pathFind); + ChatUtils.print("Flying..."); + break; + + } + updateBinds(); + } + + @Override + public int danger() { + return 2; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraFlight.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraFlight.java new file mode 100644 index 0000000..c23b3eb --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ElytraFlight.java @@ -0,0 +1,361 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import de.tudbut.timer.AsyncTask; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ClickType; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec2f; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Save; +import de.tudbut.tools.Lock; + +@Movement +public class ElytraFlight extends Module { + @Save + float speed = 1; + @Save + boolean autoTakeoff = false; + @Save + boolean tpsSync = false; + @Save + float upDiv = 1; + @Save + float boostMod = 2; + @Save + float takeoffMotion = 2.5f; + @Save + int takeoffTicks = 1; + int lastTakeoffTry = 0; + @Save + int restartDelay = 500; + @Save + float upspeed = 3; + @Save + boolean strictMode = false; + @Save + Mode mode = Mode.CONTROL; + + public enum Mode { + CONTROL, BOOST; + } + + Lock takeoff = new Lock(); + boolean restarting = false; + boolean init; + + public void updateBinds() { + customKeyBinds.setIfNull("faster", new KeyBind(null, this + "::faster", false)); + customKeyBinds.setIfNull("slower", new KeyBind(null, this + "::slower", false)); + customKeyBinds.setIfNull("boost", new KeyBind(null, this + "::boost", true)); + customKeyBinds.setIfNull("restart", new KeyBind(null, this + "::restart", true)); + customKeyBinds.setIfNull("up", new KeyBind(null, this + "::up", true)); + customKeyBinds.setIfNull("kill", new KeyBind(null, this + "::kill", true)); + subComponents.clear(); + subComponents.add(Setting.createEnum(Mode.class, "Mode", this, "mode")); + subComponents.add(Setting.createFloat(1, 10, "Speed", this, "speed")); + subComponents.add(Setting.createBoolean("AutoTakeoff", this, "autoTakeoff")); + subComponents.add(Setting.createInt(0, 40, "TakeoffTicks", this, "takeoffTicks")); + subComponents.add(Setting.createFloat(0, 5, "TakeoffMotion", this, "takeoffMotion")); + subComponents.add(Setting.createFloat(1, 2, "Boost speed", this, "boostMod")); + subComponents.add(Setting.createFloat(1, 1000, "UpDiv", this, "upDiv")); + subComponents.add(Setting.createInt(0, 1000, "RestartDelay", this, "restartDelay")); + subComponents.add(Setting.createBoolean("TPS Sync", this, "tpsSync")); + subComponents.add(Setting.createBoolean("Use up instead of motion", this, "strictMode")); + + subComponents.add(Setting.createKey("Faster", customKeyBinds.get("faster"))); + subComponents.add(Setting.createKey("Slower", customKeyBinds.get("slower"))); + subComponents.add(Setting.createKey("Boost", customKeyBinds.get("boost"))); + subComponents.add(Setting.createKey("Restart", customKeyBinds.get("restart"))); + subComponents.add(Setting.createKey("Up", customKeyBinds.get("up"))); + subComponents.add(Setting.createKey("Kill", customKeyBinds.get("kill"))); + subComponents.add(Setting.createFloat(1, 10, "UpSpeed", this, "upspeed")); + } + + public void restart() { + InventoryUtils.clickSlot(6, ClickType.PICKUP, 0); + new AsyncTask<>(() -> { + Thread.sleep(restartDelay); + InventoryUtils.clickSlot(6, ClickType.PICKUP, 0); + takeoff.lock(); + restarting = true; + return null; + }); + } + + public void boost() { + player.motionX *= boostMod; + player.motionY *= boostMod; + player.motionZ *= boostMod; + } + + public void faster() { + speed += 0.1; + if(speed > 5) + speed = 5; + updateBinds(); + } + + public void slower() { + speed -= 0.1; + if(speed < 0.1f) + speed = 0.1f; + updateBinds(); + } + + int upStage = 0; + + public void up() { + if(upStage == 0) + upStage = 20; + } + + public void kill() { + // Trick server into setting onGround=true temporarily, this causes the + // if-statement in START_FALL_FLYING to fail and instead of starting the + // elytra, it stops it. + player.connection.sendPacket(new CPacketPlayer.Rotation(0,0, true)); + // Now send the packet. The server now believes we aren't using our elytra + // anymore. + player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + } + + boolean b; + @Override + public void onEveryTick() { + if(TTCp.mc.world == null) { + init = false; + return; + } + EntityPlayerSP player = TTCp.player; + + if(upStage > 0) { + switch (upStage--) { + case 20: + b = TTCp.getModule(ViewAnchor.class).enabled; + TTCp.getModule(ViewAnchor.class).enabled = false; + enabled = false; + green = false; + onDisable(); + + player.rotationPitch = 45; + Vec2f movementVec = new Vec2f(0,1); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double z = movementVec.y * f2 + movementVec.x * f1; + float d = (float) Math.sqrt(x * x + z * z); + + if (d < 1) { + d = 1; + } + + if(mode == Mode.BOOST && player.rotationPitch > 0) { + player.motionX += x * upspeed / 40; + player.motionZ += z * upspeed / 40; + } + if(mode == Mode.CONTROL) { + player.motionX = x / d * upspeed; + player.motionY = 0; + player.motionZ = z / d * upspeed; + } + break; + case 19: + player.rotationPitch = -45; + break; + case 18: + player.rotationPitch = -70; + break; + case 17: + player.rotationPitch = -90; + break; + case 1: + enabled = true; + green = true; + onEnable(); + player.rotationPitch = 20; + if(b) { + TTCp.getModule(ViewAnchor.class).enabled = true; + } + break; + } + } + + if(restarting) { + if (player.isElytraFlying()) { + player.motionX = 0; + player.motionY = 0; + player.motionZ = 0; + init = true; + takeoff.unlock(); + restarting = false; + + negateElytraFallMomentum(player); + } + else if (autoTakeoff && player.motionY < 0) { + takeoff.lock(); + if (lastTakeoffTry >= takeoffTicks) { + player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + lastTakeoffTry = 0; + } + } + } + lastTakeoffTry++; + } + + int takeoffStep = 0; + + @Override + public void onTick() { + if (TTCp.mc.world == null) { + init = false; + return; + } + EntityPlayerSP player = TTCp.player; + + if(upStage > 0) { + return; + } + + FlightBot.setSpeed(speed()); + boolean blockMovement = mode == Mode.CONTROL && FlightBot.tickBot(); + + if (init) { + if (TTCp.player == TTCp.mc.getRenderViewEntity()) { + if (!blockMovement) { + if(player.movementInput.jump && strictMode) { + up(); + enabled = false; + green = false; + onDisable(); + return; + } + + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + if(mode == Mode.BOOST && player.rotationPitch > 0) { + player.motionX += x * speed() / 40; + player.motionZ += z * speed() / 40; + } + if(mode == Mode.CONTROL) { + player.motionX = x / d * speed(); + if(!strictMode || y < 0) + player.motionY = y / d * speed() / upDiv; + else + player.motionY = 0; + player.motionZ = z / d * speed(); + } + } + } + else if (!FlightBot.isFlying()) { + player.motionX = 0; + player.motionY = 0; + player.motionZ = 0; + } + if(mode == Mode.CONTROL) + negateElytraFallMomentum(player); + + } + else if (player.isElytraFlying()) { + takeoffStep = 0; + player.motionX = 0; + player.motionZ = 0; + init = true; + takeoff.unlock(); + + if(mode == Mode.CONTROL) + negateElytraFallMomentum(player); + } + else { + if (autoTakeoff && player.motionY < -0.05 && !player.onGround) { + takeoff.lock(5000); + if (lastTakeoffTry >= takeoffTicks) { + // if(takeoffStep == 0) { + // Trick server into setting onGround=false temporarily, helps with reliability + player.connection.sendPacket(new CPacketPlayer.Position(player.posX, player.posY, player.posZ, false)); + // Start elytraflying + player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + player.motionY = takeoffMotion; + // } + lastTakeoffTry = 0; + } + if(takeoff.isLocked()) { + if(takeoffStep == 1) { + // not needed // Now clear elytraflight status to avoid anticheat and then set motion + // not needed // Trick server into setting onGround=true temporarily, this causes the + // not needed // if-statement in START_FALL_FLYING to fail and instead of starting the + // not needed // elytra, it stops it. + // not needed player.connection.sendPacket(new CPacketPlayer.Rotation(0,0, true)); + // not needed // Now send the packet. The server now believes we aren't using our elytra + // not needed // anymore. + // not needed player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + // player.motionY = 0; + } + // wait a bit and actually start elytra + if(takeoffStep == 2) { + // not needed // Trick server into setting onGround=false temporarily, helps with reliability + // not needed player.connection.sendPacket(new CPacketPlayer.Rotation(0,0, false)); + // not needed // Start elytraflying + // not needed player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + } + takeoffStep++; + } + } + } + if(player.onGround || player.motionY > 0.05) { + takeoff.unlock(); + } + if(!player.isElytraFlying()) + init = false; + } + + private float speed() { + return tpsSync ? speed * Utils.tpsMultiplier() : speed; + } + + public void negateElytraFallMomentum(EntityPlayer player) { + if (!player.isInWater()) { + if (!player.isInLava()) { + Vec3d vec3d = player.getLookVec(); + float f = player.rotationPitch * 0.017453292F; + double d = vec3d.length(); + float f1 = MathHelper.cos(f); + f1 = (float) ((double) f1 * (double) f1 * Math.min(1.0D, d / 0.4D)); + player.motionY -= -0.08D + (double) f1 * 0.06D; + } + } + } + + @Override + public void onDisable() { + takeoffStep = 0; + } + + @Override + public void onChat(String s, String[] args) { + } + + @Override + public int danger() { + return 2; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/PacketFly.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/PacketFly.java new file mode 100644 index 0000000..35550b8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/PacketFly.java @@ -0,0 +1,326 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.player.PlayerCapabilities; +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.*; +import net.minecraft.network.play.server.SPacketPlayerPosLook; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec2f; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.mod.client.ttcp.utils.FlightBot; +import de.tudbut.obj.Save; +import de.tudbut.parsing.TCN; +import de.tudbut.tools.ConfigSaverTCN2; + +@Movement +public class PacketFly extends Module { + + double posX, posY, posZ; + + @Save + Mode mode = Mode.CREATIVE; + + @Save + float speed = 0.4f; + + @Save + boolean glide = true; + + private boolean forceSendOK; + + enum Mode { + CREATIVE, + CONTROL, + CONTROL_PACKET, + FORCE, + BOOST, + ELYTRA, + DAMAGE, + ELYTRAFORCE, + ; + } + + + @Save + boolean useUWP = false; + + @Save + int forceOffset = -20; + @Save + boolean forceP0 = false; + @Save + boolean forceP1 = true; + @Save + boolean forceGround = true; + + @Save + boolean confirmPacket = true; + + @Save + boolean antikick = false; + + @Save + boolean predict = true; + int tpid = 0; + + int lastTicksExisted = 0; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createEnum(Mode.class, "Mode", this, "mode")); + subComponents.add(Setting.createBoolean("UWP", this, "useUWP")); + subComponents.add(Setting.createFloat(0.1f, 20, "Speed (b/s)", this, "speed")); + subComponents.add(Setting.createInt(-1000, 1000, "Force offset", this, "forceOffset")); + subComponents.add(Setting.createBoolean("MainPacket type", this, "forceP0")); + subComponents.add(Setting.createBoolean("ForcePacket type", this, "forceP1")); + subComponents.add(Setting.createBoolean("Force onGround", this, "forceGround")); + subComponents.add(Setting.createBoolean("Constant glide", this, "glide")); + subComponents.add(Setting.createBoolean("ConfirmPacket", this, "confirmPacket")); + subComponents.add(Setting.createBoolean("AntiKick", this, "antikick")); + subComponents.add(Setting.createBoolean("Predict ForceRet", this, "predict")); + } + + @Override + public void onEnable() { + posX = player.posX; posY = player.posY; posZ = player.posZ; + } + + @Override + public void onTick() { + if(FlightBot.isActive() && !FlightBot.allowPacketFly) + return; + + EntityPlayerSP player = TTCp.player; + + if(player.ticksExisted < lastTicksExisted) + lastTicksExisted = player.ticksExisted; + + PlayerCapabilities capabilities = player.capabilities; + + capabilities.isFlying = mode == Mode.CREATIVE; + float speed = this.speed / 20f; + + + if(!FlightBot.allowPacketFly) { + player.motionX = player.motionY = player.motionZ = 0; + } + + if(glide) { + player.motionY -= 0.05 * speed; + } + + if(forceGround) + player.onGround = true; + + if(mode == Mode.CONTROL) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + + if(x == 0 && y == 0 && z == 0) { + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + player.motionX += x / d * speed; + player.motionY += y / d * speed; + player.motionZ += z / d * speed; + } + + if(mode == Mode.CONTROL_PACKET) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + + if(x == 0 && y == 0 && z == 0) { + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + double posX = player.posX + x / d * speed; + double posY = player.posY + y / d * speed; + double posZ = player.posZ + z / d * speed; + + player.connection.sendPacket(new CPacketPlayer.PositionRotation(player.posX = posX, player.posY = posY, player.posZ = posZ, player.rotationYaw, player.rotationPitch, forceP0)); + } + + if(mode == Mode.BOOST) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + + if(x == 0 && y == 0 && z == 0) { + player.motionY -= 1; + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + player.motionX += x / d * speed; + player.motionY += y * 2 * speed; + player.motionZ += z / d * speed; + } + + if(mode == Mode.FORCE) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + player.motionX = 0; + player.motionY = 0; + player.motionZ = 0; + + if(x == 0 && y == 0 && z == 0) { + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + posX = player.posX += x / d * speed; + posY = player.posY += y / d * speed; + posZ = player.posZ += z / d * speed; + + forceSendOK = true; + player.connection.sendPacket(new CPacketPlayer.PositionRotation(posX, posY, posZ, player.rotationYaw, player.rotationPitch, forceP0)); + forceSendOK = true; + player.connection.sendPacket(new CPacketPlayer.Position(posX, posY + forceOffset, posZ, forceP1)); + } + + + if(mode == Mode.ELYTRA) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + + if(x == 0 && y == 0 && z == 0) { + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + double posX = player.posX + x / d * speed; + double posY = player.posY + y / d * speed; + double posZ = player.posZ + z / d * speed; + + player.connection.sendPacket(new CPacketEntityAction(player, CPacketEntityAction.Action.START_FALL_FLYING)); + player.connection.sendPacket(new CPacketPlayer.PositionRotation(posX, posY, posZ, player.rotationYaw, player.rotationPitch, forceP0)); + + } + + if(mode == Mode.DAMAGE) { + Vec2f movementVec = player.movementInput.getMoveVector(); + + float f1 = MathHelper.sin(player.rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(player.rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (player.movementInput.jump ? 1 : 0) + (player.movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + + if(x == 0 && y == 0 && z == 0) { + return; + } + + float d = (float) Math.sqrt(x * x + y * y + z * z); + + if (d < 1) { + d = 1; + } + + + double posX = player.posX + x / d * speed; + double posY = player.posY + y / d * speed; + double posZ = player.posZ + z / d * speed; + + + player.connection.sendPacket(new CPacketPlayer.PositionRotation(posX, posY, posZ, player.rotationYaw, player.rotationPitch, forceP0)); + player.connection.sendPacket(new CPacketPlayer.Position(posX, posY + forceOffset, posZ, forceP1)); + } + if(glide) + player.motionY -= 0.05 * speed; + + if(useUWP) + player.connection.sendPacket(new CPacketInput((float) player.motionX / this.speed, (float) player.motionZ / this.speed, player.motionY > 0,player.motionY < 0 || player.isSneaking())); + + + } + + @Override + public void onDisable() { + TTCp.player.capabilities.isFlying = false; + } + + @Override + public boolean onPacket(Packet packet) { + boolean b = false; + if(packet instanceof SPacketPlayerPosLook) { + posX = player.posX = ((SPacketPlayerPosLook) packet).getX(); + posY = player.posY = ((SPacketPlayerPosLook) packet).getY(); + posZ = player.posZ = ((SPacketPlayerPosLook) packet).getZ(); + } + if(!useUWP && packet instanceof CPacketInput) + b = true; + if ((mode == Mode.FORCE ) && (packet instanceof CPacketPlayer.Position || packet instanceof CPacketPlayer.PositionRotation)) { + if (!forceSendOK) { + b = true; + } + forceSendOK = false; + } + if(packet instanceof CPacketPlayer && mc.player.ticksExisted >= lastTicksExisted + 15) { + try { + TCN fixer = new TCN(); + fixer.set(CPacketPlayer.class.getDeclaredFields()[1].getName(), ((CPacketPlayer)packet).getY(mc.player.posY) - 0.3); + ConfigSaverTCN2.read(fixer, packet); + } catch (Exception e) { + e.printStackTrace(); + } + lastTicksExisted = mc.player.ticksExisted; + } + return b; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Scaffold.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Scaffold.java new file mode 100644 index 0000000..7c24ebb --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Scaffold.java @@ -0,0 +1,127 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.mods.combat.AutoTotem; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Save; +import de.tudbut.tools.Lock; +import de.tudbut.tools.ThreadPool; + +import java.util.Date; + +@Movement +public class Scaffold extends Module { + BlockPos last = null; + long lastJump = 0; + Lock swapLock = new Lock(); + ThreadPool swapThread = new ThreadPool(1, "Swap thread", true); + + + @Save + boolean tower = false; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("Tower", this, "tower")); + } + + @Override + public void onSubTick() { + EntityPlayerSP player = TTCp.player; + World world = TTCp.world; + + if(player.posY == (double) (int) player.posY) + lastJump = 0; + + //noinspection ConstantConditions + if (!(boolean) Utils.getPrivateField(EntityLivingBase.class, player, Utils.getFieldsForType(EntityLivingBase.class, boolean.class)[2])) { + if (new Date().getTime() - lastJump > 500) { + player.motionY = 0; + player.onGround = true; + } + } + else { + lastJump = new Date().getTime(); + } + Vec3d vec = player.getPositionVector(); + BlockPos pos; + + if(tower && player.movementInput.jump && player.motionX == 0 && player.motionZ == 0) { + lastJump = new Date().getTime(); + player.motionY = 0.42F; + player.onGround = false; + pos = BlockUtils.getRealPos(vec.add(0,-0.2,0)).down(); + } + else + pos = BlockUtils.getRealPos(vec).down(); + + if(world.getBlockState(pos).getBlock().isReplaceable(world, pos)) { + + if(player.getHeldItemMainhand().getCount() < 5 && player.getHeldItemMainhand().getCount() != 0) { + Integer slot = InventoryUtils.getSlotWithItem( + player.inventoryContainer, + player.getHeldItemMainhand().getItem(), + new int[]{InventoryUtils.OFFHAND_SLOT}, + 5, + 64 + ); + if(slot != null && !swapLock.isLocked()) { + swapLock.lock(1500); + swapThread.run(() -> { + InventoryUtils.inventorySwap(slot, player.inventory.currentItem + 36, AutoTotem.getInstance().sdelay, AutoTotem.getInstance().pdelay, AutoTotem.getInstance().cdelay); + if(EventHandler.ping[0] > 0) + swapLock.lock((int) EventHandler.ping[0]); + }); + } + } + else if(player.getHeldItemMainhand().getCount() == 0) + toggle(); + + if(player.movementInput.jump) { + if(player.posY >= 0.4 || (Math.abs(Math.abs(player.posY) - Math.abs((long) player.posY)) < 0.05) || (Math.abs(Math.abs(player.posY) - Math.abs((long) player.posY)) > 0.25)) { + return; + } + } + + if(BlockUtils.placeBlock(pos, EnumHand.MAIN_HAND, true, false)) { + if (player.onGround || tower) + player.motionY = 0; + last = pos; + } + else { + int dx = pos.getX() - last.getX(); + int dy = pos.getY() - last.getY(); + int dz = pos.getZ() - last.getZ(); + boolean b = false; + for (int x = 1 ; x <= Math.abs(dx); x++) { + int n = dx < 0 ? -1 : 1; + if(!BlockUtils.placeBlock(last.add(n * x, 0, 0), EnumHand.MAIN_HAND, true, false)) + b = true; + } + for (int y = 1 ; y <= Math.abs(dy); y++) { + int n = dy < 0 ? -1 : 1; + if(!BlockUtils.placeBlock(last.add(dx, n * y, 0), EnumHand.MAIN_HAND, true, false)) + b = true; + } + for (int z = 1 ; z <= Math.abs(dz); z++) { + int n = dz < 0 ? -1 : 1; + if(!BlockUtils.placeBlock(last.add(dx, dy, n * z), EnumHand.MAIN_HAND, true, false)) + b = true; + } + if(!b) { + last = pos; + } + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Takeoff.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Takeoff.java new file mode 100644 index 0000000..1ed3e29 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Takeoff.java @@ -0,0 +1,49 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.FlightBot; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Atomic; + +@Movement +public class Takeoff extends Module { + + boolean isTakingOff = false; + + @Override + public boolean displayOnClickGUI() { + return false; + } + + @Override + public void onEnable() { + ChatUtils.print("Starting elytra..."); + isTakingOff = true; + FlightBot.activate(new Atomic<>(TTCp.mc.player.getPositionVector().add(0, 4, 0))); + ChatUtils.print("Bot started."); + } + + @Override + public void onDisable() { + isTakingOff = false; + enabled = false; + FlightBot.deactivate(); + } + + @Override + public void onTick() { + if(!FlightBot.isFlying() && isTakingOff && TTCp.player.isElytraFlying()) { + FlightBot.deactivate(); + isTakingOff = false; + enabled = false; + onDisable(); + ChatUtils.print("Elytra started."); + } + } + + @Override + public void onChat(String s, String[] args) { + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Velocity.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Velocity.java new file mode 100644 index 0000000..c8d3409 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/Velocity.java @@ -0,0 +1,39 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.SPacketEntityVelocity; +import net.minecraftforge.event.entity.living.LivingKnockBackEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Movement; + +@Movement +public class Velocity extends Module { + + //boolean gotKB = false; + + @SubscribeEvent + public void onKB(LivingKnockBackEvent event) { + if(enabled && event.getEntity() == player) + event.setCanceled(true); + } + + @Override + public boolean onPacket(Packet packet) { + return packet instanceof SPacketEntityVelocity; + } + + @Override + public void onEnable() { + } + + @Override + public void onSubTick() { + } + + @Override + public void onChat(String s, String[] args) { + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ViewAnchor.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ViewAnchor.java new file mode 100644 index 0000000..ff74151 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/movement/ViewAnchor.java @@ -0,0 +1,61 @@ +package de.tudbut.mod.client.ttcp.mods.movement; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.network.Packet; +import net.minecraft.network.play.client.CPacketConfirmTeleport; +import net.minecraft.network.play.server.SPacketPlayerPosLook; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Movement; +import de.tudbut.obj.Save; + +@Movement +public class ViewAnchor extends Module { + + @Save + boolean x,y; + @Save + boolean voidEnable = true; + float px, py; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("X", this, "x")); + subComponents.add(Setting.createBoolean("Y", this, "y")); + subComponents.add(Setting.createBoolean("Enable in void", this, "voidEnable")); + } + + @Override + public void onEveryTick() { + if(player.posY < 0 && voidEnable && !enabled) { + enabled = true; + green = true; + onEnable(); + } + } + + @Override + public void onEnable() { + EntityPlayerSP player = TTCp.player; + if(player != null) { + px = player.rotationYaw; + py = player.rotationPitch; + } + } + + @Override + public void onSubTick() { + EntityPlayerSP player = TTCp.player; + + if(x) { + player.rotationYaw = px; + } + if(y) { + player.rotationPitch = py; + } + + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Bright.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Bright.java new file mode 100644 index 0000000..01a3133 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Bright.java @@ -0,0 +1,32 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.init.MobEffects; +import net.minecraft.potion.PotionEffect; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; + +@Render +public class Bright extends Module +{ + @Override + public void onChat(String s, String[] args) { + + } + + public void onEveryTick() { + if (enabled) { + PotionEffect p; + TTCp.player.addPotionEffect(p = new PotionEffect( + MobEffects.NIGHT_VISION, + 1000, + 127, + true, + false + )); + p.setPotionDurationMax(true); + } else + TTCp.player.removeActivePotionEffect(MobEffects.NIGHT_VISION); + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/ClickGUI.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/ClickGUI.java new file mode 100644 index 0000000..c219f61 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/ClickGUI.java @@ -0,0 +1,169 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.client.Minecraft; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiRewrite; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.*; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; + +import java.io.IOException; + +@Render +public class ClickGUI extends Module { + + static ClickGUI instance; + // TMP fix for mouse not showing + @Save + public boolean mouseFix = false; + + @Save + public boolean flipButtons = false; + + @Save + public int themeID = 0; + + public GuiTTC.ITheme customTheme = null; + + public GuiTTC.ITheme getTheme() { + if(customTheme != null) + return customTheme; + return GuiTTC.Theme.values()[themeID]; + } + + private int confirmInstance = 0; + + public ClickGUI() { + instance = this; + clickGuiShow = true; + if(TTCp.guiNotLoadedYet) { + KillSwitch.type = "detected that it has been tampered with"; + ThreadManager.run(KillSwitch::deactivate); + try { + Thread.sleep(10000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + TTCp.verify(); + } + } + + public static ClickGUI getInstance() { + return instance; + } + + @Save + public ScrollDirection sd = ScrollDirection.Vertical; + + public enum ScrollDirection { + Vertical, + Horizontal + } + + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Flip buttons: " + flipButtons, it -> { + flipButtons = !flipButtons; + it.text = "Flip buttons: " + flipButtons; + })); + subComponents.add(new Button("Theme: " + getTheme(), it -> { + if(customTheme == null) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + themeID--; + else + themeID++; + + if (themeID < 0) + themeID = GuiTTC.Theme.values().length - 1; + if (themeID > GuiTTC.Theme.values().length - 1) + themeID = 0; + + it.text = "Theme: " + getTheme(); + } + })); + subComponents.add(Setting.createEnum(ScrollDirection.class, "Scroll", this, "sd")); + subComponents.add(new Button("Reset layout", it -> { + displayConfirmation = true; + confirmInstance = 0; + })); + subComponents.add(new Button("Mouse fix: " + mouseFix, it -> { + mouseFix = !mouseFix; + it.text = "Mouse fix: " + mouseFix; + })); + subComponents.add(new Button("Reset client", it -> { + displayConfirmation = true; + confirmInstance = 1; + })); + } + + @Override + public void onEnable() { + // Show the GUI + try { + ChatUtils.print("Showing ClickGUI"); + TTCp.mc.displayGuiScreen(new GuiRewrite()); + } catch (Exception e) { + e.printStackTrace(); + enabled = false; + } + } + + @Override + public void onConfirm(boolean result) { + if (result) + switch (confirmInstance) { + case 0: + // Reset ClickGUI by closing it, resetting its values, and opening it + enabled = false; + onDisable(); + TTCp.categories = new TLMap<>(); + enabled = true; + onEnable(); + break; + case 1: + displayConfirmation = true; + confirmInstance = 2; + break; + case 2: + enabled = false; + onDisable(); + + // Saving file + try { + TTCp.file.setContent(""); + TTCp.file = null; + } + catch (IOException e) { + e.printStackTrace(); + } + Minecraft.getMinecraft().shutdown(); + break; + } + } + + @Override + public void onDisable() { + // Kill the GUI + if (TTCp.mc.currentScreen != null && TTCp.mc.currentScreen.getClass() == GuiRewrite.class) + TTCp.mc.displayGuiScreen(null); + } + + @Override + public void onEveryTick() { + if(key.key == null) { + key.key = Keyboard.KEY_COMMA; + updateBindsFull(); + } + } + + @Override + public void onChat(String s, String[] args) { + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/CustomTheme.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/CustomTheme.java new file mode 100644 index 0000000..60529e7 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/CustomTheme.java @@ -0,0 +1,291 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import de.tudbut.tools.Mouse; +import de.tudbut.tools.Tools; +import de.tudbut.ui.windowgui.RenderableWindow; +import net.minecraft.client.gui.GuiScreen; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.gui.lib.component.ToggleButton; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; +import de.tudbut.obj.Save; +import de.tudbut.obj.Vector2i; +import de.tudbut.rendering.Maths2D; + +import java.awt.*; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; +import java.awt.image.BufferedImage; +import java.util.HashMap; +import java.util.Map; + +@Render +public class CustomTheme extends Module implements GuiTTC.ITheme { + + RenderableWindow window = new RenderableWindow(256 * 2, 256 * 2, "Color picker", 20, false); + { + new Thread(() -> { + window.getWindow().setResizable(false); + window.getWindow().setSize(256 * 2, 256 * 2); + try { + Thread.sleep(3000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + window.getWindow().setSize(256 * 2, 256 * 2); + window.getWindow().setVisible(false); + window.getWindow().addWindowListener(new WindowListener() { + @Override + public void windowOpened(WindowEvent windowEvent) { + + } + + @SuppressWarnings("UnusedAssignment") // No, its not + @Override + public void windowClosing(WindowEvent windowEvent) { + CustomTheme.this.show = false; + CustomTheme.this.selectedColor = null; + updateBinds(); + } + + @Override + public void windowClosed(WindowEvent windowEvent) { + + } + + @Override + public void windowIconified(WindowEvent windowEvent) { + + } + + @Override + public void windowDeiconified(WindowEvent windowEvent) { + + } + + @Override + public void windowActivated(WindowEvent windowEvent) { + + } + + @Override + public void windowDeactivated(WindowEvent windowEvent) { + + } + }); + }).start(); + } + BufferedImage image0 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image0.setRGB(x, y, new Color(x, y, Math.max((x + y) - 256, 0)).getRGB()); + } + } + } + BufferedImage image1 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image1.setRGB(x, y, new Color(x, Math.max((x+y) - 256, 0), y).getRGB()); + } + } + } + BufferedImage image2 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image2.setRGB(x, y, new Color(Math.max((x+y) - 256, 0), x, y).getRGB()); + } + } + } + BufferedImage image3 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image3.setRGB(x, y, new Color(Math.max((x+y) - 256, 0), Math.min(0xff, x + 0x80), Math.min(0xff, y + 0x80)).getRGB()); + } + } + } + BufferedImage image4 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image4.setRGB(x, y, new Color(Math.min(0xff, x + 0x80), Math.max((x + y) - 256, 0), Math.min(0xff, y + 0x80)).getRGB()); + } + } + } + BufferedImage image5 = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + { + for (int x = 0; x < 256; x++) { + for (int y = 0; y < 256; y++) { + image5.setRGB(x, y, new Color(Math.min(0xff, x + 0x80), Math.min(0xff, y + 0x80), Math.max((x+y) - 256, 0)).getRGB()); + } + } + } + + BufferedImage[] images; + + { + Vector2i size = window.getSizeOnScreen(); + images = new BufferedImage[] { + Maths2D.distortImage(image0, 512, 512, 1), + Maths2D.distortImage(image1, 512, 512, 1), + Maths2D.distortImage(image2, 512, 512, 1), + Maths2D.distortImage(image3, 512, 512, 1), + Maths2D.distortImage(image4, 512, 512, 1), + Maths2D.distortImage(image5, 512, 512, 1), + }; + } + + int imageID = 0; + BufferedImage image = images[0]; + + boolean show = false; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Copy theme to clipboard", it -> { + GuiScreen.setClipboardString(themeString()); + })); + subComponents.add(new Button("Use theme from clipboard", it -> { + themeFromString(GuiScreen.getClipboardString()); + })); + subComponents.add(new Button(show ? "Hide dialog" : "Show dialog", it -> { + show = !show; + window.getWindow().setVisible(show); + if(!show) { + selectedColor = null; + updateBinds(); + } + it.text = show ? "Hide dialog" : "Show dialog"; + })); + //subComponents.add(new ToggleButton("FontShadow", this, "shadow")); + if(selectedColor != null) { + subComponents.add(new Button("Use selection as enabled color", it -> { + greenColor = selectedColor; + })); + subComponents.add(new Button("Use selection as disabled color", it -> { + redColor = selectedColor; + })); + subComponents.add(new Button("Use selection as frame color", it -> { + frameColor = selectedColor; + })); + subComponents.add(new Button("Use selection as background color", it -> { + backgroundColor = selectedColor; + })); + } + } + + public Integer selectedColor = null; + + @Save + public int frameColor = 0xffffffff; + + @Save + public int greenColor = 0x8000ff00; + + @Save + public int redColor = 0x4000ff00; + + @Save + public int backgroundColor = 0xA0000000; + + @Save + public boolean shadow = false; + + private String themeString() { + Map map = new HashMap<>(); + + map.put("a", String.valueOf(greenColor)); + map.put("b", String.valueOf(redColor)); + map.put("c", String.valueOf(frameColor)); + map.put("d", String.valueOf(backgroundColor)); + map.put("e", String.valueOf(shadow)); + + return Tools.mapToString(map); + } + + private void themeFromString(String s) { + Map map = Tools.stringToMap(s); + try { + greenColor = Integer.parseInt(map.get("a")); + redColor = Integer.parseInt(map.get("b")); + frameColor = Integer.parseInt(map.get("c")); + backgroundColor = Integer.parseInt(map.get("d")); + shadow = Boolean.parseBoolean(map.get("e")); + } catch (Exception ignored) { } + } + + private boolean mouseWasDown = false; + + @Override + public void onEnable() { + ClickGUI.getInstance().customTheme = this; + ClickGUI.getInstance().updateBinds(); + } + + @Override + public void onDisable() { + ClickGUI.getInstance().customTheme = null; + ClickGUI.getInstance().updateBinds(); + } + + @Override + public void onEveryTick() { + if(show) { + window.getWindow().setAutoRequestFocus(true); + window.getWindow().setAlwaysOnTop(true); + window.render((adaptedGraphics, graphics, bufferedImage) -> { + adaptedGraphics.drawImage(0,0, image); + if (Mouse.isKeyDown(3)) { + if (!mouseWasDown) { + mouseWasDown = true; + imageID++; + if (imageID >= images.length) { + imageID = 0; + } + + image = images[imageID]; + } + } + else { + mouseWasDown = false; + } + if (Mouse.isKeyDown(1)) { + updateBinds(); + try { + Vector2i loc = window.getMousePos(); + selectedColor = image.getRGB(loc.getX(), loc.getY()); + } catch(IndexOutOfBoundsException ignore) { } + } + }); + window.prepareRender(); + window.doRender(); + window.swapBuffers(); + } + } + + @Override + public int getGreenColor() { + return greenColor; + } + + @Override + public int getRedColor() { + return redColor; + } + + @Override + public int getFrameColor() { + return frameColor; + } + + @Override + public int getBackgroundColor() { + return backgroundColor; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Freecam.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Freecam.java new file mode 100644 index 0000000..8b11dc6 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Freecam.java @@ -0,0 +1,145 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.GameType; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.ModuleEventRegistry; +import de.tudbut.mod.client.ttcp.utils.FreecamPlayer; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; + +import java.util.Objects; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; + +@Render +public class Freecam extends Module { + + public static Freecam getInstance() { + return TTCp.getModule(Freecam.class); + } + + GameType type; + + @Override + public boolean displayOnClickGUI() { + return true; + } + + @Override + public boolean doStoreEnabled() { + return false; + } + + public void onEnable() { + if(TTCp.isIngame() && !LSD.getInstance().enabled && TTCp.mc.getRenderViewEntity() == TTCp.player) { + EntityPlayer player = new FreecamPlayer(TTCp.player, TTCp.world); + TTCp.world.spawnEntity(player); + type = TTCp.mc.playerController.getCurrentGameType(); + //TTCp.mc.playerController.setGameType(GameType.SPECTATOR); + //TTCp.mc.skipRenderWorld = true; + TTCp.mc.setRenderViewEntity(player); + } + else + enabled = false; + } + + @Override + public int danger() { + return 1; + } + + @Override + public void onDisable() { + if(TTCp.isIngame()) { + TTCp.world.removeEntity(Objects.requireNonNull(TTCp.mc.getRenderViewEntity())); + //TTCp.mc.playerController.setGameType(type); + TTCp.mc.setRenderViewEntity(TTCp.mc.player); + } + TTCp.mc.gameSettings.thirdPersonView = 0; + TTCp.mc.renderChunksMany = true; + } + + @Override + public void onChat(String s, String[] args) { + + } + + @SubscribeEvent + public void onRender(RenderWorldLastEvent event) { + + if(TTCp.isIngame() && enabled) { + Entity main = TTCp.player; + Entity e = TTCp.mc.getRenderViewEntity(); + assert e != null; + Vec3d p = e.getPositionEyes(event.getPartialTicks()).add(0, -e.getEyeHeight(), 0); + Vec3d pos = main.getPositionVector(); + float entityHalfed = main.width / 2 + 0.01f; + float entityHeight = main.height + 0.01f; + + ready(); + translate(-p.x, -p.y, -p.z); + color(0x80ff0000); + depth(false); + begin(GL11.GL_QUADS); + + // bottom + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // top + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + + next(); + + // z - + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // z + + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + + next(); + + // x - + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // y + + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + end(); + } + } + + @Override + public void init() { + ModuleEventRegistry.disableOnNewPlayer.add(this); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/HUD.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/HUD.java new file mode 100644 index 0000000..f9425ea --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/HUD.java @@ -0,0 +1,49 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import de.tudbut.mod.client.ttcp.gui.GuiTTCIngame; +import de.tudbut.mod.client.ttcp.mods.combat.AutoTotem; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Render; +import de.tudbut.obj.Save; + +@Render +public class HUD extends Module { + + static HUD instance; + + @Save + public boolean showPopPredict = false; + + public HUD() { + instance = this; + } + + public static HUD getInstance() { + return instance; + } + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(Setting.createBoolean("Show PopPredict", this, "showPopPredict")); + } + + public void renderHUD() { + if(enabled) { + GuiTTCIngame.draw(); + renderTotems(); + } + } + + @Override + public void onChat(String s, String[] args) { + + } + + public void renderTotems() { + if(enabled) { + AutoTotem.instance.renderTotems(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/LSD.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/LSD.java new file mode 100644 index 0000000..e993920 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/LSD.java @@ -0,0 +1,104 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.entity.player.EntityPlayer; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.ModuleEventRegistry; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.utils.LSDRenderer; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; + +import java.lang.reflect.Field; +import java.util.Objects; + +@Render +public class LSD extends Module { + public static LSD getInstance() { + return TTCp.getModule(LSD.class); + } + + int mode = 0x00; + + { + try { + subButtons.add(new GuiTTC.Button("Mode: " + getMode(mode), text -> { + mode++; + if(mode > 0x0a) + mode = 0x00; + try { + text.set("Mode: " + getMode(mode)); + } + catch (IllegalAccessException e) { + e.printStackTrace(); + } + })); + } + catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + private String getMode(int mode) throws IllegalAccessException { + Class clazz = LSDRenderer.class; + Field[] fields = clazz.getDeclaredFields(); + + for (int i = 0; i < fields.length; i++) { + if(fields[i].getInt(null) == mode && !fields[i].getName().equals("mode")) { + return fields[i].getName(); + } + } + + return null; + } + + @Override + public boolean displayOnClickGUI() { + return true; + } + + @Override + public void onChat(String s, String[] args) { + + } + + @Override + public boolean doStoreEnabled() { + return false; + } + + @Override + public void onTick() { + LSDRenderer.mode = mode; + } + + public void onEnable() { + if(TTCp.isIngame() && !Freecam.getInstance().enabled) { + EntityPlayer player = new LSDRenderer(TTCp.player, TTCp.world); + TTCp.world.spawnEntity(player); + TTCp.mc.renderChunksMany = true; + //TTCp.mc.skipRenderWorld = true; + TTCp.mc.setRenderViewEntity(player); + } + else + enabled = false; + } + + @Override + public int danger() { + return 1; + } + + @Override + public void onDisable() { + if(TTCp.isIngame()) { + TTCp.world.removeEntity(Objects.requireNonNull(TTCp.mc.getRenderViewEntity())); + TTCp.mc.setRenderViewEntity(TTCp.mc.player); + TTCp.mc.renderChunksMany = true; + } + } + + @Override + public void init() { + ModuleEventRegistry.disableOnNewPlayer.add(this); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/NewChunks.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/NewChunks.java new file mode 100644 index 0000000..1a1a167 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/NewChunks.java @@ -0,0 +1,84 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import de.tudbut.type.Vector3d; +import net.minecraft.entity.Entity; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.chunk.Chunk; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.event.world.ChunkEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Utils; +import de.tudbut.mod.client.ttcp.utils.category.Render; + +import java.util.ArrayList; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; + +@Render +public class NewChunks extends Module { + + ArrayList chunks = new ArrayList<>(); + + @SubscribeEvent + public void onChunkData(ChunkEvent.Load event) { + if(TTCp.isIngame() && Utils.isCallingFrom(Chunk.class)) { + chunks.add(event.getChunk().getPos()); + } + } + + @SubscribeEvent + public void onRenderWorld(Event event) { + + if(event instanceof RenderWorldLastEvent) + if(this.enabled && TTCp.isIngame()) { + Entity e = TTCp.mc.getRenderViewEntity(); + assert e != null; + pos = e.getPositionEyes(((RenderWorldLastEvent) event).getPartialTicks()).add(0, -e.getEyeHeight(), 0); + + for (int i = 0; i < chunks.size(); i++) { + drawAroundChunk(new Vector3d(chunks.get(i).x * 16 + 8, 64, chunks.get(i).z * 16 + 8), 0x80ff0000); + } + } + } + + Vec3d pos = new Vec3d(0, 0, 0); + + public void drawAroundChunk(Vector3d pos, int color) { + try { + + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + color(color); + depth(false); + begin(GL11.GL_LINES); + + + // bottom + put(pos.getX() - 8, pos.getY() - 0.01, pos.getZ() + 8); + put(pos.getX() + 8, pos.getY() - 0.01, pos.getZ() + 8); + + put(pos.getX() + 8, pos.getY() - 0.01, pos.getZ() + 8); + put(pos.getX() + 8, pos.getY() - 0.01, pos.getZ() - 8); + + put(pos.getX() + 8, pos.getY() - 0.01, pos.getZ() - 8); + put(pos.getX() - 8, pos.getY() - 0.01, pos.getZ() - 8); + + put(pos.getX() - 8, pos.getY() - 0.01, pos.getZ() - 8); + put(pos.getX() - 8, pos.getY() - 0.01, pos.getZ() + 8); + + end(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onTick() { + + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Notifications.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Notifications.java new file mode 100644 index 0000000..5d5b3d6 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/Notifications.java @@ -0,0 +1,49 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Render; + +import java.util.ArrayList; +import java.util.Date; + +@Render +public class Notifications extends Module { + public static class Notification { + public String text; + private final int time; + private final long start = new Date().getTime(); + + public Notification(String text) { + this(text, 5000); + } + + public Notification(String text, int ms) { + this.text = text; + this.time = ms; + } + + } + + // Placeholder module with a few vars, usage in GuiTTCIngame + + private static final ArrayList notifications = new ArrayList<>(); + + @Override + public void onTick() { + for (int i = 0; i < notifications.size(); i++) { + if(new Date().getTime() - notifications.get(i).start >= notifications.get(i).time) { + notifications.remove(i); + i--; + } + } + } + + public static ArrayList getNotifications() { + //noinspection unchecked yes this works ffs! + return (ArrayList) notifications.clone(); + } + + public static void add(Notification notification) { + notifications.add(0, notification); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerLog.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerLog.java new file mode 100644 index 0000000..6787f7e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerLog.java @@ -0,0 +1,218 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.Vec3d; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Render; +import de.tudbut.obj.Save; + +import java.util.ArrayList; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.*; + +@Render +public class PlayerLog extends Module { + NetworkPlayerInfo[] playersLastTick; + EntityPlayer[] visiblePlayersLastTick; + ArrayList logouts = new ArrayList<>(); + @Save + public boolean spots = true; + @Save + public boolean messages = false; + + @Override + public void updateBinds() { + subComponents.clear(); + subComponents.add(new Button("Reset logout spots", it -> { + logouts.clear(); + })); + subComponents.add(Setting.createBoolean("LogOutSpots", this, "spots")); + subComponents.add(Setting.createBoolean("Messages", this, "messages")); + } + + @Override + public boolean defaultEnabled() { + return true; + } + + @Override + public void onSubTick() { + // Is online? + if (TTCp.mc.getConnection() == null) + return; + + if (playersLastTick == null) { + playersLastTick = TTCp.mc.getConnection().getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + } + EntityPlayer[] visiblePlayersThisTick = TTCp.mc.world.playerEntities.toArray(new EntityPlayer[0]); + NetworkPlayerInfo[] playersThisTick = TTCp.mc.getConnection().getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + + try { + // Did a player leave? + if (playersThisTick.length < playersLastTick.length) { + // What player left? + for (int i = 0; i < playersLastTick.length; i++) { + try { + boolean b = true; + String name = playersLastTick[i].getGameProfile().getName(); + for (int j = 0; j < playersThisTick.length; j++) { + if (playersThisTick[j].getGameProfile().getName().equals(name)) + b = false; + } + if (b) { + // This player left, its data is still in the data from last tick + if(messages) + ChatUtils.print(name + " left!"); + for (int j = 0; j < visiblePlayersLastTick.length; j++) { + if (visiblePlayersLastTick[j].getGameProfile().getName().equals(name)) { + Vec3d vec = visiblePlayersLastTick[j].getPositionVector(); + if(messages) { + ChatUtils.print( + "§c§l§c§lThe player §r" + + visiblePlayersLastTick[j].getName() + + "§c§l left at " + + // Round to two decimal places + Math.round(vec.x * 100d) / 100d + " " + + Math.round(vec.y * 100d) / 100d + " " + + Math.round(vec.z * 100d) / 100d + " " + + "!" + ); + } + if(spots) + logouts.add(visiblePlayersLastTick[j].getEntityBoundingBox().offset(0,0,0)); + } + } + } + } + catch (Exception e) { + e.printStackTrace(); + } + } + } + + // Did a player join? + if (playersThisTick.length > playersLastTick.length) { + // What player joined? + for (int i = 0; i < playersThisTick.length; i++) { + try { + boolean b = true; + String name = playersThisTick[i].getGameProfile().getName(); + for (int j = 0; j < playersLastTick.length; j++) { + if (playersLastTick[j].getGameProfile().getName().equals(name)) + b = false; + } + if (b) { + // This player joined + if(messages) + ChatUtils.print(name + " joined!"); + } + } + catch (Exception ignore) { } + } + } + } + catch (Exception ignore) { } + + // Refresh + playersLastTick = playersThisTick; + visiblePlayersLastTick = visiblePlayersThisTick; + } + + @Override + public void onChat(String s, String[] args) { + + } + + Vec3d pos = new Vec3d(0,0,0); + + @SubscribeEvent + public void onRenderWorld(Event event) { + + if(event instanceof RenderWorldLastEvent) + if(this.enabled && TTCp.isIngame()) { + Entity e = TTCp.mc.getRenderViewEntity(); + assert e != null; + pos = e.getPositionEyes(((RenderWorldLastEvent) event).getPartialTicks()).add(0, -e.getEyeHeight(), 0); + + for (int i = 0; i < logouts.size(); i++) { + drawAroundBox(logouts.get(i), 0x8000ff00); + } + } + } + + public void drawAroundBox(AxisAlignedBB box, int color) { + try { + + ready(); + translate(-this.pos.x, -this.pos.y, -this.pos.z); + color(color); + depth(false); + begin(GL11.GL_QUADS); + + double entityHalfed = (box.maxX - box.minX) / 2; + double entityHeight = (box.maxY - box.minY); + Vec3d pos = new Vec3d(box.maxX - entityHalfed, box.minY, box.maxZ - entityHalfed); + + // bottom + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // top + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + + next(); + + // z - + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // z + + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + + next(); + + // x - + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x - entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x - entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + next(); + + // y + + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z - entityHalfed); + put(pos.x + entityHalfed, pos.y + entityHeight, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z + entityHalfed); + put(pos.x + entityHalfed, pos.y - 0.01, pos.z - entityHalfed); + + end(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerSelector.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerSelector.java new file mode 100644 index 0000000..b934828 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/PlayerSelector.java @@ -0,0 +1,221 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.scoreboard.ScorePlayerTeam; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.category.Misc; +import de.tudbut.tools.ArrayTools; + +import java.util.ArrayList; +import java.util.Objects; + +@Misc +public class PlayerSelector extends Module { + static Minecraft mc = Minecraft.getMinecraft(); + + static int selected = 0; + static boolean downDown = false; + static boolean upDown = false; + static boolean rightDown = false; + static boolean leftDown = false; + static boolean enterDown = false; + static int selectedType = -1; + public static boolean displayInRangeOnly = true; + static NetworkPlayerInfo[] playersLastTick = new NetworkPlayerInfo[0]; + + public static ArrayList types = new ArrayList<>(); + + @Override + public void onConfigLoad() { + types.clear(); + } + + public static class Type { + + public final Callback callback; + public final String displayName; + + public Type(Callback callback, String displayName) { + this.callback = callback; + this.displayName = displayName; + } + } + + public interface Callback { + void run(NetworkPlayerInfo player); + } + + public static void render() { + ScaledResolution resolution = new ScaledResolution(mc); + + NetworkPlayerInfo[] players; + + if(displayInRangeOnly) { + try { + players = ArrayTools.getFromArray(mc.world.playerEntities.toArray(new EntityPlayer[0]), player -> mc.player.connection.getPlayerInfo(player.getUniqueID())); + } + catch (Throwable ignored) { + players = new NetworkPlayerInfo[0]; + } + } + else { + players = mc.player.connection.getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + } + + int x = resolution.getScaledWidth() / 6; + int y = (int) (resolution.getScaledHeight() / 2.5 - Math.min(players.length * 10, 10) / 2); + + for (int i = 0; i < players.length; i++) { + NetworkPlayerInfo player = players[i]; + if(player != null) { + boolean b = false; + for (int j = 0 ; j < playersLastTick.length ; j++) { + if(playersLastTick[j] != null) + if (playersLastTick[j].getGameProfile().getId().equals(player.getGameProfile().getId())) { + b = true; + break; + } + } + if (!b) { + if (selected >= i) { + selected++; + } + } + } + } + for (int i = 0; i < playersLastTick.length; i++) { + NetworkPlayerInfo player = playersLastTick[i]; + if(player != null) { + boolean b = false; + for (int j = 0 ; j < players.length ; j++) { + if(players[j] != null) + if (players[j].getGameProfile().getId().equals(player.getGameProfile().getId())) { + b = true; + break; + } + } + if (!b) { + if (selected == i) + selectedType = -1; + if (selected > i) { + selected--; + } + } + } + } + + + Type[] types = PlayerSelector.types.toArray(new Type[0]); + + + if (mc.currentScreen != null) + selectedType = -1; + + if (selected >= players.length) + selected = players.length - 1; + if (selected < 0) + selected = 0; + if (selectedType >= types.length) + selectedType = types.length - 1; + + if (selectedType == -1) { + for (int i = Math.max(0, selected - 5); i < Math.min(selected + 5, players.length); i++) { + if(players[i] != null) { + mc.fontRenderer.drawString( + ( + ( selected == i ? "§m| §f " : "| §f " ) + + ( + players[i].getDisplayName() != null ? + Objects.requireNonNull(players[i].getDisplayName()).getUnformattedText() : + ScorePlayerTeam.formatPlayerName( + players[i].getPlayerTeam(), + players[i].getGameProfile().getName() + ) + ) + + ( selected == i ? "§r§c > " : "" ) + ), + x, y, selected == i ? 0xff0000 : 0x00ff00 + ); + y += 10; + } + } + } + else { + for (int i = 0 ; i < types.length; i++) { + mc.fontRenderer.drawString( + ( + (selectedType == i ? "< §m| §f " : "< | §f ") + + types[i].displayName + ), + x, y, selectedType == i ? 0xff0000 : 0x00ff00 + ); + y += 10; + } + + if (Keyboard.isKeyDown(Keyboard.KEY_RETURN) && mc.currentScreen == null) { + if (!enterDown) { + types[selectedType].callback.run(players[selected]); + selectedType = -1; + } + enterDown = true; + } + else { + enterDown = false; + } + } + + if (Keyboard.isKeyDown(Keyboard.KEY_UP) && mc.currentScreen == null) { + if (!upDown) + if (selectedType == -1) + selected--; + else if (selectedType != 0) + selectedType--; + upDown = true; + } + else + upDown = false; + + if (Keyboard.isKeyDown(Keyboard.KEY_DOWN) && mc.currentScreen == null) { + if (!downDown) + if (selectedType == -1) + selected++; + else + selectedType++; + downDown = true; + } + else + downDown = false; + + + if (selected >= players.length) + selected = players.length - 1; + if (selected < 0) + selected = 0; + if (selectedType >= types.length) + selectedType = types.length - 1; + + if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT) && mc.currentScreen == null) { + if (!rightDown) + selectedType = 0; + rightDown = true; + } + else { + rightDown = false; + } + + if (Keyboard.isKeyDown(Keyboard.KEY_LEFT) && mc.currentScreen == null) { + if (!leftDown) + selectedType = -1; + leftDown = true; + } + else { + leftDown = false; + } + + playersLastTick = players; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/StorageESP.java b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/StorageESP.java new file mode 100644 index 0000000..fe0cf60 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/mods/rendering/StorageESP.java @@ -0,0 +1,92 @@ +package de.tudbut.mod.client.ttcp.mods.rendering; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecartContainer; +import net.minecraft.tileentity.*; +import net.minecraft.util.math.Vec3d; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.lib.component.Button; +import de.tudbut.mod.client.ttcp.utils.Module; +import de.tudbut.mod.client.ttcp.utils.Setting; +import de.tudbut.mod.client.ttcp.utils.category.Render; +import de.tudbut.obj.Save; + +import static de.tudbut.mod.client.ttcp.utils.Tesselator.drawAroundBlock; + + +@Render +public class StorageESP extends Module { + @Save + public boolean + chest = true, + shulkerBox = true, + enderChest = true, + furnace = true, + dispenserAndDropper = true, + storageMinecart = true, + hopper = true; + + { + if(TTCp.buildNumber != 0 && TTCp.buildNumber != 3489) + TTCp.buildNumber = 0; + else + TTCp.buildNumber = 1; + } + + Vec3d drawPos = new Vec3d(0,0,0); + + public void updateBinds() { + subComponents.clear(); + boolean b = enabled; + enabled = true; + subComponents.add(Setting.createBoolean("Chest", this, "chest")); + subComponents.add(Setting.createBoolean("Shulker Box", this, "shulkerBox")); + subComponents.add(Setting.createBoolean("Ender Chest", this, "enderChest")); + subComponents.add(Setting.createBoolean("Storage Minecarts", this, "storageMinecart")); + subComponents.add(Setting.createBoolean("Hopper", this, "hopper")); + subComponents.add(Setting.createBoolean("Droppers", this, "dispenserAndDropper")); + subComponents.add(Setting.createBoolean("Furnace", this, "furnace")); + + enabled = b; + } + + @SubscribeEvent + public void onRenderWorld(RenderWorldLastEvent event) { + if(enabled) { + Entity e = TTCp.mc.getRenderViewEntity(); + drawPos = e.getPositionEyes(event.getPartialTicks()).add(0, -e.getEyeHeight(), 0); + for (TileEntity tileEntity : + TTCp.mc.world.loadedTileEntityList) { + if (isESP(tileEntity)) { + drawAroundBlock(tileEntity.getPos(), 0x80ff0000, drawPos); + } + for (Entity entity : + TTCp.world.loadedEntityList) { + if (entity instanceof EntityMinecartContainer && storageMinecart) { + drawAroundBlock(entity.getPosition(), 0x80ff0000, drawPos); + } + } + } + } + } + + public boolean isESP(TileEntity e) { + return e instanceof TileEntityChest && chest + || e instanceof TileEntityEnderChest && enderChest + || e instanceof TileEntityShulkerBox && shulkerBox + || e instanceof TileEntityFurnace && furnace + || e instanceof TileEntityDropper && dispenserAndDropper || e instanceof TileEntityDispenser && dispenserAndDropper + || e instanceof TileEntityHopper && hopper; + } + + + + + @Override + public void onTick() { + + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/pluginapi/PluginForgeEvent.java b/src/main/java/de/tudbut/mod/client/ttcp/pluginapi/PluginForgeEvent.java new file mode 100644 index 0000000..c03f047 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/pluginapi/PluginForgeEvent.java @@ -0,0 +1,13 @@ +package de.tudbut.mod.client.ttcp.pluginapi; + +import de.tudbut.pluginapi.PluginEvent; +import net.minecraftforge.fml.common.eventhandler.Event; + +public class PluginForgeEvent extends PluginEvent { + + public final T forgeEvent; + + public PluginForgeEvent(T forgeEvent) { + this.forgeEvent = forgeEvent; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Account.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Account.java new file mode 100644 index 0000000..e28b83d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Account.java @@ -0,0 +1,26 @@ +package de.tudbut.mod.client.ttcp.ttcic; + +import java.util.Optional; +import java.util.OptionalInt; +import java.util.UUID; + +import net.minecraft.util.math.Vec3d; + +public class Account { + public OptionalInt id; + public UUID uuid; + public String name; + + public Optional location = Optional.ofNullable(null); + + public Account(Integer id, UUID uuid, String name) { + this.id = id == null ? OptionalInt.empty() : OptionalInt.of(id); + this.uuid = uuid; + this.name = name; + } + + public Account(Integer id, UUID uuid, String name, Vec3d location) { + this(id, uuid, name); + this.location = Optional.ofNullable(location); + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TTCIC.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TTCIC.java new file mode 100644 index 0000000..637b05d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TTCIC.java @@ -0,0 +1,217 @@ +package de.tudbut.mod.client.ttcp.ttcic; + +import java.io.IOException; +import java.util.Optional; +import java.util.UUID; + +import de.tudbut.tools.Tools; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.Vec3d; +import de.tudbut.io.FileBus; +import de.tudbut.io.TypedInputStream; +import de.tudbut.io.TypedOutputStream; + +public class TTCIC extends Thread { + + public static TTCIC ttcic; + { + ttcic = this; + } + + public enum Role { + MAIN, + ALT, + FINDER, + } + + private static Minecraft mc = Minecraft.getMinecraft(); + + public Role role; + public FileBus bus; + public int id = -1; + public boolean alsoRunAlt = false; + public TaskQueue taskQueue = new TaskQueue(); + + private int nextID = 0; + private UserMap userData = new UserMap(); + + public TTCIC(Role role, FileBus bus) { + this.role = role; + this.bus = bus; + if (role == Role.MAIN) { + id = 0; + } + } + + public TTCIC(Role role, FileBus bus, boolean alsoRunAlt) { + this(role, bus); + this.alsoRunAlt = alsoRunAlt; + } + + @Override + public void run() { + TypedInputStream input = bus.getTypedReader(); + while (!this.isInterrupted()) { + try { + if (id == -1) { + write( + "Hello, my UUID is {}, and my username is {}", + mc.getSession().getProfile().getId(), + mc.getSession().getProfile().getName()); + } + int sender = input.readInt(); + String s = input.readString(); + if (id == -1) { + id = Integer.parseInt( + Tools.readf( + "Hello, this network is owned by {} (UUID {}), and your ID will be {}", s)[2]); + } + Thread.sleep(id); + + run(sender, s); + switch (role) { + case MAIN: + if (alsoRunAlt) { + runAlt(sender, s); + } + runMain(sender, s); + break; + case ALT: + runAlt(sender, s); + break; + case FINDER: + // Already done regardless + break; + } + } catch (IOException e) { + // ignore + } catch (InterruptedException e) { + break; + } + } + } + + private void runMain(int sender, String s) { + @SuppressWarnings("unused") + String data = null; + String[] mdata = null; + + mdata = Tools.readf("Hello, my UUID is {}, and my username is {}", s); + if (mdata != null) { + Account account = new Account(++nextID, UUID.fromString(mdata[0]), mdata[1]); + write("Hello {} (UUID {}), this network is owned by {} (UUID {}), and your ID will be {}", + mdata[1], mdata[0], + mc.getSession().getProfile().getName(), mc.getSession().getProfile().getId(), + nextID); + userData.put(account); + writeAccounts(); + write("Please provide a list of players in your RD."); + } + } + + private void runAlt(int sender, String s) { + String data = null; + String[] mdata = null; + + mdata = Tools.readf("{}, please start the task {}.", s); + if (mdata != null) { + if (id != Integer.parseInt(mdata[0])) + return; + Task task = Task.fromString(mdata[1]); + taskQueue.enqueue(task); + } + + data = Tools.readf1("Please everyone start the task {}", s); + if (data != null) { + Task task = Task.fromString(data); + taskQueue.enqueue(task); + } + + data = Tools.readf1("{}, please stop your tasks.", s); + if (data != null) { + if (id != Integer.parseInt(data)) + return; + taskQueue.killCurrent(); + } + + data = Tools.readf1("Please stop your tasks.", s); + if (data != null) { + taskQueue.killCurrent(); + } + } + + private void run(int sender, String s) { + String data = null; + String[] mdata = null; + + data = Tools.readf1("Please provide a list of players in your RD.", s); + if (data != null) { + writeAccounts(); + } + + mdata = Tools.readf("{} (UUID {}) is at BlockPos({}, {}, {}).", s); + if (mdata != null) { + Account account = userData.getOrMake(null, UUID.fromString(mdata[1]), mdata[0]); + account.location = Optional.of(new Vec3d( + Double.parseDouble(mdata[2]), + Double.parseDouble(mdata[3]), + Double.parseDouble(mdata[4]))); + } + + mdata = Tools.readf("Hello {} (UUID {}), this network is owned by {} (UUID {}), and your ID will be {}", s); + if (mdata != null) { + userData.getOrMake(0, UUID.fromString(mdata[3]), mdata[2]); + userData.getOrMake(Integer.parseInt(mdata[4]), UUID.fromString(mdata[1]), mdata[0]); + } + + data = Tools.readf1("Quitting.", s); + if (data != null) { + userData.removeID(sender); + } + } + + public void writeAccounts() { + for (EntityPlayer player : mc.world.playerEntities) { + write("{} (UUID {}) is at BlockPos({}, {}, {}).", + player.getGameProfile().getName(), + player.getGameProfile().getId(), + player.posX, player.posY, player.posZ); + userData.getOrMake( + null, + player.getGameProfile().getId(), + player.getGameProfile().getName()).location = Optional.of( + player.getPositionVector()); + } + } + + private void internalWrite(String s, Object... format) { + for (Object f : format) { + s = s.replaceFirst("{}", f.toString()); + } + TypedOutputStream stream = bus.getTypedWriter(); + try { + stream.writeInt(id); + stream.writeString(s); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public void write(String s, Object... format) { + try { + bus.startWrite(); + internalWrite(s, (Object[]) format); + bus.stopWrite(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public Account localize(Account toAttack) { + return userData.getOrMake(toAttack.id.isPresent() ? toAttack.id.getAsInt() : null, + toAttack.uuid, + toAttack.name); + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Task.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Task.java new file mode 100644 index 0000000..43430bf --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/Task.java @@ -0,0 +1,54 @@ +package de.tudbut.mod.client.ttcp.ttcic; + +import net.minecraft.client.Minecraft; +import de.tudbut.mod.client.ttcp.ttcic.task.DoNothingTask; +import de.tudbut.obj.Transient; +import de.tudbut.parsing.JSON; +import de.tudbut.parsing.TCN; +import de.tudbut.parsing.JSON.JSONFormatException; +import de.tudbut.tools.ConfigSaverTCN2; + +public abstract class Task { + + @Transient + private boolean done = false; + + protected static Minecraft mc = Minecraft.getMinecraft(); + + public boolean isDone() { + return done; + } + + protected final void done() { + done = true; + } + + protected abstract void onTick(); + + public abstract void unpauseOrStart(); + + public abstract void pauseOrStop(); + + public void start() { + unpauseOrStart(); + } + + public void stop() { + pauseOrStop(); + } + + public String toString() { + return JSON.write((TCN) ConfigSaverTCN2.write(this, true, false)); + } + + public static Task fromString(String string) { + Task t; + try { + t = (Task) ConfigSaverTCN2.read(JSON.read(string), null); + } catch (ClassNotFoundException | JSONFormatException e) { + e.printStackTrace(); + t = new DoNothingTask(); + } + return t; + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TaskQueue.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TaskQueue.java new file mode 100644 index 0000000..0911603 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/TaskQueue.java @@ -0,0 +1,54 @@ +package de.tudbut.mod.client.ttcp.ttcic; + +import de.tudbut.mod.client.ttcp.ttcic.task.DoNothingTask; +import de.tudbut.tools.Queue; + +public class TaskQueue { + public Queue nextTasks = new Queue<>(); + public Task currentTask = new DoNothingTask(); + + public void enqueue(Task task) { + nextTasks.add(task); + } + + public void killCurrent() { + currentTask.done(); + takeNewTask(null); + } + + public void startNow(Task task) { + if (!takeNewTask(task)) { + currentTask.pauseOrStop(); + nextTasks.pushBottom(currentTask); + currentTask = task; + currentTask.start(); + } + } + + public void onTick() { + if (!nextTasks.hasNext() && currentTask instanceof DoNothingTask) // Optimization + return; + + if (currentTask.isDone()) + takeNewTask(null); + + currentTask.onTick(); + } + + private boolean takeNewTask(Task fallback) { + if (currentTask.isDone()) { + currentTask.stop(); + if (nextTasks.hasNext()) { + if (fallback != null) + currentTask = fallback; + else + currentTask = nextTasks.next(); + } else { + currentTask = new DoNothingTask(); + } + currentTask.start(); + return true; + } + return false; + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/UserMap.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/UserMap.java new file mode 100644 index 0000000..9995bc5 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/UserMap.java @@ -0,0 +1,61 @@ +package de.tudbut.mod.client.ttcp.ttcic; + +import java.util.UUID; +import java.util.HashMap; +import java.util.OptionalInt; + +public class UserMap { + private HashMap byID = new HashMap<>(); + private HashMap byName = new HashMap<>(); + private HashMap byUUID = new HashMap<>(); + + public Account getByID(int id) { + return byID.get(id); + } + + public Account getByName(String name) { + return byName.get(name); + } + + public Account getByUUID(String uuid) { + return byUUID.get(UUID.fromString(uuid)); + } + + public Account getByUUID(UUID uuid) { + return byUUID.get(uuid); + } + + public Account put(Account account) { + if (account.id.isPresent()) + byID.put(account.id.getAsInt(), account); + byName.put(account.name, account); + byUUID.put(account.uuid, account); + return account; + } + + public Account getOrMake(Integer id, UUID uuid, String name) { + if (byID.containsKey(id)) { + Account account = getByID(id); + account.id = id != null ? OptionalInt.of(id) : OptionalInt.empty(); + account.uuid = uuid; + account.name = name; + } + if (byUUID.containsKey(uuid)) { + Account account = getByUUID(uuid); + account.id = id != null ? OptionalInt.of(id) : OptionalInt.empty(); + account.uuid = uuid; + account.name = name; + } + if (byName.containsKey(name)) { + Account account = getByName(name); + account.id = id != null ? OptionalInt.of(id) : OptionalInt.empty(); + account.uuid = uuid; + account.name = name; + } + return put(new Account(id, uuid, name)); + } + + public void removeID(int id) { + getByID(id).id = OptionalInt.empty(); + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/DoNothingTask.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/DoNothingTask.java new file mode 100644 index 0000000..4d48a71 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/DoNothingTask.java @@ -0,0 +1,19 @@ +package de.tudbut.mod.client.ttcp.ttcic.task; + +import de.tudbut.mod.client.ttcp.ttcic.Task; + +public class DoNothingTask extends Task { + + @Override + protected void onTick() { + } + + @Override + public void unpauseOrStart() { + done(); + } + + @Override + public void pauseOrStop() { + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/EntityFollowTask.java b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/EntityFollowTask.java new file mode 100644 index 0000000..2ac2b11 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/ttcic/task/EntityFollowTask.java @@ -0,0 +1,25 @@ +package de.tudbut.mod.client.ttcp.ttcic.task; + +import de.tudbut.mod.client.ttcp.ttcic.Task; + +import static de.tudbut.mod.client.ttcp.ttcic.TTCIC.ttcic; + +import de.tudbut.mod.client.ttcp.ttcic.Account; + +public class EntityFollowTask extends Task { + + public EntityFollowTask(Account toAttack) { + } + + @Override + protected void onTick() { + } + + @Override + public void unpauseOrStart() { + } + + @Override + public void pauseOrStop() { + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/AutoCrystalUtil.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/AutoCrystalUtil.java new file mode 100644 index 0000000..abef95e --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/AutoCrystalUtil.java @@ -0,0 +1,168 @@ +package de.tudbut.mod.client.ttcp.utils; + +import io.netty.buffer.Unpooled; +import io.netty.buffer.UnpooledDirectByteBuf; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.init.Blocks; +import net.minecraft.init.MobEffects; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketUseEntity; +import net.minecraft.util.CombatRules; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.*; +import net.minecraft.world.World; +import de.tudbut.mod.client.ttcp.TTCp; + +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +public class AutoCrystalUtil { + + private static Minecraft mc = Minecraft.getMinecraft(); + + + public static AxisAlignedBB createBB(Vec3d crystalPos) { + return new AxisAlignedBB(crystalPos.x - 1, crystalPos.y, crystalPos.z - 1, crystalPos.y + 2, crystalPos.x + 1, crystalPos.x + 1); + } + + public static Vec2f createRotations(AxisAlignedBB box) { + Vec3d posEyes = mc.player.getPositionEyes(1); + + Vec3d best = null;//new Vec3d(box.minX + .5 * box.maxX, box.minY + .5 * box.maxY, box.minZ + .5 * box.maxZ); + double bestDistance = Double.POSITIVE_INFINITY; + + for (float ix = 0; ix < 1; ix+=.2f) { + for (float iy = 0; iy < 1; iy+=.2f) { + for (float iz = 0; iz < 1; iz+=.2f) { + double x = box.minX + ix * box.maxX; + double y = box.minY + iy * box.maxY; + double z = box.minZ + iz * box.maxZ; + Vec3d vec = new Vec3d(x,y,z); + + RayTraceResult trace = mc.world.rayTraceBlocks(posEyes, vec); + + if(trace == null) { + continue; + } + + double f = vec.distanceTo(posEyes); + if(f < bestDistance) { + bestDistance = f; + best = vec; + } + } + } + } + + return BlockUtils.getLegitRotationsVector(best); + } + + public static CPacketUseEntity createAttackPacket(int eid) { + CPacketUseEntity packet = new CPacketUseEntity(); + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeVarInt(eid); + buffer.writeEnumValue(CPacketUseEntity.Action.ATTACK); + try { + packet.readPacketData(buffer); + } catch (IOException e) { + e.printStackTrace(); + } + return packet; + } + + public static float getExplosionCost(EntityLivingBase entity, double x, double y, double z) { + + x += 0.5; + z += 0.5; + World world = TTCp.world; + + float dmg = 0; + float f3 = 6.0F * 2.0F; + Vec3d vec3d = new Vec3d(x, y, z); + + double d12 = entity.getDistance(x, y, z) / (double)f3; + + if (d12 <= 1.0D) + { + double d5 = entity.posX - x; + double d7 = entity.posY + (double)entity.getEyeHeight() - y; + double d9 = entity.posZ - z; + double d13 = MathHelper.sqrt(d5 * d5 + d7 * d7 + d9 * d9); + + if (d13 != 0.0D) + { + double d14 = world.getBlockDensity(vec3d, entity.getEntityBoundingBox()); + double d10 = (1.0D - d12) * d14; + dmg += (float)((int)((d10 * d10 + d10) / 2.0D * 7.0D * (double)f3 + 1.0D)); + } + } + + + dmg = CombatRules.getDamageAfterAbsorb(dmg, (float)entity.getTotalArmorValue(), (float)entity.getEntityAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).getAttributeValue()); + + if (entity.isPotionActive(MobEffects.RESISTANCE)) { + int i = (Objects.requireNonNull(entity.getActivePotionEffect(MobEffects.RESISTANCE)).getAmplifier() + 1) * 5; + int j = 25 - i; + float f = dmg * (float)j; + dmg = f / 25.0F; + } + + if (dmg <= 0.0F) { + return 0.0F; + } + else { + try { + int k = EnchantmentHelper.getEnchantmentModifierDamage(entity.getArmorInventoryList(), DamageSource.GENERIC); + + if (k > 0) { + dmg = CombatRules.getDamageAfterMagicAbsorb(dmg, (float) k); + } + } catch (NullPointerException ignore) { } + } + return Math.max(dmg, 0.0F); + } + + public static boolean canPlace(BlockPos pos, float crystalRange) { + + Entity player = TTCp.player; + + if(player.getPositionEyes(1).distanceTo(new Vec3d(pos)) > crystalRange) { + return false; + } + + World world = TTCp.world; + IBlockState iblockstate = world.getBlockState(pos); + + if (iblockstate.getBlock() != Blocks.OBSIDIAN && iblockstate.getBlock() != Blocks.BEDROCK) + { + return false; + } + else { + BlockPos blockpos = pos.up(); + BlockPos blockpos1 = blockpos.up(); + boolean flag = !world.isAirBlock(blockpos) && !world.getBlockState(blockpos).getBlock().isReplaceable(world, blockpos); + flag = flag | (!world.isAirBlock(blockpos1) && !world.getBlockState(blockpos1).getBlock().isReplaceable(world, blockpos1)); + + if (flag) { + return false; + } + else { + double d0 = blockpos.getX(); + double d1 = blockpos.getY(); + double d2 = blockpos.getZ(); + AxisAlignedBB thisHitbox = new AxisAlignedBB(d0, d1, d2, d0 + 1.0D, d1 + 2.0D, d2 + 1.0D); + List list = world.getEntitiesWithinAABBExcludingEntity(null, thisHitbox); + + return list.isEmpty(); + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/BlockUtils.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/BlockUtils.java new file mode 100644 index 0000000..8a09009 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/BlockUtils.java @@ -0,0 +1,376 @@ +package de.tudbut.mod.client.ttcp.utils; + +import io.netty.buffer.Unpooled; +import net.minecraft.block.Block; +import net.minecraft.block.BlockDeadBush; +import net.minecraft.block.BlockTallGrass; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.init.Blocks; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.*; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec2f; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import de.tudbut.mod.client.ttcp.TTCp; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +public class BlockUtils { + + private static final Minecraft mc = Minecraft.getMinecraft(); + + // Sneak! + public static ArrayList blackList = new ArrayList<>(Arrays.asList( + Blocks.ENDER_CHEST, + Blocks.CHEST, + Blocks.TRAPPED_CHEST, + Blocks.CRAFTING_TABLE, + Blocks.ANVIL, + Blocks.BREWING_STAND, + Blocks.HOPPER, + Blocks.DROPPER, + Blocks.DISPENSER, + Blocks.TRAPDOOR, + Blocks.ENCHANTING_TABLE, + Blocks.POWERED_COMPARATOR, + Blocks.UNPOWERED_COMPARATOR, + Blocks.POWERED_REPEATER, + Blocks.UNPOWERED_REPEATER, + Blocks.CAKE, + Blocks.STANDING_SIGN, + Blocks.WALL_SIGN, + Blocks.OAK_DOOR, + Blocks.SPRUCE_DOOR, + Blocks.BIRCH_DOOR, + Blocks.DARK_OAK_DOOR, + Blocks.IRON_DOOR, + Blocks.JUNGLE_DOOR, + Blocks.ACACIA_DOOR, + Blocks.IRON_TRAPDOOR + )); + public static ArrayList shulkerList = new ArrayList<>(Arrays.asList( + Blocks.WHITE_SHULKER_BOX, + Blocks.ORANGE_SHULKER_BOX, + Blocks.MAGENTA_SHULKER_BOX, + Blocks.LIGHT_BLUE_SHULKER_BOX, + Blocks.YELLOW_SHULKER_BOX, + Blocks.LIME_SHULKER_BOX, + Blocks.PINK_SHULKER_BOX, + Blocks.GRAY_SHULKER_BOX, + Blocks.SILVER_SHULKER_BOX, + Blocks.CYAN_SHULKER_BOX, + Blocks.PURPLE_SHULKER_BOX, + Blocks.BLUE_SHULKER_BOX, + Blocks.BROWN_SHULKER_BOX, + Blocks.GREEN_SHULKER_BOX, + Blocks.RED_SHULKER_BOX, + Blocks.BLACK_SHULKER_BOX + )); + + public static void attackEntityByID(int id) { + CPacketUseEntity packet = new CPacketUseEntity(); + PacketBuffer buf = new PacketBuffer(Unpooled.buffer()); + buf.writeVarInt(id); + buf.writeEnumValue(CPacketUseEntity.Action.ATTACK); + try { + packet.readPacketData(buf); + } + catch (IOException e) { + e.printStackTrace(); + } + TTCp.player.connection.sendPacket(packet); + } + + // Magic i don't want to explain, gets a placeable size of a neighbor block and places + // the block on it, uses getPlaceableSide + public static void placeBlock(BlockPos pos, boolean rotate) { + if(pos == null) + return; + + EnumFacing side = getPlaceableSide(pos); + if (side == null) { + //ChatUtils.print("Couldn't place a block"); + return; + } + BlockPos neighbour = pos.offset(side); + EnumFacing opposite = side.getOpposite(); + Vec3d hitVec = new Vec3d(neighbour).add(0.5, 0.5, 0.5).add(new Vec3d(opposite.getDirectionVec()).scale(0.5)); + Block neighbourBlock = mc.world.getBlockState(neighbour).getBlock(); + if ((BlockUtils.blackList.contains(neighbourBlock) || BlockUtils.shulkerList.contains(neighbourBlock))) { + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_SNEAKING)); + } + if (rotate) BlockUtils.faceVectorPacketInstant(hitVec); + mc.playerController.processRightClickBlock(mc.player, mc.world, neighbour, opposite, hitVec, EnumHand.MAIN_HAND); + mc.player.swingArm(EnumHand.MAIN_HAND); + if ((BlockUtils.blackList.contains(neighbourBlock) || BlockUtils.shulkerList.contains(neighbourBlock))) { + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.STOP_SNEAKING)); + } + } + + // Magic i don't want to explain, gets a placeable size of a neighbor block and places + // the block on it, uses getPlaceableSide + public static void placeBlockPacket(BlockPos pos, boolean rotate) { + if(pos == null) + return; + + EnumFacing side = getPlaceableSide(pos); + if (side == null) { + //ChatUtils.print("Couldn't place a block"); + return; + } + BlockPos neighbour = pos.offset(side); + EnumFacing opposite = side.getOpposite(); + Vec3d hitVec = new Vec3d(neighbour).add(0.5, 0.5, 0.5).add(new Vec3d(opposite.getDirectionVec()).scale(0.5)); + Block neighbourBlock = mc.world.getBlockState(neighbour).getBlock(); + if ((BlockUtils.blackList.contains(neighbourBlock) || BlockUtils.shulkerList.contains(neighbourBlock))) { + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_SNEAKING)); + } + if (rotate) + BlockUtils.faceVectorPacketInstant(hitVec); + float f = (float)(hitVec.x - (double)pos.getX()); + float f1 = (float)(hitVec.y - (double)pos.getY()); + float f2 = (float)(hitVec.z - (double)pos.getZ()); + mc.player.connection.sendPacket(new CPacketPlayerTryUseItemOnBlock(pos, opposite, EnumHand.MAIN_HAND, f, f1, f2)); + mc.player.swingArm(EnumHand.MAIN_HAND); + if ((BlockUtils.blackList.contains(neighbourBlock) || BlockUtils.shulkerList.contains(neighbourBlock))) { + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.STOP_SNEAKING)); + } + } + + public static boolean placeBlock(BlockPos pos, EnumHand hand, boolean rotate, boolean packet) { + EnumFacing side = getFirstFacing(pos); + if (side == null) { + return false; + } + + BlockPos neighbour = pos.offset(side); + EnumFacing opposite = side.getOpposite(); + + Vec3d hitVec = new Vec3d(neighbour).add(0.5, 0.5, 0.5).add(new Vec3d(opposite.getDirectionVec()).scale(0.5)); + Block neighbourBlock = mc.world.getBlockState(neighbour).getBlock(); + + if (!mc.player.isSneaking() && (BlockUtils.blackList.contains(neighbourBlock) || BlockUtils.shulkerList.contains(neighbourBlock))) { + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.START_SNEAKING)); + mc.player.setSneaking(true); + } + + if (rotate) { + faceVector(hitVec, true); + } + + rightClickBlock(neighbour, hitVec, hand, opposite, packet); + + if (mc.player.isSneaking()) { + ThreadManager.run(() -> { + try { + Thread.sleep(50); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, CPacketEntityAction.Action.STOP_SNEAKING)); + mc.player.setSneaking(false); + }); + } + return true; + } + + public static List getPossibleSides(BlockPos pos) { + List facings = new ArrayList<>(); + for (EnumFacing side : EnumFacing.values()) { + BlockPos neighbour = pos.offset(side); + if (mc.world.getBlockState(neighbour).getBlock().canCollideCheck(mc.world.getBlockState(neighbour), false)) { + IBlockState blockState = mc.world.getBlockState(neighbour); + if (!blockState.getMaterial().isReplaceable()) { + facings.add(side); + } + } + } + return facings; + } + + public static EnumFacing getFirstFacing(BlockPos pos) { + for (EnumFacing facing : getPossibleSides(pos)) { + return facing; + } + return null; + } + + public static Vec3d getEyesPos() { + return new Vec3d(mc.player.posX, mc.player.posY + mc.player.getEyeHeight(), mc.player.posZ); + } + + public static void faceVector(Vec3d vec, boolean normalizeAngle) { + float[] rotations = getLegitRotations(vec); + mc.player.connection.sendPacket(new CPacketPlayer.Rotation(rotations[0], normalizeAngle ? MathHelper.normalizeAngle((int) rotations[1], 360) : rotations[1], mc.player.onGround)); + } + + public static void rightClickBlock(BlockPos pos, Vec3d vec, EnumHand hand, EnumFacing direction, boolean packet) { + if (packet) { + float f = (float) (vec.x - (double) pos.getX()); + float f1 = (float) (vec.y - (double) pos.getY()); + float f2 = (float) (vec.z - (double) pos.getZ()); + mc.player.connection.sendPacket(new CPacketPlayerTryUseItemOnBlock(pos, direction, hand, f, f1, f2)); + } else { + mc.playerController.processRightClickBlock(mc.player, mc.world, pos, direction, vec, hand); + } + mc.player.swingArm(EnumHand.MAIN_HAND); + } + + public static BlockPos getRealPos(Vec3d vec3d) { + return new BlockPos((int)(vec3d.x < 0 ? Math.floor(vec3d.x) : vec3d.x), (int)(vec3d.y < 0 ? Math.floor(vec3d.y) : vec3d.y), (int)(vec3d.z < 0 ? Math.floor(vec3d.z) : vec3d.z)); + } + + public static boolean clickOnBlock(BlockPos pos, EnumHand hand) { + return clickOnBlock(pos, hand, true); + } + + public static boolean clickOnBlock(BlockPos pos, EnumHand hand, boolean rotate) { + if(pos == null) + return false; + + Vec3d hitVec = new Vec3d(pos).add(0.5, 0.5, 0.5).add(new Vec3d(EnumFacing.UP.getDirectionVec()).scale(0.5)); + Block neighbourBlock = mc.world.getBlockState(pos).getBlock(); + if(rotate) + BlockUtils.faceVectorPacketInstant(hitVec); + float f = (float)(hitVec.x - (double)pos.getX()); + float f1 = (float)(hitVec.y - (double)pos.getY()); + float f2 = (float)(hitVec.z - (double)pos.getZ()); + mc.player.connection.sendPacket(new CPacketHeldItemChange(mc.player.inventory.currentItem)); + mc.player.connection.sendPacket(new CPacketPlayerTryUseItemOnBlock(pos, EnumFacing.UP, hand, f, f1, f2)); + mc.player.swingArm(hand); + return true; + } + + private static BlockPos breaking = null; + private static Runnable done = null; + + public static void tick() { + if(breaking != null) { + breakBlock(breaking, done); + } + } + + public static void breakBlock(BlockPos pos, Runnable done) { + lookAt(new Vec3d(pos)); + breaking = pos; + BlockUtils.done = done; + mc.playerController.onPlayerDamageBlock(pos, EnumFacing.DOWN); + mc.playerController.getIsHittingBlock(); + } + + public static void lookAt(Vec3d pos) { + faceVectorPacketInstant(pos); + } + + public static void lookCloserTo(Vec3d pos, float amountMax) { + mc.player.rotationYaw = MathHelper.wrapDegrees(mc.player.rotationYaw); + mc.player.rotationPitch = MathHelper.wrapDegrees(mc.player.rotationPitch); + + float[] rotations; + float length; + + rotations = getLegitRotations(pos); + rotations[0] = (rotations[0] - (mc.player.rotationYaw)); + rotations[1] = (rotations[1] - (mc.player.rotationPitch)); + length = (float) Math.sqrt(rotations[0] * rotations[0] + rotations[1] * rotations[1]); + rotations = getLegitRotations(pos); + rotations[0] = MathHelper.wrapDegrees(((rotations[0] + 180) % 360 - (mc.player.rotationYaw + 180) % 360)); + rotations[1] = MathHelper.wrapDegrees(((rotations[1] + 180) % 360 - (mc.player.rotationPitch + 180) % 360)); + length = Math.min(length, (float) Math.sqrt(rotations[0] * rotations[0] + rotations[1] * rotations[1])); + + if(length > 1) { + rotations[0] = (rotations[0] / length) * amountMax; + rotations[1] = (rotations[1] / length) * amountMax; + } + else { + rotations[0] = (rotations[0] / length) * (amountMax / 18); + rotations[1] = (rotations[1] / length) * (amountMax / 18); + } + + mc.player.rotationYaw += rotations[0]; + mc.player.rotationPitch += rotations[1]; + } + + // Gets a block next to a block position + private static EnumFacing getPlaceableSide(BlockPos pos) { + for (EnumFacing side : EnumFacing.values()) { + BlockPos neighbour = pos.offset(side); + if (!mc.world.getBlockState(neighbour).getBlock().canCollideCheck(mc.world.getBlockState(neighbour), false)) { + continue; + } + IBlockState blockState = mc.world.getBlockState(neighbour); + if (!blockState.getMaterial().isReplaceable() && !(blockState.getBlock() instanceof BlockTallGrass) && !(blockState.getBlock() instanceof BlockDeadBush)) { + return side; + } + } + return null; // :( + } + + private static Vec3d eyesPos() { + return new Vec3d(mc.player.posX, mc.player.posY + mc.player.getEyeHeight(), mc.player.posZ); + } + + public static float[] getLegitRotations(Vec3d vec) { + Vec3d eyesPos = eyesPos(); + double diffX = vec.x - eyesPos.x; + double diffY = vec.y - eyesPos.y; + double diffZ = vec.z - eyesPos.z; + double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); + double yaw = Math.toDegrees(Math.atan2(diffZ, diffX)) - 90f; + double pitch = (-Math.toDegrees(Math.atan2(diffY, diffXZ))); + return new float[]{(float) (MathHelper.wrapDegrees(yaw)), (float) (MathHelper.wrapDegrees(pitch))}; + } + + public static Vec2f getLegitRotationsVector(Vec3d vec) { + Vec3d eyesPos = eyesPos(); + double diffX = vec.x - eyesPos.x; + double diffY = vec.y - eyesPos.y; + double diffZ = vec.z - eyesPos.z; + double diffXZ = Math.sqrt(diffX * diffX + diffZ * diffZ); + double yaw = Math.toDegrees(Math.atan2(diffZ, diffX)) - 90f; + double pitch = (-Math.toDegrees(Math.atan2(diffY, diffXZ))); + return new Vec2f((float) MathHelper.wrapDegrees(yaw), (float) MathHelper.wrapDegrees(pitch)); + } + + // Makes it more legit-looking + public static void faceVectorPacketInstant(Vec3d vec) { + float[] rotations = getLegitRotations(vec); + mc.player.connection.sendPacket( + new CPacketPlayer.PositionRotation( + mc.player.posX, mc.player.posY, mc.player.posZ, + rotations[0], rotations[1], mc.player.onGround + ) + ); + } + + public static BlockPos findBlock(Block... blocks) { + World world = TTCp.world; + BlockPos origin = TTCp.player.getPosition(); + + for (int z = -5; z <= 5; z++) { + + for (int y = -3; y <= 7; y++) { + + for (int x = -5; x <= 5; x++) { + BlockPos pos = origin.add(x,y,z); + for(Block block : blocks) + if(world.getBlockState(pos).getBlock() == block) { + return pos; + } + } + } + } + + return null; + } +} \ No newline at end of file diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/ChatUtils.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/ChatUtils.java new file mode 100644 index 0000000..4d24d8d --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/ChatUtils.java @@ -0,0 +1,126 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.Minecraft; +import net.minecraft.util.text.TextComponentString; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.misc.Debug; +import de.tudbut.mod.client.ttcp.mods.rendering.Notifications; + +import java.io.OutputStream; +import java.io.PrintStream; + +public class ChatUtils { // Everything here is kinda self-explanatory + + public static void print(String s) { + if(TTCp.isIngame()) + Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(new TextComponentString(s)); + else { + TTCp.logger.info(s.replaceAll("§[a-z0-9]", "")); + } + } + + public static void printChatAndHotbar(String s) { + print(s); + printHotbar(s); + } + + public static void printChatAndTitle(String s, int ms) { + print(s); + printTitle(s, "", ms); + } + + public static void printChatAndNotification(String s, int ms) { + print(s); + Notifications.add(new Notifications.Notification(s, ms)); + } + + @SuppressWarnings("ConstantConditions") + public static void printTitle(String title, String subTitle, int ms) { + Minecraft.getMinecraft().ingameGUI.displayTitle("§c" + title, null, 2, ms / (1000 / 20), 2); + Minecraft.getMinecraft().ingameGUI.displayTitle(null, "§b" + subTitle, 2, ms / (1000 / 20), 2); + } + + public static void printHotbar(String s) { + Minecraft.getMinecraft().ingameGUI.setOverlayMessage(new TextComponentString(s), true); + } + + public static void history(String s) { + Minecraft.getMinecraft().ingameGUI.getChatGUI().addToSentMessages(s); + } + + public static OutputStream chatOut() { + return new OutputStream() { + String s = ""; + + @Override + public void write(int i) { + if ((char) i == '\n') { + Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(new TextComponentString(s)); + s = ""; + } else + s += (char) i; + } + }; + } + public static OutputStream chatOut(int delay) { + return new OutputStream() { + String s = ""; + + @Override + public void write(int i) { + if ((char) i == '\n') { + try { + Thread.sleep(delay); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(new TextComponentString(s)); + s = ""; + } else + s += (char) i; + } + }; + } + + public static PrintStream chatPrinter() { + return new PrintStream(chatOut()); + } + + public static PrintStream chatPrinter(int delay) { + return new PrintStream(chatOut(delay)); + } + + public static OutputStream chatOutDebug() { + return new OutputStream() { + String s = ""; + + @Override + public void write(int i) { + + if ((char) i == '\n') { + if (Debug.getInstance().enabled) + Minecraft.getMinecraft().ingameGUI.getChatGUI().printChatMessage(new TextComponentString(s)); + System.out.println(s); + s = ""; + } else + s += (char) i; + } + }; + } + + public static PrintStream chatPrinterDebug() { + return new PrintStream(chatOutDebug()); + } + + public static void simulateSend(String msg, boolean addToHistory) { + msg = net.minecraftforge.event.ForgeEventFactory.onClientSendMessage(msg); + if (msg.isEmpty()) return; + if (addToHistory) { + TTCp.mc.ingameGUI.getChatGUI().addToSentMessages(msg); + } + if (net.minecraftforge.client.ClientCommandHandler.instance.executeCommand(TTCp.mc.player, msg) != 0) + return; + TTCp.mc.player.sendChatMessage(msg); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/ConfigUtils.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/ConfigUtils.java new file mode 100644 index 0000000..0696910 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/ConfigUtils.java @@ -0,0 +1,177 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.tools.Tools; +import de.tudbut.debug.DebugProfiler; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.parsing.TCN; +import de.tudbut.tools.ConfigSaverTCN; +import de.tudbut.tools.ConfigSaverTCN2; + +public class ConfigUtils { + + public static String serializeString() { + return Tools.mapToString(serialize().toMap()); + } + + public static void deserializeString(String config) { + deserialize(TCN.readMap(Tools.stringToMap(config))); + } + + public static TCN serialize() { + TCN config = new TCN(); + try { + config.set("client", ConfigSaverTCN2.write(TTCp.getInstance(), false, true)); + for(Module module : TTCp.modules) { + try { + config.set(module.toString(), ConfigSaverTCN2.write(module, false, true)); + } catch (Throwable e) { + throw new Exception(module.toString(), e); + } + } + } catch (Exception e) { + System.err.println("Unable to serialize TTCp config"); + e.printStackTrace(); + } + return config; + } + + public static void deserialize(TCN config) { + try { + ConfigSaverTCN2.read(config.getSub("client"), TTCp.getInstance()); + for(Module module : TTCp.modules) { + try { + if(config.get(module.toString()) != null) + ConfigSaverTCN2.read(config.getSub(module.toString()), module); + } catch (Throwable e) { + throw new Exception(module.toString(), e); + } + } + } catch (Exception e) { + System.err.println("Broken TTCp config"); + e.printStackTrace(); + } + } + + + + + + public static String make(TTCp ttcp) { + return Tools.mapToString(makeTCN(ttcp).toMap()); + } + + public static TCN makeTCN(TTCp ttcp) { + TCN tcn = new TCN(); + + tcn.set("init", "true"); + + makeClient(ttcp, tcn); + makeModules(tcn); + + return tcn; + } + + private static void makeClient(TTCp ttcp, TCN tcn) { + try { + TCN cfg = ConfigSaverTCN.saveConfig(ttcp); + + tcn.set("client", cfg); + } catch (Exception e) { + System.err.println("Couldn't save config of client"); + e.printStackTrace(); + tcn.set("init", null); + } + } + + private static void makeModules(TCN tcn) { + TCN cfg = new TCN(); + + for (int i = 0; i < TTCp.modules.length; i++) { + Module module = TTCp.modules[i]; + + try { + module.onConfigSave(); + TCN moduleTCN = ConfigSaverTCN.saveConfig(module); + cfg.set(module.toString(), moduleTCN); + } catch (Exception e) { + System.err.println("Couldn't save config of module " + module.toString()); + e.printStackTrace(); + tcn.set("init", null); + } + } + + tcn.set("modules", cfg); + } + + public static void load(TTCp ttcp, String config) { + try { + System.out.println("Reading as TCNMap..."); + TCN tcn = TCN.readMap(Tools.stringToMap(config)); + if (!tcn.getBoolean("init")) + throw new Exception(); + System.out.println("Done"); + loadTCN(ttcp, tcn); + } + catch (Exception e0) { + System.err.println("Couldn't load config as TCNMap"); + try { + System.out.println("Reading as TCN..."); + TCN tcn = TCN.read(config); + System.out.println("Done"); + loadTCN(ttcp, tcn); + } + catch (Exception e1) { + System.err.println("Couldn't load config"); + } + } + } + + public static void loadTCN(TTCp ttcp, TCN tcn) { + loadClient(ttcp, tcn); + loadModules(tcn); + } + + private static void loadClient(TTCp ttcp, TCN tcn) { + try { + ConfigSaverTCN.loadConfig(ttcp, tcn.getSub("client")); + } catch (Exception e) { + System.err.println("Couldn't load config of client"); + e.printStackTrace(); + } + } + + private static void loadModules(TCN tcn) { + tcn = tcn.getSub("modules"); + + DebugProfiler profiler = new DebugProfiler("ConfigLoadProfiler", "init"); + + for (int i = 0; i < TTCp.modules.length; i++) { + Module module = TTCp.modules[i]; + profiler.next(module.toString()); + + if(module.enabled) { + module.enabled = false; + module.green = false; + module.onDisable(); + } + + try { + ConfigSaverTCN.loadConfig(module, tcn.getSub(module.toString())); + try { + if (module.enabled) + module.onEnable(); + } catch (NullPointerException ignored) { } + module.onConfigLoad(); + } + catch (Exception e) { + module.enabled = module.green = module.defaultEnabled(); + System.err.println("Couldn't load config of module " + module.toString()); + e.printStackTrace(); + } + } + + profiler.endAll(); + System.out.println(profiler.getResults()); + profiler.delete(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/DebugProfilerAdapter.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/DebugProfilerAdapter.java new file mode 100644 index 0000000..8e0e7d4 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/DebugProfilerAdapter.java @@ -0,0 +1,64 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.debug.DebugProfiler; + +public class DebugProfilerAdapter extends DebugProfiler { + public boolean fallthrough = false; + + public DebugProfilerAdapter(String name, String startingSection) { + super(name, startingSection); + } + + @Override + public synchronized DebugProfiler next(String next) { + if(fallthrough) + return this; + + return super.next(next); + } + + @Override + public synchronized DebugProfiler endAll() { + return super.endAll(); + } + + @Override + public synchronized Results getResults() { + return super.getResults(); + } + + @Override + public synchronized Results getTempResults() { + return super.getTempResults(); + } + + @Override + public void optimize() { + super.optimize(); + } + + @Override + public boolean isLocked() { + return super.isLocked(); + } + + @Override + public String getName() { + return super.getName(); + } + + @Override + public synchronized void delete() { + super.delete(); + } + + @Override + public void finalize() { + super.finalize(); + } + + @Override + public String toString() { + return super.toString(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/FlightBot.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/FlightBot.java new file mode 100644 index 0000000..9e7f137 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/FlightBot.java @@ -0,0 +1,136 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.network.play.client.CPacketEntityAction; +import net.minecraft.network.play.client.CPacketPlayer; +import net.minecraft.util.math.Vec3d; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.movement.ElytraBot; +import de.tudbut.mod.client.ttcp.mods.movement.PacketFly; +import de.tudbut.obj.Atomic; + +import java.util.Date; + +public class FlightBot { + + private static Atomic destination; + private static EntityPlayerSP player = TTCp.player; + private static volatile boolean lock = false; + private static boolean flying = false; + private static boolean active = false; + private static long tookOff = 0; + private static double speed = 1; + public static boolean allowPacketFly = false; + + public static boolean isActive() { + return active; + } + + public static boolean isFlying() { + player = TTCp.player; + return destination != null && destination.get() != null && flying && player.getPositionVector().distanceTo(destination.get()) > 1; + } + + private FlightBot() { } + + public static void activate(Atomic destination, double speed) { + while (lock); + flying = true; + active = true; + FlightBot.speed = speed; + FlightBot.destination = destination; + } + + public static void activate(Atomic destination) { + activate(destination, 1); + } + + public static void deactivate() { + active = false; + speed = 1; + } + + public static void updateDestination(Atomic destination) { + while (lock); + FlightBot.destination = destination; + } + + static boolean forceSpeed = false; + public static void setForce(boolean force) { + forceSpeed = force; + } + public static void setSpeed(double speed) { + if(forceSpeed) + return; + FlightBot.speed = speed; + } + + private static void takeOff() { + player = TTCp.player; + + if (player.onGround) { + if (!player.isElytraFlying()) { + tookOff = 0; + player.jump(); + } + } + } + + public static synchronized boolean tickBot() { + if(!active) + return false; + + player = TTCp.player; + + PacketFly packetFly = TTCp.getModule(PacketFly.class); + if (!player.isElytraFlying() && !packetFly.enabled) { + if (new Date().getTime() - tookOff > 100) { + takeOff(); + } + return false; + } + + if(new Date().getTime() - tookOff < 300 && tookOff != 0) { + return true; + } + + if(destination.get() == null) { + return false; + } + + lock = true; + double x, y, z; + Vec3d dest = destination.get(); + double dx = dest.x - player.posX, dy = dest.y - player.posY, dz = dest.z - player.posZ; + + + double d = Math.sqrt(dx*dx + dy*dy + dz*dz); + + if(d < 1) { + d = 1; + flying = false; + } + else + flying = true; + + d = d / speed; + + x = dx / d; + y = dy / d; + z = dz / d; + + player.motionX = x; + if(!ElytraBot.getInstance().strict || y < 0) + player.motionY = y; + player.motionZ = z; + lock = false; + + if(packetFly.enabled) { + allowPacketFly = true; + packetFly.onTick(); + allowPacketFly = false; + } + + return true; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/FontRenderer.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/FontRenderer.java new file mode 100644 index 0000000..6985709 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/FontRenderer.java @@ -0,0 +1,61 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.gui.Gui; +import de.tudbut.obj.Vector2i; + +import java.awt.*; +import java.awt.font.FontRenderContext; +import java.awt.image.BufferedImage; + +public class FontRenderer extends Gui { + + Font myFont; + FontRenderContext context; + + public FontRenderer(int size) { + this.myFont = new Font("serif", Font.PLAIN, size); + this.context = new FontRenderContext(null, false, false); + } + + public int getTextWidth(String text) { + int r = 0; + + for (int i = 0; i < text.split("\n").length; ++i) { + r += (int) this.myFont.getStringBounds(text.split("\n")[i], this.context).getWidth() + 4; + } + + return r; + } + + public int getTextHeight(String text) { + int r = 0; + + for (int i = 0; i < text.split("\n").length; ++i) { + r += (int) this.myFont.getStringBounds(text.split("\n")[i], this.context).getHeight() + 4; + } + + return r; + } + + public void drawText(String text, int color, int x, int y) { + //Renderer.draw(x, y, renderText(text, color)); + } + + public Image renderText(String text, int color) { + BufferedImage image = new BufferedImage(this.getTextWidth(text), this.getTextHeight(text), 2); + Graphics graphics = image.getGraphics(); + graphics.setColor(new Color(color)); + graphics.setFont(this.myFont); + + for (int i = 0; i < text.split("\n").length; ++i) { + graphics.drawString(text.split("\n")[i], 0, (this.myFont.getSize() + 4) * (i + 1)); + } + + return image; + } + + public Vector2i getCoordsForCentered(Vector2i coords, String text) { + return new Vector2i(coords.getX() - this.getTextWidth(text) / 2, coords.getY() - this.getTextHeight(text) / 2); + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/FreecamPlayer.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/FreecamPlayer.java new file mode 100644 index 0000000..8af44a8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/FreecamPlayer.java @@ -0,0 +1,106 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityOtherPlayerMP; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.MoverType; +import net.minecraft.util.MovementInput; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec2f; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.rendering.Freecam; + +import javax.annotation.Nonnull; + +@SideOnly(Side.CLIENT) +public class FreecamPlayer extends EntityOtherPlayerMP +{ + public MovementInput movementInput; + protected Minecraft mc; + protected final EntityPlayerSP original; + + public FreecamPlayer(EntityPlayerSP playerSP, World world) + { + super(world, playerSP.getGameProfile()); + this.dimension = playerSP.dimension; + this.original = playerSP; + this.mc = Minecraft.getMinecraft(); + this.movementInput = playerSP.movementInput; + preparePlayerToSpawn(); + capabilities.allowFlying = true; + capabilities.isFlying = true; + this.setPositionAndRotation(playerSP.posX, playerSP.posY, playerSP.posZ, playerSP.rotationYaw, playerSP.rotationPitch); + } + + @Override + @Nonnull + public String getName() { + return original.getName() + "\u0000"; + } + + @Override + public boolean isSpectator() { + return true; + } + + public void onLivingUpdate() + { + if(TTCp.mc.world == null) { + Freecam.getInstance().onDisable(); + Freecam.getInstance().enabled = false; + return; + } + TTCp.mc.renderChunksMany = false; + TTCp.mc.player.setInvisible(false); + setInvisible(true); + + inventory.copyInventory(TTCp.player.inventory); + + prevRotationYaw = rotationYaw; + prevRotationPitch = rotationPitch; + prevRotationYawHead = rotationYawHead; + setRotation(original.rotationYaw, original.rotationPitch); + setRotationYawHead(original.rotationYaw); + original.prevRenderArmYaw = original.renderArmYaw; + original.prevRenderArmPitch = original.renderArmPitch; + original.renderArmPitch = (float)((double)original.renderArmPitch + (double)(original.rotationPitch - original.renderArmPitch) * 0.5D); + original.renderArmYaw = (float)((double)original.renderArmYaw + (double)(original.rotationYaw - original.renderArmYaw) * 0.5D); + updateEntityActionState(); + + movementInput.updatePlayerMoveState(); + Vec2f movementVec = movementInput.getMoveVector(); + + float f1 = MathHelper.sin(rotationYaw * 0.017453292F); + float f2 = MathHelper.cos(rotationYaw * 0.017453292F); + double x = movementVec.x * f2 - movementVec.y * f1; + double y = (movementInput.jump ? 1 : 0) + (movementInput.sneak ? -1 : 0); + double z = movementVec.y * f2 + movementVec.x * f1; + float d = (float) Math.sqrt(x * x + y * y + z * z); + + movementInput.jump = false; + movementInput.sneak = false; + movementInput.forwardKeyDown = false; + movementInput.backKeyDown = false; + movementInput.leftKeyDown = false; + movementInput.rightKeyDown = false; + movementInput.moveForward = 0; + movementInput.moveStrafe = 0; + + if(d < 1) { + d = 1; + } + + motionX = x / d; + motionY = y / d; + motionZ = z / d; + + noClip = true; + move(MoverType.SELF, motionX, motionY, motionZ); + + prevCameraYaw = cameraYaw; + prevCameraPitch = cameraPitch; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/InventoryUtils.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/InventoryUtils.java new file mode 100644 index 0000000..700a4f7 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/InventoryUtils.java @@ -0,0 +1,157 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.block.Block; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.gui.inventory.GuiInventory; +import net.minecraft.inventory.ClickType; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.CPacketHeldItemChange; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.combat.HopperAura; +import de.tudbut.tools.Lock; + +import java.util.Objects; + +public class InventoryUtils { + + public static final int OFFHAND_SLOT = 45; + private static final Lock swapLock = new Lock(); + + public static Integer getSlotWithItem(Container inv, Item item, int amount) { + return getSlotWithItem(inv, item, Utils.range(0, 8), amount, amount); + } + + public static Integer getSlotWithItem(Container inv, Item item, int[] not, int amountMin, int amountMax) { + for (int i = 0; i < inv.getInventory().size(); i++) { + a: + { + for (int j = 0; j < not.length; j++) { + if (i == not[j]) + break a; + } + + ItemStack stack = inv.getSlot(i).getStack(); + if (stack.getItem().equals(item) && stack.getCount() >= amountMin && stack.getCount() <= amountMax) + return i; + } + } + return null; + } + public static Integer getSlotWithItem(Container inv, Block item, int amount) { + return getSlotWithItem(inv, item, Utils.range(0, 8), amount, amount); + } + + public static Integer getSlotWithItem(Container inv, Block item, int[] not, int amountMin, int amountMax) { + for (int i = 0; i < inv.getInventory().size(); i++) { + a: + { + for (int j = 0; j < not.length; j++) { + if (i == not[j]) + break a; + } + + ItemStack stack = inv.getSlot(i).getStack(); + if(stack.getItem().getRegistryName() != null) + if (stack.getItem().getRegistryName().toString().equals(Objects.requireNonNull(item.getRegistryName()).toString()) && stack.getCount() >= amountMin && stack.getCount() <= amountMax) + return i; + } + } + return null; + } + + public static int getItemAmount(Container inv, Item item) { + int c = 0; + for (int i = 0; i < inv.getInventory().size(); i++) { + ItemStack stack = inv.getSlot(i).getStack(); + if (stack.getItem().equals(item)) + c += stack.getCount(); + + } + return c; + } + + // Select hotbar slot + public static void setCurrentSlot(int id) { + if(TTCp.player.inventory.currentItem != id) { + TTCp.player.inventory.currentItem = id; + TTCp.player.connection.sendPacket(new CPacketHeldItemChange(id)); + } + } + + // Get selected hotbar slot + public static int getCurrentSlot() { + return TTCp.player.inventory.currentItem; + } + + // Drop contents of a slot + public static void drop(int slot) { + clickSlot(slot, ClickType.THROW, 1); + } + + // Drop contents of a slot + public static void drop(int windowId, int slot) { + clickSlot(windowId, slot, ClickType.THROW, 1); + } + + // Virtually clicks a slot + public static void clickSlot(int slot, ClickType type, int key) { + TTCp.mc.playerController.windowClick(TTCp.mc.player.inventoryContainer.windowId, slot, key, type, TTCp.mc.player); + } + + // Virtually clicks a slot + public static void clickSlot(int windowId, int slot, ClickType type, int key) { + TTCp.mc.playerController.windowClick(windowId, slot, key, type, TTCp.mc.player); + } + + // This only swaps between a slot and a hotbar slot! + public static void swap(int slot, int hotbarSlot) { + clickSlot(slot, ClickType.SWAP, hotbarSlot); + } + + // Swap two items in inventory + public static void inventorySwap(int slot0, int slot1, long mainDelay, long postDelay, long cooldownDelay) { + // Swapping may not be done in separate threads! + HopperAura.pause(); + swapLock.waitHere(); + + // Make other threads wait + swapLock.lock(); + + // "slot1" must not be set to 8, it will not be able to switch! + if (slot1 == 8 + 36) { + // Exchange values of slot0 and slot1 + int i = slot0; + slot0 = slot1; + slot1 = i; + } + + try { + // Check for a GUIScreen that would block switching + GuiScreen screen = TTCp.mc.currentScreen; + boolean doResetScreen = false; + if (screen instanceof GuiContainer && !(screen instanceof GuiInventory)) { + // If the current GUIScreen blocks switching, close it + TTCp.player.closeScreen(); + Thread.sleep(500); + doResetScreen = true; + } + + swap(slot0, 8); + Thread.sleep(mainDelay); + swap(slot1, 8); + Thread.sleep(postDelay); + swap(slot0, 8); + Thread.sleep(cooldownDelay); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + + // Enable the next swapping operation + swapLock.unlock(); + HopperAura.resume(); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/KillSwitch.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/KillSwitch.java new file mode 100644 index 0000000..9002e98 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/KillSwitch.java @@ -0,0 +1,128 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.io.StreamReader; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraftforge.client.model.ISmartVariant; +import org.lwjgl.input.Mouse; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.tools.Lock; +import de.tudbut.tools.Tools2; + +import java.io.*; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Random; + +public class KillSwitch { + + public static String type = "been deactivated by a developer"; + public static boolean running = false; // TODO change back to false + public static Lock lock = new Lock(true); + + public static void deactivate() { + if(running) + return; + running = true; + try { + for (int i = 0; i < TTCp.modules.length; i++) { + try { + Module module = TTCp.modules[i]; + module.enabled = false; + module.onDisable(); + } catch (Exception ignore) { + } + } + } catch (Exception ignore) { + } + try { + Minecraft.getMinecraft().displayGuiScreen(new GuiKilled()); + } catch (Exception ignore) { + } + try { + new File(TTCp.class.getProtectionDomain().getCodeSource().getLocation().toURI()).delete(); + } + catch (URISyntaxException e) { + e.printStackTrace(); + } + lock.lock(15000); + new Thread(() -> { + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + Minecraft.getMinecraft().shutdown(); + }).start(); + } + + public static class GuiKilled extends GuiScreen { + + { + this.mc = Minecraft.getMinecraft(); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void initGui() { + super.initGui(); + } + + @Override + public void onGuiClosed() { + new Thread(() -> { + try { + Thread.sleep(5); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + Minecraft.getMinecraft().displayGuiScreen(this); + }).start(); + super.onGuiClosed(); + } + ScaledResolution sr = new ScaledResolution(mc); + int y = sr.getScaledHeight() / 3; + Lock timer = new Lock(); { timer.lock(15000); } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + sr = new ScaledResolution(mc); + y = sr.getScaledHeight() / 3; + drawRect(0, 0, sr.getScaledWidth(), sr.getScaledHeight(), 0xff000000); + if(timer.isLocked()) + Mouse.setGrabbed(true); + drawString("Your TTC has " + type + "."); + drawString("Please contact us on the discord (https://discord.gg/UgbPQvyfmc)"); + drawString("or at TudbuT#2624!!!"); + drawString("Your mouse will be grabbed for about 15 more"); + drawString("seconds, afterwards, your minecraft will exit..."); + if(!timer.isLocked()) { + Mouse.setGrabbed(false); + Minecraft.getMinecraft().shutdown(); + } + } + + private void drawString(String s) { + String[] lines = s.split("\n"); + for (int i = 0 ; i < lines.length ; i++) { + s = lines[i]; + mc.fontRenderer.drawString( + "§l" + s, + sr.getScaledWidth() / 2f - mc.fontRenderer.getStringWidth("§l" + s) / 2f, + y, + 0xffff0000, + true + ); + y += 13; + } + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/LSDRenderer.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/LSDRenderer.java new file mode 100644 index 0000000..fc93454 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/LSDRenderer.java @@ -0,0 +1,132 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.world.World; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.mods.rendering.LSD; + +public class LSDRenderer extends FreecamPlayer { + public static final int MODE_EPILEPSY = 0x00; + public static final int MODE_UPSIDE_DOWN = 0x01; + public static final int MODE_HAND0 = 0x02; + public static final int MODE_HAND1 = 0x03; + public static final int MODE_CAMERA = 0x04; + public static final int MODE_ROTATION0 = 0x05; + public static final int MODE_ROTATION1 = 0x06; + public static final int MODE_ROTATION2 = 0x07; + public static final int MODE_ROTATION3 = 0x08; + public static final int MODE_EXC = 0x09; + public static final int MODE_ALL = 0x0a; + public static int mode = 0; + + public LSDRenderer(EntityPlayerSP playerSP, World world) { + super(playerSP, world); + } + + public void onLivingUpdate() + { + if(!TTCp.isIngame()) { + LSD.getInstance().onDisable(); + return; + } + + inventory.copyInventory(TTCp.player.inventory); + + original.renderArmYaw = original.rotationYaw; + original.renderArmPitch = original.rotationPitch; + original.prevRenderArmYaw = prevRotationYaw; + original.prevRenderArmPitch = prevRotationPitch; + setRotation(original.rotationYaw, original.rotationPitch); + cameraYaw = 0; + cameraPitch = 0; + prevCameraYaw = 0; + prevCameraPitch = 0; + + switch (mode) { + case MODE_ALL: + exc(); + hand1(); + rotation3(); + epilepsy(); + break; + case MODE_EPILEPSY: + epilepsy(); + break; + case MODE_HAND0: + hand0(); + break; + case MODE_HAND1: + hand1(); + break; + case MODE_CAMERA: + camera(); + break; + case MODE_ROTATION0: + rotation0(); + break; + case MODE_ROTATION1: + rotation1(); + break; + case MODE_UPSIDE_DOWN: + case MODE_ROTATION2: + rotation2(); + break; + case MODE_ROTATION3: + rotation3(); + break; + case MODE_EXC: + exc(); + break; + } + setRotationYawHead(-original.rotationYaw); + updateEntityActionState(); + + noClip = true; + } + + public void epilepsy() { + rotationPitch = 0; + cameraYaw = (float) (5f - (Math.random() * 10f)); + cameraPitch = (float) (5f - (Math.random() * 10f)); + prevCameraYaw = (float) (5f - (Math.random() * 10f)); + prevCameraPitch = (float) (5f - (Math.random() * 10f)); + } + public void hand0() { + original.renderArmYaw = 0; + original.renderArmPitch = 0; + original.prevRenderArmYaw = 0; + original.prevRenderArmPitch = 0; + } + public void hand1() { + original.renderArmYaw = original.rotationYaw; + original.renderArmPitch = original.rotationPitch; + original.prevRenderArmYaw = 0; + original.prevRenderArmPitch = 0; + } + public void camera() { + cameraYaw = (float) (rotationYaw / 180 * Math.PI); + cameraPitch = (float) (rotationPitch / 180 * Math.PI); + prevCameraYaw = cameraYaw; + prevCameraPitch = cameraPitch; + } + public void exc() { + rotationYaw = rotationYaw - 90; + rotationPitch = rotationPitch - 90; + } + public void rotation0() { + rotationYaw = rotationYaw - 90; + rotationPitch = rotationPitch - 90; + } + public void rotation1() { + rotationYaw = original.rotationYaw + 90; + rotationPitch = original.rotationPitch + 90; + } + public void rotation2() { + rotationYaw = original.rotationYaw + 180; + rotationPitch = original.rotationPitch + 180; + } + public void rotation3() { + rotationYaw = original.rotationYaw - 180; + rotationPitch = original.rotationPitch - 180; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/Login.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/Login.java new file mode 100644 index 0000000..e9bead8 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/Login.java @@ -0,0 +1,96 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.api.RequestResult; +import com.mojang.authlib.GameProfile; +import de.tudbut.tools.Hasher; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.parsing.TCN; +import de.tudbut.io.StreamReader; + +import javax.swing.*; +import java.io.File; +import java.io.FileInputStream; + +public class Login { + + public static final boolean isDebugMode = false; + public static final boolean isAggressive = true; + + public static boolean isRegistered(TCN data) { + if(true) { + // this is going on github anyway. no auth needed :3 + TTCp.unloadClient(); + TTCp.buildNumber = 1; + return true; + } + // but have a look at the old one if you care: + try { + GameProfile profile = TTCp.mc.getSession().getProfile(); + if((profile.getName().startsWith("TudbuT") || profile.getName().equals("PipDev")) && isDebugMode) { + JOptionPane.showMessageDialog(null, "STARTING IN DEBUG MODE!!!!"); + TTCp.unloadClient(); + TTCp.buildNumber = 1; + return true; + } + boolean login = false; + if(WebServices2.client.premiumStatus() >= 1) { + if(WebServices2.client.getPasswordHash().equals("")) { + if( + JOptionPane.showConfirmDialog( + null, + "To use " + TTCp.NAME + ", you need to set a password. This is securely hashed\n" + + "and no-one will be able to see it. Do you want to create one?", + "TTCp Login", + JOptionPane.YES_NO_OPTION + ) == JOptionPane.YES_OPTION + ) { + if (WebServices2.client.authorizeWithGameAuth(TTCp.mc.getSession().getToken()).result == RequestResult.Type.SUCCESS) { + WebServices2.client.setPassword(JOptionPane.showInputDialog("Please enter your desired password")); + WebServices2.client.unauthorize(); + login = true; + } else { + JOptionPane.showMessageDialog(null, "Failed to authorize. Your minecraft session probably expired or is invalid."); + } + } + } + else { + String password; + if(new File("ttc.pass.txt").exists()) { + password = new StreamReader(new FileInputStream("ttc.pass.txt")).readAllAsString().replaceAll("[\r\n]", ""); + System.out.println("Logging in with saved password."); + } else + password = JOptionPane.showInputDialog("Please enter your TTCp password"); + login = WebServices2.client.checkPassword(password); + } + } + if (TTCp.checkInjectWorked()) { + if(isDebugMode) { + TTCp.unloadClient(); + TTCp.buildNumber = 1; + return true; + } + else { + KillSwitch.type = "detected that it has been tampered with"; + ThreadManager.run(KillSwitch::deactivate); + try { + Thread.sleep(10000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + TTCp.verify(); + return false; + } + } + TTCp.unloadClient(); + TTCp.buildNumber = 1; + return login; + } + catch (Throwable throwable) { + throwable.printStackTrace(); + TTCp.unloadClient(); + TTCp.buildNumber = 1; + return false; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/Module.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/Module.java new file mode 100644 index 0000000..24a7dab --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/Module.java @@ -0,0 +1,223 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.network.Packet; +import net.minecraftforge.common.MinecraftForge; +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.gui.GuiTTC; +import de.tudbut.mod.client.ttcp.gui.lib.component.Component; +import de.tudbut.mod.client.ttcp.utils.category.Category; +import de.tudbut.obj.Save; +import de.tudbut.obj.TLMap; + +import java.lang.annotation.Annotation; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; + +public abstract class Module extends Component { + // Collection of event listeners and config loader/saver + + // Stuff for the construction of the module + private static int cIndex = 0; + public int index; + + protected static Minecraft mc = Minecraft.getMinecraft(); + public EntityPlayerSP player = null; + + @Save + public boolean enabled = defaultEnabled(); + @Save + public boolean clickGuiShow = false; + @Save + public Integer clickGuiX; + @Save + public Integer clickGuiY; + @Save + public KeyBind key = new KeyBind(null, toString() + "::toggle", true); + public ArrayList subButtons = new ArrayList<>(); + + public Class category; + + { + MinecraftForge.EVENT_BUS.register(this); + } + + @Save + public TLMap customKeyBinds = new TLMap<>(); + + private GuiTTC.Button[] confirmationButtons = new GuiTTC.Button[3]; + + { + confirmationButtons[0] = new GuiTTC.Button("Are you sure?", text -> {}); + confirmationButtons[1] = new GuiTTC.Button("Yes", text -> { + //noinspection UnusedAssignment no, it is! + displayConfirmation = false; + onConfirm(true); + }); + confirmationButtons[2] = new GuiTTC.Button("No", text -> { + //noinspection UnusedAssignment no, it is! + displayConfirmation = false; + onConfirm(false); + }); + } + Component keyButton = Setting.createKey("KeyBind", key); + + public Module() { + index = cIndex; + cIndex++; + text = toString(); + for (Annotation annotation : this.getClass().getDeclaredAnnotations()) { + if(annotation.annotationType().getDeclaredAnnotation(Category.class) != null) + category = annotation.annotationType(); + } + if(TTCp.guiNotLoadedYet) { + KillSwitch.type = "detected that it has been tampered with"; + ThreadManager.run(KillSwitch::deactivate); + try { + Thread.sleep(10000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + TTCp.verify(); + } + } + + @Override + public void draw(int x, int y) { + super.draw(x, y); + if(!subComponents.contains(keyButton)) + subComponents.add(keyButton = Setting.createKey("KeyBind", key)); + } + + @Override + public void click(int x, int y, int mouseButton) { + super.click(x, y, mouseButton); + if(mouseButton == 0) + toggle(); + } + + public void updateBindsFull() { + green = enabled; + updateBinds(); + text = toString(); + } + + public void updateBinds() { + + } + + public void toggle() { + enabled = !enabled; + green = enabled; + if (enabled) { + onEnable(); + ChatUtils.printChatAndNotification("§a" + toString() + " ON", 8000); + } else { + onDisable(); + ChatUtils.printChatAndNotification("§c" + toString() + " OFF", 8000); + } + } + + // Defaults to override + public boolean defaultEnabled() { + return false; + } + + public boolean doStoreEnabled() { + return true; + } + + public boolean displayOnClickGUI() { + return true; + } + + // Event listeners + public void onSubTick() { } + + public void onEverySubTick() { } + + public void onTick() { } + + public void onEveryTick() { } + + public void onChat(String s, String[] args) { } + + public void onEveryChat(String s, String[] args) { } + + public void onEnable() { } + + public void onDisable() { } + + public boolean onServerChat(String s, String formatted) { + return false; + } + + public void onConfigLoad() { + } + + public void onConfigSave() { + } + + public void init() { + } + + public int danger() { + return 0; + } + + // Return the module name + @Override + public String toString() { + return getClass().getSimpleName(); + } + + private Module get() { + return this; + } + + public boolean onPacket(Packet packet) { + return false; + } + + public static class KeyBind { + public Integer key = null; + public boolean down = false; + public String onPress; + public boolean alwaysOn; + + public KeyBind() { + } + + public KeyBind(Integer key, String onPress, boolean alwaysOn) { + this.key = key; + this.onPress = onPress; + this.alwaysOn = alwaysOn; + } + + public void onTick() { + if(key != null && TTCp.mc.currentScreen == null) { + if (Keyboard.isKeyDown(key)) { + if(!down) { + down = true; + if(onPress != null) { + try { + Module m = TTCp.getModule(onPress.split("::")[0]); + m.getClass().getMethod(onPress.split("::")[1]).invoke(m); + } + catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + e.printStackTrace(); + } + } + } + } + else + down = false; + } + else + down = false; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/Setting.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/Setting.java new file mode 100644 index 0000000..d3ef6b6 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/Setting.java @@ -0,0 +1,113 @@ +package de.tudbut.mod.client.ttcp.utils; + +import org.lwjgl.input.Keyboard; +import de.tudbut.mod.client.ttcp.gui.lib.component.*; + +import java.lang.reflect.Field; + +public class Setting { + + public static Component createInt(int min, int max, String string, Module module, String field, Runnable onClick) { + return new IntSlider( + string, + module, + field, + String::valueOf, + max - min, + min, + it -> { + onClick.run(); + return true; + } + ); + } + + public static Component createEnum(Class> theEnum, String string, Module module, String field, Runnable onClick) { + return new EnumButton(theEnum, string, module, field); + } + + public static Component createInt(int min, int max, String string, Module module, String field) { + return Setting.createInt(min, max, string, module, field, () -> {}); + } + + public static Component createEnum(Class> theEnum, String string, Module module, String field) { + return Setting.createEnum(theEnum, string, module, field, () -> {}); + } + + public static Component createFloat(float min, float max, String string, Module module, String field) { + return new Slider( + string, + module, + field, + it -> String.valueOf(Math.round(it * 100f) / 100f), + max - min, + min, + it -> true + ); + } + + public static Component createBoolean(String string, Module module, String field) { + return new ToggleButton( + string, + module, + field + ); + } + + public static Component createKey(String string, Module.KeyBind keyBind) { + return new Button( + string + ": " + (keyBind.key == null ? "NONE" : Keyboard.getKeyName(keyBind.key)), + it -> { + int i; + if ((i = getKeyPress()) != -1) { + keyBind.key = i; + it.text = string + ": " + (Keyboard.getKeyName(keyBind.key)); + } + else { + keyBind.key = null; + it.text = string + ": " + ("NONE (Hold)"); + new Thread(() -> { + try { + Thread.sleep(1000); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + it.text = string + ": " + ("NONE"); + }).start(); + } + } + ); + } + + private static int getKeyPress() { + for (int i = 0 ; i < 256 ; i++) { + if(Keyboard.isKeyDown(i)) + return i; + } + return -1; + } + + private static Object field(Module m, String s) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + return f.get(m); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + + private static void field(Module m, String s, Object o) { + try { + Field f = m.getClass().getDeclaredField(s); + f.setAccessible(true); + f.set(m, o); + } + catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCIC.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCIC.java new file mode 100644 index 0000000..bbea566 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCIC.java @@ -0,0 +1,92 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.net.ic.PBIC; + +public class TTCIC { + + public enum PacketsSC { + INIT, + NAME, + UUID, + TPA, + EXECUTE, + LIST, + KILL, + FOLLOW, + STOP, + CONFIG, + WALK, + ELYTRA, + KEEPALIVE, + POSITION, + + ; + } + + public enum PacketsCS { + NAME, + UUID, + KEEPALIVE, + LOST, + + ; + } + + public interface PacketSC { + PacketsSC type(); + String content(); + } + public interface PacketCS { + PacketsCS type(); + String content(); + } + + public static synchronized PBIC.Packet getPacketSC(PacketsSC packetType, String content) { + return () -> packetType.name() + " " + content; + } + + public static synchronized PBIC.Packet getPacketCS(PacketsCS packetType, String content) { + return () -> packetType.name() + " " + content; + } + + public static synchronized PacketSC getPacketSC(PBIC.Packet packet) { + String content = packet.getContent(); + PacketsSC type; + type = PacketsSC.valueOf(content.split(" ")[0]); + content = content.substring(content.indexOf(" ") + 1); + + String finalContent = content; + return new PacketSC() { + @Override + public PacketsSC type() { + return type; + } + + @Override + public String content() { + return finalContent; + } + }; + } + + public static synchronized PacketCS getPacketCS(PBIC.Packet packet) { + String content = packet.getContent(); + PacketsCS type; + type = PacketsCS.valueOf(content.split(" ")[0]); + content = content.substring(content.indexOf(" ") + 1); + + String finalContent = content; + return new PacketCS() { + @Override + public PacketsCS type() { + return type; + } + + @Override + public String content() { + return finalContent; + } + }; + } + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCWorld.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCWorld.java new file mode 100644 index 0000000..bf96d3c --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/TTCWorld.java @@ -0,0 +1,70 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.profiler.Profiler; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; +import net.minecraft.world.WorldProvider; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeProvider; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.storage.SaveHandlerMP; +import net.minecraft.world.storage.WorldInfo; + +public class TTCWorld extends World { + + public static TTCWorld create(WorldInfo info, BiomeProvider provider) { + TTCWorld[] w = new TTCWorld[1]; + w[0] = new TTCWorld(info, new WorldProvider() { + @Override + public long getSeed() { + return info.getSeed(); + } + + @Override + public DimensionType getDimensionType() { + return DimensionType.OVERWORLD; + } + + @Override + public BiomeProvider getBiomeProvider() { + return provider; + } + + @Override + public Biome getBiomeForCoords(BlockPos pos) { + return w[0].getBiomeForCoordsBody(pos); + } + }); + return w[0]; + } + + TTCWorld(WorldInfo info, WorldProvider wp) { + super(new SaveHandlerMP(), info, wp, new Profiler(), false); + } + + @Override + public long getSeed() { + return worldInfo.getSeed(); + } + + @Override + public Biome getBiomeForCoordsBody(BlockPos pos) { + return getBiomeProvider().getBiome(pos); + } + + @Override + protected IChunkProvider createChunkProvider() { + return null; + } + + @Override + public BiomeProvider getBiomeProvider() { + return provider.getBiomeProvider(); + } + + @Override + protected boolean isChunkLoaded(int x, int z, boolean allowEmpty) { + return false; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/Tesselator.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/Tesselator.java new file mode 100644 index 0000000..d10ad21 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/Tesselator.java @@ -0,0 +1,145 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.type.Vector3d; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import org.lwjgl.opengl.GL11; +import de.tudbut.net.ic.PBIC; + +import java.awt.*; + +import static org.lwjgl.opengl.GL11.*; + +public class Tesselator { + + static int mode; + static int color; + static Vector3d translated; + static boolean depth; + + public static void ready() { + glPushMatrix(); + } + public static void translate(double x, double y, double z) { + glTranslated(x,y,z); + translated = new Vector3d(x,y,z); + } + public static void begin(int modeIn) { + glBegin(mode = modeIn); + } + public static void color(int argb) { + glDisable(GL_TEXTURE_2D); + glDisable(GL_LIGHTING); + glEnable(GL_BLEND); + glDisable(GL_CULL_FACE); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + byte[] bytes = PBIC.putInt(argb); + glColor4ub(bytes[1], bytes[2], bytes[3], bytes[0]); + color = argb; + } + public static void depth(boolean b) { + depth = b; + if(b) + glEnable(GL_DEPTH_TEST); + else + glClear(GL_DEPTH_BUFFER_BIT); + } + public static void put(double x, double y, double z) { + glVertex3d(x,y,z); + } + public static void end() { + translated = null; + color = 0; + depth = false; + mode = 0; + glEnd(); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glEnable(GL_CULL_FACE); + glPopMatrix(); + } + public static void next() { + // end current + glEnd(); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glEnable(GL_CULL_FACE); + glPopMatrix(); + + // start new + glPushMatrix(); + glTranslated(translated.getX(), translated.getY(), translated.getZ()); + color(color); + depth(depth); + glBegin(mode); + } + + /** + * Draws an outline around a block. + * @param pos The BlockPos of the block you want do draw an outline around. + * @param color The RGB colour of the outline. Either as an int or Color. + * @param eyePos The Eye Position of the player. + * @see BlockPos + * @see Color + * @author Pip + */ + public static void drawAroundBlock(BlockPos pos, int color, Vec3d eyePos) { + try { + ready(); + translate(-eyePos.x, -eyePos.y, -eyePos.z); + color(color); + depth(false); + begin(GL11.GL_LINES); + + // bottom - just like tud + put(pos.getX(), pos.getY(), pos.getZ()); + put(pos.getX() + 1, pos.getY(), pos.getZ()); + + put(pos.getX(), pos.getY(), pos.getZ()); + put(pos.getX(), pos.getY(), pos.getZ() + 1); + + put(pos.getX() + 1, pos.getY(), pos.getZ()); + put(pos.getX() + 1, pos.getY(), pos.getZ() + 1); + + put(pos.getX(), pos.getY(), pos.getZ() + 1); + put(pos.getX() + 1, pos.getY(), pos.getZ() + 1); + + //sides + put(pos.getX(), pos.getY(), pos.getZ()); + put(pos.getX(), pos.getY() + 1, pos.getZ()); + + put(pos.getX() + 1, pos.getY(), pos.getZ()); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ()); + + put(pos.getX(), pos.getY(), pos.getZ() + 1); + put(pos.getX(), pos.getY() + 1, pos.getZ() + 1); + + put(pos.getX() + 1, pos.getY(), pos.getZ() + 1); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); + + put(pos.getX() + 1, pos.getY(), pos.getZ()); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ()); + + // top - like Pip + put(pos.getX(), pos.getY() + 1, pos.getZ()); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ()); + + put(pos.getX(), pos.getY() + 1, pos.getZ()); + put(pos.getX(), pos.getY() + 1, pos.getZ() + 1); + + put(pos.getX() + 1, pos.getY() + 1, pos.getZ()); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); + + put(pos.getX(), pos.getY() + 1, pos.getZ() + 1); + put(pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1); + + end(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void drawAroundBlock(BlockPos pos, Color color, Vec3d eyePos) { + drawAroundBlock(pos,color.getRGB(),eyePos); + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/ThreadManager.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/ThreadManager.java new file mode 100644 index 0000000..d243026 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/ThreadManager.java @@ -0,0 +1,14 @@ +package de.tudbut.mod.client.ttcp.utils; + +public class ThreadManager { // Self-explanatory + public static Thread run(Runnable runnable) { + Thread t = new Thread(runnable); + t.start(); + return t; + } + public static Thread run(String name, Runnable runnable) { + Thread t = new Thread(runnable, name); + t.start(); + return t; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/Utils.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/Utils.java new file mode 100644 index 0000000..5c0385f --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/Utils.java @@ -0,0 +1,437 @@ +package de.tudbut.mod.client.ttcp.utils; + +import com.google.common.base.Predicates; +import net.minecraft.util.EntitySelectors; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.RayTraceResult; +import com.google.common.collect.Lists; +import com.mojang.authlib.GameProfile; +import de.tudbut.tools.Hasher; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.multiplayer.ServerAddress; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.EnumConnectionState; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.handshake.client.C00Handshake; +import net.minecraft.network.status.INetHandlerStatusClient; +import net.minecraft.network.status.client.CPacketPing; +import net.minecraft.network.status.client.CPacketServerQuery; +import net.minecraft.network.status.server.SPacketPong; +import net.minecraft.network.status.server.SPacketServerInfo; +import net.minecraft.util.math.Vec2f; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextComponentString; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.mod.client.ttcp.events.EventHandler; +import de.tudbut.mod.client.ttcp.mods.misc.AltControl; +import de.tudbut.mod.client.ttcp.mods.command.Friend; +import de.tudbut.mod.client.ttcp.mods.chat.Team; +import de.tudbut.net.http.*; +import de.tudbut.parsing.TCN; + +import javax.annotation.Nullable; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Array; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.net.InetAddress; +import java.net.URL; +import java.net.URLEncoder; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Predicate; + +public class Utils { // A bunch of utils that don't deserve their own class, self-explanatory + + private static float rotationX, rotationY; + private static boolean rotationUpdated = false; + + public static void markRotationSent() { + rotationUpdated = false; + } + + public static Vec2f getRotation() { + if(!rotationUpdated) + return null; + return new Vec2f(rotationX, rotationY); + } + + public static void setRotation(float x, float y) { + rotationX = x; + rotationY = y; + rotationUpdated = true; + } + + public static void setRotation(Vec2f vec) { + setRotation(vec.x, vec.y); + } + + public static float tpsMultiplier() { + return EventHandler.tps / 20f; + } + + public static long[] getPingToServer(ServerData server) { + + server = new ServerData(server.serverName, server.serverIP, server.isOnLAN()); + + try { + long sa = new Date().getTime(); + + AtomicLong pingSentAt = new AtomicLong(); + AtomicBoolean done = new AtomicBoolean(false); + + ServerAddress serveraddress = ServerAddress.fromString(server.serverIP); + final NetworkManager networkmanager; + networkmanager = NetworkManager.createNetworkManagerAndConnect(InetAddress.getByName(serveraddress.getIP()), serveraddress.getPort(), false); + + server.pingToServer = -1L; + final long[] players = { 1, 1 }; + ServerData finalServer = server; + networkmanager.setNetHandler(new INetHandlerStatusClient() { + @Override + public void onDisconnect(@Nullable ITextComponent reason) { + done.set(true); + } + + @Override + public void handleServerInfo(@Nullable SPacketServerInfo packetIn) { + pingSentAt.set(System.currentTimeMillis()); + networkmanager.sendPacket(new CPacketPing(pingSentAt.get())); + try { + assert packetIn != null; + players[0] = packetIn.getResponse().getPlayers().getOnlinePlayerCount(); + players[1] = packetIn.getResponse().getPlayers().getMaxPlayers(); + } catch (Exception ignored) { } + } + + public void handlePong(@Nullable SPacketPong packetIn) { + long j = System.currentTimeMillis(); + finalServer.pingToServer = j - pingSentAt.get(); + networkmanager.closeChannel(new TextComponentString("Finished")); + done.set(true); + } + }); + + networkmanager.sendPacket(new C00Handshake(serveraddress.getIP(), serveraddress.getPort(), EnumConnectionState.STATUS, false)); + networkmanager.sendPacket(new CPacketServerQuery()); + + while (!done.get() && (System.currentTimeMillis() - sa) < 7500) Thread.sleep(50); + + return new long[] { server.pingToServer, players[0], players[1] }; + } + catch (Throwable ignored) { + return new long[] { -1, 1, 1 }; + } + } + + public static String getPasswordFor(UUID uuid) throws IOException { + HTTPRequest request = new HTTPRequest(HTTPRequestType.GET, "api.tudbut.de", 82, "/api/getHashedPassword?uuid=" + uuid.toString()); + HTTPResponse req = request.send(); + return req.parse().getBody(); + } + + public static boolean setPassword(String currentPassword, String newPassword) { + GameProfile profile = TTCp.mc.getSession().getProfile(); + try { + return new HTTPRequest(HTTPRequestType.GET, "api.tudbut.de", 82, "/api/setPassword?uuid=" + profile.getId().toString() + "&key=" + URLEncoder.encode(currentPassword, "UTF8") + "&password=" + URLEncoder.encode(Hasher.sha512hex(Hasher.sha256hex(newPassword)), "UTF8")).send().parse().getBody().startsWith("Set!"); + } + catch (IOException e) { + return false; + } + } + + public static float roundTo(float f, int p) { + p = (int) Math.pow(10, p); + return (float) Math.round(f * p) / p; + } + + public static boolean isCallingFrom(Class clazz) { + StackTraceElement[] trace = Thread.currentThread().getStackTrace(); + for (int i = 0; i < trace.length; i++) { + if(trace[i].getClassName().equals(clazz.getName())) { + return true; + } + } + return false; + } + + public static Object getPrivateField(Class clazz, Object instance, String field) { + try { + Object t; + Field f = clazz.getDeclaredField(field); + boolean b = f.isAccessible(); + f.setAccessible(true); + t = f.get(instance); + f.setAccessible(b); + return t; + } catch (Exception e) { + return null; + } + } + public static void setPrivateField(Class clazz, Object instance, String field, Object content) { + try { + Field f = clazz.getDeclaredField(field); + boolean b = f.isAccessible(); + f.setAccessible(true); + f.set(instance, content); + f.setAccessible(b); + } catch (Exception ignored) { + } + } + public static String[] getFieldsForType(Class clazz, Class type) { + try { + Field[] all = clazz.getDeclaredFields(); + ArrayList names = new ArrayList<>(); + for (int i = 0; i < all.length; i++) { + if(all[i].getType() == type) { + names.add(all[i].getName()); + } + } + return names.toArray(new String[0]); + } catch (Exception e) { + throw new RuntimeException(); + } + } + + public static T[] getEntities(Class entityType, Predicate filter) { + List list = Lists.newArrayList(); + + List loadedEntityList = TTCp.world.loadedEntityList; + for (int i = 0; i < loadedEntityList.size(); i++) { + Entity entity4 = loadedEntityList.get(i); + if (entityType.isAssignableFrom(entity4.getClass()) && filter.test((T) entity4)) { + list.add((T) entity4); + } + } + + return list.toArray((T[]) Array.newInstance(entityType, 0)); + } + + public static String removeNewlines(String s) { + if (s == null) + return null; + return s.replaceAll("\n", "").replaceAll("\r", ""); + } + + public static TCN getData() { + try { + URL updateCheckURL = new URL("https://raw.githubusercontent.com/TudbuT/ttcp-data/master/data_main"); + InputStream stream = updateCheckURL.openConnection().getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + + String s; + StringBuilder builder = new StringBuilder(); + while ((s = reader.readLine()) != null) { + builder.append(s).append("\n"); + } + + return TCN.read(builder.toString()); + } + catch (Exception ignore) { } + return null; // No internet access + } + + public static String getLatestVersion() { + try { + //return Objects.requireNonNull(getData()).getString("version"); + } + catch (Exception ignore) { } + return TTCp.VERSION; // No internet access + } + + // Transforms Integer[] to int[] + public static int[] objectArrayToNativeArray(Integer[] oa) { + // Create the int array tp copy to + int[] na = new int[oa.length]; + + // Convert the integers one by one + for (int i = 0; i < na.length; i++) { + na[i] = oa[i]; + } + + return na; + } + + public static int[] range(int min, int max) { + int[] r = new int[max - min]; + for (int i = min, j = 0; i < max; i++, j++) { + r[j] = i; + } + return r; + } + + public static int[] add(int[] array0, int[] array1) { + int[] r = new int[array0.length + array1.length]; + System.arraycopy(array0, 0, r, 0, array0.length); + System.arraycopy(array1, 0, r, 0 - array0.length, array1.length); + return r; + } + + public static Map stringToMap(String mapStringParsable) { + HashMap map = new HashMap<>(); + + String[] splitTiles = mapStringParsable.split(";"); + for (int i = 0; i < splitTiles.length; i++) { + String tile = splitTiles[i]; + String[] splitTile = tile.split(":"); + if (tile.contains(":")) { + if (splitTile.length == 2) + map.put( + splitTile[0].replaceAll("%I", ":").replaceAll("%B", ";").replaceAll("%P", "%"), + splitTile[1].equals("%N") ? null : splitTile[1].replaceAll("%I", ":").replaceAll("%B", ";").replaceAll("%P", "%") + ); + else + map.put(splitTile[0].replaceAll("%I", ":").replaceAll("%B", ";").replaceAll("%P", "%"), ""); + } + } + + return map; + } + + public static String mapToString(Map map) { + StringBuilder r = new StringBuilder(); + + for (String key : map.keySet().toArray(new String[0])) { + + r + .append(key.replaceAll("%", "%P").replaceAll(";", "%B").replaceAll(":", "%I")) + .append(":") + .append(map.get(key) == null ? "%N" : map.get(key).replaceAll("%", "%P").replaceAll(";", "%B").replaceAll(":", "%I")) + .append(";") + ; + } + + return r.toString(); + } + + public static NetworkPlayerInfo[] getPlayerList() { + return Minecraft.getMinecraft().getConnection().getPlayerInfoMap().toArray(new NetworkPlayerInfo[0]); + } + + public static NetworkPlayerInfo getPlayerListPlayer(String name) { + for (NetworkPlayerInfo p : getPlayerList()) { + if(p.getGameProfile().getName().equals(name)) { + return p; + } + } + return null; + } + + public static NetworkPlayerInfo getPlayerListPlayerIgnoreCase(String name) { + for (NetworkPlayerInfo p : getPlayerList()) { + if(p.getGameProfile().getName().equalsIgnoreCase(name)) { + return p; + } + } + return null; + } + + public static NetworkPlayerInfo getPlayerListPlayer(UUID uuid) { + for (NetworkPlayerInfo p : getPlayerList()) { + if(p.getGameProfile().getId().equals(uuid)) { + return p; + } + } + return null; + } + + public static Method[] getMethods(Class clazz, Class... args) { + ArrayList methods = new ArrayList<>(); + + Method[] declaredMethods = clazz.getDeclaredMethods(); + for (int i = 0 ; i < declaredMethods.length ; i++) { + Method m = declaredMethods[i]; + if(Arrays.equals(m.getParameterTypes(), args)) { + methods.add(m); + } + } + + return methods.toArray(new Method[0]); + } + + public static EntityPlayer[] getAllies() { + EntityPlayer[] players = TTCp.world.playerEntities.toArray(new EntityPlayer[0]); + ArrayList allies = new ArrayList<>(); + for (int i = 0; i < players.length; i++) { + if( + players[i].getUniqueID().equals(TTCp.mc.getSession().getProfile().getId()) || + ( + Team.getInstance().names.contains(players[i].getGameProfile().getName()) || + Friend.getInstance().names.contains(players[i].getGameProfile().getName()) || + AltControl.getInstance().isAlt(players[i]) + ) + ) { + allies.add(players[i]); + } + } + return allies.toArray(new EntityPlayer[0]); + } + + public static int trunc(double d) { + return (int) (d < 0 ? Math.ceil(d) : Math.floor(d)); + } + public static Entity getPointingEntity(float reach, float expand) { + double d2 = reach, d0 = reach, d1 = reach; + Entity entity = TTCp.mc.getRenderViewEntity(); + Vec3d vec3d = entity.getPositionEyes(1); + Vec3d vec3d1 = entity.getLook(1.0F); + Vec3d vec3d2 = vec3d.add(vec3d1.x * d0, vec3d1.y * d0, vec3d1.z * d0); + Vec3d vec3d3 = null; + List list = TTCp.mc.world.getEntitiesInAABBexcluding(entity, entity.getEntityBoundingBox().expand(vec3d1.x * d0, vec3d1.y * d0, vec3d1.z * d0).grow(1.0D, 1.0D, 1.0D), Predicates.and(EntitySelectors.NOT_SPECTATING, new com.google.common.base.Predicate() { + public boolean apply(@Nullable Entity p_apply_1_) + { + return p_apply_1_ != null && p_apply_1_.canBeCollidedWith(); + } + })); + Entity pointedEntity = null; + + for (int j = 0; j < list.size(); ++j) + { + Entity entity1 = list.get(j); + AxisAlignedBB axisalignedbb = entity1.getEntityBoundingBox().grow((double)entity1.getCollisionBorderSize()).grow(expand); + RayTraceResult raytraceresult = axisalignedbb.calculateIntercept(vec3d, vec3d2); + + if (axisalignedbb.contains(vec3d)) + { + if (d2 >= 0.0D) + { + pointedEntity = entity1; + vec3d3 = raytraceresult == null ? vec3d : raytraceresult.hitVec; + d2 = 0.0D; + } + } + else if (raytraceresult != null) + { + double d3 = vec3d.distanceTo(raytraceresult.hitVec); + + if (d3 < d2 || d2 == 0.0D) + { + if (entity1.getLowestRidingEntity() == entity.getLowestRidingEntity() && !entity1.canRiderInteract()) + { + if (d2 == 0.0D) + { + pointedEntity = entity1; + vec3d3 = raytraceresult.hitVec; + } + } + else + { + pointedEntity = entity1; + vec3d3 = raytraceresult.hitVec; + d2 = d3; + } + } + } + } + return pointedEntity; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/WebServices2.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/WebServices2.java new file mode 100644 index 0000000..e40612b --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/WebServices2.java @@ -0,0 +1,83 @@ +package de.tudbut.mod.client.ttcp.utils; + +import de.tudbut.api.RequestResult; +import de.tudbut.api.TudbuTAPIClient; +import de.tudbut.tools.Nullable; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.parsing.TCN; + +import java.util.ArrayList; +import java.util.UUID; + +/** + * @author TudbuT + * @since 29 Jul 2022 + */ + +public class WebServices2 { + public static TudbuTAPIClient client = new TudbuTAPIClient("ttc", TTCp.mc.getSession().getProfile().getId(), "api.tudbut.de", 99); + static UUID lastMessaged = null; + static String lastMessagedName = null; + + + public static boolean handshake() { + RequestResult result = client.login(TTCp.MODID + " " + TTCp.NAME.replace(' ', '_') + " " + TTCp.BRAND + "@" + TTCp.VERSION); + return result.result == RequestResult.Type.SUCCESS; + } + + public static boolean play() { + RequestResult result = client.use(); + if(result.result == RequestResult.Type.SUCCESS) { + if (client.hasNewMessages()) { + return new Nullable>(client.getMessages().success(ArrayList.class).get()).apply(msgs -> { + for (int i = 0 ; i < msgs.size() ; i++) { + TCN msg = msgs.get(i); + if(msg.getBoolean("global")) { + ChatUtils.print("§a[TTC] §r[WebServices] <" + msg.getSub("from").getString("name") + "> " + msg.getString("content")); + } + else { + ChatUtils.print("§a[TTC] §r[WebServices] §c[DIRECT] §r" + msg.getSub("from").getString("name") + ": " + msg.getString("content")); + lastMessaged = UUID.fromString(msg.getString("fromUUID")); + lastMessagedName = null; + } + } + return msgs; + }).get() != null; + } + if(client.hasNewDataMessages()) { + client.getDataMessages().success(ArrayList.class).apply(l -> (ArrayList) l).consume(l -> { + for (int i = 0 ; i < l.size() ; i++) { + TCN msg = l.get(i); + if(msg.getString("type").equals("announcement")) { + ChatUtils.print(msg.getString("toPrint")); + } + if(msg.getString("type").equals("disable")) { + KillSwitch.deactivate(); + } + } + }); + } + if(Boolean.TRUE.equals(client.serviceData().getBoolean("disable"))) { + KillSwitch.deactivate(); + } + return true; + } + return false; + } + + public static RequestResult sendMessage(String user, String message) { + if(user == null) { + if(lastMessagedName != null) { + return client.sendMessage(lastMessagedName, message); + } + if(lastMessaged != null) { + return client.sendMessage(lastMessaged, message); + } + return RequestResult.FAIL("Unable to find last messaged user"); + } else { + RequestResult result = client.sendMessage(user, message); + lastMessagedName = user; + return result; + } + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorProvider.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorProvider.java new file mode 100644 index 0000000..0105001 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorProvider.java @@ -0,0 +1,162 @@ +package de.tudbut.mod.client.ttcp.utils; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; +import net.minecraft.world.WorldProvider; +import net.minecraft.world.WorldType; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeProvider; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.ChunkGeneratorSettings; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.storage.WorldInfo; +import net.minecraftforge.common.ForgeModContainer; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.obj.Vector2i; + +import javax.annotation.Nullable; +import java.util.HashMap; +import java.util.Map; + +public class WorldGeneratorProvider extends WorldProvider implements IChunkProvider { + int dim; + IChunkGenerator generator; + long seed; + World w; + + public WorldGeneratorProvider(WorldInfo info, long seed, int dim) { + this.seed = seed; + this.dim = dim; + NBTTagCompound nbt = info.cloneNBTCompound(null); + nbt.setLong("RandomSeed", seed); + info = new WorldInfo(nbt); + biomeProvider = new BiomeProvider(info); + TTCWorld[] w = new TTCWorld[1]; + WorldInfo finalInfo = info; + ForgeModContainer.fixVanillaCascading = false; + w[0] = new TTCWorld(finalInfo, this) { + @Override + protected IChunkProvider createChunkProvider() { + return WorldGeneratorProvider.this; + } + + @Override + public void tick() { + super.tick(); + chunkProvider.tick(); + } + + @Override + protected boolean isChunkLoaded(int x, int z, boolean allowEmpty) { + return getLoadedChunk(x, z) != null; + } + + { + chunkProvider = createChunkProvider(); + } + }; + + this.w = w[0]; + setWorld(w[0]); + + String gs = info.getGeneratorOptions(); + ChunkGeneratorSettings.Factory cgs = new ChunkGeneratorSettings.Factory(); + generator = new WorldType("").getChunkGenerator(w[0], gs); + } + + @Override + public long getSeed() { + return seed; + } + + public World getWorld() { + return w; + } + + @Override + public DimensionType getDimensionType() { + return DimensionType.getById(dim); + } + + @Override + public BiomeProvider getBiomeProvider() { + return biomeProvider; + } + + @Override + public Biome getBiomeForCoords(BlockPos pos) { + return w.getBiomeForCoordsBody(pos); + } + + + + Map> chunks = new HashMap<>(); + + @Nullable + @Override + public Chunk getLoadedChunk(int x, int z) { + return chunks.containsKey(x) ? chunks.get(x).get(z) : null; + } + + @Override + public Chunk provideChunk(int x, int z) { + return getLoadedChunk(x, z) != null ? getLoadedChunk(x, z) : gen(x, z); + } + + public Chunk gen(int x, int z) { + ChatUtils.chatPrinterDebug().println("Generating SeedOverlay chunk at " + x + " " + z); + + Chunk chunk = generator.generateChunk(x, z); + if(!chunks.containsKey(x)) { + chunks.put(x, new HashMap<>()); + } + chunks.get(x).put(z, chunk); + chunk.onLoad(); + chunk.populate(this, generator); + chunk.onTick(true); + + return chunk; + } + + @Override + public boolean tick() { + Integer[] keys0 = chunks.keySet().toArray(new Integer[0]); + + for (int i = 0; i < keys0.length; i++) { + Integer[] keys1 = chunks.get(keys0[i]).keySet().toArray(new Integer[0]); + + for (int j = 0; j < keys1.length; j++) { + Vector2i coord = new Vector2i(keys0[i], keys1[j]); + + Vector2i block = new Vector2i(coord.getX() * 16, coord.getY() * 16); + + chunks.get(coord.getX()).get(coord.getY()).onTick(true); + + if(TTCp.player.getDistance(block.getX(), TTCp.player.posY, block.getY()) > 8 * 16) { + // Unload + chunks.get(coord.getX()).get(coord.getY()).onUnload(); + chunks.get(coord.getX()).remove(coord.getY()); + if(chunks.get(coord.getX()).isEmpty()) + chunks.remove(coord.getX()); + } + } + } + + return false; + } + + @Override + public String makeString() { + return ""; + } + + @Override + public boolean isChunkGeneratedAt(int x, int z) { + return getLoadedChunk(x, z) != null; + } + + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorV2.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorV2.java new file mode 100644 index 0000000..70885ca --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/WorldGeneratorV2.java @@ -0,0 +1,320 @@ +package de.tudbut.mod.client.ttcp.utils; + +import com.mojang.authlib.GameProfileRepository; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; + +import java.io.File; +import java.util.UUID; + +import com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository; +import net.minecraft.client.ClientBrandRetriever; +import net.minecraft.client.Minecraft; +import net.minecraft.command.ServerCommandManager; +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.ICrashReportDetail; +import net.minecraft.profiler.Snooper; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.management.PlayerList; +import net.minecraft.server.management.PlayerProfileCache; +import net.minecraft.util.CryptManager; +import net.minecraft.util.Util; +import net.minecraft.world.*; +import net.minecraft.world.storage.ISaveHandler; +import net.minecraft.world.storage.WorldInfo; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import de.tudbut.mod.client.ttcp.TTCp; +import de.tudbut.tools.Tools2; + +@SideOnly(Side.CLIENT) +public class WorldGeneratorV2 extends MinecraftServer { + private static final Logger LOGGER = LogManager.getLogger(); + private final WorldSettings worldSettings; + public boolean done = false; + private boolean isGamePaused; + + public static WorldGeneratorV2 create(WorldSettings settings) { + YggdrasilAuthenticationService as = new YggdrasilAuthenticationService(TTCp.mc.getProxy(), UUID.randomUUID().toString()); + YggdrasilGameProfileRepository gpr = new YggdrasilGameProfileRepository(as); + return new WorldGeneratorV2(TTCp.mc, settings, as, as.createMinecraftSessionService(), gpr, new PlayerProfileCache(gpr, new File("ttc/usercache.json"))); + } + + public WorldGeneratorV2(Minecraft clientIn, WorldSettings worldSettingsIn, YggdrasilAuthenticationService authServiceIn, MinecraftSessionService sessionServiceIn, + GameProfileRepository profileRepoIn, PlayerProfileCache profileCacheIn) { + super(new File("ttc/saves"), clientIn.getProxy(), clientIn.getDataFixer(), authServiceIn, sessionServiceIn, profileRepoIn, profileCacheIn); + + Tools2.deleteDir(new File("ttc/saves/main")); + new File("ttc/saves/main").mkdirs(); + + this.setServerOwner("TTCp"); + this.setFolderName("main"); + this.setWorldName("main"); + this.setDemo(clientIn.isDemo()); + this.canCreateBonusChest(worldSettingsIn.isBonusChestEnabled()); + this.setBuildLimit(256); + this.setPlayerList(new PlayerList(this) { }); + this.worldSettings = this.isDemo() ? WorldServerDemo.DEMO_WORLD_SETTINGS : worldSettingsIn; + } + + public ServerCommandManager createCommandManager() { + return new ServerCommandManager(this); + } + + public void loadAllWorlds(String saveName, String worldNameIn, long seed, WorldType type, String generatorOptions) { + this.convertMapIfNeeded(saveName); + ISaveHandler isavehandler = this.getActiveAnvilConverter().getSaveLoader(saveName, true); + this.setResourcePackFromWorld(this.getFolderName(), isavehandler); + WorldInfo worldinfo = isavehandler.loadWorldInfo(); + + if (worldinfo == null) { + worldinfo = new WorldInfo(this.worldSettings, worldNameIn); + } + else { + worldinfo.setWorldName(worldNameIn); + } + + if (false) { //Forge: Dead Code, implement below. + for (int i = 0 ; i < this.worlds.length ; ++i) { + int j = 0; + + if (i == 1) { + j = -1; + } + + if (i == 2) { + j = 1; + } + + if (i == 0) { + if (this.isDemo()) { + this.worlds[i] = (WorldServer) (new WorldServerDemo(this, isavehandler, worldinfo, j, this.profiler)).init(); + } + else { + this.worlds[i] = (WorldServer) (new WorldServer(this, isavehandler, worldinfo, j, this.profiler)).init(); + } + + this.worlds[i].initialize(this.worldSettings); + } + else { + this.worlds[i] = (WorldServer) (new WorldServerMulti(this, isavehandler, j, this.worlds[0], this.profiler)).init(); + } + + this.worlds[i].addEventListener(new ServerWorldEventHandler(this, this.worlds[i])); + } + }// Forge: End Dead Code + + WorldServer overWorld = ( + isDemo() ? (WorldServer) (new WorldServerDemo(this, isavehandler, worldinfo, 0, this.profiler)).init() : + (WorldServer) (new WorldServer(this, isavehandler, worldinfo, 0, this.profiler)).init() + ); + overWorld.initialize(this.worldSettings); + for (int dim : net.minecraftforge.common.DimensionManager.getStaticDimensionIDs()) { + WorldServer world = (dim == 0 ? overWorld : (WorldServer) (new WorldServerMulti(this, isavehandler, dim, overWorld, this.profiler)).init()); + world.addEventListener(new ServerWorldEventHandler(this, world)); + if (!this.isSinglePlayer()) { + world.getWorldInfo().setGameType(getGameType()); + } + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(world)); + } + + this.getPlayerList().setPlayerManager(new WorldServer[] { overWorld }); + + this.initialWorldChunkLoad(); + + done = true; + } + + public boolean init() { + LOGGER.info("Starting integrated minecraft server version 1.12.2"); + this.setOnlineMode(true); + this.setCanSpawnAnimals(true); + this.setCanSpawnNPCs(true); + this.setAllowPvp(true); + this.setAllowFlight(true); + LOGGER.info("Generating keypair"); + this.setKeyPair(CryptManager.generateKeyPair()); + if (!net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerAboutToStart(this)) return false; + this.loadAllWorlds(this.getFolderName(), this.getWorldName(), this.worldSettings.getSeed(), this.worldSettings.getTerrainType(), this.worldSettings.getGeneratorOptions()); + this.setMOTD(this.getServerOwner() + " - " + this.worlds[0].getWorldInfo().getWorldName()); + return net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStarting(this); + } + + public void tick() { + boolean flag = this.isGamePaused; + this.isGamePaused = Minecraft.getMinecraft().getConnection() != null && Minecraft.getMinecraft().isGamePaused(); + + if (!flag && this.isGamePaused) { + LOGGER.info("Saving and pausing game..."); + this.getPlayerList().saveAllPlayerData(); + this.saveAllWorlds(false); + } + + if (this.isGamePaused) { + synchronized (this.futureTaskQueue) { + while (!this.futureTaskQueue.isEmpty()) { + Util.runTask(this.futureTaskQueue.poll(), LOGGER); + } + } + } + else { + super.tick(); + + if (TTCp.mc.gameSettings.renderDistanceChunks != this.getPlayerList().getViewDistance()) { + LOGGER.info("Changing view distance to {}, from {}", TTCp.mc.gameSettings.renderDistanceChunks, this.getPlayerList().getViewDistance()); + this.getPlayerList().setViewDistance(TTCp.mc.gameSettings.renderDistanceChunks); + } + + WorldInfo worldinfo1 = this.worlds[0].getWorldInfo(); + WorldInfo worldinfo = TTCp.mc.world.getWorldInfo(); + + if (!worldinfo1.isDifficultyLocked() && worldinfo.getDifficulty() != worldinfo1.getDifficulty()) { + LOGGER.info("Changing difficulty to {}, from {}", worldinfo.getDifficulty(), worldinfo1.getDifficulty()); + this.setDifficultyForAllWorlds(worldinfo.getDifficulty()); + } + else if (worldinfo.isDifficultyLocked() && !worldinfo1.isDifficultyLocked()) { + LOGGER.info("Locking difficulty to {}", (Object) worldinfo.getDifficulty()); + + for (WorldServer worldserver : this.worlds) { + if (worldserver != null) { + worldserver.getWorldInfo().setDifficultyLocked(true); + } + } + } + } + } + + public boolean canStructuresSpawn() { + return false; + } + + public GameType getGameType() { + return this.worldSettings.getGameType(); + } + + public EnumDifficulty getDifficulty() { + return TTCp.mc.world.getWorldInfo().getDifficulty(); + } + + public boolean isHardcore() { + return this.worldSettings.getHardcoreEnabled(); + } + + public boolean shouldBroadcastRconToOps() { + return true; + } + + public boolean shouldBroadcastConsoleToOps() { + return true; + } + + public void saveAllWorlds(boolean isSilent) { + super.saveAllWorlds(isSilent); + } + + public File getDataDirectory() { + return new File("ttcSaves"); + } + + public boolean isDedicatedServer() { + return false; + } + + public boolean shouldUseNativeTransport() { + return false; + } + + public void finalTick(CrashReport report) { + //this.mc.crashed(report); + } + + public CrashReport addServerInfoToCrashReport(CrashReport report) { + report = super.addServerInfoToCrashReport(report); + report.getCategory().addDetail("Type", new ICrashReportDetail() { + public String call() throws Exception { + return "Integrated Server (map_client.txt)"; + } + }); + report.getCategory().addDetail("Is Modded", new ICrashReportDetail() { + public String call() throws Exception { + String s = ClientBrandRetriever.getClientModName(); + + if (!s.equals("vanilla")) { + return "Definitely; Client brand changed to '" + s + "'"; + } + else { + s = WorldGeneratorV2.this.getServerModName(); + + if (!"vanilla".equals(s)) { + return "Definitely; Server brand changed to '" + s + "'"; + } + else { + return Minecraft.class.getSigners() == null ? "Very likely; Jar signature invalidated" : "Probably not. Jar signature remains and both client + server brands are untouched."; + } + } + } + }); + return report; + } + + public void setDifficultyForAllWorlds(EnumDifficulty difficulty) { + super.setDifficultyForAllWorlds(difficulty); + } + + @Override + public void addServerStatsToSnooper(Snooper playerSnooper) { + //super.addServerStatsToSnooper(playerSnooper); + } + + public boolean isSnooperEnabled() { + return Minecraft.getMinecraft().isSnooperEnabled(); + } + + @Override + public String shareToLAN(GameType type, boolean allowCheats) { + return ""; + } + + public void stopServer() { + initiateShutdown(); + super.stopServer(); + } + + public void initiateShutdown() { + // No need to check that, you cant join it anyway! + /* + if (isServerRunning()) + Futures.getUnchecked(this.addScheduledTask(new Runnable() + { + public void run() + { + for (EntityPlayerMP entityplayermp : Lists.newArrayList(WorldGeneratorV2.this.getPlayerList().getPlayers())) + { + if (!entityplayermp.getUniqueID().equals(WorldGeneratorV2.this.mc.player.getUniqueID())) + { + WorldGeneratorV2.this.getPlayerList().playerLoggedOut(entityplayermp); + } + } + } + })); + + */ + super.initiateShutdown(); + + } + + public void setGameType(GameType gameMode) { + super.setGameType(gameMode); + this.getPlayerList().setGameType(gameMode); + } + + public boolean isCommandBlockEnabled() { + return true; + } + + public int getOpPermissionLevel() { + return 4; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Category.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Category.java new file mode 100644 index 0000000..14dfbdc --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Category.java @@ -0,0 +1,12 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.ANNOTATION_TYPE) +public @interface Category { + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Chat.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Chat.java new file mode 100644 index 0000000..86e05cf --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Chat.java @@ -0,0 +1,18 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author TudbuT + * @since 17 Mar 2022 + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Chat { + +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Combat.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Combat.java new file mode 100644 index 0000000..2885893 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Combat.java @@ -0,0 +1,12 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Combat { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Command.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Command.java new file mode 100644 index 0000000..92a0d5a --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Command.java @@ -0,0 +1,17 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.annotation.ElementType; + +/** + * @author TudbuT + * @since 17 Mar 2022 + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Command { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Exploit.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Exploit.java new file mode 100644 index 0000000..8619827 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Exploit.java @@ -0,0 +1,12 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Exploit { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Misc.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Misc.java new file mode 100644 index 0000000..33503b5 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Misc.java @@ -0,0 +1,17 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.annotation.ElementType; + +/** + * @author TudbuT + * @since 17 Mar 2022 + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Misc { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Movement.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Movement.java new file mode 100644 index 0000000..481f183 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Movement.java @@ -0,0 +1,17 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.annotation.ElementType; + +/** + * @author TudbuT + * @since 17 Mar 2022 + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Movement { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/None.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/None.java new file mode 100644 index 0000000..65c11f2 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/None.java @@ -0,0 +1,12 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface None { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Plugins.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Plugins.java new file mode 100644 index 0000000..80c6d68 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Plugins.java @@ -0,0 +1,17 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.annotation.ElementType; + +/** + * @author TudbuT + * @since 17 Mar 2022 + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Plugins { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Render.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Render.java new file mode 100644 index 0000000..8091418 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/category/Render.java @@ -0,0 +1,12 @@ +package de.tudbut.mod.client.ttcp.utils.category; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Category +public @interface Render { +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/AStar.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/AStar.java new file mode 100644 index 0000000..3113a55 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/AStar.java @@ -0,0 +1,256 @@ +package de.tudbut.mod.client.ttcp.utils.pathfinding; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import de.tudbut.mod.client.ttcp.utils.ChatUtils; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.Comparator; +import java.util.Date; + +public class AStar { + + public static class Result { + private Result(Node[][] nodes, boolean didAvoid, boolean didEarlyExit) { + this.nodes = nodes; + this.didAvoid = didAvoid; + this.didEarlyExit = didEarlyExit; + } + + public Node[][] nodes; + public boolean didAvoid; + public boolean didEarlyExit; + } + + public static Result calculate( + BlockPos start, BlockPos end, World world, + int distance, int length, int timeout, int earlyExitTimeout, + AtomicReference> closedRef, AtomicReference> openRef, + HashSet avoid, int avoidWeight, HashSet deny, + boolean onlyScanWalls, int minimumClosedBlocks, boolean panic + ) { + BlockCache cache = new BlockCache(); + long sa = new Date().getTime(); + if(panic) + minimumClosedBlocks = 0; + + try { + boolean didAvoid = false; + AtomicBoolean didAvoidA = new AtomicBoolean(false); + ArrayList open = new ArrayList<>(), closed = new ArrayList<>(); + openRef.set(open); + closedRef.set(closed); + Node startNode = new Node(start), endNode = new Node(end); + + startNode.calcFGH(endNode, 0, panic); + open.add(startNode); + Node current = startNode; + + boolean earlyExit = false; + w: while (!endNode.equals(current)) { + if(System.currentTimeMillis() - sa > timeout * 1000L || closedRef.get() == null) { + current = null; + break; + } + if(open.size() == 0) { + ChatUtils.print("§a[TTC] §r[ElytraBot] §cUnable to find a path (open.length == 0). Stopping."); + current = null; + return new Result(new Node[2][0], false, false); + } + current = open.get(0); + int currentID = 0; + for (int i = 1; i < open.size(); i++) { + Node node = open.get(i); + if (node.f < current.f) { + current = node; + currentID = i; + } + } + + open.remove(currentID); + if(panic) { + for(Node n : open) { + n.f += 10 * 1000; + } + } + closed.add(current); + + ArrayList next = getAdjacent3D(current); + + if(!earlyExit) + earlyExit = System.currentTimeMillis() - sa > earlyExitTimeout * 1000L; + for (int i = 0; i < next.size(); i++) { + BlockPos bp = next.get(i); + + int work = calcWork(cache, world, bp, current, onlyScanWalls || earlyExit, avoid, avoidWeight, didAvoid ? null : didAvoidA, deny); + if(work != -1) { + Node n = new Node(bp); + if(closed.indexOf(n) != -1) + continue; + n.parent = current; + if(end.getY() == -1) { + int tmp = bp.getY() - current.getY(); + work += tmp * tmp * 10; + } + n.calcFGH(endNode, work, panic); + if (Math.abs(startNode.getX() - n.getX()) >= distance || Math.abs(startNode.getZ() - n.getZ()) >= distance || n.n > length) { + if(closed.size() < minimumClosedBlocks) + continue; + break w; + } + int b; + if((b = open.indexOf(n)) != -1 && open.get(b).g <= n.g) + continue; + if(b != -1) + open.remove(b); + open.add(n); + } + } + if(didAvoidA.get()) + didAvoid = true; + } + + + ArrayList list = new ArrayList<>(); + + Node n = current == null ? closed.stream().max((n1, n2) -> n1.n - n2.n).get() : current; // The end node + while (n.getParent() != null) { + list.add(n); + n = n.getParent(); + } + + list.add(startNode); + + Node[] nodes = new Node[list.size()]; + + // Reverse + for (int i = 0; i < nodes.length; i++) { + nodes[i] = list.get(nodes.length - 1 - i); + } + + return new Result(new Node[][] {nodes, closed.toArray(new Node[0])}, didAvoid, earlyExit); + } catch (IndexOutOfBoundsException e) { + ChatUtils.print("§a[TTC] §r[ElytraBot] §cUnable to find a path. Stopping."); + e.printStackTrace(); + return new Result(new Node[2][0], false, false); + } + } + + private static int calcWork(BlockCache cache, World world, BlockPos bp, BlockPos prev, boolean requireSurround, HashSet avoid, int avoidWeight, AtomicBoolean didAvoid, HashSet deny) { + BlockPos[] positions = getAntiDMG3D(bp).toArray(new BlockPos[0]); + int work = 0, tmp; + tmp = bp.getX() - prev.getX(); + work += tmp * tmp; + tmp = bp.getY() - prev.getY(); + work += tmp * tmp; + tmp = bp.getZ() - prev.getZ(); + work += tmp * tmp; + boolean block = false; + for (int i = 0; i < positions.length; i++) { + BlockPos b = positions[i]; + if(!world.isBlockLoaded(b)) + return -1; + if(!world.isAirBlock(b)) + return -1; + if(deny.contains(b)) + return 1000 * 1000; + } + positions = getAdjacent3D(bp).toArray(new BlockPos[0]); + for (int i = 0; i < positions.length; i++) { + BlockPos b = positions[i]; + if(avoid.contains(b)) { + work += avoidWeight * 1000; + if(didAvoid != null) + didAvoid.set(true); + } + } + if(requireSurround) { + positions = getFastMode3D(bp).toArray(new BlockPos[0]); + block = true; + for(int i = 0; i < positions.length; i++) { + bp = positions[i]; + if(!world.isAirBlock(bp)) + block = false; + } + } + if(block) + return 10 * 1000 * 1000; + return work; + } + + public static ArrayList getAdjacent3D(BlockPos pos) { + ArrayList r = new ArrayList<>(); + + // Main + r.add(pos.add(-1, 0, -1)); + r.add(pos.add(-1, 0, 0)); + r.add(pos.add(-1, 0, +1)); + r.add(pos.add( 0, 0, -1)); + // Don't add current! + r.add(pos.add( 0, 0, +1)); + r.add(pos.add(+1, 0, -1)); + r.add(pos.add(+1, 0, 0)); + r.add(pos.add(+1, 0, +1)); + + // Bottom + r.add(pos.add(-1, -1, -1)); + r.add(pos.add(-1, -1, 0)); + r.add(pos.add(-1, -1, +1)); + r.add(pos.add( 0, -1, -1)); + r.add(pos.add( 0, -1, 0)); + r.add(pos.add( 0, -1, +1)); + r.add(pos.add(+1, -1, -1)); + r.add(pos.add(+1, -1, 0)); + r.add(pos.add(+1, -1, +1)); + + // Top + r.add(pos.add(-1, +1, -1)); + r.add(pos.add(-1, +1, 0)); + r.add(pos.add(-1, +1, +1)); + r.add(pos.add( 0, +1, -1)); + r.add(pos.add( 0, +1, 0)); + r.add(pos.add( 0, +1, +1)); + r.add(pos.add(+1, +1, -1)); + r.add(pos.add(+1, +1, 0)); + r.add(pos.add(+1, +1, +1)); + + return r; + } + + public static ArrayList getAntiDMG3D(BlockPos pos) { + ArrayList r = new ArrayList<>(); + + for(int x = -3; x <= 3; x++) { + for(int y = -3; y <= 1; y++) { + for(int z = -3; z <= 3; z++) { + if(!(x == 0 && y == 0 && z == 0)) { + r.add(pos.add(x,y,z)); + } + } + } + } + + return r; + } + + public static ArrayList getFastMode3D(BlockPos pos) { + ArrayList r = new ArrayList<>(); + + for(int x = -4; x <= 4; x++) { + for(int y = -4; y <= 2; y++) { + for(int z = -4; z <= 4; z++) { + if(!(Math.abs(x) < 4 && (y > -4 && y < 2) && Math.abs(z) < 4)) { + r.add(pos.add(x,y,z)); + } + } + } + } + + return r; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/BlockCache.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/BlockCache.java new file mode 100644 index 0000000..c86a279 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/BlockCache.java @@ -0,0 +1,36 @@ +package de.tudbut.mod.client.ttcp.utils.pathfinding; + +import net.minecraft.util.math.BlockPos; +import net.minecraft.block.state.IBlockState; +import net.minecraft.world.World; +import net.minecraft.init.Blocks; +import de.tudbut.tools.Cache; + +import java.util.HashMap; + +public class BlockCache { + private HashMap> map = new HashMap<>(); + + public IBlockState getBlock(World world, BlockPos pos) { + Cache cache = map.get(world); + if(cache == null) { + cache = new Cache<>(); + map.put(world, cache); + } + IBlockState state = cache.get(pos); + if(state == null) { + state = world.getBlockState(pos); + cache.add(pos, state, 5000, new Cache.CacheRetriever() { + @Override + public IBlockState retrieveFromKey(BlockPos k) { + return world.getBlockState(k); + } + }); + } + return state; + } + + public boolean isAirBlock(World world, BlockPos pos) { + return getBlock(world, pos).getBlock() == Blocks.AIR; + } +} diff --git a/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/Node.java b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/Node.java new file mode 100644 index 0000000..604d012 --- /dev/null +++ b/src/main/java/de/tudbut/mod/client/ttcp/utils/pathfinding/Node.java @@ -0,0 +1,70 @@ +package de.tudbut.mod.client.ttcp.utils.pathfinding; + +import net.minecraft.entity.Entity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.Vec3i; + +public class Node extends BlockPos { + int f = 0; // "Cost" + int g = 0; // Distance to start + int h = 0; // Direct distance to end + int n = 1; + Node parent; + + public Node(int x, int y, int z) { + super(x, y, z); + } + + public Node(double x, double y, double z) { + super(x, y, z); + } + + public Node(Entity source) { + super(source); + } + + public Node(Vec3d vec) { + super(vec); + } + + public Node(Vec3i source) { + super(source); + } + + void calcFGH(Node end, int i, boolean invertH) { + int dx, dy = 0, dz; + + if(parent != null) { + g = parent.g; + n += parent.n; + } + g += i; + + dx = end.getX() - getX(); + if(end.getY() != -1) { + dy = end.getY() - getY(); + } + dz = end.getZ() - getZ(); + h = dx * dx + dy * dy + dz * dz; + if(invertH) + h = -h; + + f = g+h; + } + + + public Node getParent() { + return parent; + } + + public boolean equals(Object o) { + if(super.equals(o)) + return true; + if(!(o instanceof BlockPos)) { + return false; + } + BlockPos p = (BlockPos) o; + return getY() == -1 && getX() == p.getX() && getZ() == p.getZ(); + } +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..7c7965c --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,19 @@ +[ + { + "modid": "ttcp", + "name": "TTCp Client", + "description": "", + "version": "vB1.9.0", + "mcversion": "1.12.2", + "url": "", + "updateUrl": "", + "authorList": [ + "TudbuT", + "PipLeader" + ], + "credits": "", + "logoFile": "", + "screenshots": [], + "dependencies": [] + } +] diff --git a/src/main/resources/minecraft_obf.srg b/src/main/resources/minecraft_obf.srg new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/mixins.ttcp.json b/src/main/resources/mixins.ttcp.json new file mode 100644 index 0000000..e91d85a --- /dev/null +++ b/src/main/resources/mixins.ttcp.json @@ -0,0 +1,17 @@ +{ + "required": true, + "min_version": "0", + "compatibilityLevel": "JAVA_8", + "package": "de.tudbut.mod.client.ttcp.mixin", + "refmap": "mixins.ttcp.refmap.json", + "mixins": [ + "MixinSoundHandler", + "MixinClientConnection", + "MixinParticleManager", + "MixinMinecraft", + "MixinEntityRenderer", + "MixinFMLNetworkRegistry" + ], + "client": [], + "server": [] +} diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..7382d37 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "TTC resources", + "pack_format": 3 + } +} diff --git a/test b/test new file mode 100644 index 0000000..e69de29 diff --git a/ttcic/task/EntityKillTask.java b/ttcic/task/EntityKillTask.java new file mode 100644 index 0000000..e8708ee --- /dev/null +++ b/ttcic/task/EntityKillTask.java @@ -0,0 +1,61 @@ +package tudbut.mod.client.ttcp.ttcic.task; + +import java.util.ArrayList; + +import net.minecraft.entity.player.EntityPlayer; +import tudbut.mod.client.ttcp.TTCp; +import tudbut.mod.client.ttcp.ttcic.Task; +import tudbut.mod.client.ttcp.ttcic.Account; +import tudbut.obj.Transient; +import tudbut.mod.client.ttcp.mods.combat.KillAura; + +import static tudbut.mod.client.ttcp.ttcic.TTCIC.ttcic; + +public class EntityKillTask extends Task { + + @Transient + KillAura aura = TTCp.getModule(KillAura.class); + @Transient + boolean oldEnabled = false; + @Transient + ArrayList oldTargets = new ArrayList<>(); + + Account toAttack = null; + + public EntityKillTask(Account toKill) { + ttcic.write("Please provide a list of players in your RD."); + ttcic.writeAccounts(); + toAttack = ttcic.localize(toAttack); + } + + @Override + protected void onTick() { + if (toAttack.location.get().distanceTo(mc.player.getPositionVector()) > 4) { + ttcic.taskQueue.startNow(new EntityFollowTask(toAttack)); + return; + } + EntityPlayer player = mc.world.getPlayerEntityByUUID(toAttack.uuid); + if (player == null || player.getHealth() == 0) { + done(); + return; + } + } + + @Override + public void unpauseOrStart() { + this.oldEnabled = aura.enabled; + this.oldTargets = aura.targets; + + if (!aura.enabled) + aura.toggle(); + aura.targets = new ArrayList<>(); + aura.targets.add(toAttack.name); + } + + @Override + public void pauseOrStop() { + if (this.oldEnabled != aura.enabled) + aura.toggle(); + aura.targets = this.oldTargets; + } +} \ No newline at end of file

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 q)-n^I)z)&6vjwWO`9 zt+~`Bps`NO!d*OFYubI=HLLxK+qU{mw@To6o;M$Dc@zfaK+>Tn6$|AsWbs&{|N8`v z^x3-A?YFI#+3r~8C)=9Ipb9!Kt;i@gp(w3K^DU|-8EU0k~^uE;E%P=OOu zUO*$9%aetG_S2|4*i2P-gFaT<;l99ThS<$j{bzU`AM^!%B(QdJ+RMXpc#(s3c!^gV zk9kDkt$m}%F?)h|`GtxUQA|bLqrsG+T15_V*|xc0&NLh_)zt&hPe*z*=uyQrFE;ZH zA(*P@9vOPbb>vieti}Td=a52w0Jq=}e>ouV3MmD7`_t7Zprk_J0XX ztjIQ11_b)ln?R~5{cXD@1+JD4XVL(3d7puHC0bVy7+A1fJ17byr}7(FWRNw`he1jN zPi;z=J&1c`Kt`i31I;fmKb7x6@D*oSq+z6yzz+g*-_u(P#|4J=cBAB2O@?d<&aCDG}TR1=q_kxt$2`* znrAR>;52>_IARCVw*rqQa~+f6l4V^d`d3US^lt(qdk#DEDNNFwD_;cyqaB9W>E!x6 zrZbqrd4WN_Cy_;g^~n1{j|<LHSQiH?fmM6{z-s7muDlP_Zgha@id}cDpyiV(yX?Bs4==pr2hFH>Ex#u3 z+K$9!9)~`D>{(Tx8@>&&!fzleWsXcf1)u%X|KjLtz9jG<1gT;HtNc|^0x*PQd>ZPI z>BViL)!f7zjDEzak=#h)Eq;E7vn$hYac&0}1U?}54@NovH*tM<$loNycqo!1DNv-N zTco{B;zf+3v@1GH$r(BX*7&DvM3svirEw|jP4zIRZ5Zz`H@$;v2`I66Bdfcds)2c2 z=lptznI+Q=HX5Z-qPYa?8O3yd2gM}zGEp}RctnE7AzdzlYC0}r8@EZMtSxd*SzGTS z{3989OU6Q$J;;_qvQFoUehGI;ANjsRnR~deec$SmS&3xg5%@i2u9GBzzv$NBTZ->T M_&=e-aRU8c084cT1ONa4 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/launch/MixinBootstrap.class b/sponge/org/spongepowered/asm/launch/MixinBootstrap.class new file mode 100644 index 0000000000000000000000000000000000000000..c4268b1a79d3b5f781794f831d0a13de07bc3e57 GIT binary patch literal 4766 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/launch/platform/MixinContainer.class b/sponge/org/spongepowered/asm/launch/platform/MixinContainer.class new file mode 100644 index 0000000000000000000000000000000000000000..5d8a9a5b48df3cde05784f1737ca2e41c1bc1eb7 GIT binary patch literal 4693 zcmbtX`*R!B75=Uzc^zp@91)CV>ewkxBFhhzydbg(G0p=wvN2Iea00Yzc`a`uOJcQ3 z>;waSKp_-pOPiL`mcCQcS9m1E?X<&Bbf!OdroVQk|3#*)``x=MS#pfy4C5K^-Mjam z^PTT}_uQku|L;$K1+X301a{`_OuSgg=Q3s?f7Z0k$+%IRiD!*cE ztXV5Jl+QVal{0M(LZIoCamL`nTqgeL#3?iFXz&T#S-Y}NE)v+js+U9A{DhGmv-1Vh zb}X~ldDxsQYN!|Jy{&y38U*}uvw&`7%$zfnHHt-(uT4pXw&YmZc+x65{Q{lKrUu-1 z6;R5ttz4#mFPGJ4^O=lk3v5nGFh;>hPn&T$$rbXs^He;kmT|v*1|yoQ7sb80|WyVbSX(MKYyvSih8X zb#OH7r!$`aQDepw*s@}(mhGXNgE$n#0X#z1nCSgxI%}}3uy_<5yOdUR?ueeOO1pB_ z?-8sZ+vZf36(wG^iH5(3!_sh4pkU4e$`Xxw7hFOSJF91r1fJR#7wMAHhf zX*eMeVjx~vBzs#8LuH#)qQe+cI zOQCZ`L)viC)1;nxs9t<@+RmRfCbFiAeF_;F`!tE80M4Bg7_CCDQa-T8nzaI8RsA+B zH^@@!cLnxj)u$B*|E!+dS2s@_0afw^`aeUA0(IsrGg9TOQjF;$s9Y!}Su3g*c?u^P z&a}l_XZIR0)Lz~6pv|}!guq$}TdBIyP(4p1uR<1{a%Eb&95?XW7%Q5|2H=b}Y1%~G zQeLKt`A|M9s{yYdn(FzKPoHvqH!ZiW<9R$5f`J!UC<@hnc?s0K6Ngr?%>t{Jz&%8l zHj71BalFZBSEcB@sN?HskygJUuu9j~}X zzDdTcob0ItTC29Xb5(xd(DAyv<=ZUZ3^l3xwxfp4v5q(0NWaU=#r5cZ;1M23XT8or zR~LAn(o(SjKVTgwl<0R`_0jeeRi&|VWnh*2A>IyR9eyMbTe$!gP5X?MHr*yN<-Tb6 z2^CC~-n&4YiCulaTL-)iybpegp9S#_elE~`8yhwJQb38Wx}7TO_%-H3_!TZOgG(3h zlJ+#b8^UFI(?3LSeKoCCAA9CLm*T#1)7DpW76xU{w%?pGN?E4?zhe`WvNActDM@kp zhw_trG^QLQeR{+w9FmVkO=3gEaaguV>dD5b^8HRUaJ&(B z@&6wIaRv390WQZrLTfDix$F4+RdmMwjIHAzVcS)7#d@xy`+f8-UQ~k8Fi_Gmo3kJ}}*#rjp z_b~7OAvoBN3v4qk;t~2hh_`WwN*l(zY-ir5jU(i5kQe1CWD($weV9R>tX?4N1v~?d zJ3_=#U9p>^U4e5r?`DtJxlsEg zMctALH!QgbY>y;7nR?KG>rCKT%ySh}kH7I5;B%js?4%@KrFo>sOY>F^RGJN$`LB?8 zX8RN9-4VZ+pT&PFziuMd!}ni=HN=^KXqn?pWB@o$mY%>CjH4GP_{;Sq`tcN*ep-Qy zk&#~N_N$7UEsR|<=ab+(;0<^HUsJ(IZe&pIOe06G@}J{~HJtxtaBq+)xj#_}D%tG? z)y07u)QD78_$9xRXOF8%M*Om%&i*0w;Zynwq3%BjGNv2oQ?hARyqT2B6n{Ttup849 zkEKG9X=_771yCmeRG8=8aQon1T@LQGwSg-T#4`kE6I_wtoLhk7Ep+?fzO@|Och&~( z9KoF@xMvA&p5UIl1vp-V9=JF8lw~h|b6VS$(#jluPZq0B5a_*fY4KmIa^+m=@VU8c zFYB|FN&#Lbq*u_%Qyayrh~YKr@pT2OgDU9cnv2w?kEE>`3t;;RQL;c;^SH)T?}FCHOx+PTe*D literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/launch/platform/MixinPlatformAgentAbstract.class b/sponge/org/spongepowered/asm/launch/platform/MixinPlatformAgentAbstract.class new file mode 100644 index 0000000000000000000000000000000000000000..d2e8874399063564dce2890baac1676843a1719f GIT binary patch literal 1878 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/launch/platform/MixinPlatformManager.class b/sponge/org/spongepowered/asm/launch/platform/MixinPlatformManager.class new file mode 100644 index 0000000000000000000000000000000000000000..4952f748d95696efde288fb854d0affb04bf31ed GIT binary patch literal 9332 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 UYTBWm#ppED`l{t&&NGAl0i>S#ssI20 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/AnnotationVisitor.class b/sponge/org/spongepowered/asm/lib/AnnotationVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..e3bd9ac5deb5e77525246cfb83e1cf27058a6b89 GIT binary patch literal 1569 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 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Attribute.class b/sponge/org/spongepowered/asm/lib/Attribute.class new file mode 100644 index 0000000000000000000000000000000000000000..b63756761fd6d93dffe21637d42ef9b1408b2003 GIT binary patch literal 2776 zcmb7F+jA3D9R5y{?xt}mr5ZFq8z_aOX(1|#OuV}CQE)cL6=1hT(v1WOeFqPtIf4p~6gNC*c0@$cQf!YcmHc3h|rJ6u%sWwqLU#ZSloZ?dg8%woJb=veK zu%>9*V@BRAv%V+Zn_GpPQ$}I|%QU71>hV=-Gi9SzJHa~B8r1b%MqeAacNI8~@SqgD zAw-#5H3ZQr1$WZZ2V1&=iHfLz$ZOak7j8%Q|1!=l)NFHBMGs9eEX!CZROc215-Z(r z^ueIMB9Q;4bQ#8O#6sAGI1?{e08sZ{nfK)$xY{|Y|6Oub-w#@83DDx#E!|& zO4$vndu=xvlfiCg3(i|5n=LrLW?WOU&>GB*=(@gI7$Xa|ImzQtwMe|@!Ol19R6G~L z05+1;v|$?>(lUSn$S$YcqCKPGdF+u>>~~*bejV1iYzZm-5eUv27qhleIM4Vv9IF-# z+0){J!0uIIXp$tEAP+;PTCebw@^I-ILU=@W7-MNEH0D*7WJ_;x!{oymN{qF-v>{2w zQHEYI=O@NT2Oey#tNTgG{^ z7x--Dciun{F!?shdLN&m#5J@h`j*gfm2W8Nz_t$H09Os8$hXanYCP&-ah|*xwDI`kZ6Zz|4DbCCx2SaOobuk1n?^)@;d*$)_tPJ3BJV7j}!`o9_xogkd zeOE@X#a(#`Ep!NoU5D>vVi6tJuq~}d)XuMiOX%ub#LjIIbrD_u&M(m$QJe4`j?r(^ z%6BN>UG(5RXR8wpIM1RO66kXz$4GOJV_*z>Ig<9qki?S?QjGuI_mGU7dm8&_>;{s2 zhDNLW&NJc?{(uNF*ywc(oVZ({WsC} zz7YM3IDF*tonN;$W8K1Kz^B~gGlG6j&#qAERg(F_A-BB&;*#_6`3g7X(O_dsPkh{T z3`g8ezo8TvVk(hV{QK32aua*|A_~)7Ms_O9iN5~Ma3I{WjEO}Iw<~AP$STrGE0^!w z3ad?GU5+c?ar^H{@fNrGf${#x=zd}ZKd*>5dx8u`ql=nMFe=x#7x&2=};(s&De;DI!N8)J`*v#JC!GNW+x+hlm#Oj_{ c-4m;OVs%%nTs!TwiJ!lXeioP^rVlOu0_ZDRNdN!< literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/ByteVector.class b/sponge/org/spongepowered/asm/lib/ByteVector.class new file mode 100644 index 0000000000000000000000000000000000000000..d3114e6959d3a9e8b23682e3adf8337a088c95c7 GIT binary patch literal 3723 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 a;!O^IijZ%IaZsM6Lwr+$4ba&1*8c-rHGky* literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/ClassVisitor.class b/sponge/org/spongepowered/asm/lib/ClassVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..be14e77e790a3adf61456027b0a12be56fd9f3a8 GIT binary patch literal 3129 zcmbtV-EUK69Dd%eqpT}i+m+E#P`=ldje_6@jIV(p)v>{bQ^2p&?obZtPU|_RLlbW_ z#>9U>;}wY)8t*WXl4v3~It|wv{|b$Nf${mh=d5kkr5Sp2&fAms_k8@m`uLyke*|y@ zMTG-Zr<`|dRl97~s&`GtT+AEpQodpp^XDsu>n>QX7->_-f4w!wlKD!FrF=JGPI;nMwC>-Aq?D|B9kQbuE%zO2&Z92@v zqUn}aX{Kzu>KRfrg>&oB+!*W9My=qW-6vx>hG&KEIVl3`T&yrH>IT!NU0r*>X11af z%3a%3ZeKCH+v_yN6Y5gf-s-fuy6ss@W?Q?SjN+8E>j_MX_%jsmk$cX(rLb8}qC#O` zms~WpDhz0=Qyv?-$SQJPF0xDp0TlLk;cSJjma|~9#6j1bSf`ww zJ<|Dw`y+;z@rvk}=0H@X6a9hcvjjgF4(;-yWmXmyT-LFb;3pX6wkUr$PIhZJ&9>mL zR`%KzTosXXvQvyootbVQ?*MOgMlYM*?JA|#|Ett>=D(X(pRXl$0k4VJ*A=4X>Z0UY z*{sue!Cs8vCb(@wc!RY+UtOe|!D-7jXX;Bu)468oNlH#vOGahEa4h*9e2n_*=b}|H z!@CK3XS-pJ6xVxk1=kqQ8I>U7y;yaSdsD~K%md6m@=2H{^XBj+&cX%51 zuVGMwFhIj{rsY2)0ITy(5AW{HJw!5-9J+@@CYid2{vR-W{UNqJ%4Hs4Bscy5nHJG@ z0s)t)Zw7J9B8{uqi8<`Sye8h|LpF)`2E?S%jzT2o#t$TXLSf=Io%;@%6%5HMvtwc; zJkmR|sez|kyaO7y#@p{=8(htG$&YPvrLl`&l;B}EPm+=}mF?BBY3$=kvYf_#p7^)O z(*cZ9A%`7ffu`4ZThfy7HO1t0aJ+$oYsGv>ijSCtkK2qVnqm?dCy9tjV1g$x&aEDh z6e&ccBz=-CKFLG_N7k}@MwZWs@r7o|`B6=lB%TRalG>a_@n9>h5`wa1$$j|XtB>b9$-?Z5pY7!1yDbbo!C+GcK>p_{7$5183W*hjrLb?AD)2{R<28D~t44OE~63HYJR*$Ne&o;vCNF zGLHtHNv&mtDTqrskTuOak{M0Ef_|Ot23}g5>)(j`J9+-ly#5Tuo4j#cLV<`%)@*=m z2ZmF=zd?=c`@6gr{ZFF*#kBq1<|@@hPwDzeVpAL~=@&W8>PpH<8d_X&dj{MeuyJJ= zgW=Jw#N5j8G%(+uU0ql;h=__~SS2<8X+O5f?~jZ>JTfx=@c5l1gVGwFYj~Be6}TEV zqU3s~lEYMTgi4P7PbD{4ZBfD%94MLMTRiAOtRO1&XyDB?rBEj+;1mYb87)8-B13{y KC>Z<|Lhrxl2b0bK literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/ClassWriter.class b/sponge/org/spongepowered/asm/lib/ClassWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..01b720a3285fb4c2cb17851d704eae5532b8baa2 GIT binary patch literal 21979 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 E2NCPTpa1{> literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Context.class b/sponge/org/spongepowered/asm/lib/Context.class new file mode 100644 index 0000000000000000000000000000000000000000..8181d21ca4ecb9c03c4206045f31955ad9561fae GIT binary patch literal 821 zcmaJ;$!^p@5PdzFB{2gDN!Yh+4A~TmGYAO{LP8oAktmlrwe7N}lb-I8-G=a4oRB!= z1NbOJxziF{n1lP(t9rHi*YBT~0G{JeVAGaGT+OU0XlB1sNm(qbX{=Qe53O-@;d&4P zD`)bHjI}gH{4qJBl)VcA{UAANq5>W1Tv-VW#-smNea#w`)Q(vZS zN`cmR$o&#)UFAwSdrxj+GZwYRjY_5|Rm|E(PDx;O^mnjhE^G=e+s>#;S*vA2nzdW= z<{332PU^XDGx|)qz+z*4l5QffGiQ;LpyJ%F&GU*JFH|{MGA@wGm?@Ld1FZahxjer_WVxZcSHPM!26-zgAjih@KM0W yc;fRn0^jspu#e9JfnBy@#>Ugx|AD99*=S*p->!EKu+Mh?N`L{LF%vlOs?Hy+hqZ|S literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/CurrentFrame.class b/sponge/org/spongepowered/asm/lib/CurrentFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..86834aa2b610379cda8549addfddc7e20d35a398 GIT binary patch literal 1020 zcma)5+iuf95Iqye4G9iy!!=DI2`z16NF(kNL4Ao-DN@8st5)!~aaY0Mo7OhrTlfnk zXeE&N06q#a-b9d>8eY6R>vPVWnc4mM>)Q_i53xts3DvY8M`19PQ8<%Ip7urT_dR#g zAErvlAURONmn9IPc`-c|1?V@riO1sRlW)Q6l|8X39b}Gj)Yv`ch4Gf*juP|KxRF z2BYp93u{=fpnw{8A(jbYJFn_FFY|Q`*E8A;_7%HTVpYi-oU~w)XU7;$Q_yn zm#|5wx}MO8tpcM`Gf!&)PV2gm)~Io5hR6%3+u)M;^GI zM2mY<4m)_jUuzCP1(!L>;_8C@2_{Pcw%yq5 z)r;p?{f^>m7J6aYy}D_f;p&N9H_vd>{(^?_745$nHZ=1Q%6N<#o}huJXyX~Wc&@YV q&z1jVwQ(0s?Zn0w@3Jy%Y~vmbz1zVq7g*za&|wXekv%>y!2AuWUH?k} literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/Edge.class b/sponge/org/spongepowered/asm/lib/Edge.class new file mode 100644 index 0000000000000000000000000000000000000000..a81743e06c553f190093edc421d9a4fd7ee18a2d GIT binary patch literal 458 zcmaJ-O-}+b6r8fK2!bGfdoXw~Q4cnrH715&Lb8HULcDgDx|S?0*$?&RZ}Mc~!5`p{ z5??nQyl9hl-prdfZTj{7@d@A*y9|3K4tX*&I+Qc>EMqz5BAN0?`Mf(0Wf_d2IT25S zM?!~u;7??bmfpfAD( zu>zKeSAOv-smsLes-d3a3L1orHa(DVlPXSVmD2G$*50TnV2e&S7Y``Zj^_rfFUEIr GSLp{CqhV73 literal 0 HcmV?d00001 diff --git a/sponge/org/spongepowered/asm/lib/FieldVisitor.class b/sponge/org/spongepowered/asm/lib/FieldVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..52af845a1ce43eb715d56c3c19e63230d52c6a58 GIT binary patch literal 1565 zcmb7DTW=CU7(D}6EX8uGsKtA2p;(Lcu6Ri`npBB4)ih}njSGypX4xgM)LVS^@~H9I z#9yF^(nJ&c=7T@VcxHA5q6yKLotfS5JC|?H{`mRj8-O_!1*V*4t%hq5WF z1*26jSZ29!#gtZc*=(7v(+ooh#2*-IM!_=dTH!|dfvmV;1O*cPb+f8OAZRp90kI$u zxVI*dEBzY_^$eXgZPPt35Xvn~FAL1%7XGz)dO3;+q7ekJh5hb*vqdF2?{z$a5E4N? z5X2@xV1Lief@R5?Va+#d?Ygwx%a1Cu;hK&e#?}bZNJKG&@Gx<=N3j{hYBw$rTT`={ zw{6EYRJFjxT&V|o(`}k|t++ZpK!2~HWI4s)~yKL|_?;Owf#JJ>C$sa43w!Gf1mu2&op>HHvaw>+kY&1=E_FqPBI_+jfUNJ2h+D8Be zkHF_Sgj~l0P_qab$_VBRTe7S{(#ACdYA-99DgGcDnm2icX7#X(9`60(@VA$A_|p6A9-G%ftcqnqLvO${0aP; Wz;7^$w;EXGf-OFO3l1+E)DP-{lD)KLly3Idx6_f?-|!YSyL$(XKD(i| z%ZC8K64bS}Kz<_8W6idDpM=Mjhg7GhBuO0ZZ%5T#10(GWtJlA?lA(>T=G(egGyRn7Ias*P({ zin?;fvrI#|d+K%#Q(S3<2F;aL2{d|YPMek;w~ZmeszP_!vKGNnono|WuvXp1c;-&b zYPGi%>&eulnJ^A(*r1|lz(x&I-FP+=I(r~VwuP_H>RP22n_${O)ogi23z`aZ@Cemi zTO^76;cWc{3n$K_>4u}p54*J1B0#~!q4sK7ME%?=`H8i#EST}rVB zdo@(LrhTNX!m2mLAtl{xiC(tE;>q2{-8zTn31sxP*qU&C~_h)E4$S9%}I zX*0Dp;{Z9QB$XtIJDE}lD%`fo4sOn-Vl3K{-NzZLVFqqeSZ4$aCQdGQq!bPtcw__w z+^^mfM(o_b&1ANvEN6T2C|SW)VgpTe=8V}kl(^)Kw={Y~+B zT#fjn_*gk>`f=9Oa?3|{s-aVa0oPE@$G3&03bFppY1Tu-Csp1fc#0IHueee@?ark$ z8lJ#uRg|-W&SFAUH=&}A+1sgwrpwc*xkkihjfdCuTb1^J~W(osc%jv z$eU@qlBUr*GSq8iI&^2ggmoiABdS|2)@GETFhV{az4_jiEL=dknE?tZp3jV^|)IMf{GmG7`9isr(sm zey)xLFQJk@gX35?icMo^e8~yn3;cIIhca-4=^f<*dnbdri=QcX<2D?}5}e>C!bz;g zJ=ly>*ou46iu=%x`_Y33@jOrNa0A8`%;hgYcM2trq)Np;qploHOif8sD5;X_ELfBJ z5Ti5|%{(Razs)PeH|SN_+Ad=Iz6;pdS{EHfZH(!Rqt(a1doN5)den~eZ7D7 zX;el0RCSKwUD1et44vl@b~N2tO?SlqC3-D^%6zc{)Z+y72}E!jQ9OxdB==f8g+?+u zjx*Sevrd+)+-P!HwmEsIEZeXj@21BPcH$1ahgn8ZgZC0-KXd6}b}qDk;SL3M!pmrV zpn7Q}@CuAbK&7D|ye_p!K>ZoTKp>$~3|9G7jzR7pbTSH#VNm6$G^wm66$$2ZjI#0| zwaS=9C0-<|U*xycOU&-u7*gYDwg*87-$fMm zo{|uM#HLr`*lD&H^`kf*K5?va`B^pFJ&RGYu)<^T!!JIXfwSF{jP35fCB~(@O21{Ko zzLJu0Jl?aRTD7s;5(nA(z;_78cS)S@vEbjwO#Fbf`5~eG5!>?(7XJ!q^AnQ(r-b_F z{QCF>q5dT-{E8#w*BleS!K3&co9g#?7Jne&{z!uT39sSL_!j<3Z-2wj@FunYz~Avt z@#9~4z$NIRi8zbtk|5AlgHRZ6qmcp zN;N5bYt&RA#=%p5QQKT(=TW>Nve|78p570l=t;!RlZcZi5fe{h{XL1bo>rwUw#M

B-{+nv|?T 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 EiqZnrg}HR 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 Vtk|a4^jy)g7VF^+%CdQ{ zCkF+fqb-xos?^*?$$esbO5T*;_11Q;Ue9 zAH(wv_xWIyboN~^m)!8XDu!vOkFAfv@6on0xCbrhYY1WGX&ohyV&Z<=KP;29>3HWoEzf3j<^UR< z(sFrL_`^_7QsVB5*|O{J<0AtzMjFtEAUh>p{6USWr-NsbFA%)Mt15Q=_jY#y&GY;x zR+n!qfeyRja-OySqTU=hmyYj08^_-v?XF8Pb9Sk%!5q9MHAZIPSw2^p&);`1BNdu^ zMrc=NQFtRH8m_4|l`4$nty|xJv?(RwTM#D879BnwNrOeC`f41d|#_ z@)ir6p@#SSG?H4)j0#Qr4&+L{()?FD24LgxM0mhP2w#n(QJo7ROCldhda-l3!pkj3+yZJi;JEY}l2&y47cim*ZiKC8=)91| zz%vv(9k?jA`1Ql^nokLaqOs>wBYp{u;#@bOLq7dzUPLrh{RTM2R`OVv(?BkI+hsm2 z{;D5fJYj@vZIL^^+tQ>NyQ#!mQdPclr?zwWg^OVbG-JcHP)oj`p@v4A)!I%;`@Wus zXLlG2sdhjr>|fOI!c9k$R1!tM8&wg58abtlj*45#X$boTuLP)InMX`l$g&o)u!^qV zLj#dk-V&I^Db>$OrS{)&h+-8TdxVBjwPN=wqVv-`)noQ-2UHr^>`Unet(njkxJf(q z;&C-(l6bm1ecxSw7uH{mDi%0*YD~D~sbu4xYi7D-mZV8wMn5kb`2yEI#0A*6sqsmT zr;_Vz2ap;t1)o9SGUtcYrl`v>iUDx8>~bHgqePJTu#1OFm$$|K)B{!y)lj4EmZyS; z8I}*YKb@cVa^Yme2mM>(@g?=YkR`qk;Zv;XIeCU@y5@%Fw9s?2euEo;+1eB1p$DFH zZ^f)^vA6twbWT!S85&BV)(Xm}MnQ|Vc9{dvrjaW*{S{>##;D=3wQbX?QSJjTS}_*8 PEq0p*p-YY<52*Yf2Z8fH literal 0 HcmV?d00001 diff --git a/lib/de.tudbut.api.jar b/lib/de.tudbut.api.jar new file mode 100644 index 0000000000000000000000000000000000000000..088f8ec514585f445b20a6afe54bccea0c7a9e63 GIT binary patch literal 487859 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