├── .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 |

9 |

10 |

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 |
--------------------------------------------------------------------------------