├── .editorconfig ├── .github └── workflows │ ├── dev_build.yml │ └── pull_request.yml ├── .gitignore ├── README.md ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src └── main ├── java └── com │ └── dark │ └── zewo2 │ ├── Addon.java │ ├── Utils │ ├── InvUtils.java │ ├── JinxUtils.java │ ├── Line.java │ └── Utils.java │ ├── commands │ ├── CheckCMD.java │ ├── ClearInventoryCommand.java │ ├── CrackedOpSpamCommand.java │ ├── DesyncCommand.java │ ├── DisableVehicleGrav.java │ ├── DupeCommand.java │ ├── MinefortJoin.java │ └── SpamCommand.java │ ├── gui │ ├── screens │ │ ├── SessionIDScreen.java │ │ └── accounts.java │ └── settings │ │ └── SetSession.java │ ├── mixin │ ├── ChatMixin.java │ ├── GenericContainerScreenMixin.java │ ├── Interface │ │ └── INClientPlayerInteractionManagerMixin.java │ ├── MixinMessageHandler.java │ ├── MultiplayerScreenMixin.java │ ├── PlayerListEntryMixin.java │ └── SessionMixin.java │ └── modules │ ├── AntiScreen.java │ ├── AntiSpawnpoint.java │ ├── AutoHorn.java │ ├── AutoL.java │ ├── BetterAutoSign.java │ ├── Boykisser.java │ ├── EntityFly.java │ ├── FakeAttack.java │ ├── Fling.java │ ├── ForceField.java │ ├── GMnotifier.java │ ├── GhostBlockFly.java │ ├── GhostMode.java │ ├── Girlboss.java │ ├── Groupmessage.java │ ├── InstaMine.java │ ├── MaceInstaKill.java │ ├── Magnet.java │ ├── NoChatFormatting.java │ ├── NoChatNormalisation.java │ ├── NoClearChat.java │ ├── NoSwing.java │ ├── PacketDelayer.java │ ├── PenisESP.java │ ├── PermJukebox.java │ ├── PingSpoof.java │ ├── RainbowArmor.java │ ├── SitModule.java │ ├── SoundCoordLogger.java │ ├── StorageVoider.java │ ├── StrongholdFinder.java │ ├── Suicide.java │ ├── TotemNotifier.java │ ├── WorldGuardBypass.java │ ├── chatfilterbypass.java │ └── phase.java └── resources ├── assets └── zewo2 │ ├── boykisserskin.png │ └── icon.png ├── fabric.mod.json ├── zewo2.accesswidener └── zewo2.mixins.json /.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 | -------------------------------------------------------------------------------- /.github/workflows/dev_build.yml: -------------------------------------------------------------------------------- 1 | name: Publish 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: 17 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: latest 20 | prerelease: true 21 | title: Dev Build 22 | files: | 23 | ./build/libs/*.jar 24 | -------------------------------------------------------------------------------- /.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: 17 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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 |

Meteor Zewo2 Addon

6 | 7 |
8 | GitHub commit activity GitHub contributors 9 | GitHub contributors 10 | GitHub all releases 11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 | ## Info 19 | This is a Meteor Addon and requires the use of [Meteor Client](https://meteorclient.com/) 20 | 21 | ## Installation 22 | 1. Grab the latest JAR file from the [releases](https://github.com/Dark-Developments/Zewo2-Addon/releases) tab. 23 | 2. Run 1.21 Vanilla 24 | 3. Close out of the game and close your launcher completely. *The Store version likes to chill in the background. So kill it with Task Manager* 25 | 4. Download the Fabric Installer from https://fabricmc.net 26 | 5. Run the Fabric Installer and install Fabric for Minecraft 1.21 27 | 7. Open your .minecraft folder. This process varies per Operation System. 28 | 8. When you've got your .minecraft folder open, navigate to the folder called mods 29 | 9. Drag the .jar file into the folder and run Minecraft 1.21 Fabric (with Meteor Client) 30 | 31 | Your done now and the Client should be working as expected! If not please join the [Discord](https://discord.gg/kja3YYV7R9) and we will be happy to help! 32 | 33 | ## Setup 34 | 35 | ### Install Stable Version 36 | Click [here](https://github.com/Dark-Developments/Zewo2-Addon/releases) for releases 37 | 38 | ### Install Dev build 39 | Build the JAR from source directly. 40 | 41 | **WARNING**: Dev builds are unstable. 42 | 43 | ## Disclaimer 44 | For educational purposes only. Use at your own risk. 45 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("fabric-loom") version "1.10-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 | 15 | maven { url "https://maven.meteordev.org/releases"} 16 | maven { url "https://maven.meteordev.org/snapshots" } 17 | maven { url 'https://jitpack.io' } 18 | } 19 | 20 | configurations { 21 | extraLibs 22 | modImpl 23 | } 24 | 25 | dependencies { 26 | 27 | minecraft "com.mojang:minecraft:${project.minecraft_version}" 28 | mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" 29 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 30 | 31 | // Meteor Client 32 | 33 | modImplementation "meteordevelopment:meteor-client:${project.minecraft_version}-SNAPSHOT" 34 | 35 | configurations.implementation.extendsFrom(configurations.extraLibs) 36 | 37 | configurations.modImpl.dependencies.each { 38 | modImplementation(it) 39 | // implementation(it) 40 | include(it) 41 | } 42 | } 43 | 44 | loom { 45 | accessWidenerPath = file("src/main/resources/zewo2.accesswidener") 46 | } 47 | 48 | processResources { 49 | inputs.property "version", project.version 50 | 51 | filesMatching("fabric.mod.json") { 52 | expand "version": project.version, 53 | "mc_version": project.minecraft_version, 54 | "gh_hash": (System.getenv("GITHUB_SHA") ?: "") 55 | } 56 | } 57 | 58 | jar { 59 | from("LICENSE") { 60 | rename { "${it}_${project.archivesBaseName}"} 61 | } 62 | 63 | from { 64 | configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } 65 | } 66 | } 67 | 68 | tasks.withType(Jar) { 69 | duplicatesStrategy = DuplicatesStrategy.EXCLUDE 70 | } 71 | 72 | tasks.withType(JavaCompile).configureEach { 73 | it.options.encoding = "UTF-8" 74 | 75 | def targetVersion = 17 76 | 77 | if (JavaVersion.current().isJava9Compatible()) { 78 | it.options.release = targetVersion 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2G 2 | 3 | # Fabric Properties (https://fabricmc.net/versions.html) 4 | minecraft_version=1.21.5 5 | yarn_mappings=1.21.5+build.1 6 | loader_version=0.16.12 7 | 8 | # Mod Properties 9 | mod_version=1.1.2 10 | maven_group=com.dark 11 | archives_base_name=zewo2 12 | 13 | # Dependencies 14 | 15 | # Meteor (https://maven.meteordev.org/) 16 | meteor_version=0.5.9 17 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dark-Developments/Zewo2-MeteorAddon/40a40db52f85ce10958a635da12d159fd4707f1a/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | # 21 | # Gradle start up script for POSIX generated by Gradle. 22 | # 23 | # Important for running: 24 | # 25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 | # noncompliant, but you have some other compliant shell such as ksh or 27 | # bash, then to run this script, type that shell name before the whole 28 | # command line, like: 29 | # 30 | # ksh Gradle 31 | # 32 | # Busybox and similar reduced shells will NOT work, because this script 33 | # requires all of these POSIX shell features: 34 | # * functions; 35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 | # * compound commands having a testable exit status, especially «case»; 38 | # * various built-in commands including «command», «set», and «ulimit». 39 | # 40 | # Important for patching: 41 | # 42 | # (2) This script targets any POSIX shell, so it avoids extensions provided 43 | # by Bash, Ksh, etc; in particular arrays are avoided. 44 | # 45 | # The "traditional" practice of packing multiple parameters into a 46 | # space-separated string is a well documented source of bugs and security 47 | # problems, so this is (mostly) avoided, by progressively accumulating 48 | # options in "$@", and eventually passing that to Java. 49 | # 50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 | # see the in-line comments for details. 53 | # 54 | # There are tweaks for specific operating systems such as AIX, CygWin, 55 | # Darwin, MinGW, and NonStop. 56 | # 57 | # (3) This script is generated from the Groovy template 58 | # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 | # within the Gradle project. 60 | # 61 | # You can find Gradle at https://github.com/gradle/gradle/. 62 | # 63 | ############################################################################## 64 | 65 | # Attempt to set APP_HOME 66 | 67 | # Resolve links: $0 may be a link 68 | app_path=$0 69 | 70 | # Need this for daisy-chained symlinks. 71 | while 72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 | [ -h "$app_path" ] 74 | do 75 | ls=$( ls -ld "$app_path" ) 76 | link=${ls#*' -> '} 77 | case $link in #( 78 | /*) app_path=$link ;; #( 79 | *) app_path=$APP_HOME$link ;; 80 | esac 81 | done 82 | 83 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit 84 | 85 | APP_NAME="Gradle" 86 | APP_BASE_NAME=${0##*/} 87 | 88 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 89 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 90 | 91 | # Use the maximum available, or set MAX_FD != -1 to use that value. 92 | MAX_FD=maximum 93 | 94 | warn () { 95 | echo "$*" 96 | } >&2 97 | 98 | die () { 99 | echo 100 | echo "$*" 101 | echo 102 | exit 1 103 | } >&2 104 | 105 | # OS specific support (must be 'true' or 'false'). 106 | cygwin=false 107 | msys=false 108 | darwin=false 109 | nonstop=false 110 | case "$( uname )" in #( 111 | CYGWIN* ) cygwin=true ;; #( 112 | Darwin* ) darwin=true ;; #( 113 | MSYS* | MINGW* ) msys=true ;; #( 114 | NONSTOP* ) nonstop=true ;; 115 | esac 116 | 117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 118 | 119 | 120 | # Determine the Java command to use to start the JVM. 121 | if [ -n "$JAVA_HOME" ] ; then 122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 | # IBM's JDK on AIX uses strange locations for the executables 124 | JAVACMD=$JAVA_HOME/jre/sh/java 125 | else 126 | JAVACMD=$JAVA_HOME/bin/java 127 | fi 128 | if [ ! -x "$JAVACMD" ] ; then 129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 | 131 | Please set the JAVA_HOME variable in your environment to match the 132 | location of your Java installation." 133 | fi 134 | else 135 | JAVACMD=java 136 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 | 138 | Please set the JAVA_HOME variable in your environment to match the 139 | location of your Java installation." 140 | fi 141 | 142 | # Increase the maximum file descriptors if we can. 143 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 144 | case $MAX_FD in #( 145 | max*) 146 | MAX_FD=$( ulimit -H -n ) || 147 | warn "Could not query maximum file descriptor limit" 148 | esac 149 | case $MAX_FD in #( 150 | '' | soft) :;; #( 151 | *) 152 | ulimit -n "$MAX_FD" || 153 | warn "Could not set maximum file descriptor limit to $MAX_FD" 154 | esac 155 | fi 156 | 157 | # Collect all arguments for the java command, stacking in reverse order: 158 | # * args from the command line 159 | # * the main class name 160 | # * -classpath 161 | # * -D...appname settings 162 | # * --module-path (only if needed) 163 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 164 | 165 | # For Cygwin or MSYS, switch paths to Windows format before running java 166 | if "$cygwin" || "$msys" ; then 167 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 168 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 169 | 170 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 171 | 172 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 173 | for arg do 174 | if 175 | case $arg in #( 176 | -*) false ;; # don't mess with options #( 177 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 178 | [ -e "$t" ] ;; #( 179 | *) false ;; 180 | esac 181 | then 182 | arg=$( cygpath --path --ignore --mixed "$arg" ) 183 | fi 184 | # Roll the args list around exactly as many times as the number of 185 | # args, so each arg winds up back in the position where it started, but 186 | # possibly modified. 187 | # 188 | # NB: a `for` loop captures its iteration list before it begins, so 189 | # changing the positional parameters here affects neither the number of 190 | # iterations, nor the values presented in `arg`. 191 | shift # remove old arg 192 | set -- "$@" "$arg" # push replacement arg 193 | done 194 | fi 195 | 196 | # Collect all arguments for the java command; 197 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of 198 | # shell script including quotes and variable substitutions, so put them in 199 | # double quotes to make sure that they get re-expanded; and 200 | # * put everything else in single quotes, so that it's not re-expanded. 201 | 202 | set -- \ 203 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 204 | -classpath "$CLASSPATH" \ 205 | org.gradle.wrapper.GradleWrapperMain \ 206 | "$@" 207 | 208 | # Use "xargs" to parse quoted args. 209 | # 210 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 211 | # 212 | # In Bash we could simply go: 213 | # 214 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 215 | # set -- "${ARGS[@]}" "$@" 216 | # 217 | # but POSIX shell has neither arrays nor command substitution, so instead we 218 | # post-process each arg (as a line of input to sed) to backslash-escape any 219 | # character that might be a shell metacharacter, then use eval to reverse 220 | # that process (while maintaining the separation between arguments), and wrap 221 | # the whole thing up as a single "set" statement. 222 | # 223 | # This will of course break if any of these variables contains a newline or 224 | # an unmatched quote. 225 | # 226 | 227 | eval "set -- $( 228 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 229 | xargs -n1 | 230 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 231 | tr '\n' ' ' 232 | )" '"$@"' 233 | 234 | exec "$JAVACMD" "$@" 235 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/Addon.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2; 2 | 3 | import com.dark.zewo2.commands.*; 4 | import com.dark.zewo2.modules.*; 5 | import com.mojang.logging.LogUtils; 6 | import meteordevelopment.meteorclient.addons.MeteorAddon; 7 | import meteordevelopment.meteorclient.commands.Commands; 8 | import meteordevelopment.meteorclient.systems.hud.HudGroup; 9 | import meteordevelopment.meteorclient.systems.modules.Category; 10 | import meteordevelopment.meteorclient.systems.modules.Modules; 11 | import net.minecraft.client.MinecraftClient; 12 | import org.slf4j.Logger; 13 | 14 | public class Addon extends MeteorAddon { 15 | 16 | public static String BOOTNAME; 17 | public static String BOOTUUID; 18 | public static String BOOTSESSION; 19 | 20 | public static final Logger LOG = LogUtils.getLogger(); 21 | public static final Category CATEGORY = new Category("Zewo2"); 22 | public static final HudGroup HUD_GROUP = new HudGroup("Zewo2"); 23 | 24 | @Override 25 | public void onInitialize() { 26 | LOG.info("Kawaii Mode Activated"); 27 | 28 | // Modules 29 | Modules.get().add(new SoundCoordLogger()); 30 | Modules.get().add(new InstaMine()); 31 | Modules.get().add(new NoChatFormatting()); 32 | Modules.get().add(new NoChatNormalisation()); 33 | Modules.get().add(new NoClearChat()); 34 | Modules.get().add(new AntiScreen()); 35 | Modules.get().add(new GhostBlockFly()); 36 | Modules.get().add(new GhostMode()); 37 | Modules.get().add(new GMnotifier()); 38 | Modules.get().add(new Suicide()); 39 | Modules.get().add(new WorldGuardBypass()); 40 | Modules.get().add(new BetterAutoSign()); 41 | Modules.get().add(new AutoL()); 42 | Modules.get().add(new Magnet()); 43 | Modules.get().add(new NoSwing()); 44 | Modules.get().add(new chatfilterbypass()); 45 | Modules.get().add(new Groupmessage()); 46 | Modules.get().add(new RainbowArmor()); 47 | Modules.get().add(new PenisESP()); 48 | Modules.get().add(new EntityFly()); 49 | Modules.get().add(new FakeAttack()); 50 | Modules.get().add(new AutoHorn()); 51 | Modules.get().add(new AntiSpawnpoint()); 52 | Modules.get().add(new phase()); 53 | Modules.get().add(new StrongholdFinder()); 54 | Modules.get().add(new Fling()); 55 | Modules.get().add(new PermJukebox()); 56 | Modules.get().add(new Boykisser()); 57 | Modules.get().add(new PingSpoof()); 58 | Modules.get().add(new ForceField()); 59 | Modules.get().add(new SitModule()); 60 | Modules.get().add(new StorageVoider()); 61 | Modules.get().add(new Girlboss()); 62 | Modules.get().add(new TotemNotifier()); 63 | Modules.get().add(new MaceInstaKill()); 64 | Modules.get().add(new PacketDelayer()); 65 | 66 | // Commands 67 | Commands.add(new CheckCMD()); 68 | Commands.add(new ClearInventoryCommand()); 69 | Commands.add(new DesyncCommand()); 70 | Commands.add(new DisableVehicleGrav()); 71 | Commands.add(new SpamCommand()); 72 | Commands.add(new CrackedOpSpamCommand()); 73 | Commands.add(new MinefortJoin()); 74 | Commands.add(new DupeCommand()); 75 | 76 | // HUD 77 | // Hud.get().register(HudExample.INFO); 78 | 79 | //for the sessionID login screen, so you can return to the account you started with 80 | String accessed = MinecraftClient.getInstance().getSession().getSessionId().replaceAll("token:", ""); 81 | BOOTSESSION = accessed.split(":")[0]; 82 | BOOTUUID = accessed.split(":")[1]; 83 | BOOTNAME = MinecraftClient.getInstance().getSession().getUsername(); 84 | } 85 | 86 | @Override 87 | public void onRegisterCategories() { 88 | Modules.registerCategory(CATEGORY); 89 | } 90 | 91 | @Override 92 | public String getPackage() { 93 | return "com.dark.zewo2"; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/Utils/InvUtils.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.Utils; 2 | 3 | import net.minecraft.client.MinecraftClient; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.screen.slot.SlotActionType; 6 | 7 | public class InvUtils { 8 | private static MinecraftClient client = MinecraftClient.getInstance(); 9 | 10 | public static int finditem(Item item) { 11 | int index = -1; 12 | for(int i = 0; i < 45; i++) { 13 | if(MinecraftClient.getInstance().player.getInventory().getStack(i).getItem() == item) { 14 | index = i; 15 | break; 16 | } 17 | } 18 | return index; 19 | } 20 | 21 | public static int findItemInHotbar(Item item) { 22 | int index = -1; 23 | for(int i = 0; i < 9; i++) { 24 | if(MinecraftClient.getInstance().player.getInventory().getStack(i).getItem() == item) { 25 | index = i; 26 | break; 27 | } 28 | } 29 | return index; 30 | } 31 | 32 | public static int getamount(Item item) { 33 | int amount = 0; 34 | for(int i = 0; i < 45; i++) { 35 | if(MinecraftClient.getInstance().player.getInventory().getStack(i).getItem() == item) { 36 | amount = amount + 1; 37 | } 38 | } 39 | return amount; 40 | } 41 | 42 | public static void movetoslot(int to, int from){ 43 | client.interactionManager.clickSlot(0, InvUtils.getslot(from), 0, SlotActionType.PICKUP, client.player); 44 | client.interactionManager.clickSlot(0, to, 0, SlotActionType.PICKUP, client.player); 45 | client.interactionManager.clickSlot(0, InvUtils.getslot(from), 0, SlotActionType.PICKUP, client.player); 46 | } 47 | 48 | public static int getslot(int index) { 49 | return index < 9 ? index + 36 : index; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/Utils/JinxUtils.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 com.dark.zewo2.Utils; 7 | 8 | public class JinxUtils { 9 | 10 | public static void sleep(long ms) { 11 | try { 12 | Thread.sleep(ms); 13 | } catch (Exception ignored) { 14 | } 15 | } 16 | 17 | public static int rainbowColors(int colors) { 18 | int color = 0; 19 | switch (colors) { 20 | case 0 -> color = 16711680; 21 | case 1 -> color = 16732675; 22 | case 2 -> color = 16754178; 23 | case 3 -> color = 16768770; 24 | case 4 -> color = 14155522; 25 | case 5 -> color = 9502464; 26 | case 6 -> color = 5373696; 27 | case 7 -> color = 65360; 28 | case 8 -> color = 65432; 29 | case 9 -> color = 65521; 30 | case 10 -> color = 45055; 31 | case 11 -> color = 15359; 32 | case 12 -> color = 3211519; 33 | case 13 -> color = 9634047; 34 | case 14 -> color = 13762815; 35 | case 15 -> color = 16711913; 36 | case 16 -> color = 16711859; 37 | case 17 -> color = 16711792; 38 | case 18 -> color = 16711725; 39 | } 40 | return color; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/Utils/Line.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.Utils; 2 | 3 | import net.minecraft.util.math.Vec3d; 4 | 5 | public class Line { 6 | public double k,b; 7 | public Line setKx(double k, double b) 8 | { 9 | this.k = k; 10 | this.b = b; 11 | return this; 12 | } 13 | public double getY(double x){ 14 | return k*x+b; 15 | } 16 | public Line kxPlusBFromCoords(double x, double y, double degree){ 17 | degree+=90; 18 | k=getKFromDegree(degree); 19 | var zeroB = new Line().setKx(k,0); 20 | var zeroBY = zeroB.getY(x); 21 | 22 | this.setKx(k,y-zeroBY); 23 | return this; 24 | } 25 | static double getKFromDegree(double degree){ 26 | return Math.tan(degree*3.14159/180); 27 | } 28 | static double findIntersectionX(Line a, Line b){ 29 | var k1=a.k; 30 | var k2=b.k; 31 | var b1=a.b; 32 | var b2=b.b; 33 | return (b2-b1)/(k1-k2); 34 | } 35 | static double findIntersectionY(Line a, Line b){ 36 | return a.getY(findIntersectionX(a,b)); 37 | } 38 | public static Vec3d getIntersection(double x1,double y1,double deg1,double x2,double y2,double deg2){ 39 | var v1 = new Line().kxPlusBFromCoords(x1,y1,deg1); 40 | var v2 = new Line().kxPlusBFromCoords(x2,y2,deg2); 41 | return new Vec3d(Line.findIntersectionX(v1,v2),0, Line.findIntersectionY(v1,v2)); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/Utils/Utils.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.Utils; 2 | 3 | import net.minecraft.util.hit.BlockHitResult; 4 | import net.minecraft.util.hit.HitResult; 5 | import net.minecraft.util.math.Vec3d; 6 | import net.minecraft.world.RaycastContext; 7 | 8 | import static meteordevelopment.meteorclient.MeteorClient.mc; 9 | 10 | public class Utils { 11 | 12 | public static boolean isABFree(Vec3d a, Vec3d b) { 13 | assert mc.player != null; 14 | assert mc.world != null; 15 | RaycastContext rc = new RaycastContext(a, b, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player); 16 | BlockHitResult raycast = mc.world.raycast(rc); 17 | return raycast.getType() == HitResult.Type.MISS; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/CheckCMD.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 com.dark.zewo2.commands; 7 | 8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 9 | import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; 10 | import meteordevelopment.meteorclient.MeteorClient; 11 | import meteordevelopment.meteorclient.commands.Command; 12 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 13 | import meteordevelopment.meteorclient.events.world.TickEvent; 14 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 15 | import meteordevelopment.orbit.EventHandler; 16 | import net.minecraft.block.entity.CommandBlockBlockEntity; 17 | import net.minecraft.client.MinecraftClient; 18 | import net.minecraft.command.CommandSource; 19 | import net.minecraft.network.packet.c2s.play.UpdateCommandBlockC2SPacket; 20 | import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket; 21 | import net.minecraft.text.Text; 22 | import net.minecraft.text.TranslatableTextContent; 23 | 24 | public class CheckCMD extends Command { 25 | private static final SimpleCommandExceptionType ALWAYS_CHECKING = new SimpleCommandExceptionType(Text.of("Already executing Command Check!")); 26 | 27 | private int checking = 0; 28 | 29 | public CheckCMD() { 30 | super("checkcmd", "Checks if commandblocks are active."); 31 | } 32 | 33 | public void build(LiteralArgumentBuilder builder) { 34 | builder.executes(context -> { 35 | assert mc.player != null; // impossible, but still 36 | if (this.checking > 0) 37 | throw ALWAYS_CHECKING.create(); 38 | this.checking = 200; 39 | MeteorClient.EVENT_BUS.subscribe(this); 40 | mc.player.networkHandler.sendPacket(new UpdateCommandBlockC2SPacket(mc.player.getBlockPos(), "", CommandBlockBlockEntity.Type.AUTO, false, false, false)); 41 | ChatUtils.info("Checking.."); 42 | return 1; 43 | }); 44 | } 45 | 46 | @EventHandler 47 | private void onReceivePacket(PacketEvent.Receive event) { 48 | if (!(event.packet instanceof GameMessageS2CPacket)) 49 | return; 50 | Text message = ((GameMessageS2CPacket)event.packet).content(); 51 | if (message.getContent() instanceof TranslatableTextContent) { 52 | String key = ((TranslatableTextContent)message.getContent()).getKey(); 53 | if (key.equals("advMode.notEnabled")) { 54 | ChatUtils.info("Command blocks are deactivated"); 55 | event.cancel(); 56 | this.checking = 0; 57 | } else if (key.equals("advMode.notAllowed") || key.equals("advMode.setCommand.success")) { 58 | ChatUtils.info("Command blocks are activated"); 59 | event.cancel(); 60 | this.checking = 0; 61 | } 62 | } 63 | } 64 | 65 | @EventHandler 66 | private void onTick(TickEvent.Pre event) { 67 | if (this.checking == 1) 68 | ChatUtils.error("Server didnt send a response!"); 69 | if (this.checking < 1) { 70 | this.checking = 0; 71 | MeteorClient.EVENT_BUS.unsubscribe(this); 72 | return; 73 | } 74 | this.checking--; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/ClearInventoryCommand.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 com.dark.zewo2.commands; 7 | 8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 9 | import meteordevelopment.meteorclient.commands.Command; 10 | import net.minecraft.client.MinecraftClient; 11 | import net.minecraft.command.CommandSource; 12 | import net.minecraft.screen.slot.SlotActionType; 13 | 14 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 15 | 16 | public class ClearInventoryCommand extends Command { 17 | // crappy hack to make it compile 18 | private final MinecraftClient mc = MinecraftClient.getInstance(); 19 | 20 | boolean confirm = false; 21 | public ClearInventoryCommand() { 22 | super("clear-inventory", "clear your inventory."); 23 | } 24 | 25 | @Override 26 | public void build(LiteralArgumentBuilder builder) { 27 | builder.executes(ctx -> { 28 | assert mc.interactionManager != null && mc.player != null; // impossible, but still 29 | if(!confirm) { 30 | warning("Are you sure that you want to clear your inventory? if yes, use the command again."); 31 | confirm = true; 32 | } else { 33 | for (int i = 9; i < 45; i++) mc.interactionManager.clickSlot(mc.player.currentScreenHandler.syncId, i, 120, SlotActionType.SWAP, mc.player); 34 | confirm = false; 35 | } 36 | return SINGLE_SUCCESS; 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/CrackedOpSpamCommand.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.commands; 2 | 3 | import com.mojang.brigadier.arguments.IntegerArgumentType; 4 | import com.mojang.brigadier.arguments.StringArgumentType; 5 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 6 | import meteordevelopment.meteorclient.commands.Command; 7 | import net.minecraft.client.MinecraftClient; 8 | import net.minecraft.command.CommandSource; 9 | 10 | public class CrackedOpSpamCommand extends Command { 11 | public CrackedOpSpamCommand() { 12 | super("CrackedOpSpam", "Spam op accounts on cracked servers", "cop", "crackedopspam"); 13 | } 14 | 15 | @Override 16 | public void build(LiteralArgumentBuilder builder) { 17 | builder.then(argument("name", StringArgumentType.string()) 18 | .then(argument("amount", IntegerArgumentType.integer(0)).executes(ctx -> { 19 | int amount = IntegerArgumentType.getInteger(ctx, "amount"); 20 | String name = StringArgumentType.getString(ctx, "name"); 21 | 22 | //make new thread to try to prevent some lag 23 | new Thread(() -> { 24 | for (int i = 0; i < amount; i++){ 25 | MinecraftClient.getInstance().player.networkHandler.sendChatCommand("op " + name + i); 26 | sleep(500); 27 | } 28 | }).start(); 29 | 30 | return 1; 31 | }))); 32 | } 33 | 34 | public static void sleep(long ms) { 35 | try { 36 | Thread.sleep(ms); 37 | } catch (Exception ignored) { 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/DesyncCommand.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 com.dark.zewo2.commands; 7 | 8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 9 | import meteordevelopment.meteorclient.commands.Command; 10 | import net.minecraft.client.MinecraftClient; 11 | import net.minecraft.command.CommandSource; 12 | import net.minecraft.entity.Entity; 13 | 14 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 15 | 16 | public class DesyncCommand extends Command { 17 | // crappy hack to make it compile 18 | private final MinecraftClient mc = MinecraftClient.getInstance(); 19 | 20 | private Entity entity = null; 21 | 22 | public DesyncCommand() { 23 | super("desync", "Desyncs your riding entity from the server."); 24 | } 25 | 26 | @Override 27 | public void build(LiteralArgumentBuilder builder) { 28 | builder.executes(context -> { 29 | assert mc.player != null && mc.world != null; // impossible, but still 30 | if (this.entity == null) { 31 | if (mc.player.hasVehicle()) { 32 | this.entity = mc.player.getVehicle(); 33 | 34 | mc.player.dismountVehicle(); 35 | mc.world.removeEntity(this.entity.getId(), Entity.RemovalReason.UNLOADED_TO_CHUNK); 36 | 37 | info("Successfully desynced your vehicle"); 38 | } else { 39 | error("You are not riding an entity."); 40 | } 41 | } else { 42 | if (!mc.player.hasVehicle()) { 43 | mc.world.addEntity(this.entity); 44 | mc.player.startRiding(this.entity, true); 45 | 46 | this.entity = null; 47 | 48 | info("Successfully resynced your vehicle"); 49 | } else { 50 | error("You are not riding another entity."); 51 | } 52 | } 53 | 54 | return SINGLE_SUCCESS; 55 | }); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/DisableVehicleGrav.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 com.dark.zewo2.commands; 7 | 8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 9 | import meteordevelopment.meteorclient.commands.Command; 10 | import net.minecraft.client.MinecraftClient; 11 | import net.minecraft.command.CommandSource; 12 | 13 | import java.util.Objects; 14 | 15 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 16 | 17 | public class DisableVehicleGrav extends Command { 18 | // crappy hack to make it compile 19 | private final MinecraftClient mc = MinecraftClient.getInstance(); 20 | 21 | public DisableVehicleGrav() { 22 | super("antigrav", "Disables Vehicle Gravity"); 23 | } 24 | 25 | @Override 26 | public void build(LiteralArgumentBuilder builder) { 27 | builder.executes(context -> { 28 | assert mc.player != null; // impossible, but still 29 | if (mc.player.hasVehicle()){ 30 | Objects.requireNonNull(mc.player.getVehicle()).setNoGravity(true); 31 | } else info("You need to have a vehicle"); 32 | return SINGLE_SUCCESS; 33 | }); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/DupeCommand.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.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.network.packet.c2s.play.BookUpdateC2SPacket; 7 | 8 | import java.util.ArrayList; 9 | import java.util.Optional; 10 | 11 | public class DupeCommand extends Command { 12 | public DupeCommand() { 13 | super("dupe", "popbobsexdupe"); 14 | } 15 | 16 | @Override 17 | public void build(LiteralArgumentBuilder builder) { 18 | builder.executes(context -> { 19 | 20 | mc.player.networkHandler.sendPacket(new BookUpdateC2SPacket(mc.player.getInventory().getSelectedSlot(), new ArrayList<>(), Optional.of("discord.gg/kja3YYV7R9 join now :3"))); 21 | return 1; 22 | }); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/MinefortJoin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.commands; 2 | 3 | import com.google.gson.JsonArray; 4 | import com.google.gson.JsonElement; 5 | import com.google.gson.JsonObject; 6 | import com.google.gson.JsonParser; 7 | import com.mojang.brigadier.arguments.StringArgumentType; 8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 9 | import io.netty.util.Signal; 10 | import meteordevelopment.meteorclient.commands.Command; 11 | import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType; 12 | import meteordevelopment.meteorclient.utils.Utils; 13 | import meteordevelopment.meteorclient.utils.network.Http; 14 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 15 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 16 | import net.minecraft.client.gui.screen.ingame.InventoryScreen; 17 | import net.minecraft.command.CommandSource; 18 | import net.minecraft.command.argument.TextArgumentType; 19 | import net.minecraft.text.Text; 20 | 21 | import java.util.HashMap; 22 | import java.util.concurrent.CompletableFuture; 23 | 24 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 25 | 26 | public class MinefortJoin extends Command { 27 | 28 | public MinefortJoin() { 29 | super("minefort", "Join another player on minefort >> @just_jakob", "mf"); 30 | } 31 | 32 | @Override 33 | public void build(LiteralArgumentBuilder builder) { 34 | builder.then(literal("join").then(argument("player", StringArgumentType.string()).executes(context -> { 35 | String player = StringArgumentType.getString(context, "player"); 36 | 37 | info("Searching..."); 38 | 39 | find(player).thenAccept((ser) -> { 40 | if(ser == null) 41 | error("Player not found!"); 42 | else { 43 | info(Text.literal(player + " found on " + ser + ", attempting server switch!")); 44 | ChatUtils.sendPlayerMsg("/server " + ser); 45 | } 46 | }); 47 | 48 | return SINGLE_SUCCESS; 49 | }))); 50 | 51 | builder.then(literal("find").then(argument("player", StringArgumentType.string()).executes(context -> { 52 | String player = StringArgumentType.getString(context, "player"); 53 | 54 | info("Searching..."); 55 | 56 | find(player).thenAccept((ser) -> { 57 | if(ser == null) 58 | error("Player not found!"); 59 | else 60 | info(player + " is on " + ser); 61 | }); 62 | 63 | return SINGLE_SUCCESS; 64 | }))); 65 | } 66 | 67 | public CompletableFuture find(String player) { 68 | return CompletableFuture.supplyAsync(() -> { 69 | try { 70 | 71 | String uuid = JsonParser.parseString(Http.get("https://playerdb.co/api/player/minecraft/" + player).sendString()).getAsJsonObject() 72 | .getAsJsonObject("data").getAsJsonObject("player").get("id").getAsString(); 73 | 74 | String str = Http.post("https://api.minefort.com/v1/servers/list").bodyJson("{\"pagination\": { \"skip\": 0, \"limit\": 500 }, \"sort\": { \"field\": \"players.online\", \"order\": \"desc\" }}").sendString(); 75 | 76 | JsonArray obj = JsonParser.parseString(str).getAsJsonObject().get("result").getAsJsonArray(); 77 | 78 | for (JsonElement jsonElement : obj) { 79 | for (JsonElement p : jsonElement.getAsJsonObject().getAsJsonObject("players").getAsJsonArray("list")) { 80 | if(p.getAsJsonObject().get("uuid").getAsString().equalsIgnoreCase(uuid)) { 81 | return jsonElement.getAsJsonObject().get("serverName").getAsString(); 82 | } 83 | } 84 | } 85 | 86 | return null; 87 | } catch (Exception e) { 88 | error("Something went wrong! " + e.getMessage()); 89 | return null; 90 | } 91 | }); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/commands/SpamCommand.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.commands; 2 | 3 | import com.mojang.brigadier.arguments.IntegerArgumentType; 4 | import com.mojang.brigadier.arguments.StringArgumentType; 5 | import com.mojang.brigadier.builder.LiteralArgumentBuilder; 6 | import meteordevelopment.meteorclient.commands.Command; 7 | import net.minecraft.client.MinecraftClient; 8 | import net.minecraft.command.CommandSource; 9 | 10 | import static com.mojang.brigadier.Command.SINGLE_SUCCESS; 11 | 12 | public class SpamCommand extends Command { 13 | public SpamCommand() { 14 | super("Spam", "Spam a message in chat", "spawm"); 15 | } 16 | 17 | @Override 18 | public void build(LiteralArgumentBuilder builder) { 19 | builder.then(argument("amount", IntegerArgumentType.integer(0)) 20 | .then(argument("text", StringArgumentType.string()).executes(ctx -> { 21 | int amount = IntegerArgumentType.getInteger(ctx, "amount"); 22 | String text = StringArgumentType.getString(ctx, "text"); 23 | 24 | for (int i = 0; i < amount; i++) { 25 | MinecraftClient.getInstance().player.networkHandler.sendChatMessage(text); 26 | } 27 | 28 | return SINGLE_SUCCESS; 29 | }))); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/gui/screens/SessionIDScreen.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.gui.screens; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.gui.GuiThemes; 5 | import meteordevelopment.meteorclient.gui.WindowScreen; 6 | import meteordevelopment.meteorclient.gui.widgets.containers.WTable; 7 | import meteordevelopment.meteorclient.gui.widgets.input.WTextBox; 8 | import meteordevelopment.meteorclient.systems.accounts.Account; 9 | import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; 10 | import net.minecraft.client.session.Session; 11 | 12 | import java.util.Optional; 13 | 14 | import static meteordevelopment.meteorclient.MeteorClient.mc; 15 | 16 | public class SessionIDScreen extends WindowScreen { 17 | 18 | public SessionIDScreen() { 19 | super(GuiThemes.get(), "Session ID login"); 20 | } 21 | 22 | @Override 23 | public void initWidgets() { 24 | WTable t = add(theme.table()).expandX().widget(); 25 | 26 | // Token 27 | t.add(theme.label("UserName")); 28 | WTextBox USER = t.add(theme.textBox("")).minWidth(220).expandX().widget(); 29 | t.row(); 30 | 31 | t.add(theme.label("UUID")); 32 | WTextBox UUID = t.add(theme.textBox("")).minWidth(220).expandX().widget(); 33 | t.row(); 34 | 35 | t.add(theme.label("Session")); 36 | WTextBox ID = t.add(theme.textBox("")).minWidth(220).expandX().widget(); 37 | t.row(); 38 | 39 | // Add 40 | t.add(theme.button("Done")).minWidth(220).expandX().widget().action = () -> { 41 | if (ID.get().isEmpty() || UUID.get().isEmpty() || USER.get().isEmpty()) return; 42 | 43 | Account.setSession(new Session(USER.get(), java.util.UUID.fromString(UUID.get()), ID.get(), Optional.empty(), Optional.empty(), Session.AccountType.MSA)); 44 | 45 | mc.setScreen(new MultiplayerScreen(this.parent)); 46 | }; 47 | 48 | t.add(theme.button("Return ACC")).minWidth(220).expandX().widget().action = () -> { 49 | Account.setSession(new Session(Addon.BOOTNAME, java.util.UUID.fromString(Addon.BOOTUUID), Addon.BOOTSESSION, Optional.empty(), Optional.empty(), Session.AccountType.MOJANG)); 50 | 51 | mc.setScreen(new MultiplayerScreen(this.parent)); 52 | }; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/gui/screens/accounts.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.gui.screens; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.gui.GuiThemes; 5 | import meteordevelopment.meteorclient.gui.WindowScreen; 6 | import meteordevelopment.meteorclient.gui.widgets.containers.WContainer; 7 | import meteordevelopment.meteorclient.gui.widgets.containers.WHorizontalList; 8 | import meteordevelopment.meteorclient.gui.widgets.pressable.WButton; 9 | import meteordevelopment.meteorclient.systems.accounts.Accounts; 10 | import meteordevelopment.meteorclient.utils.misc.NbtUtils; 11 | 12 | import static meteordevelopment.meteorclient.MeteorClient.mc; 13 | 14 | public class accounts extends WindowScreen { 15 | public accounts() { 16 | super(GuiThemes.get(), Addon.CATEGORY.toString()); 17 | } 18 | 19 | @Override 20 | public void initWidgets() { 21 | // Add account 22 | WHorizontalList l = add(theme.horizontalList()).expandX().widget(); 23 | 24 | addButton(l, "SessionLogin", () -> mc.setScreen(new SessionIDScreen())); 25 | } 26 | 27 | private void addButton(WContainer c, String text, Runnable action) { 28 | WButton button = c.add(theme.button(text)).expandX().widget(); 29 | button.action = action; 30 | } 31 | 32 | @Override 33 | public boolean toClipboard() { 34 | return NbtUtils.toClipboard(Accounts.get()); 35 | } 36 | 37 | @Override 38 | public boolean fromClipboard() { 39 | return NbtUtils.fromClipboard(Accounts.get()); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/gui/settings/SetSession.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.gui.settings; 2 | 3 | import com.mojang.authlib.GameProfile; 4 | import com.mojang.util.UUIDTypeAdapter; 5 | import net.minecraft.client.MinecraftClient; 6 | import net.minecraft.network.encryption.PlayerPublicKey; 7 | import org.jetbrains.annotations.Nullable; 8 | 9 | import java.util.UUID; 10 | 11 | public class SetSession { 12 | 13 | public static String username = ""; 14 | 15 | public static String accessToken = ""; 16 | 17 | public static String UUID = ""; 18 | 19 | public static String sessionid = "token:"+accessToken+":"+UUID; 20 | 21 | public static boolean originalSession = true; 22 | 23 | public static MinecraftClient mc = MinecraftClient.getInstance(); 24 | 25 | @Nullable 26 | public static java.util.UUID getUuidOrNull() { 27 | try { 28 | return java.util.UUID.fromString(UUID); 29 | } catch (IllegalArgumentException var2) { 30 | return null; 31 | } 32 | } 33 | 34 | 35 | public static GameProfile getGameProfile() { 36 | return new GameProfile(getUuidOrNull(), username); 37 | } 38 | 39 | 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/ChatMixin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.dark.zewo2.modules.NoChatNormalisation; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import net.minecraft.client.MinecraftClient; 6 | import net.minecraft.client.gui.screen.ChatScreen; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Redirect; 10 | 11 | @Mixin(ChatScreen.class) 12 | public abstract class ChatMixin { 13 | 14 | @Redirect(method = "sendMessage", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ChatScreen;normalize(Ljava/lang/String;)Ljava/lang/String;")) 15 | String onChatMessageNormalize(ChatScreen instance, String chatText) { 16 | if (!chatText.isEmpty()) MinecraftClient.getInstance().inGameHud.getChatHud() 17 | .addToMessageHistory(chatText); 18 | 19 | String text = chatText; 20 | NoChatNormalisation noChatNormalisation = Modules.get().get(NoChatNormalisation.class); 21 | if (!noChatNormalisation.isActive()) text = instance.normalize(chatText); 22 | return text; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/GenericContainerScreenMixin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.dark.zewo2.modules.StorageVoider; 4 | import meteordevelopment.meteorclient.systems.modules.Modules; 5 | import meteordevelopment.meteorclient.systems.modules.misc.InventoryTweaks; 6 | import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; 7 | import net.minecraft.client.gui.screen.ingame.HandledScreen; 8 | import net.minecraft.client.gui.screen.ingame.ScreenHandlerProvider; 9 | import net.minecraft.client.gui.widget.ButtonWidget; 10 | import net.minecraft.entity.player.PlayerInventory; 11 | import net.minecraft.screen.GenericContainerScreenHandler; 12 | import net.minecraft.text.Text; 13 | import org.spongepowered.asm.mixin.Mixin; 14 | 15 | @Mixin(GenericContainerScreen.class) 16 | public abstract class GenericContainerScreenMixin extends HandledScreen implements ScreenHandlerProvider { 17 | public GenericContainerScreenMixin(GenericContainerScreenHandler container, PlayerInventory playerInventory, Text name) { 18 | super(container, playerInventory, name); 19 | } 20 | 21 | @Override 22 | protected void init() { 23 | super.init(); 24 | 25 | StorageVoider storageVoider = Modules.get().get(StorageVoider.class); 26 | 27 | if (storageVoider.isActive()) { 28 | addDrawableChild( 29 | new ButtonWidget.Builder(Text.literal("Voider"), button -> storageVoider.voider(handler)) 30 | .position(x + backgroundWidth - 150, y + -15) 31 | .size(50, 12) 32 | .build() 33 | ); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/Interface/INClientPlayerInteractionManagerMixin.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022 Coffee Client, 0x150 and contributors. 3 | * Some rights reserved, refer to LICENSE file. 4 | */ 5 | 6 | package com.dark.zewo2.mixin.Interface; 7 | 8 | import net.minecraft.client.network.ClientPlayerInteractionManager; 9 | import net.minecraft.util.math.BlockPos; 10 | import org.spongepowered.asm.mixin.Mixin; 11 | import org.spongepowered.asm.mixin.gen.Accessor; 12 | 13 | @Mixin(ClientPlayerInteractionManager.class) 14 | public interface INClientPlayerInteractionManagerMixin { 15 | 16 | @Accessor("currentBreakingPos") 17 | BlockPos getCurrentBreakingPos(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/MixinMessageHandler.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.dark.zewo2.modules.Girlboss; 4 | import com.mojang.authlib.GameProfile; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.network.message.MessageHandler; 7 | import net.minecraft.network.message.MessageSignatureData; 8 | import net.minecraft.network.message.MessageType; 9 | import net.minecraft.network.message.SignedMessage; 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 java.nio.ByteBuffer; 16 | 17 | @Mixin(MessageHandler.class) 18 | public class MixinMessageHandler { 19 | 20 | @Inject(method = "onChatMessage", at = @At("HEAD")) 21 | public void onChatMessage(final SignedMessage message, final GameProfile sender, final MessageType.Parameters params, final CallbackInfo ci) { 22 | if (!Modules.get().get(Girlboss.class).isActive()) return; 23 | 24 | if (message.signature() == null) { 25 | return; 26 | } 27 | Girlboss.receivedMessage(message.signature().toByteBuffer()); 28 | for (final MessageSignatureData lastSeen : message.signedBody().lastSeenMessages().entries()) { 29 | final ByteBuffer signatureByteBuffer = lastSeen.toByteBuffer(); 30 | Girlboss.addSeenSignature(sender.getId(), signatureByteBuffer); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/MultiplayerScreenMixin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.gui.screens.accounts; 5 | import net.minecraft.client.gui.screen.Screen; 6 | import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; 7 | import net.minecraft.client.gui.widget.ButtonWidget; 8 | import net.minecraft.text.Text; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.injection.At; 11 | import org.spongepowered.asm.mixin.injection.Inject; 12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 13 | 14 | @Mixin(MultiplayerScreen.class) 15 | public abstract class MultiplayerScreenMixin extends Screen { 16 | protected MultiplayerScreenMixin(Text title) { 17 | super(title); 18 | } 19 | 20 | @Inject(method = "init", at = @At("TAIL")) 21 | private void onInit(CallbackInfo info) { 22 | addDrawableChild(ButtonWidget.builder(Text.of(Addon.CATEGORY.toString()), button -> { 23 | client.setScreen(new accounts()); 24 | }) 25 | .position(this.width - 75 -3, 512 + 3) 26 | .size(75, 20) 27 | .build()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/PlayerListEntryMixin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.dark.zewo2.modules.Boykisser; 4 | import com.mojang.authlib.GameProfile; 5 | import meteordevelopment.meteorclient.systems.modules.Modules; 6 | import net.minecraft.client.network.PlayerListEntry; 7 | import net.minecraft.client.util.DefaultSkinHelper; 8 | import net.minecraft.client.util.SkinTextures; 9 | import net.minecraft.util.Identifier; 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.callback.CallbackInfoReturnable; 16 | 17 | import java.util.function.Supplier; 18 | 19 | @Mixin(PlayerListEntry.class) 20 | public abstract class PlayerListEntryMixin { 21 | @Final 22 | @Shadow 23 | private Supplier texturesSupplier; 24 | 25 | @Inject(method = "getSkinTextures", at = @At("HEAD"), cancellable = true) 26 | private void onGetTexture(CallbackInfoReturnable cir) { 27 | if (Modules.get().get(Boykisser.class).isActive()) { 28 | cir.setReturnValue( 29 | new SkinTextures( 30 | Boykisser.boykisser, 31 | texturesSupplier.get().textureUrl(), 32 | texturesSupplier.get().capeTexture(), 33 | texturesSupplier.get().elytraTexture(), 34 | SkinTextures.Model.SLIM, 35 | texturesSupplier.get().secure() 36 | ) 37 | ); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/mixin/SessionMixin.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.mixin; 2 | 3 | import com.mojang.authlib.GameProfile; 4 | import com.dark.zewo2.gui.settings.SetSession; 5 | import net.minecraft.client.session.Session; 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 | 11 | @Mixin(Session.class) 12 | public class SessionMixin { 13 | 14 | @Inject(at=@At("TAIL"), method="getSessionId", cancellable = true) 15 | 16 | private void getSessionId(CallbackInfoReturnable cir) { 17 | if (SetSession.originalSession) return; 18 | cir.setReturnValue(SetSession.sessionid); 19 | } 20 | 21 | @Inject(at=@At("TAIL"), method="getAccessToken", cancellable = true) 22 | private void getAccessToken(CallbackInfoReturnable cir) { 23 | if (SetSession.originalSession) return; 24 | cir.setReturnValue(SetSession.accessToken); 25 | } 26 | 27 | @Inject(at=@At("TAIL"), method="getUsername", cancellable = true) 28 | private void getUsername(CallbackInfoReturnable cir) { 29 | if (SetSession.originalSession) return; 30 | cir.setReturnValue(SetSession.username); 31 | } 32 | 33 | @Inject(at=@At("TAIL"), method="getUuidOrNull", cancellable = true) 34 | private void getUuid(CallbackInfoReturnable cir) { 35 | if (SetSession.originalSession) return; 36 | cir.setReturnValue(SetSession.UUID); 37 | } 38 | 39 | @Inject(at=@At("TAIL"), method="getSessionId", cancellable = true) 40 | private void getProfile(CallbackInfoReturnable cir) { 41 | if (SetSession.originalSession) return; 42 | cir.setReturnValue(SetSession.getGameProfile()); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/AntiScreen.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.game.OpenScreenEvent; 5 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 6 | import meteordevelopment.meteorclient.settings.BoolSetting; 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.client.gui.screen.CreditsScreen; 12 | import net.minecraft.client.gui.screen.DemoScreen; 13 | import net.minecraft.network.packet.s2c.play.CloseScreenS2CPacket; 14 | 15 | public class AntiScreen extends Module { 16 | private long lastClosed = 0; 17 | 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private final Setting endScreen = sgGeneral.add(new BoolSetting.Builder() 21 | .name("end-screen") 22 | .description("Removes the end screen after finishing the game.") 23 | .defaultValue(true) 24 | .build() 25 | ); 26 | 27 | private final Setting demoScreen = sgGeneral.add(new BoolSetting.Builder() 28 | .name("demo-screen") 29 | .description("Removes the demo screen.") 30 | .defaultValue(true) 31 | .build() 32 | ); 33 | 34 | private final Setting noCloseScreen = sgGeneral.add(new BoolSetting.Builder() 35 | .name("Anti close") 36 | .description("Ignore close screen packets.") 37 | .defaultValue(true) 38 | .build() 39 | ); 40 | 41 | // Constructor 42 | 43 | public AntiScreen() { 44 | super(Addon.CATEGORY, "anti-screen", "Removes certain screens in the game."); 45 | } 46 | 47 | // Getter 48 | 49 | public boolean cancelEndScreen() { 50 | return this.endScreen.get(); 51 | } 52 | 53 | public boolean cancelDemoScreen() { 54 | return this.demoScreen.get(); 55 | } 56 | 57 | @EventHandler 58 | private void kys(OpenScreenEvent event){ 59 | if(endScreen.get() && event.screen instanceof CreditsScreen){ 60 | event.cancel(); 61 | } 62 | if(demoScreen.get() && event.screen instanceof DemoScreen){ 63 | event.cancel(); 64 | } 65 | } 66 | 67 | @EventHandler 68 | public void onPacket(PacketEvent.Receive event){ 69 | if (event.packet instanceof CloseScreenS2CPacket packet && noCloseScreen.get()){ 70 | if (System.currentTimeMillis() - lastClosed < 1000) event.cancel(); 71 | 72 | lastClosed = System.currentTimeMillis(); // only stop packets if they are spammed 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/AntiSpawnpoint.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 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.orbit.EventHandler; 10 | import net.minecraft.block.BedBlock; 11 | import net.minecraft.block.RespawnAnchorBlock; 12 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket; 13 | import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; 14 | import net.minecraft.util.Hand; 15 | import net.minecraft.util.math.BlockPos; 16 | 17 | public class AntiSpawnpoint extends Module { 18 | 19 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 20 | 21 | private final Setting fakeuse = sgGeneral.add(new BoolSetting.Builder() 22 | .name("Fake Use") 23 | .description("Makes it look like you interacted with the block.") 24 | .defaultValue(false) 25 | .build() 26 | ); 27 | public AntiSpawnpoint() { 28 | super(Addon.CATEGORY, "AntiSpawnpoint", "Stop you from setting your spawnpoint"); 29 | } 30 | 31 | @EventHandler 32 | private void onclick(PacketEvent.Send event){ 33 | if (event.packet instanceof PlayerInteractBlockC2SPacket packet) { 34 | BlockPos blockpos = packet.getBlockHitResult().getBlockPos(); 35 | 36 | if (fakeuse.get()){ 37 | mc.player.networkHandler.sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND)); 38 | mc.player.swingHand(Hand.MAIN_HAND); 39 | } 40 | 41 | if (mc.world.getDimension().bedWorks() && mc.world.getBlockState(blockpos).getBlock() instanceof BedBlock) { 42 | event.cancel(); 43 | } else if (mc.world.getDimension().respawnAnchorWorks() && mc.world.getBlockState(blockpos).getBlock() instanceof RespawnAnchorBlock) { 44 | event.cancel(); 45 | } 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/AutoHorn.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.entity.EntityAddedEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.meteorclient.utils.player.FindItemResult; 7 | import meteordevelopment.meteorclient.utils.player.InvUtils; 8 | import meteordevelopment.orbit.EventHandler; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.GoatHornItem; 11 | import net.minecraft.util.Hand; 12 | 13 | public class AutoHorn extends Module { 14 | public AutoHorn() { 15 | super(Addon.CATEGORY, "AutoHorn", "Automatically use horn if someone enters render distance"); 16 | } 17 | 18 | @EventHandler 19 | private void onenter(EntityAddedEvent event){ 20 | if (event.entity instanceof PlayerEntity){ 21 | FindItemResult hashorn = InvUtils.findInHotbar(itemStack -> itemStack.getItem() instanceof GoatHornItem); 22 | if (!hashorn.found()) return; 23 | int prevslot = mc.player.getInventory().getSelectedSlot(); 24 | mc.player.getInventory().setSelectedSlot(hashorn.slot()); 25 | mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND); 26 | mc.player.getInventory().setSelectedSlot(prevslot); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/AutoL.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 10 | import meteordevelopment.meteorclient.settings.*; 11 | import meteordevelopment.meteorclient.systems.modules.Module; 12 | import meteordevelopment.meteorclient.utils.Utils; 13 | import meteordevelopment.meteorclient.utils.player.ChatUtils; 14 | import meteordevelopment.orbit.EventHandler; 15 | import net.minecraft.entity.Entity; 16 | import net.minecraft.entity.player.PlayerEntity; 17 | import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket; 18 | 19 | import java.util.List; 20 | 21 | public class AutoL extends Module { 22 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 23 | private final Setting> messages = sgGeneral.add(new StringListSetting.Builder() 24 | .name("Messages") 25 | .description("Messages to send when killing enemy") 26 | .defaultValue(List.of("L (target)", "bozo (target)")) 27 | .build() 28 | ); 29 | 30 | public AutoL() { 31 | super(Addon.CATEGORY, "AutoL", "Disgraceful"); 32 | } 33 | 34 | @EventHandler 35 | private void OnPacket(PacketEvent.Receive event) { 36 | if (event.packet instanceof EntityStatusS2CPacket packet) { 37 | if (packet.getStatus() != 3) return; 38 | 39 | Entity entity = packet.getEntity(mc.world); 40 | if (entity instanceof PlayerEntity player){ 41 | if (player.equals(mc.player)) return; 42 | 43 | String text = messages.get().get(Utils.random(0, messages.get().size())); 44 | //replace syntax 45 | text = text.replace("(target)", player.getGameProfile().getName()); 46 | text = text.replace("(target.coords)", player.getBlockPos().toString()); 47 | ChatUtils.sendPlayerMsg(text); 48 | 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/BetterAutoSign.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.game.OpenScreenEvent; 10 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 11 | import meteordevelopment.meteorclient.mixin.AbstractSignEditScreenAccessor; 12 | import meteordevelopment.meteorclient.settings.*; 13 | import meteordevelopment.meteorclient.systems.modules.Module; 14 | import meteordevelopment.meteorclient.utils.player.FindItemResult; 15 | import meteordevelopment.meteorclient.utils.player.InvUtils; 16 | import meteordevelopment.orbit.EventHandler; 17 | import net.minecraft.block.Block; 18 | import net.minecraft.block.SignBlock; 19 | import net.minecraft.block.entity.SignBlockEntity; 20 | import net.minecraft.client.gui.screen.ingame.SignEditScreen; 21 | import net.minecraft.item.DyeItem; 22 | import net.minecraft.item.GoatHornItem; 23 | import net.minecraft.item.Item; 24 | import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; 25 | import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket; 26 | import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; 27 | import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; 28 | import net.minecraft.network.packet.s2c.play.SignEditorOpenS2CPacket; 29 | import net.minecraft.util.Hand; 30 | import net.minecraft.util.hit.BlockHitResult; 31 | import net.minecraft.util.math.BlockPos; 32 | import net.minecraft.util.math.Direction; 33 | import net.minecraft.util.math.Vec3d; 34 | import org.reflections.vfs.Vfs; 35 | 36 | import java.util.List; 37 | 38 | public class BetterAutoSign extends Module { 39 | boolean listen; 40 | 41 | private final SettingGroup sgGeneral = this.settings.getDefaultGroup(); 42 | 43 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 44 | .name("mode") 45 | .description("modes") 46 | .defaultValue(sides.front) 47 | .build() 48 | ); 49 | 50 | private final Setting line1 = sgGeneral.add( 51 | new StringSetting.Builder().name("line 1").description("line 1").defaultValue("").build()); 52 | 53 | private final Setting line2 = sgGeneral.add( 54 | new StringSetting.Builder().name("line 2").description("line 2").defaultValue("").build()); 55 | private final Setting line3 = sgGeneral.add( 56 | new StringSetting.Builder().name("line 3").description("line 3").defaultValue("").build()); 57 | 58 | private final Setting line4 = sgGeneral.add( 59 | new StringSetting.Builder().name("line 4").description("line 4").defaultValue("").build()); 60 | 61 | public BetterAutoSign() { 62 | super(Addon.CATEGORY, "Auto-Sign+", "Auto Sign"); 63 | } 64 | 65 | @Override 66 | public void onActivate() { 67 | listen = true; 68 | } 69 | 70 | @EventHandler 71 | private void packet(PacketEvent.Receive event){ 72 | if (!listen) return; 73 | if (event.packet instanceof SignEditorOpenS2CPacket packet){ 74 | event.cancel(); 75 | 76 | listen = false; 77 | boolean sneaking = mc.player.isSneaking(); 78 | if (sneaking) mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.RELEASE_SHIFT_KEY)); 79 | 80 | BlockPos sign = new BlockPos(packet.getPos()); 81 | 82 | if (mode.get().equals(sides.front)) { 83 | mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign, true, isempty(line1.get()), isempty(line2.get()), isempty(line3.get()), isempty(line4.get()))); 84 | } 85 | if (mode.get().equals(sides.back)) { 86 | mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign, false, isempty(line1.get()), isempty(line2.get()), isempty(line3.get()), isempty(line4.get()))); 87 | } 88 | 89 | if (mode.get().equals(sides.both)){ 90 | mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign, true, isempty(line1.get()), isempty(line2.get()), isempty(line3.get()), isempty(line4.get()))); 91 | mc.player.networkHandler.sendPacket(new PlayerInteractBlockC2SPacket(Hand.MAIN_HAND ,new BlockHitResult(new Vec3d(sign.getX(), sign.getY(), sign.getZ()), mc.player.getHorizontalFacing().getOpposite(), sign, false), 0)); 92 | mc.player.networkHandler.sendPacket(new UpdateSignC2SPacket(sign, false, isempty(line1.get()), isempty(line2.get()), isempty(line3.get()), isempty(line4.get()))); 93 | } 94 | 95 | if (sneaking) mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.PRESS_SHIFT_KEY)); 96 | 97 | listen = true; 98 | } 99 | } 100 | 101 | private String isempty(String text){ 102 | if (text.isEmpty()) return ""; 103 | else return text; 104 | } 105 | 106 | private boolean itemfilter(Item item) { 107 | return item instanceof DyeItem; 108 | } 109 | 110 | public enum sides{ 111 | front, 112 | back, 113 | both 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Boykisser.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.systems.modules.Module; 5 | import net.minecraft.util.Identifier; 6 | 7 | public class Boykisser extends Module { 8 | public Boykisser() { 9 | super(Addon.CATEGORY, "Boykisser", "Makes everyone a boykisser :3"); 10 | } 11 | 12 | public static final Identifier boykisser = Identifier.of("zewo2","boykisserskin.png"); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/EntityFly.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.entity.BoatMoveEvent; 5 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 6 | import meteordevelopment.meteorclient.events.world.TickEvent; 7 | import meteordevelopment.meteorclient.mixininterface.IVec3d; 8 | import meteordevelopment.meteorclient.settings.*; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 11 | import meteordevelopment.orbit.EventHandler; 12 | import net.minecraft.client.option.KeyBinding; 13 | import net.minecraft.entity.Entity; 14 | import net.minecraft.network.packet.s2c.play.VehicleMoveS2CPacket; 15 | import net.minecraft.util.math.Vec3d; 16 | import org.lwjgl.glfw.GLFW; 17 | 18 | public class EntityFly extends Module { 19 | 20 | int kickdelay; 21 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 22 | 23 | private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() 24 | .name("speed") 25 | .description("Horizontal speed in blocks per second.") 26 | .defaultValue(10) 27 | .min(0) 28 | .sliderMax(50) 29 | .build() 30 | ); 31 | 32 | private final Setting verticalSpeed = sgGeneral.add(new DoubleSetting.Builder() 33 | .name("vertical-speed") 34 | .description("Vertical speed in blocks per second.") 35 | .defaultValue(6) 36 | .min(0) 37 | .sliderMax(20) 38 | .build() 39 | ); 40 | 41 | private final Setting bypass = sgGeneral.add(new IntSetting.Builder() 42 | .name("delay") 43 | .description("The delay between antikick packet in ticks.") 44 | .defaultValue(20) 45 | .sliderRange(0, 20) 46 | .build() 47 | ); 48 | 49 | private final Setting cancelServerPackets = sgGeneral.add(new BoolSetting.Builder() 50 | .name("cancel-server-packets") 51 | .description("Cancels incoming boat move packets.") 52 | .defaultValue(false) 53 | .build() 54 | ); 55 | 56 | public EntityFly() { 57 | super(Addon.CATEGORY, "entity-fly", "Transforms your boat into a plane."); 58 | } 59 | 60 | public KeyBinding down = new KeyBinding("", GLFW.GLFW_KEY_LEFT_ALT, ""); 61 | 62 | @EventHandler 63 | private void onEntityMove(TickEvent.Pre event) { 64 | if (!mc.player.hasVehicle()) return; 65 | 66 | Entity vehicle = mc.player.getVehicle(); 67 | vehicle.setYaw(mc.player.getYaw()); 68 | 69 | // Horizontal movement 70 | Vec3d vel = PlayerUtils.getHorizontalVelocity(speed.get()); 71 | double velX = vel.getX(); 72 | double velY = 0; 73 | double velZ = vel.getZ(); 74 | 75 | // Vertical movement 76 | if (kickdelay <= 0) return; 77 | if (mc.options.jumpKey.isPressed()) velY += verticalSpeed.get() / 20; 78 | if (down.isPressed()) velY -= verticalSpeed.get() / 20; 79 | 80 | // Apply velocity 81 | ((IVec3d) vehicle.getVelocity()).meteor$set(velX, velY, velZ); 82 | } 83 | 84 | @EventHandler 85 | private void onBoatMove(BoatMoveEvent event) { 86 | if (event.boat.getFirstPassenger() != mc.player) return; 87 | 88 | event.boat.setYaw(mc.player.getYaw()); 89 | 90 | // Horizontal movement 91 | Vec3d vel = PlayerUtils.getHorizontalVelocity(speed.get()); 92 | double velX = vel.getX(); 93 | double velY = 0; 94 | double velZ = vel.getZ(); 95 | 96 | // Vertical movement 97 | if (kickdelay <= 0) return; 98 | if (mc.options.jumpKey.isPressed()) velY += verticalSpeed.get() / 20; 99 | if (down.isPressed()) velY -= verticalSpeed.get() / 20; 100 | 101 | // Apply velocity 102 | ((IVec3d) event.boat.getVelocity()).meteor$set(velX, velY, velZ); 103 | } 104 | 105 | @Override 106 | public void onActivate() { 107 | kickdelay = 15; 108 | } 109 | 110 | @EventHandler 111 | private void ontick(TickEvent.Post event){ 112 | if (mc.player.hasVehicle()) { 113 | Entity vehicle = mc.player.getVehicle(); 114 | vehicle.setOnGround(true); 115 | if (kickdelay <= 0) { 116 | vehicle.setPosition(vehicle.getX(), vehicle.getY() - 0.04, vehicle.getZ()); 117 | kickdelay = bypass.get(); 118 | } else { 119 | kickdelay--; 120 | } 121 | } 122 | } 123 | 124 | @EventHandler 125 | private void onReceivePacket(PacketEvent.Receive event) { 126 | if (event.packet instanceof VehicleMoveS2CPacket && cancelServerPackets.get()) { 127 | event.cancel(); 128 | } 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/FakeAttack.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.entity.player.AttackEntityEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket; 8 | import net.minecraft.util.Hand; 9 | 10 | public class FakeAttack extends Module { 11 | public FakeAttack() { 12 | super(Addon.CATEGORY, "FakeAttack", "Doesnt send the attack packet"); 13 | } 14 | 15 | @EventHandler 16 | private void onattack(AttackEntityEvent event){ 17 | event.cancel(); 18 | mc.player.networkHandler.sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Fling.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.Utils.JinxUtils; 5 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 6 | import meteordevelopment.meteorclient.settings.DoubleSetting; 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.item.Items; 12 | import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket; 13 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 14 | import net.minecraft.util.Hand; 15 | import net.minecraft.util.math.Vec3d; 16 | 17 | public class Fling extends Module { 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | boolean listening = true; 20 | 21 | 22 | private final Setting power = sgGeneral.add(new DoubleSetting.Builder() 23 | .name("Power") 24 | .description("The power of the fling") 25 | .defaultValue(3) 26 | .sliderRange(1, 3) 27 | .decimalPlaces(0) 28 | .build()); 29 | 30 | public Fling() { 31 | super(Addon.CATEGORY, "Fling", "Fling players in the air"); 32 | } 33 | 34 | @Override 35 | public void onActivate() { 36 | listening = true; 37 | } 38 | 39 | @EventHandler 40 | public void onPacket(PacketEvent.Send event){ 41 | if (event.packet instanceof PlayerInteractItemC2SPacket) { 42 | if (!listening) return; 43 | if (mc.player.getMainHandStack().getItem() != Items.FISHING_ROD || mc.player.fishHook == null || mc.player.fishHook.getHookedEntity() == null) return; 44 | 45 | if (mc.player.fishHook.isRemoved()) return; 46 | event.cancel(); 47 | 48 | double eDistance2Player = mc.player.distanceTo(mc.player.fishHook.getHookedEntity()); 49 | double distance = (11 * power.get()) - (eDistance2Player > 2 ? eDistance2Player : 0); 50 | 51 | int packetsRequired = (int) Math.ceil(Math.abs(distance / 10)); 52 | 53 | new Thread(() -> { 54 | buildTpRange(packetsRequired, mc.player.getPos()); 55 | 56 | Vec3d pos = mc.player.getPos(); 57 | moveTo(pos.add(0, distance, 0)); 58 | 59 | JinxUtils.sleep(250); 60 | 61 | listening = false; 62 | mc.player.networkHandler.sendPacket(new PlayerInteractItemC2SPacket(Hand.MAIN_HAND, 0, 0, 0)); 63 | listening = true; 64 | 65 | JinxUtils.sleep(250); 66 | 67 | buildTpRange(packetsRequired, pos.add(0, distance, 0)); // "minecraft resets your movement charge like every tick" 68 | mc.player.setVelocity(Vec3d.ZERO); 69 | moveTo(pos.add(0, 0.01, 0)); 70 | }).start(); 71 | 72 | } 73 | } 74 | 75 | private void buildTpRange(int amount, Vec3d currentPos){ 76 | Vec3d p = currentPos; 77 | 78 | for (int i = 0; i < amount; i++){ 79 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(p.x, p.y, p.z, true, false)); 80 | } 81 | 82 | } 83 | 84 | private void moveTo(Vec3d p){ 85 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(p.x, p.y, p.z, true, false)); 86 | mc.player.setPosition(p); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/ForceField.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.world.TickEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.friends.Friends; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import meteordevelopment.meteorclient.utils.entity.SortPriority; 9 | import meteordevelopment.meteorclient.utils.entity.TargetUtils; 10 | import meteordevelopment.meteorclient.utils.player.PlayerUtils; 11 | import meteordevelopment.meteorclient.utils.player.Rotations; 12 | import meteordevelopment.orbit.EventHandler; 13 | import net.minecraft.entity.Entity; 14 | import net.minecraft.entity.EntityType; 15 | import net.minecraft.entity.LivingEntity; 16 | import net.minecraft.entity.passive.AnimalEntity; 17 | import net.minecraft.entity.player.PlayerEntity; 18 | import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket; 19 | import net.minecraft.util.math.Box; 20 | import net.minecraft.util.math.MathHelper; 21 | 22 | import java.util.ArrayList; 23 | import java.util.List; 24 | import java.util.Set; 25 | 26 | public class ForceField extends Module { 27 | private final List targets = new ArrayList<>(); 28 | public ForceField() { 29 | super(Addon.CATEGORY, "ForceField", "tries to keep mobs away."); 30 | } 31 | 32 | private final SettingGroup sgTargeting = settings.createGroup("Targeting"); 33 | private final Setting>> entities = sgTargeting.add(new EntityTypeListSetting.Builder() 34 | .name("entities") 35 | .description("Entities to attack.") 36 | .onlyAttackable() 37 | .defaultValue(EntityType.PLAYER) 38 | .build() 39 | ); 40 | 41 | private final Setting maxTargets = sgTargeting.add(new IntSetting.Builder() 42 | .name("max-targets") 43 | .description("How many entities to target at once.") 44 | .defaultValue(1) 45 | .min(1) 46 | .sliderRange(1, 5) 47 | .build() 48 | ); 49 | 50 | private final Setting range = sgTargeting.add(new DoubleSetting.Builder() 51 | .name("range") 52 | .description("The maximum range the entity can be to attack it.") 53 | .defaultValue(4.5) 54 | .min(0) 55 | .sliderMax(6) 56 | .build() 57 | ); 58 | 59 | private final Setting rotate = sgTargeting.add(new BoolSetting.Builder() 60 | .name("rotate") 61 | .description("Look at the entity your attacking.") 62 | .defaultValue(true) 63 | .build() 64 | ); 65 | 66 | private final Setting extramkb = sgTargeting.add(new BoolSetting.Builder() 67 | .name("extra knockback") 68 | .description("Deal extra knockback to the attacked entity.") 69 | .defaultValue(true) 70 | .build() 71 | ); 72 | 73 | @EventHandler 74 | private void onsend(TickEvent.Pre event){ 75 | targets.clear(); 76 | TargetUtils.getList(targets, this::entityCheck, SortPriority.ClosestAngle, maxTargets.get()); 77 | if (targets.isEmpty()) return; 78 | 79 | Entity primary = targets.get(0); 80 | 81 | if (rotate.get()) Rotations.rotate(Rotations.getYaw(primary), Rotations.getPitch(primary)); 82 | if (extramkb.get()) mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_SPRINTING)); 83 | 84 | mc.interactionManager.attackEntity(mc.player, primary); 85 | } 86 | 87 | private boolean entityCheck(Entity entity) { 88 | if (entity.equals(mc.player) || entity.equals(mc.cameraEntity)) return false; 89 | if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false; 90 | 91 | Box hitbox = entity.getBoundingBox(); 92 | if (!PlayerUtils.isWithin( 93 | MathHelper.clamp(mc.player.getX(), hitbox.minX, hitbox.maxX), 94 | MathHelper.clamp(mc.player.getY(), hitbox.minY, hitbox.maxY), 95 | MathHelper.clamp(mc.player.getZ(), hitbox.minZ, hitbox.maxZ), 96 | range.get() 97 | )) return false; 98 | 99 | if (!entities.get().contains(entity.getType())) return false; 100 | 101 | if (entity instanceof PlayerEntity player) { 102 | if (player.isCreative()) return false; 103 | if (!Friends.get().shouldAttack(player)) return false; 104 | } 105 | return !(entity instanceof AnimalEntity animal) || !animal.isBaby(); 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/GMnotifier.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.client.network.PlayerListEntry; 8 | import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket; 9 | import net.minecraft.world.GameMode; 10 | 11 | public class GMnotifier extends Module { 12 | 13 | public GMnotifier() { 14 | super(Addon.CATEGORY, "GM-notifier", "Tells you if someone switches GM"); 15 | } 16 | 17 | @EventHandler 18 | public void onPacket(PacketEvent.Receive event) { 19 | if (event.packet instanceof PlayerListS2CPacket packet) { 20 | for (PlayerListS2CPacket.Entry gamemode : packet.getEntries()) { 21 | if (!packet.getActions().contains(PlayerListS2CPacket.Action.UPDATE_GAME_MODE)) continue; 22 | PlayerListEntry entry1 = mc.getNetworkHandler().getPlayerListEntry(gamemode.profileId()); 23 | if (entry1 == null) continue; 24 | GameMode gameMode = gamemode.gameMode(); 25 | if (entry1.getGameMode() != gameMode) { 26 | info("Player %s changed gamemode to %s", entry1.getProfile().getName(), gamemode.gameMode()); 27 | } 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/GhostBlockFly.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.world.TickEvent; 10 | import meteordevelopment.meteorclient.systems.modules.Module; 11 | import meteordevelopment.orbit.EventHandler; 12 | import net.minecraft.block.*; 13 | import net.minecraft.util.math.BlockPos; 14 | 15 | public class GhostBlockFly extends Module { 16 | public GhostBlockFly() { 17 | super(Addon.CATEGORY, "GhostBlockFly", "Fly Using Ghost Blocks"); 18 | } 19 | 20 | BlockState state = null; 21 | BlockPos pos = null; 22 | 23 | @EventHandler 24 | public void onTick(TickEvent.Post event) { 25 | assert mc.world != null; 26 | assert mc.player != null; 27 | if (mc.player.getBlockPos().add(0, -1, 0) != pos && pos != null && state != null) { 28 | mc.world.setBlockState(pos, state); 29 | } 30 | 31 | pos = mc.player.getBlockPos().add(0, -1, 0); 32 | state = mc.world.getBlockState(pos); 33 | 34 | if (!mc.options.sneakKey.isPressed() && mc.world.getBlockState(pos).getBlock() instanceof AirBlock && pos != null) { 35 | mc.world.setBlockState(pos, Blocks.BARRIER.getDefaultState()); 36 | } 37 | 38 | if (mc.options.sneakKey.isPressed() && mc.world.getBlockState(pos).getBlock() instanceof AirBlock && pos != null) { 39 | mc.world.setBlockState(pos, Blocks.AIR.getDefaultState()); 40 | } 41 | } 42 | 43 | @Override 44 | public void onDeactivate() { 45 | assert mc.world != null; 46 | mc.world.setBlockState(pos, state); 47 | pos = null; 48 | BlockState state = null; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/GhostMode.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | import com.dark.zewo2.Addon; 3 | import meteordevelopment.meteorclient.events.game.GameJoinedEvent; 4 | import meteordevelopment.meteorclient.events.game.OpenScreenEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.settings.BoolSetting; 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.client.gui.screen.DeathScreen; 12 | 13 | public class GhostMode extends Module { 14 | 15 | public GhostMode() { 16 | super(Addon.CATEGORY, "ghost-mode", "Explore the world after dying."); 17 | } 18 | 19 | @Override 20 | public void onDeactivate() { 21 | mc.player.requestRespawn(); 22 | info("Respawn request has been sent to the server."); 23 | } 24 | 25 | @EventHandler 26 | private void onTick(TickEvent.Pre event) { 27 | if (mc.player.getHealth() <= 0) { 28 | mc.player.setHealth(20f); 29 | mc.player.getHungerManager().setFoodLevel(20); 30 | } 31 | } 32 | 33 | @EventHandler 34 | private void onOpenScreen(OpenScreenEvent event) { 35 | if (event.screen instanceof DeathScreen) { 36 | event.cancel(); 37 | 38 | info("Ghost mode active. "); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Girlboss.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.systems.modules.Category; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import com.google.common.collect.Multimap; 7 | import com.google.common.collect.MultimapBuilder; 8 | import net.minecraft.client.MinecraftClient; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.text.Text; 11 | 12 | import java.nio.ByteBuffer; 13 | import java.util.*; 14 | 15 | 16 | public class Girlboss extends Module { 17 | public Girlboss() { 18 | super(Addon.CATEGORY, "Girlboss", "Notifies you when someone receives a private message."); 19 | } 20 | 21 | private static final Multimap signatures = MultimapBuilder.hashKeys().hashSetValues().build(); 22 | private static final Set seen = new HashSet<>(); 23 | private static final Set alertsSent = new HashSet<>(); 24 | private static int alertsClearedTick = -1; 25 | private static boolean hasSentFirstAlert = false; 26 | 27 | public static void receivedMessage(final ByteBuffer signature) { 28 | seen.add(signature); 29 | } 30 | 31 | public static void addSeenSignature(final UUID sender, final ByteBuffer signature) { 32 | if (seen.contains(signature) || signatures.containsEntry(signature, sender)) { 33 | return; 34 | } 35 | 36 | signatures.put(signature, sender); 37 | if (MinecraftClient.getInstance().world == null) { 38 | return; 39 | } 40 | 41 | final Collection uuids = signatures.get(signature); 42 | final List names = new ArrayList<>(); 43 | for (final UUID uuid : uuids) { 44 | final PlayerEntity playerEntity = MinecraftClient.getInstance().world.getPlayerByUuid(uuid); 45 | if (playerEntity != null) { 46 | names.add(playerEntity.getName().getString()); 47 | } 48 | } 49 | 50 | final int last = names.size() - 1; 51 | final String joinedNames = String.join(" and ", String.join(", ", names.subList(0, last)), names.get(last)); 52 | final String verb = names.size() > 1 ? "have" : "has"; 53 | 54 | final String message = "§a[Girlboss] §7" + (names.size() == 1 ? names.get(0) : joinedNames) + " " + verb + " seen a message you haven't!"; 55 | if (MinecraftClient.getInstance().player.age != alertsClearedTick) { 56 | alertsClearedTick = MinecraftClient.getInstance().player.age; 57 | alertsSent.clear(); 58 | } 59 | if (alertsSent.add(message) && hasSentFirstAlert) { 60 | MinecraftClient.getInstance().player.sendMessage(Text.literal(message), false); 61 | } 62 | hasSentFirstAlert = true; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Groupmessage.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.game.SendMessageEvent; 5 | import meteordevelopment.meteorclient.settings.Setting; 6 | import meteordevelopment.meteorclient.settings.SettingGroup; 7 | import meteordevelopment.meteorclient.settings.StringListSetting; 8 | import meteordevelopment.meteorclient.settings.StringSetting; 9 | import meteordevelopment.meteorclient.systems.modules.Module; 10 | import meteordevelopment.orbit.EventHandler; 11 | 12 | import java.util.List; 13 | 14 | public class Groupmessage extends Module { 15 | final SettingGroup sgGeneral = settings.getDefaultGroup(); 16 | 17 | private final Setting> players = sgGeneral.add(new StringListSetting.Builder() 18 | .name("players") 19 | .description("Players to message.") 20 | .build() 21 | ); 22 | 23 | private final Setting command = sgGeneral.add(new StringSetting.Builder() 24 | .name("command") 25 | .description("How the message command is set up on the server.") 26 | .defaultValue("/msg") 27 | .build() 28 | ); 29 | 30 | public Groupmessage() { 31 | super(Addon.CATEGORY, "Group Message", "Message multiple players at once"); 32 | } 33 | 34 | @EventHandler 35 | private void onmessage(SendMessageEvent event){ 36 | event.cancel(); 37 | for (String p : players.get()){ 38 | mc.player.networkHandler.sendCommand(command + " " + p + " " + event.message); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/InstaMine.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.mixin.Interface.INClientPlayerInteractionManagerMixin; 5 | import meteordevelopment.meteorclient.events.entity.player.StartBreakingBlockEvent; 6 | import meteordevelopment.meteorclient.events.render.Render3DEvent; 7 | import meteordevelopment.meteorclient.events.world.TickEvent; 8 | import meteordevelopment.meteorclient.renderer.ShapeMode; 9 | import meteordevelopment.meteorclient.settings.*; 10 | import meteordevelopment.meteorclient.systems.modules.Module; 11 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 12 | import meteordevelopment.meteorclient.utils.world.BlockUtils; 13 | import meteordevelopment.orbit.EventHandler; 14 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket; 15 | import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; 16 | import net.minecraft.util.Hand; 17 | import net.minecraft.util.math.BlockPos; 18 | import net.minecraft.util.math.Direction; 19 | 20 | import java.util.Objects; 21 | 22 | public class InstaMine extends Module { 23 | private final BlockPos.Mutable blockPos = new BlockPos.Mutable(0, -1, 0); 24 | private Direction direction; 25 | BlockPos last; 26 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 27 | private final SettingGroup sgRender = settings.createGroup("Render"); 28 | 29 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() 30 | .name("rotate") 31 | .description("Faces the blocks being mined server side.") 32 | .defaultValue(true) 33 | .build() 34 | ); 35 | 36 | // Render 37 | 38 | private final Setting render = sgRender.add(new BoolSetting.Builder() 39 | .name("render") 40 | .description("Renders a block overlay on the block being broken.") 41 | .defaultValue(true) 42 | .build() 43 | ); 44 | 45 | private final Setting armswing = sgRender.add(new BoolSetting.Builder() 46 | .name("armswing") 47 | .description("send armswing packet.") 48 | .defaultValue(true) 49 | .build() 50 | ); 51 | 52 | private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() 53 | .name("shape-mode") 54 | .description("How the shapes are rendered.") 55 | .defaultValue(ShapeMode.Both) 56 | .build() 57 | ); 58 | 59 | private final Setting sideColor = sgRender.add(new ColorSetting.Builder() 60 | .name("side-color") 61 | .description("The color of the sides of the blocks being rendered.") 62 | .defaultValue(new SettingColor(204, 0, 0, 10)) 63 | .build() 64 | ); 65 | 66 | private final Setting lineColor = sgRender.add(new ColorSetting.Builder() 67 | .name("line-color") 68 | .description("The color of the lines of the blocks being rendered.") 69 | .defaultValue(new SettingColor(204, 0, 0, 255)) 70 | .build() 71 | ); 72 | 73 | 74 | public InstaMine() { 75 | super(Addon.CATEGORY, "insta-mine", "Attempts to instantly mine blocks."); 76 | } 77 | 78 | @Override 79 | public void onActivate() { 80 | last = new BlockPos(0, -128, 0); 81 | } 82 | 83 | @EventHandler 84 | private void onStartBreakingBlock(StartBreakingBlockEvent event) { 85 | direction = event.direction; 86 | blockPos.set(event.blockPos); 87 | } 88 | 89 | @EventHandler 90 | private void onTick(TickEvent.Pre event) { 91 | if (Objects.requireNonNull(mc.interactionManager).isBreakingBlock()) { 92 | last = ((INClientPlayerInteractionManagerMixin) mc.interactionManager).getCurrentBreakingPos(); 93 | } 94 | if (last.getY() == -128) return; 95 | mc.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, last, direction)); 96 | 97 | if (armswing.get()) mc.getNetworkHandler().sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND)); 98 | } 99 | 100 | private boolean shouldMine() { 101 | if (blockPos.getY() == -128) return false; 102 | if (!BlockUtils.canBreak(blockPos)) return false; 103 | return true; 104 | } 105 | 106 | @EventHandler 107 | private void onRender(Render3DEvent event) { 108 | if (!render.get() || !shouldMine()) return; 109 | event.renderer.box(blockPos, sideColor.get(), lineColor.get(), shapeMode.get(), 0); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/MaceInstaKill.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.Utils.InvUtils; 5 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 6 | import meteordevelopment.meteorclient.mixininterface.IPlayerInteractEntityC2SPacket; 7 | import meteordevelopment.meteorclient.settings.BoolSetting; 8 | import meteordevelopment.meteorclient.settings.DoubleSetting; 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.entity.Entity; 14 | import net.minecraft.entity.LivingEntity; 15 | import net.minecraft.item.Items; 16 | import net.minecraft.item.MaceItem; 17 | import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket; 18 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 19 | import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket; 20 | import net.minecraft.util.math.Vec3d; 21 | 22 | import java.util.concurrent.CompletableFuture; 23 | 24 | public class MaceInstaKill extends Module { 25 | private boolean ignorePacket = false; 26 | 27 | SettingGroup settingGroup = settings.getDefaultGroup(); 28 | 29 | final private Setting silentSwitch = settingGroup.add(new BoolSetting.Builder() 30 | .name("Silent-Switch") 31 | .defaultValue(false) 32 | .description("Silently switch to mace if in hotbar") 33 | .build()); 34 | 35 | final private Setting autoHeight = settingGroup.add(new BoolSetting.Builder() 36 | .name("Auto-Height") 37 | .description("Automatically calculate height") 38 | .defaultValue(true) 39 | .build()); 40 | 41 | final private Setting height = settingGroup.add(new DoubleSetting.Builder() 42 | .name("Range") 43 | .description("Height to attack from") 44 | .defaultValue(20) 45 | .sliderRange(10,100) 46 | .max(100) 47 | .min(0) 48 | .decimalPlaces(0) 49 | .visible(() -> !autoHeight.get()) 50 | .build()); 51 | 52 | final private Setting preDamage = settingGroup.add(new BoolSetting.Builder() 53 | .name("Pre-Dmg") 54 | .description("damage yourself before. to have damage tick invulnerability") 55 | .defaultValue(true) 56 | .build()); 57 | 58 | public MaceInstaKill() { 59 | super(Addon.CATEGORY,"MaceInstaKill", "InstaKill people"); 60 | } 61 | 62 | @Override 63 | public void onActivate() { 64 | ignorePacket = false; 65 | } 66 | 67 | @EventHandler 68 | public void onPacketSend(PacketEvent.Send event) { 69 | if (ignorePacket) return; 70 | if (event.packet instanceof IPlayerInteractEntityC2SPacket packet && packet.meteor$getType() == PlayerInteractEntityC2SPacket.InteractType.ATTACK.ATTACK && (mc.player.getMainHandStack().getItem() instanceof MaceItem || silentSwitch.get())){ 71 | event.cancel(); 72 | 73 | Entity victim = packet.meteor$getEntity(); 74 | if (victim == null) return; 75 | if (!(victim instanceof LivingEntity entity)) return; 76 | 77 | doAttack(entity, height.get(), silentSwitch.get(), autoHeight.get(), preDamage.get()); 78 | } 79 | } 80 | 81 | public void doAttack(LivingEntity entity, double height, boolean silent, boolean autoHeight, boolean preDmg){ 82 | CompletableFuture.runAsync(() -> { 83 | int realSlot = mc.player.getInventory().getSelectedSlot(); 84 | 85 | if (silent) { 86 | int glowstone = InvUtils.findItemInHotbar(Items.MACE); 87 | if (glowstone == -1) return; 88 | mc.getNetworkHandler().sendPacket(new UpdateSelectedSlotC2SPacket(glowstone)); 89 | } 90 | 91 | double attackHeight = height; 92 | if (autoHeight) attackHeight = (entity.getHealth() / 0.5) + 3; 93 | 94 | Vec3d pos = mc.player.getPos(); 95 | 96 | if (preDmg) { 97 | moveTo(pos.add(0, 4, 0), true); 98 | moveTo(pos, false); 99 | } 100 | 101 | buildTpRange(10); 102 | moveTo(pos.add(0,attackHeight,0), false); 103 | moveTo(pos, false); 104 | mc.player.setPosition(pos); 105 | 106 | ignorePacket = true; 107 | mc.player.networkHandler.sendPacket(PlayerInteractEntityC2SPacket.attack(entity, mc.player.isSneaking())); 108 | ignorePacket = false; 109 | 110 | if (silent){ 111 | mc.getNetworkHandler().sendPacket(new UpdateSelectedSlotC2SPacket(realSlot)); 112 | } 113 | }); 114 | } 115 | 116 | public void moveTo(Vec3d pos, boolean onGround) { 117 | if (mc.player == null) return; 118 | 119 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(pos.x, pos.y, pos.z, onGround, false)); 120 | 121 | } 122 | 123 | public void buildTpRange(int amount){ 124 | for (int i = 0; i < amount; i++){ 125 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.OnGroundOnly(true, false)); 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Magnet.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.Utils.Utils; 5 | import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; 6 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 7 | import meteordevelopment.meteorclient.events.world.TickEvent; 8 | import meteordevelopment.meteorclient.settings.DoubleSetting; 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.entity.Entity; 14 | import net.minecraft.entity.ItemEntity; 15 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 16 | import net.minecraft.util.math.BlockPos; 17 | import net.minecraft.util.math.Vec3d; 18 | 19 | import java.util.*; 20 | import java.util.stream.StreamSupport; 21 | 22 | public class Magnet extends Module { 23 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 24 | 25 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder() 26 | .name("range") 27 | .description("Range, in which items will be sucked.") 28 | .defaultValue(6) 29 | .range(1, 10) 30 | .sliderRange(1, 10) 31 | .build() 32 | ); 33 | 34 | BlockPos pos = null; 35 | 36 | public Magnet() { 37 | super(Addon.CATEGORY, "Magnet", "Sucks up all items on the ground."); 38 | } 39 | 40 | //clear pos 41 | @Override 42 | public void onActivate() {pos = null;} 43 | @EventHandler 44 | private void onGameLeft(GameLeftEvent event) {pos = null;} 45 | 46 | @EventHandler 47 | public void onMove(PlayerMoveEvent event) { 48 | 49 | } 50 | 51 | @EventHandler 52 | private void onTick(TickEvent.Pre event) { 53 | List entities = new ArrayList<>(StreamSupport.stream(mc.world.getEntities().spliterator(), true) 54 | .filter(entity -> entity instanceof ItemEntity) 55 | .filter(entity -> entity.distanceTo(mc.player) <= range.get()) 56 | .filter(entity -> Utils.isABFree(mc.player.getPos(), entity.getPos())) 57 | .toList()); 58 | 59 | if (entities.isEmpty()) return; 60 | 61 | entities.sort(Comparator.comparingDouble(entity -> entity.distanceTo(mc.player))); 62 | Entity closest = entities.get(0); 63 | 64 | if (closest.distanceTo(mc.player) > 1) mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(closest.getX(), closest.getY(), closest.getZ(), mc.player.isOnGround(), false)); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/NoChatFormatting.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.text.Text; 8 | 9 | public class NoChatFormatting extends Module { 10 | public NoChatFormatting() { 11 | super(Addon.CATEGORY, "NoChatFormatting", "Stops Chat Colour Codes"); 12 | } 13 | 14 | @EventHandler 15 | private void onRevieve(ReceiveMessageEvent event){ 16 | event.setMessage(Text.literal(event.getMessage().getString())); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/NoChatNormalisation.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.systems.modules.Module; 5 | 6 | public class NoChatNormalisation extends Module { 7 | public NoChatNormalisation() { 8 | super(Addon.CATEGORY, "NoChatNormalisation", "Fuck Normal Chat"); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/NoClearChat.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | 8 | public class NoClearChat extends Module { 9 | public NoClearChat() { 10 | super(Addon.CATEGORY, "No Chat Clear", "Stops shitty skript ClearChat"); 11 | } 12 | 13 | @EventHandler 14 | private void revieveMessage(ReceiveMessageEvent event){ 15 | String message = event.getMessage().getString(); 16 | 17 | if (message.isEmpty() || (message.startsWith("§") && message.length() <= 2)){ 18 | event.cancel(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/NoSwing.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket; 8 | 9 | public class NoSwing extends Module { 10 | 11 | public NoSwing() { 12 | super(Addon.CATEGORY, "no-swing", "Removes the hand swing animation"); 13 | } 14 | 15 | @EventHandler 16 | private void onSendPacket(PacketEvent.Send event) { 17 | if (event.packet instanceof HandSwingC2SPacket) { 18 | event.cancel(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/PacketDelayer.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 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.utils.misc.Keybind; 9 | import meteordevelopment.meteorclient.utils.network.PacketUtils; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.network.listener.PacketListener; 12 | import net.minecraft.network.packet.Packet; 13 | 14 | import java.util.ArrayList; 15 | import java.util.List; 16 | import java.util.Set; 17 | 18 | public class PacketDelayer extends Module { 19 | final List S2CEntries = new ArrayList<>(); 20 | final List C2SEntries = new ArrayList<>(); 21 | private boolean IgnoreOutgoing = false; 22 | 23 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 24 | 25 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 26 | .name("Mode") 27 | .description("Mode to use") 28 | .defaultValue(Mode.Delay) 29 | .build()); 30 | 31 | private final Setting delay = sgGeneral.add(new DoubleSetting.Builder() 32 | .name("delay") 33 | .description("The delay.") 34 | .defaultValue(1000) 35 | .decimalPlaces(0) 36 | .sliderRange(0,5000) 37 | .min(0) 38 | .visible(() -> mode.get() == Mode.Delay) 39 | 40 | .build() 41 | ); 42 | 43 | @SuppressWarnings("unused") 44 | private final Setting releaseC2S = sgGeneral.add(new KeybindSetting.Builder() 45 | .name("releaseC2S") 46 | .description("Release C2S packets.") 47 | .action(() -> { 48 | if (mode.get() != Mode.Keybind) return; 49 | IgnoreOutgoing = true; 50 | dumpC2SPackets(); 51 | IgnoreOutgoing = false; 52 | }) 53 | .visible(() -> mode.get() == Mode.Keybind) 54 | .defaultValue(Keybind.none()) 55 | .build() 56 | ); 57 | 58 | @SuppressWarnings("unused") 59 | private final Setting releaseS2C = sgGeneral.add(new KeybindSetting.Builder() 60 | .name("releaseS2C") 61 | .description("Release S2C packets.") 62 | .action(() -> { 63 | if (mode.get() != Mode.Keybind) return; 64 | dumpS2CPackets(); 65 | }) 66 | .visible(() -> mode.get() == Mode.Keybind) 67 | .defaultValue(Keybind.none()) 68 | .build() 69 | ); 70 | 71 | private final Setting>>> s2cPackets = sgGeneral.add(new PacketListSetting.Builder() 72 | .name("S2C-packets") 73 | .description("Server-to-client packets to cancel.") 74 | .filter(aClass -> PacketUtils.getS2CPackets().contains(aClass)) 75 | .build() 76 | ); 77 | 78 | private final Setting>>> c2sPackets = sgGeneral.add(new PacketListSetting.Builder() 79 | .name("C2S-packets") 80 | .description("Client-to-server packets to cancel.") 81 | .filter(aClass -> PacketUtils.getC2SPackets().contains(aClass)) 82 | .build() 83 | ); 84 | 85 | 86 | public PacketDelayer() { 87 | super(Addon.CATEGORY, "PacketDelayer", "Delay incoming packets"); 88 | } 89 | 90 | @Override 91 | public void onActivate() { 92 | S2CEntries.clear(); 93 | C2SEntries.clear(); 94 | IgnoreOutgoing = false; 95 | } 96 | 97 | @EventHandler 98 | private void onTickPre(TickEvent.Pre event){ 99 | if (mode.get() != Mode.Delay) return; 100 | 101 | long c = System.currentTimeMillis(); 102 | 103 | for (PacketEntry entry : S2CEntries.toArray(new PacketEntry[0])) { 104 | if (entry == null) continue; 105 | 106 | if (entry.entryTime + entry.delay <= c) { 107 | S2CEntries.remove(entry); 108 | SendPacketToClient(entry.packet, mc.player.networkHandler.getConnection().getPacketListener()); 109 | } 110 | } 111 | 112 | IgnoreOutgoing = true; 113 | for (PacketEntry entry : C2SEntries.toArray(new PacketEntry[0])) { 114 | if (entry == null) continue; 115 | 116 | if (entry.entryTime + entry.delay <= c) { 117 | C2SEntries.remove(entry); 118 | SendPacketToServer(entry.packet); 119 | } 120 | } 121 | IgnoreOutgoing = false; 122 | } 123 | 124 | @EventHandler 125 | private void onPacketIncoming(PacketEvent.Receive event){ 126 | if (shouldDelayPacket(event.packet)) { 127 | 128 | PacketEntry entry = new PacketEntry(event.packet, delay.get(), System.currentTimeMillis()); 129 | if (entry == null) return; 130 | 131 | event.setCancelled(true); 132 | S2CEntries.add(entry); 133 | } 134 | } 135 | 136 | @EventHandler 137 | private void onPacketOutgoing(PacketEvent.Send event){ 138 | if (shouldDelayPacket(event.packet) && !IgnoreOutgoing) { 139 | 140 | PacketEntry entry = new PacketEntry(event.packet, delay.get(), System.currentTimeMillis()); 141 | if (entry == null) return; 142 | 143 | event.setCancelled(true); 144 | C2SEntries.add(entry); 145 | } 146 | } 147 | 148 | boolean shouldDelayPacket(Packet p) { 149 | if (s2cPackets.get().contains(p.getClass()) || c2sPackets.get().contains(p.getClass())) { 150 | return true; 151 | } else { 152 | return false; 153 | } 154 | } 155 | 156 | @Override 157 | public void onDeactivate() { 158 | dumpS2CPackets(); 159 | dumpC2SPackets(); 160 | } 161 | 162 | public void dumpS2CPackets(){ 163 | for (PacketEntry entry : S2CEntries.toArray(new PacketEntry[0])) { 164 | if (entry == null) continue; 165 | 166 | S2CEntries.remove(entry); 167 | SendPacketToClient(entry.packet, mc.player.networkHandler.getConnection().getPacketListener()); 168 | } 169 | } 170 | 171 | public void dumpC2SPackets(){ 172 | for (PacketEntry entry : C2SEntries.toArray(new PacketEntry[0])) { 173 | if (entry == null) continue; 174 | 175 | C2SEntries.remove(entry); 176 | SendPacketToServer(entry.packet); 177 | } 178 | } 179 | 180 | private static void SendPacketToClient(Packet packet, PacketListener listener) { 181 | packet.apply((T) listener); 182 | } 183 | 184 | private void SendPacketToServer(Packet packet){ 185 | mc.getNetworkHandler().sendPacket(packet); 186 | } 187 | 188 | @Override 189 | public String getInfoString() { 190 | return "In: %s : Out: %s".formatted(S2CEntries.size(), C2SEntries.size()); 191 | } 192 | 193 | record PacketEntry(Packet packet, double delay, long entryTime) { 194 | 195 | } 196 | 197 | public enum Mode{ 198 | Delay, 199 | Keybind; 200 | } 201 | 202 | } 203 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/PenisESP.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.render.Render3DEvent; 5 | import meteordevelopment.meteorclient.settings.*; 6 | import meteordevelopment.meteorclient.systems.friends.Friends; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import meteordevelopment.meteorclient.utils.render.color.Color; 9 | import meteordevelopment.meteorclient.utils.render.color.SettingColor; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.entity.Entity; 12 | import net.minecraft.entity.player.PlayerEntity; 13 | import net.minecraft.util.math.Vec3d; 14 | 15 | import java.util.ArrayList; 16 | import java.util.List; 17 | 18 | 19 | public class PenisESP extends Module { 20 | public SettingGroup sgGeneral = settings.getDefaultGroup(); 21 | public SettingGroup sgRender = settings.createGroup("Render"); 22 | 23 | public Setting onlyOwn = sgGeneral.add(new BoolSetting.Builder().name("only-own").defaultValue(false).build()); 24 | public Setting ballsSize = sgGeneral.add(new DoubleSetting.Builder().name("balls-size").defaultValue(0.1).range(0.1, 0.5).sliderRange(0.1, 0.5).build()); 25 | public Setting penisSize = sgGeneral.add(new DoubleSetting.Builder().name("penis-size").defaultValue(0.5).range(0.1, 3.0).sliderRange(0.1, 3.0).build()); 26 | public Setting friendsSize = sgGeneral.add(new DoubleSetting.Builder().name("friends-size").defaultValue(0.5).range(0.1, 3.0).sliderRange(0.1, 3.0).build()); 27 | public Setting enemySize = sgGeneral.add(new DoubleSetting.Builder().name("enemy-size").defaultValue(0.3).range(0.1, 3.0).sliderRange(0.1, 3.0).build()); 28 | public Setting gradation = sgGeneral.add(new IntSetting.Builder().name("gradation").defaultValue(30).range(20, 100).sliderRange(20, 100).build()); 29 | 30 | public Setting penisColor = sgRender.add(new ColorSetting.Builder().name("penis-color").defaultValue(new SettingColor(170, 90, 0,255)).build()); 31 | public Setting headColor = sgRender.add(new ColorSetting.Builder().name("head-color").defaultValue(new SettingColor(240, 50, 180,75)).build()); 32 | 33 | public PenisESP() { 34 | super(Addon.CATEGORY, "Penis-ESP", "Renders the player penis and balls | https://github.com/SagXD"); 35 | } 36 | 37 | @EventHandler 38 | public void onRender(Render3DEvent event) { 39 | for (PlayerEntity player : mc.world.getPlayers()) { 40 | if (onlyOwn.get() && player != mc.player) continue; 41 | double size = (Friends.get().isFriend(player) ? friendsSize.get() : (player != mc.player ? enemySize.get() : penisSize.get())); 42 | 43 | Vec3d base = getBase(player, event.tickDelta); 44 | Vec3d forward = base.add(0, player.getHeight() / 2.4, 0).add(Vec3d.fromPolar(0, player.getYaw()).multiply(0.1)); 45 | 46 | Vec3d left = forward.add(Vec3d.fromPolar(0, player.getYaw() - 90).multiply(ballsSize.get())); 47 | Vec3d right = forward.add(Vec3d.fromPolar(0, player.getYaw() + 90).multiply(ballsSize.get())); 48 | 49 | drawBall(player, event, ballsSize.get(), gradation.get(), left, penisColor.get(), 0); 50 | drawBall(player, event, ballsSize.get(), gradation.get(), right, penisColor.get(), 0); 51 | drawPenis(player, event, size, forward); 52 | } 53 | } 54 | 55 | public void drawBall(PlayerEntity player, Render3DEvent event, double radius, int gradation, Vec3d pos, Color color, int stage) { 56 | float alpha, beta; 57 | 58 | for (alpha = 0.0f; alpha < Math.PI; alpha += Math.PI / gradation) { 59 | for (beta = 0.0f; beta < 2.0 * Math.PI; beta += Math.PI / gradation) { 60 | double x1 = (float) (pos.getX() + (radius * Math.cos(beta) * Math.sin(alpha))); 61 | double y1 = (float) (pos.getY() + (radius * Math.sin(beta) * Math.sin(alpha))); 62 | double z1 = (float) (pos.getZ() + (radius * Math.cos(alpha))); 63 | 64 | double sin = Math.sin(alpha + Math.PI / gradation); 65 | double x2 = (float) (pos.getX() + (radius * Math.cos(beta) * sin)); 66 | double y2 = (float) (pos.getY() + (radius * Math.sin(beta) * sin)); 67 | double z2 = (float) (pos.getZ() + (radius * Math.cos(alpha + Math.PI / gradation))); 68 | 69 | Vec3d base = getBase(player, event.tickDelta); 70 | Vec3d forward = base.add(0, player.getHeight() / 2.4, 0).add(Vec3d.fromPolar(0, player.getYaw()).multiply(0.1)); 71 | Vec3d vec3d = new Vec3d(x1, y1, z1); 72 | 73 | switch (stage) { 74 | case 1 -> { 75 | if (!vec3d.isInRange(forward, 0.145)) continue; 76 | } 77 | case 2 -> { 78 | double size = (Friends.get().isFriend(player) ? friendsSize.get() : (player != mc.player ? enemySize.get() : penisSize.get())); 79 | if (vec3d.isInRange(forward, size + 0.095)) continue; 80 | } 81 | } 82 | 83 | event.renderer.line(x1, y1, z1, x2, y2, z2, color); 84 | } 85 | } 86 | } 87 | 88 | public void drawPenis(PlayerEntity player, Render3DEvent event, double size, Vec3d start) { 89 | Vec3d copy = start; 90 | start = start.add(Vec3d.fromPolar(0, player.getYaw()).multiply(0.1)); 91 | Vec3d end = start.add(Vec3d.fromPolar(0, player.getYaw()).multiply(size)); 92 | 93 | List vecs = getVec3ds(start, 0.1); 94 | vecs.forEach(vec3d -> { 95 | if (!vec3d.isInRange(copy, 0.145)) return; 96 | if (vec3d.isInRange(copy, 0.135)) return; 97 | Vec3d pos = vec3d.add(Vec3d.fromPolar(0, player.getYaw()).multiply(size)); 98 | event.renderer.line(vec3d.x, vec3d.y, vec3d.z, pos.x, pos.y, pos.z, penisColor.get()); 99 | }); 100 | 101 | drawBall(player, event, 0.1, gradation.get(), start, penisColor.get(), 1); 102 | drawBall(player, event, 0.1, gradation.get(), end, headColor.get(), 2); 103 | } 104 | 105 | public Vec3d getBase(Entity entity, double partial) { 106 | double x = entity.lastX + ((entity.getX() - entity.lastX) * partial); 107 | double y = entity.lastY + ((entity.getY() - entity.lastY) * partial); 108 | double z = entity.lastZ + ((entity.getZ() - entity.lastZ) * partial); 109 | 110 | return new Vec3d(x, y, z); 111 | } 112 | 113 | public List getVec3ds(Vec3d vec3d, double radius) { 114 | List vec3ds = new ArrayList<>(); 115 | float alpha, beta; 116 | 117 | for (alpha = 0.0f; alpha < Math.PI; alpha += Math.PI / gradation.get()) { 118 | for (beta = 0.0f; beta < 2.01f * Math.PI; beta += Math.PI / gradation.get()) { 119 | double x1 = (float) (vec3d.getX() + (radius * Math.cos(beta) * Math.sin(alpha))); 120 | double y1 = (float) (vec3d.getY() + (radius * Math.sin(beta) * Math.sin(alpha))); 121 | double z1 = (float) (vec3d.getZ() + (radius * Math.cos(alpha))); 122 | 123 | Vec3d vec = new Vec3d(x1, y1, z1); 124 | vec3ds.add(vec); 125 | } 126 | } 127 | 128 | return vec3ds; 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/PermJukebox.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.systems.modules.Module; 6 | import meteordevelopment.orbit.EventHandler; 7 | import net.minecraft.block.JukeboxBlock; 8 | import net.minecraft.component.type.JukeboxPlayableComponent; 9 | import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket; 10 | 11 | public class PermJukebox extends Module { 12 | public PermJukebox() { 13 | super(Addon.CATEGORY, "PermJukebox", "Make the jukebox play permanently"); 14 | } 15 | 16 | @EventHandler 17 | private void onpacket(PacketEvent.Send event){ 18 | if (event.packet instanceof PlayerInteractBlockC2SPacket packet){ 19 | if (!(mc.world.getBlockState(packet.getBlockHitResult().getBlockPos()).getBlock() instanceof JukeboxBlock)) return; 20 | 21 | toggle(); 22 | mc.player.networkHandler.sendPacket(packet); 23 | toggle(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/PingSpoof.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.settings.EnumSetting; 7 | import meteordevelopment.meteorclient.settings.IntSetting; 8 | import meteordevelopment.meteorclient.settings.Setting; 9 | import meteordevelopment.meteorclient.settings.SettingGroup; 10 | import meteordevelopment.meteorclient.systems.modules.Module; 11 | import meteordevelopment.orbit.EventHandler; 12 | import net.minecraft.network.packet.Packet; 13 | import net.minecraft.client.util.math.MatrixStack; 14 | import net.minecraft.network.packet.Packet; 15 | import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket; 16 | 17 | import java.util.ArrayList; 18 | import java.util.List; 19 | 20 | public class PingSpoof extends Module { 21 | final List entries = new ArrayList<>(); 22 | final List> dontRepeat = new ArrayList<>(); 23 | 24 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 25 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 26 | .name("mode") 27 | .description("The mode to use.") 28 | .defaultValue(Mode.Spoof) 29 | .build() 30 | ); 31 | 32 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 33 | .name("delay") 34 | .description("The delay.") 35 | .defaultValue(50) 36 | .min(0) 37 | .sliderMax(1000) 38 | .build() 39 | ); 40 | 41 | public PingSpoof() { 42 | super(Addon.CATEGORY, "PingSpoof", "Spoof your ping to the given value"); 43 | } 44 | 45 | @Override 46 | public void onActivate() { 47 | entries.clear(); 48 | dontRepeat.clear(); 49 | } 50 | 51 | @EventHandler 52 | private void onsendpacket(PacketEvent.Send event){ 53 | if (!dontRepeat.contains(event.packet) && shouldDelayPacket(event.packet)) { 54 | event.setCancelled(true); 55 | entries.add(new PacketEntry(event.packet, delay.get(), System.currentTimeMillis())); 56 | } else { 57 | dontRepeat.remove(event.packet); 58 | } 59 | } 60 | 61 | boolean shouldDelayPacket(Packet p) { 62 | if (mode.get() == Mode.Delay) { 63 | return true; // if we want to delay everything, say yes 64 | } else { 65 | return p instanceof KeepAliveC2SPacket; // if we want to fake it, say yes if its a pong or keepalive 66 | } 67 | } 68 | 69 | @EventHandler 70 | private void ontick(TickEvent.Pre event){ 71 | if (mc.getNetworkHandler() == null) { 72 | toggle(); 73 | return; 74 | } 75 | long c = System.currentTimeMillis(); 76 | for (PacketEntry entry : entries.toArray(new PacketEntry[0])) { 77 | if (entry.entryTime + entry.delay <= c) { 78 | dontRepeat.add(entry.packet); 79 | entries.remove(entry); 80 | mc.getNetworkHandler().sendPacket(entry.packet); 81 | } 82 | } 83 | } 84 | 85 | public enum Mode{ 86 | Delay, Spoof 87 | } 88 | 89 | record PacketEntry(Packet packet, double delay, long entryTime) { 90 | 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/RainbowArmor.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.Utils.JinxUtils; 5 | import meteordevelopment.meteorclient.events.game.GameLeftEvent; 6 | import meteordevelopment.meteorclient.events.world.TickEvent; 7 | import meteordevelopment.meteorclient.settings.*; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.orbit.EventHandler; 10 | import net.minecraft.component.DataComponentTypes; 11 | import net.minecraft.component.type.DyedColorComponent; 12 | import net.minecraft.item.ItemStack; 13 | import net.minecraft.item.Items; 14 | import net.minecraft.nbt.NbtCompound; 15 | import net.minecraft.nbt.NbtDouble; 16 | import net.minecraft.util.math.MathHelper; 17 | 18 | public class RainbowArmor extends Module { 19 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 20 | 21 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 22 | .name("mode") 23 | .description("The mode for Rainbow Armor.") 24 | .defaultValue(Mode.Math) 25 | .build() 26 | ); 27 | 28 | private final Setting delay = sgGeneral.add(new IntSetting.Builder() 29 | .name("delay") 30 | .description("The delay between armor equips.") 31 | .defaultValue(0) 32 | .min(0) 33 | .sliderMax(10) 34 | .build() 35 | ); 36 | 37 | private final Setting excludeHelmet = sgGeneral.add(new BoolSetting.Builder() 38 | .name("exclude-helmet") 39 | .description("Does not give you a rainbow helmet.") 40 | .defaultValue(false) 41 | .build() 42 | ); 43 | 44 | private final Setting excludeChestplate = sgGeneral.add(new BoolSetting.Builder() 45 | .name("exclude-chestplate") 46 | .description("Does not give you a rainbow chestplate.") 47 | .defaultValue(false) 48 | .build() 49 | ); 50 | 51 | private final Setting excludeLeggings = sgGeneral.add(new BoolSetting.Builder() 52 | .name("exclude-leggings") 53 | .description("Does not give you rainbow leggings.") 54 | .defaultValue(false) 55 | .build() 56 | ); 57 | 58 | private final Setting excludeBoots = sgGeneral.add(new BoolSetting.Builder() 59 | .name("exclude-boots") 60 | .description("Does not give you rainbow boots.") 61 | .defaultValue(false) 62 | .build() 63 | ); 64 | 65 | private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() 66 | .name("auto-disable") 67 | .description("Disables module on kick.") 68 | .defaultValue(true) 69 | .build() 70 | ); 71 | 72 | private int textColor; 73 | private int current; 74 | private int ticks; 75 | 76 | public RainbowArmor() { 77 | super(Addon.CATEGORY, "rainbow-armor", "Gives you rainbow leather armor. | github.com/GriefUnion"); 78 | } 79 | 80 | @Override 81 | public void onActivate() { 82 | if (!mc.player.getAbilities().creativeMode) { 83 | error("You must be in creative mode to use this."); 84 | toggle(); 85 | return; 86 | } 87 | current = 0; 88 | ticks = 0; 89 | } 90 | 91 | @EventHandler 92 | private void onTick(TickEvent.Post event) { 93 | if (!mc.player.getAbilities().creativeMode) { 94 | error("You must be in creative mode to use this."); 95 | toggle(); 96 | return; 97 | } 98 | ticks++; 99 | if (ticks <= delay.get() && delay.get() != 0) return; 100 | if (mode.get() == Mode.Math) { 101 | float x = System.currentTimeMillis() % 2000 / 1000F; 102 | float red = 0.5F + 0.5F * MathHelper.sin(x * (float) Math.PI); 103 | float green = 0.5F + 0.5F * MathHelper.sin((x + 4F / 3F) * (float) Math.PI); 104 | float blue = 0.5F + 0.5F * MathHelper.sin((x + 8F / 3F) * (float) Math.PI); 105 | textColor = 0x04 << 16 | (int) (red * 256) << 16 | (int) (green * 256) << 8 | (int) (blue * 256); 106 | } else if (mode.get() == Mode.Other) { 107 | textColor = JinxUtils.rainbowColors(current); 108 | if (JinxUtils.rainbowColors(textColor) >= 18) current = 0; 109 | current++; 110 | } 111 | ItemStack helmet = new ItemStack(Items.LEATHER_HELMET); 112 | ItemStack chestplate = new ItemStack(Items.LEATHER_CHESTPLATE); 113 | ItemStack leggings = new ItemStack(Items.LEATHER_LEGGINGS); 114 | ItemStack boots = new ItemStack(Items.LEATHER_BOOTS); 115 | NbtCompound tag = new NbtCompound(); 116 | tag.put("color", NbtDouble.of(textColor)); 117 | 118 | helmet.set(DataComponentTypes.DYED_COLOR, new DyedColorComponent(textColor)); 119 | chestplate.set(DataComponentTypes.DYED_COLOR, new DyedColorComponent(textColor)); 120 | leggings.set(DataComponentTypes.DYED_COLOR, new DyedColorComponent(textColor)); 121 | boots.set(DataComponentTypes.DYED_COLOR, new DyedColorComponent(textColor)); 122 | 123 | if (!excludeHelmet.get()) mc.interactionManager.clickCreativeStack(helmet, 5); 124 | if (!excludeChestplate.get()) mc.interactionManager.clickCreativeStack(chestplate, 6); 125 | if (!excludeLeggings.get()) mc.interactionManager.clickCreativeStack(leggings, 7); 126 | if (!excludeBoots.get()) mc.interactionManager.clickCreativeStack(boots, 8); 127 | ticks = 0; 128 | } 129 | 130 | @EventHandler 131 | private void onGameLeft(GameLeftEvent event) { 132 | if (autoDisable.get()) toggle(); 133 | } 134 | 135 | public enum Mode { 136 | Math, 137 | Other 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/SitModule.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.systems.modules.Category; 7 | import meteordevelopment.meteorclient.systems.modules.Module; 8 | import meteordevelopment.orbit.EventHandler; 9 | import net.minecraft.entity.Entity; 10 | import net.minecraft.entity.player.PlayerEntity; 11 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 12 | import net.minecraft.network.packet.s2c.play.DeathMessageS2CPacket; 13 | import net.minecraft.util.hit.EntityHitResult; 14 | import net.minecraft.util.hit.HitResult; 15 | 16 | public class SitModule extends Module { 17 | private Entity target = null; 18 | int kickdelay = 25; 19 | public SitModule() { 20 | super(Addon.CATEGORY, "SitModule", "Sit on other players"); 21 | } 22 | 23 | @Override 24 | public void onActivate() { 25 | target = null; 26 | } 27 | 28 | @EventHandler 29 | private void ontick(TickEvent.Pre event){ 30 | if (target != null) { 31 | mc.player.setPosition(target.getPos().x, target.getPos().y + target.getHeight() + 0.04, target.getPos().z); 32 | mc.player.setVelocity(0,0,0); 33 | 34 | if (kickdelay <= 0) { 35 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY() + target.getHeight(), mc.player.getZ(), mc.player.isOnGround(), false)); 36 | kickdelay = 25; 37 | } else { 38 | kickdelay--; 39 | } 40 | } 41 | 42 | if (mc.options.useKey.isPressed()){ 43 | if (!mc.crosshairTarget.getType().equals(HitResult.Type.ENTITY)) return; 44 | EntityHitResult etr = (EntityHitResult) mc.crosshairTarget; 45 | target = etr.getEntity(); 46 | } 47 | 48 | if (mc.options.sneakKey.isPressed()){ 49 | target = null; 50 | } 51 | } 52 | 53 | @EventHandler 54 | private void onPacketReceive(PacketEvent.Receive event) { 55 | if (event.packet instanceof DeathMessageS2CPacket packet) { 56 | target = null; 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/SoundCoordLogger.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 10 | import meteordevelopment.meteorclient.systems.modules.Module; 11 | import meteordevelopment.orbit.EventHandler; 12 | import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; 13 | import net.minecraft.sound.SoundEvents; 14 | import net.minecraft.util.math.Vec3d; 15 | 16 | public class SoundCoordLogger extends Module { 17 | public SoundCoordLogger() { 18 | super(Addon.CATEGORY, "SoundCoordLogger", "Sends Coords of various events"); 19 | } 20 | 21 | @EventHandler 22 | private void OnSound(PacketEvent.Receive event){ 23 | if (event.packet instanceof PlaySoundS2CPacket){ 24 | PlaySoundS2CPacket packet = (PlaySoundS2CPacket) event.packet; 25 | if (SoundEvents.BLOCK_END_PORTAL_SPAWN.equals((packet).getSound())){ 26 | info("End Portal Activated At: " + vectorToString(new Vec3d(packet.getX(), packet.getY(), packet.getZ()))); 27 | } 28 | else if (SoundEvents.ENTITY_WITHER_SPAWN.equals((packet).getSound())){ 29 | info("Wither Spawned At: " + vectorToString(new Vec3d(packet.getX(), packet.getY(), packet.getZ()))); 30 | } 31 | else if (SoundEvents.ENTITY_ENDER_DRAGON_DEATH.equals((packet).getSound())){ 32 | info("Dragon Killed At: " + vectorToString(new Vec3d(packet.getX(), packet.getY(), packet.getZ()))); 33 | } 34 | } 35 | } 36 | 37 | private String vectorToString(Vec3d vector) { 38 | return String.format( 39 | "(%s, %s, %s)", 40 | Math.floor(vector.x), 41 | Math.floor(vector.y), 42 | Math.floor(vector.z) 43 | ); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/StorageVoider.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.settings.SettingGroup; 5 | import meteordevelopment.meteorclient.systems.modules.Categories; 6 | import meteordevelopment.meteorclient.systems.modules.Module; 7 | import meteordevelopment.meteorclient.utils.network.MeteorExecutor; 8 | import net.minecraft.screen.GenericContainerScreenHandler; 9 | import net.minecraft.screen.ScreenHandler; 10 | import net.minecraft.screen.slot.SlotActionType; 11 | 12 | public class StorageVoider extends Module { 13 | 14 | ScreenHandler handler; 15 | public StorageVoider() { 16 | super(Addon.CATEGORY, "Storage Voider", "Void everything in a storage block"); 17 | } 18 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 19 | 20 | private int getRows(ScreenHandler handler) { 21 | return (handler instanceof GenericContainerScreenHandler ? ((GenericContainerScreenHandler) handler).getRows() : 3); 22 | } 23 | private void moveSlots(ScreenHandler handler, int start, int end) { 24 | for (int i = start; i < end; i++) { 25 | if (!handler.getSlot(i).hasStack()) continue; 26 | 27 | // Exit if user closes screen 28 | if (mc.currentScreen == null) break; 29 | mc.interactionManager.clickSlot(mc.player.currentScreenHandler.syncId, i, 50, SlotActionType.SWAP, mc.player); 30 | } 31 | } 32 | 33 | public void voider(ScreenHandler handler) { 34 | MeteorExecutor.execute(() -> moveSlots(handler, 0, getRows(handler) * 9)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/StrongholdFinder.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import com.dark.zewo2.Utils.JinxUtils; 5 | import com.dark.zewo2.Utils.Line; 6 | import meteordevelopment.meteorclient.events.world.PlaySoundEvent; 7 | import meteordevelopment.meteorclient.events.world.TickEvent; 8 | import meteordevelopment.meteorclient.systems.modules.Module; 9 | import meteordevelopment.meteorclient.utils.player.Rotations; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.entity.Entity; 12 | import net.minecraft.entity.EyeOfEnderEntity; 13 | import net.minecraft.util.math.Vec3d; 14 | 15 | public class StrongholdFinder extends Module { 16 | private boolean hasstarted =false; 17 | private boolean hasfinished = false; 18 | private double rot1 = 0; 19 | private double rot2 = 0; 20 | private Vec3d pos1 = new Vec3d(0,0,0); 21 | private Vec3d pos2 = new Vec3d(0,0,0); 22 | 23 | private int timer = 0; 24 | 25 | public StrongholdFinder() { 26 | super(Addon.CATEGORY, "StrongholdFinder", "Triangulation Stronghold location"); 27 | } 28 | 29 | @Override 30 | public void onActivate() { 31 | hasstarted = false; 32 | hasfinished =false; 33 | } 34 | 35 | @EventHandler 36 | private void onthrow(TickEvent.Pre event){ 37 | if (timer > 0){ 38 | timer--; 39 | } 40 | 41 | if (hasfinished){ 42 | info("3"); 43 | hasfinished = false; 44 | 45 | Vec3d intersection = Line.getIntersection(pos1.x, pos1.z, rot1, pos2.x, pos2.z, rot2); 46 | info("Stronghold location: (highlight) %s ~ %s", (int)intersection.x, (int)intersection.z); 47 | toggle(); 48 | } 49 | } 50 | 51 | @EventHandler 52 | private void onsound(PlaySoundEvent event){ 53 | if (event.sound.getId().getPath().equals("entity.ender_eye.launch")){ 54 | if (timer > 0) return; 55 | else timer = 20; 56 | 57 | 58 | if (!hasstarted) { 59 | new Thread(() -> { 60 | info("1"); 61 | JinxUtils.sleep(1000); 62 | Entity eye = findeye(); 63 | pos1 = mc.player.getPos(); 64 | 65 | rot1 = Rotations.getYaw(eye); 66 | 67 | hasstarted = true; 68 | }).start(); 69 | } else { 70 | new Thread(() -> { 71 | JinxUtils.sleep(1000); 72 | info("2"); 73 | Entity eye = findeye(); 74 | pos2 = mc.player.getPos(); 75 | 76 | rot2 = Rotations.getYaw(eye); 77 | 78 | hasfinished = true; 79 | }).start(); 80 | } 81 | } 82 | } 83 | 84 | private Entity findeye(){ 85 | Entity found = null; 86 | for (Entity eye : mc.world.getEntities()){ 87 | if(eye instanceof EyeOfEnderEntity){ 88 | found = eye; 89 | } 90 | } 91 | return found; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/Suicide.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 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.Module; 9 | import meteordevelopment.orbit.EventHandler; 10 | 11 | public class Suicide extends Module { 12 | int Timer; 13 | 14 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 15 | 16 | private final Setting velo = sgGeneral.add(new DoubleSetting.Builder() 17 | .name("velo") 18 | .description("the velocity you are thrown at") 19 | .defaultValue(1) 20 | .min(0.1) 21 | .build() 22 | ); 23 | 24 | private final Setting Timerc = sgGeneral.add(new DoubleSetting.Builder() 25 | .name("timer") 26 | .description("") 27 | .defaultValue(10) 28 | .min(1) 29 | .build() 30 | ); 31 | 32 | public Suicide() { 33 | super(Addon.CATEGORY, "Suicide", "you fell from a high place"); 34 | } 35 | 36 | @Override 37 | public void onActivate() { 38 | Timer = Timerc.get().intValue(); 39 | 40 | mc.player.setVelocity(0, velo.get(), 0); 41 | } 42 | 43 | @EventHandler 44 | private void onTick(TickEvent.Pre event){ 45 | if (Timer <= 0){ 46 | mc.player.setVelocity(0, -velo.get(), 0); 47 | Timer = Timerc.get().intValue(); 48 | toggle(); 49 | } else { 50 | Timer--; 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/TotemNotifier.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 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.player.ChatUtils; 10 | import meteordevelopment.orbit.EventHandler; 11 | import net.minecraft.entity.Entity; 12 | import net.minecraft.entity.player.PlayerEntity; 13 | import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket; 14 | 15 | import java.util.HashMap; 16 | import java.util.Map; 17 | import java.util.Set; 18 | import java.util.UUID; 19 | 20 | public class TotemNotifier extends Module { 21 | final Map popMap = new HashMap<>(); 22 | 23 | private final SettingGroup sgGeneral = settings.getDefaultGroup(); 24 | 25 | private Setting announce = sgGeneral.add(new BoolSetting.Builder() 26 | .name("Announce") 27 | .description("Announce the pop in chat") 28 | .defaultValue(false) 29 | .build()); 30 | 31 | private Setting self = sgGeneral.add(new BoolSetting.Builder() 32 | .name("Self") 33 | .description("Include yourself in the pops.") 34 | .defaultValue(false) 35 | .build()); 36 | 37 | public TotemNotifier() { 38 | super(Addon.CATEGORY, "TotemNotifier", "Notify you when someone pops a totem"); 39 | } 40 | 41 | @Override 42 | public void onActivate() { 43 | popMap.clear(); 44 | } 45 | 46 | @EventHandler 47 | private void onReceivePacket(PacketEvent.Receive event) { 48 | if (!(event.packet instanceof EntityStatusS2CPacket packet)) return; 49 | 50 | if (packet.getStatus() != 35) return; 51 | 52 | Entity entity = packet.getEntity(mc.world); 53 | 54 | if (entity == mc.player && !self.get()) return; 55 | 56 | if (!(entity instanceof PlayerEntity player)) return; 57 | 58 | int pops = popMap.getOrDefault(player.getUuid(), 0); 59 | popMap.put(player.getUuid(), ++pops); 60 | 61 | String message = "%s has popped %s totem(s)".formatted(player.getGameProfile().getName(), pops); 62 | 63 | if (announce.get()) ChatUtils.sendPlayerMsg(message); 64 | else ChatUtils.info(message); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/WorldGuardBypass.java: -------------------------------------------------------------------------------- 1 | package com.dark.zewo2.modules; 2 | 3 | import com.dark.zewo2.Addon; 4 | import meteordevelopment.meteorclient.events.packets.PacketEvent; 5 | import meteordevelopment.meteorclient.events.world.TickEvent; 6 | import meteordevelopment.meteorclient.settings.DoubleSetting; 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.client.network.ClientPlayerEntity; 12 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; 13 | import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; 14 | import net.minecraft.util.math.Vec3d; 15 | 16 | public class WorldGuardBypass extends Module { 17 | public WorldGuardBypass() { 18 | super(Addon.CATEGORY, "WG-Bypass", "Bypass world guard"); 19 | } 20 | 21 | ClientPlayerEntity player = mc.player; 22 | 23 | @EventHandler 24 | private void onTick(TickEvent.Pre event) { 25 | double hspeed = 0.0625D; 26 | double vspeed = 0.0625D; 27 | 28 | Vec3d forward = new Vec3d(0, 0, hspeed).rotateY(-(float) Math.toRadians(Math.round(mc.player.getYaw() / 90) * 90)); 29 | Vec3d moveVec = Vec3d.ZERO; 30 | 31 | 32 | if (mc.options.forwardKey.isPressed()) { 33 | moveVec = moveVec.add(forward); 34 | mc.player.setVelocity(0, 0, 0); 35 | } else if (mc.options.backKey.isPressed()) { 36 | moveVec = moveVec.add(forward.negate()); 37 | mc.player.setVelocity(0, 0, 0); 38 | } 39 | 40 | else if (mc.options.leftKey.isPressed()) { 41 | moveVec = moveVec.add(forward.rotateY((float) Math.toRadians(90))); 42 | mc.player.setVelocity(0, 0, 0); 43 | }else if (mc.options.rightKey.isPressed()) { 44 | moveVec = moveVec.add(forward.rotateY((float) -Math.toRadians(90))); 45 | mc.player.setVelocity(0, 0, 0); 46 | } 47 | 48 | else if (mc.options.jumpKey.isPressed()) { 49 | moveVec = moveVec.add(0, vspeed, 0); 50 | mc.player.setVelocity(0, 0, 0); 51 | }else if (mc.options.sneakKey.isPressed()) { 52 | moveVec = moveVec.add(0, -vspeed, 0); 53 | mc.player.setVelocity(0, 0, 0); 54 | } 55 | 56 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround( 57 | mc.player.getX() + moveVec.x, mc.player.getY() + moveVec.y, mc.player.getZ() + moveVec.z, false, false)); 58 | 59 | mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround( 60 | mc.player.getX() + moveVec.x, mc.player.getY() - 100, mc.player.getZ() + moveVec.z, true, false)); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/chatfilterbypass.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.game.SendMessageEvent; 10 | import meteordevelopment.meteorclient.settings.EnumSetting; 11 | import meteordevelopment.meteorclient.settings.Setting; 12 | import meteordevelopment.meteorclient.settings.SettingGroup; 13 | import meteordevelopment.meteorclient.systems.modules.Module; 14 | import meteordevelopment.orbit.EventHandler; 15 | 16 | public class chatfilterbypass extends Module { 17 | public chatfilterbypass() { 18 | super(Addon.CATEGORY, "Chat Filter Bypass", "Bypasses Chat Filters"); 19 | } 20 | private final SettingGroup sgGeneral = this.settings.getDefaultGroup(); 21 | 22 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder() 23 | .name("mode") 24 | .description("modes") 25 | .defaultValue(Modes.zeroSpace) 26 | .build() 27 | ); 28 | 29 | @EventHandler 30 | private void OnMessage(SendMessageEvent event){ 31 | String message = event.message; 32 | switch (mode.get()) { 33 | case zeroSpace -> { 34 | message = message.replaceAll("a", "a\u200C") 35 | .replaceAll("e", "e\u200C") 36 | .replaceAll("i", "i\u200C") 37 | .replaceAll("o", "o\u200C") 38 | .replaceAll("u", "u\u200C"); 39 | } 40 | 41 | case RTLO -> { 42 | message = message.replaceAll("<", ">").replaceAll(">", "<"); 43 | message = new StringBuilder(message).reverse().toString(); 44 | message = "\u202E" + message; 45 | 46 | } 47 | } 48 | event.message = message; 49 | } 50 | 51 | public enum Modes{ 52 | zeroSpace, 53 | RTLO 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/dark/zewo2/modules/phase.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 com.dark.zewo2.modules; 7 | 8 | import com.dark.zewo2.Addon; 9 | import meteordevelopment.meteorclient.events.world.TickEvent; 10 | import meteordevelopment.meteorclient.systems.modules.Module; 11 | import meteordevelopment.orbit.EventHandler; 12 | 13 | public class phase extends Module { 14 | private int timer; 15 | private boolean prevflying; 16 | public phase() {super(Addon.CATEGORY, "HitboxPhase", "Phase upwards using shitty hitbox mechanics \uD83D\uDC80");} 17 | 18 | @Override 19 | public void onActivate() { 20 | timer = 0; 21 | prevflying = mc.player.getAbilities().flying; 22 | } 23 | 24 | @EventHandler 25 | private void ontick(TickEvent.Pre event){ 26 | mc.player.getAbilities().flying = true; 27 | 28 | timer++; 29 | if(timer < 3) 30 | return; 31 | 32 | mc.options.sneakKey.setPressed(!mc.options.sneakKey.isPressed()); 33 | timer = -1; 34 | } 35 | 36 | @Override 37 | public void onDeactivate() { 38 | mc.player.getAbilities().flying = prevflying; 39 | mc.options.sneakKey.setPressed(false); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/resources/assets/zewo2/boykisserskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dark-Developments/Zewo2-MeteorAddon/40a40db52f85ce10958a635da12d159fd4707f1a/src/main/resources/assets/zewo2/boykisserskin.png -------------------------------------------------------------------------------- /src/main/resources/assets/zewo2/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dark-Developments/Zewo2-MeteorAddon/40a40db52f85ce10958a635da12d159fd4707f1a/src/main/resources/assets/zewo2/icon.png -------------------------------------------------------------------------------- /src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "zewo2", 4 | "version": "${version}", 5 | "name": "Zewo2", 6 | "description": "A meteor addon.", 7 | "authors": [ 8 | ":)" 9 | ], 10 | "contact": { 11 | "repo": "https://github.com/Dark-Developments/Zewo2-Addon" 12 | }, 13 | "icon": "assets/zewo2/icon.png", 14 | "environment": "client", 15 | "entrypoints": { 16 | "meteor": [ 17 | "com.dark.zewo2.Addon" 18 | ] 19 | }, 20 | "mixins": [ 21 | "zewo2.mixins.json" 22 | ], 23 | "custom": { 24 | "meteor-client:color": "99,99,99" 25 | }, 26 | "accessWidener": "zewo2.accesswidener", 27 | "depends": { 28 | "java": ">=17", 29 | "minecraft": ">=${mc_version}", 30 | "meteor-client": "*" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/zewo2.accesswidener: -------------------------------------------------------------------------------- 1 | accessWidener v1 named 2 | 3 | accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractType 4 | accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractAtHandler 5 | accessible class net/minecraft/network/packet/c2s/play/PlayerInteractEntityC2SPacket$InteractTypeHandler 6 | -------------------------------------------------------------------------------- /src/main/resources/zewo2.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "package": "com.dark.zewo2.mixin", 4 | "compatibilityLevel": "JAVA_17", 5 | "client": [ 6 | "ChatMixin", 7 | "GenericContainerScreenMixin", 8 | "MixinMessageHandler", 9 | "MultiplayerScreenMixin", 10 | "PlayerListEntryMixin", 11 | "SessionMixin", 12 | "Interface.INClientPlayerInteractionManagerMixin" 13 | ], 14 | "injectors": { 15 | "defaultRequire": 1 16 | } 17 | } 18 | --------------------------------------------------------------------------------