├── .editorconfig
├── .github
└── workflows
│ ├── dev_build.yml
│ ├── pull_request.yml
│ └── push.yml
├── .gitignore
├── README.md
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
└── main
├── java
├── bebra
│ └── hack
│ │ └── addon
│ │ ├── Addon.java
│ │ ├── Utils
│ │ ├── ArmorUtils.java
│ │ ├── AutomationUtils.java
│ │ ├── BEntityUtils.java
│ │ ├── BPlayerUtils.java
│ │ ├── BWorldUtils.java
│ │ ├── BlockHelper.java
│ │ ├── BlockInfo.java
│ │ ├── CHMainUtils.java
│ │ ├── EntityInfo.java
│ │ ├── HelperUtil.java
│ │ ├── Interactions.java
│ │ ├── SendRawMessageEvent.java
│ │ ├── Task.java
│ │ ├── TimerUtilsbanana.java
│ │ └── Utils.java
│ │ ├── hud
│ │ └── CustomImage.java
│ │ └── modules
│ │ ├── chat
│ │ ├── AutoEz.java
│ │ ├── AutoLogin.java
│ │ ├── ChatEncryption.java
│ │ ├── Prefix.java
│ │ ├── SpamInChat.java
│ │ └── bebra_info_and_help.java
│ │ ├── pve
│ │ ├── AutoBuild.java
│ │ ├── AutoCraft.java
│ │ ├── AutoDrop.java
│ │ ├── AutoExit.java
│ │ ├── AutoSex.java
│ │ ├── AutoTNT.java
│ │ ├── Chests_farmer.java
│ │ ├── DupeWithFrame.java
│ │ ├── Efly.java
│ │ ├── Lavacast.java
│ │ ├── NewsPaperHelperEu.java
│ │ ├── NewsPaperHelperRu.java
│ │ ├── NoDesync.java
│ │ ├── PingSpoofer.java
│ │ ├── Platforms.java
│ │ ├── SilentItem.java
│ │ ├── Spinner.java
│ │ ├── TreeAura.java
│ │ ├── Twerk.java
│ │ └── VillagerRoller.java
│ │ ├── pvp
│ │ ├── AntiCrystal.java
│ │ ├── AntiSurroundBlocks.java
│ │ ├── AutoSand.java
│ │ ├── AutoTrapPlus.java
│ │ ├── Blocker.java
│ │ ├── Burrow.java
│ │ ├── ButtonPlace.java
│ │ ├── DeleteItems.java
│ │ ├── DownBlocs.java
│ │ ├── FanSurroundBEBRA.java
│ │ ├── HitboxDesync.java
│ │ ├── PIRAMIDKA.java
│ │ ├── PacketHoleFill.java
│ │ ├── SelfAnvilBEBRA.java
│ │ ├── SurroundBEBRA.java
│ │ ├── sphere.java
│ │ └── tntauraBEBRAplus.java
│ │ └── render
│ │ ├── BebraESP.java
│ │ ├── Bubbles.java
│ │ ├── Bubbles2.java
│ │ ├── HoleESPPlus.java
│ │ ├── KillEffects.java
│ │ ├── Linia.java
│ │ ├── NewChunks.java
│ │ └── TimeAnimator.java
└── com
│ └── example
│ └── addon
│ ├── Addon.java
│ ├── Utils
│ ├── AAABLYA.java
│ ├── ArmorUtils.java
│ ├── AutomationUtils.java
│ ├── BEntityUtils.java
│ ├── BPlayerUtils.java
│ ├── BWorldUtils.java
│ ├── BedUtils.java
│ ├── BlockHelper.java
│ ├── BlockInfo.java
│ ├── BlockPosX.java
│ ├── BlockUpdateEvent.java
│ ├── BreakBlockEvent.java
│ ├── CHMainUtils.java
│ ├── DamageHelper.java
│ ├── Distance.java
│ ├── Emotes.java
│ ├── EntityInfo.java
│ ├── Formatter.java
│ ├── HandledScreenAccessor.java
│ ├── IRenderer2D.java
│ ├── Initialization.java
│ ├── InteractUtils.java
│ ├── Interaction.java
│ ├── InvHelper.java
│ ├── Item2IntMapSetting.java
│ ├── ItemHelper.java
│ ├── Location.java
│ ├── OSUtil.java
│ ├── Place.java
│ ├── RenderInfo.java
│ ├── RenderUtils.java
│ ├── SendRawMessageEvent.java
│ ├── SpotifyService.java
│ ├── Stats.java
│ ├── SystemTimer.java
│ ├── TL.java
│ ├── TargetHelper.java
│ ├── Task.java
│ ├── TimerUtils.java
│ ├── TimerUtilsbanana.java
│ ├── Util.java
│ ├── Utili.java
│ ├── Utils.java
│ ├── Vec3dInfo.java
│ ├── VillagerEntityAccessor.java
│ └── bbc
│ │ └── world
│ │ ├── BlockHelper.java
│ │ ├── BlockPosX.java
│ │ └── DamageHelper.java
│ └── modules
│ ├── BebraHackPVP
│ ├── AnchorAuraBEBRA.java
│ ├── AntiBurrow.java
│ ├── AntiCrystal.java
│ ├── AntiSurroundBlocks.java
│ ├── AutoEz.java
│ ├── Burrow.java
│ ├── CevBreaker.java
│ ├── FanSurroundBEBRA.java
│ ├── Notifications.java
│ ├── PacketHoleFill.java
│ ├── SelfAnvilBEBRA.java
│ ├── SurroundBEBRA.java
│ ├── sphere.java
│ └── tntauraBEBRAplus.java
│ ├── BebraHackRender
│ ├── AntiVanish.java
│ ├── BebraESP.java
│ ├── BurrowESP.java
│ ├── Confetti.java
│ ├── HoleESPPlus.java
│ ├── KillEffects.java
│ ├── NewChunks.java
│ ├── Prefix.java
│ └── TimeAnimator.java
│ ├── hud
│ ├── CustomImage.java
│ └── Killfeed.java
│ └── misc
│ ├── AutoBuild.java
│ ├── AutoCraft.java
│ ├── AutoLogTotems.java
│ ├── AutoLogin.java
│ ├── AutoSex.java
│ ├── AutoTNT.java
│ ├── ChatEncryption.java
│ ├── CoordLogger.java
│ ├── EFly.java
│ ├── Lavacast.java
│ ├── MEGA_DUPEprank.java
│ ├── NoDesync.java
│ ├── PacketFly.java
│ ├── PingSpoofer.java
│ ├── SilentItem.java
│ ├── SpamInChat.java
│ ├── Spinner.java
│ ├── TreeAura.java
│ ├── Twerk.java
│ ├── VillagerRoller.java
│ └── bebra_info_and_help.java
└── resources
├── addon-template.mixins.json
├── addon.mixins.json
├── assets
├── logo1.png
├── logo2.png
├── logo3.png
└── template
│ └── icon.png
└── fabric.mod.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 |
--------------------------------------------------------------------------------
/.github/workflows/push.yml:
--------------------------------------------------------------------------------
1 | name: Java CI with Gradle
2 |
3 | concurrency:
4 | group: "V6"
5 | cancel-in-progress: true
6 |
7 | on:
8 | push:
9 | branches: [ V6 ]
10 | paths-ignore:
11 | - '*.md'
12 |
13 |
14 | jobs:
15 | build:
16 |
17 | runs-on: ubuntu-latest
18 | steps:
19 | - uses: actions/checkout@v3
20 | - name: Set up JDK 18
21 | uses: actions/setup-java@v3
22 | with:
23 | java-version: 18
24 | distribution: 'zulu'
25 | - name: Grant execute permission for gradlew
26 | run: chmod +x gradlew
27 | - name: Build with Gradle
28 | run: ./gradlew build
29 | - name: Remove *-dev.jar
30 | run: rm ./build/libs/*-dev.jar || true
31 | - uses: "marvinpinto/action-automatic-releases@latest"
32 | with:
33 | repo_token: "${{ secrets.GITHUB_TOKEN }}"
34 | automatic_release_tag: "V6"
35 | prerelease: false
36 | title: "V6"
37 | files: |
38 | ./build/libs/*.jar
39 |
--------------------------------------------------------------------------------
/.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 |
BebraHack
3 |
4 |
5 |
6 |
Adds additional functionality to Meteor Client ☄️
7 |

8 |

9 |

10 |

11 |

12 |

13 |

14 |
15 |
16 |
17 |
18 | ## ℹ️ Information
19 | This addon adds many new features to the [Meteor Client](https://meteorclient.com/). If you want to add or suggest any feature, then write [here](https://github.com/BebraHack/BebraHackAddon/issues/new?assignees=&labels=enhancement&template=feature_request.yml&title=%5BSuggestion%5D+).
20 |
21 | ⭐ **Star this repository, to support me!**
22 |
23 | ## ⬇️ Download
24 | You can [see how it looks](https://zgoly.github.io/addonview/generate?user=BebraHack&repo=BebraHackAddon&path=src/main/java/com/example/addon/modules) before downloading.
25 |
26 | 1. Click **[here](https://github.com/BebraHack/BebraHackAddon/releases/download/V6/Bebrahack_V6-0.1.0.jar)** to download
27 | 2. Move `Bebrahack_V6-0.1.0.jar` in `.minecraft/mods` folder
28 |
29 | Don't forget to download **[meteor dev build](https://meteorclient.com/download?devBuild=latest)**
30 |
31 | ## ⁉️ Problems
32 | If you find any bug or have any problem write [here](https://github.com/BebraHack/BebraHackAddon/issues/new?assignees=&labels=bug&template=bug.yml&title=%5BBug%5D+).
33 |
34 |
35 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id "fabric-loom" version "1.1-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 | maven {
13 | name = "Meteor Dev Releases"
14 | url = "https://maven.meteordev.org/releases"
15 | }
16 | maven {
17 | name = "Meteor Dev Snapshots"
18 | url = "https://maven.meteordev.org/snapshots"
19 | }
20 | }
21 |
22 | dependencies {
23 | // Fabric
24 | minecraft "com.mojang:minecraft:${project.minecraft_version}"
25 | mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
26 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
27 |
28 | // Meteor
29 | modImplementation "meteordevelopment:meteor-client:${project.meteor_version}"
30 | }
31 |
32 | processResources {
33 | filesMatching("fabric.mod.json") {
34 | expand "version": project.version, "mc_version": project.minecraft_version
35 | }
36 | }
37 |
38 | tasks.withType(JavaCompile).configureEach {
39 | it.options.encoding("UTF-8")
40 | }
41 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx2G
2 |
3 | # Fabric Properties (https://fabricmc.net/develop)
4 | minecraft_version=1.19.4
5 | yarn_mappings=1.19.4+build.2
6 | loader_version=0.14.19
7 |
8 | # Mod Properties
9 | mod_version=0.1.0
10 | maven_group=bebra.hack
11 | archives_base_name=Bebrahack V6
12 |
13 | # Dependencies
14 |
15 | # Meteor (https://maven.meteordev.org)
16 | meteor_version=0.5.3-SNAPSHOT
17 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BebraHack/BebraHackAddon/7916b607fe76e3c412d9db9a6cb4477bdacd0874/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.1.1-bin.zip
4 | networkTimeout=10000
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/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 | @rem This is normally unused
30 | set APP_BASE_NAME=%~n0
31 | set APP_HOME=%DIRNAME%
32 |
33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
35 |
36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
38 |
39 | @rem Find java.exe
40 | if defined JAVA_HOME goto findJavaFromJavaHome
41 |
42 | set JAVA_EXE=java.exe
43 | %JAVA_EXE% -version >NUL 2>&1
44 | if %ERRORLEVEL% equ 0 goto execute
45 |
46 | echo.
47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
48 | echo.
49 | echo Please set the JAVA_HOME variable in your environment to match the
50 | echo location of your Java installation.
51 |
52 | goto fail
53 |
54 | :findJavaFromJavaHome
55 | set JAVA_HOME=%JAVA_HOME:"=%
56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57 |
58 | if exist "%JAVA_EXE%" goto execute
59 |
60 | echo.
61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
62 | echo.
63 | echo Please set the JAVA_HOME variable in your environment to match the
64 | echo location of your Java installation.
65 |
66 | goto fail
67 |
68 | :execute
69 | @rem Setup the command line
70 |
71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72 |
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if %ERRORLEVEL% equ 0 goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | set EXIT_CODE=%ERRORLEVEL%
85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
87 | exit /b %EXIT_CODE%
88 |
89 | :mainEnd
90 | if "%OS%"=="Windows_NT" endlocal
91 |
92 | :omega
93 |
--------------------------------------------------------------------------------
/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/bebra/hack/addon/Addon.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon;
2 |
3 | import bebra.hack.addon.hud.CustomImage;
4 | import bebra.hack.addon.modules.chat.*;
5 | import bebra.hack.addon.modules.pve.*;
6 | import bebra.hack.addon.modules.pvp.*;
7 | import bebra.hack.addon.modules.render.*;
8 | import com.mojang.logging.LogUtils;
9 | import meteordevelopment.meteorclient.addons.MeteorAddon;
10 | import meteordevelopment.meteorclient.systems.hud.Hud;
11 | import meteordevelopment.meteorclient.systems.hud.HudGroup;
12 | import meteordevelopment.meteorclient.systems.modules.Category;
13 | import meteordevelopment.meteorclient.systems.modules.Modules;
14 | import meteordevelopment.meteorclient.systems.modules.combat.Surround;
15 | import org.slf4j.Logger;
16 |
17 | public class Addon extends MeteorAddon {
18 |
19 | public static String VERSION = "BebraHackV6";
20 | public static final Logger LOG = LogUtils.getLogger();
21 | public static final Category combat = new Category("BebraHackPVP");
22 |
23 | public static final Category misc = new Category("BebraHackPVE");
24 | public static final Category render = new Category("BebraHackRender");
25 | public static final Category chat = new Category("BebraHackChat");
26 | public static final HudGroup HUD_GROUP = new HudGroup("BebraHackHUD");
27 |
28 | @Override
29 | public void onInitialize() {
30 | LOG.info("Initializing Meteor Addon BebraHackV6");
31 |
32 | // PVP
33 | Modules.get().add(new sphere());
34 | Modules.get().add(new Blocker());
35 | Modules.get().add(new HitboxDesync());
36 | Modules.get().add(new tntauraBEBRAplus());
37 | Modules.get().add(new DownBlocs());
38 | Modules.get().add(new AutoTrapPlus());
39 | Modules.get().add(new FanSurroundBEBRA());
40 | Modules.get().add(new AutoExit());
41 | Modules.get().add(new AntiCrystal());
42 | Modules.get().add(new AntiSurroundBlocks());
43 | Modules.get().add(new Burrow());
44 | Modules.get().add(new PIRAMIDKA());
45 | Modules.get().add(new ButtonPlace());
46 | Modules.get().add(new PacketHoleFill());
47 | Modules.get().add(new SelfAnvilBEBRA());
48 | Modules.get().add(new SurroundBEBRA());
49 | Modules.get().add(new DeleteItems());
50 |
51 | // PVE
52 | Modules.get().add(new AutoDrop());
53 | Modules.get().add(new Platforms());
54 | Modules.get().add(new AutoBuild());
55 | //Modules.get().add(new AutoCraft());
56 | Modules.get().add(new AutoSand());
57 | Modules.get().add(new TreeAura());
58 | Modules.get().add(new NoDesync());
59 | Modules.get().add(new EFly());
60 | Modules.get().add(new SilentItem());
61 | Modules.get().add(new VillagerRoller());
62 | Modules.get().add(new DupeWithFrame());
63 | Modules.get().add(new AutoSex());
64 | Modules.get().add(new AutoTNT());
65 | Modules.get().add(new Twerk());
66 | Modules.get().add(new Spinner());
67 | Modules.get().add(new Lavacast());
68 | Modules.get().add(new PingSpoofer());
69 | Modules.get().add(new Chests_farmer());
70 | Modules.get().add(new NewsPaperHelperRu());
71 | Modules.get().add(new NewsPaperHelperEu());
72 |
73 | //RENDER
74 | Modules.get().add(new BebraESP());
75 | Modules.get().add(new NewChunks());
76 | Modules.get().add(new TimeAnimator());
77 | Modules.get().add(new Bubbles());
78 | Modules.get().add(new Bubbles2());
79 | Modules.get().add(new KillEffects());
80 | Modules.get().add(new HoleESPPlus());
81 | //Modules.get().add(new Linia());
82 |
83 | //CHAT
84 | Modules.get().add(new bebra_info_and_help());
85 | Modules.get().add(new ChatEncryption());
86 | Modules.get().add(new Prefix());
87 | Modules.get().add(new SpamInChat());
88 | Modules.get().add(new AutoLogin());
89 | //Modules.get().add(new AutoEz());
90 |
91 |
92 | // HUD
93 | Hud.get().register(CustomImage.INFO);
94 | }
95 |
96 | @Override
97 | public void onRegisterCategories() {
98 |
99 | Modules.registerCategory(combat);
100 | Modules.registerCategory(render);
101 | Modules.registerCategory(misc);
102 | Modules.registerCategory(chat);
103 | }
104 |
105 | @Override
106 | public String getPackage() {
107 | return "bebra.hack.addon";
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/ArmorUtils.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import net.minecraft.item.ItemStack;
4 | import net.minecraft.item.Items;
5 |
6 | import static meteordevelopment.meteorclient.MeteorClient.mc;
7 |
8 | public class ArmorUtils {
9 |
10 | public static ItemStack getArmor(int slot) {
11 | return mc.player.getInventory().armor.get(slot);
12 | }
13 |
14 | public static boolean isFallFlying() {
15 | return getArmor(2).getItem() == Items.ELYTRA && mc.player.isFallFlying();
16 | }
17 |
18 | public static boolean checkThreshold(ItemStack i, double threshold) {
19 | return getDamage(i) <= threshold;
20 | }
21 |
22 | public static double getDamage(ItemStack i) {return (((double) (i.getMaxDamage() - i.getDamage()) / i.getMaxDamage()) * 100);}
23 |
24 |
25 | public static boolean isHelm(ItemStack itemStack) {
26 | if (itemStack == null) return false;
27 | if (itemStack.getItem() == Items.NETHERITE_HELMET) return true;
28 | if (itemStack.getItem() == Items.DIAMOND_HELMET) return true;
29 | if (itemStack.getItem() == Items.GOLDEN_HELMET) return true;
30 | if (itemStack.getItem() == Items.IRON_HELMET) return true;
31 | if (itemStack.getItem() == Items.CHAINMAIL_HELMET) return true;
32 | return itemStack.getItem() == Items.LEATHER_HELMET;
33 | }
34 |
35 | public static boolean isChest(ItemStack itemStack) {
36 | if (itemStack == null) return false;
37 | if (itemStack.getItem() == Items.NETHERITE_CHESTPLATE) return true;
38 | if (itemStack.getItem() == Items.DIAMOND_CHESTPLATE) return true;
39 | if (itemStack.getItem() == Items.GOLDEN_CHESTPLATE) return true;
40 | if (itemStack.getItem() == Items.IRON_CHESTPLATE) return true;
41 | if (itemStack.getItem() == Items.CHAINMAIL_CHESTPLATE) return true;
42 | return itemStack.getItem() == Items.LEATHER_CHESTPLATE;
43 | }
44 |
45 | public static boolean isLegs(ItemStack itemStack) {
46 | if (itemStack == null) return false;
47 | if (itemStack.getItem() == Items.NETHERITE_LEGGINGS) return true;
48 | if (itemStack.getItem() == Items.DIAMOND_LEGGINGS) return true;
49 | if (itemStack.getItem() == Items.GOLDEN_LEGGINGS) return true;
50 | if (itemStack.getItem() == Items.IRON_LEGGINGS) return true;
51 | if (itemStack.getItem() == Items.CHAINMAIL_LEGGINGS) return true;
52 | return itemStack.getItem() == Items.LEATHER_LEGGINGS;
53 | }
54 |
55 | public static boolean isBoots(ItemStack itemStack) {
56 | if (itemStack == null) return false;
57 | if (itemStack.getItem() == Items.NETHERITE_BOOTS) return true;
58 | if (itemStack.getItem() == Items.DIAMOND_BOOTS) return true;
59 | if (itemStack.getItem() == Items.GOLDEN_BOOTS) return true;
60 | if (itemStack.getItem() == Items.IRON_BOOTS) return true;
61 | if (itemStack.getItem() == Items.CHAINMAIL_BOOTS) return true;
62 | return itemStack.getItem() == Items.LEATHER_BOOTS;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/BPlayerUtils.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import net.minecraft.entity.Entity;
4 | import net.minecraft.util.math.BlockPos;
5 | import net.minecraft.util.math.Direction;
6 | import net.minecraft.util.math.Vec3d;
7 |
8 | import static meteordevelopment.meteorclient.MeteorClient.mc;
9 |
10 | public class BPlayerUtils {
11 | public static Vec3d playerEyePos() {
12 | return new Vec3d(mc.player.getX(), mc.player.getY() + mc.player.getEyeHeight(mc.player.getPose()), mc.player.getZ());
13 | }
14 |
15 | public static double distanceFromEye(Entity entity) {
16 | double feet = distanceFromEye(entity.getX(), entity.getY(), entity.getZ());
17 | double head = distanceFromEye(entity.getX(), entity.getY() + entity.getHeight(), entity.getZ());
18 | return Math.min(head, feet);
19 | }
20 |
21 | public static double distanceFromEye(BlockPos blockPos) {
22 | return distanceFromEye(blockPos.getX(), blockPos.getY(), blockPos.getZ());
23 | }
24 |
25 | public static double distanceFromEye(Vec3d vec3d) {
26 | return distanceFromEye(vec3d.getX(), vec3d.getY(), vec3d.getZ());
27 | }
28 |
29 | public static double distanceFromEye(double x, double y, double z) {
30 | double f = (mc.player.getX() - x);
31 | double g = (mc.player.getY() + mc.player.getEyeHeight(mc.player.getPose()) - y);
32 | double h = (mc.player.getZ() - z);
33 | return Math.sqrt(f * f + g * g + h * h);
34 | }
35 |
36 | public static double[] directionSpeed(float speed) {
37 | float forward = mc.player.input.movementForward;
38 | float side = mc.player.input.movementSideways;
39 | float yaw = mc.player.prevYaw + (mc.player.getYaw() - mc.player.prevYaw);
40 |
41 | if (forward != 0.0F) {
42 | if (side > 0.0F) {
43 | yaw += ((forward > 0.0F) ? -45 : 45);
44 | } else if (side < 0.0F) {
45 | yaw += ((forward > 0.0F) ? 45 : -45);
46 | }
47 |
48 | side = 0.0F;
49 |
50 | if (forward > 0.0F) {
51 | forward = 1.0F;
52 | } else if (forward < 0.0F) {
53 | forward = -1.0F;
54 | }
55 | }
56 |
57 | double sin = Math.sin(Math.toRadians(yaw + 90.0F));
58 | double cos = Math.cos(Math.toRadians(yaw + 90.0F));
59 | double dx = forward * speed * cos + side * speed * sin;
60 | double dz = forward * speed * sin - side * speed * cos;
61 |
62 | return new double[] { dx, dz };
63 | }
64 |
65 | public static Direction direction(float yaw){
66 | yaw = yaw % 360;
67 | if (yaw < 0) yaw += 360;
68 |
69 | if (yaw >= 315 || yaw < 45) return Direction.SOUTH;
70 | else if (yaw >= 45 && yaw < 135) return Direction.WEST;
71 | else if (yaw >= 135 && yaw < 225) return Direction.NORTH;
72 | else if (yaw >= 225 && yaw < 315) return Direction.EAST;
73 |
74 | return Direction.SOUTH;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/BlockHelper.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import bebra.hack.addon.Utils.AutomationUtils;
4 | import meteordevelopment.meteorclient.utils.player.PlayerUtils;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.block.Blocks;
7 | import net.minecraft.entity.player.PlayerEntity;
8 | import net.minecraft.util.math.BlockPos;
9 | import net.minecraft.util.math.Direction;
10 | import net.minecraft.util.math.MathHelper;
11 | import net.minecraft.util.math.Vec3d;
12 |
13 | import java.util.ArrayList;
14 | import java.util.Comparator;
15 | import java.util.List;
16 | import java.util.Random;
17 |
18 | import static meteordevelopment.meteorclient.MeteorClient.mc;
19 |
20 | public class BlockHelper {
21 |
22 |
23 | public static boolean isVecComplete(ArrayList vlist) {
24 | BlockPos ppos = mc.player.getBlockPos();
25 | for (Vec3d b: vlist) {
26 | BlockPos bb = ppos.add((int) b.x, (int) b.y, (int) b.z);
27 | if (getBlock(bb) == Blocks.AIR) return false;
28 | }
29 | return true;
30 | }
31 |
32 | public static List getSphere(BlockPos centerPos, int radius, int height) {
33 | ArrayList blocks = new ArrayList<>();
34 | for (int i = centerPos.getX() - radius; i < centerPos.getX() + radius; i++) {
35 | for (int j = centerPos.getY() - height; j < centerPos.getY() + height; j++) {
36 | for (int k = centerPos.getZ() - radius; k < centerPos.getZ() + radius; k++) {
37 | BlockPos pos = new BlockPos(i, j, k);
38 | if (distanceBetween(centerPos, pos) <= radius && !blocks.contains(pos)) blocks.add(pos);
39 | }
40 | }
41 | }
42 | return blocks;
43 | }
44 |
45 |
46 | public static double distanceBetween(BlockPos pos1, BlockPos pos2) {
47 | double d = pos1.getX() - pos2.getX();
48 | double e = pos1.getY() - pos2.getY();
49 | double f = pos1.getZ() - pos2.getZ();
50 | return MathHelper.sqrt((float) (d * d + e * e + f * f));
51 | }
52 |
53 |
54 | public static BlockPos getBlockPosFromDirection(Direction direction, BlockPos orginalPos) {
55 | return switch (direction) {
56 | case UP -> orginalPos.up();
57 | case DOWN -> orginalPos.down();
58 | case EAST -> orginalPos.east();
59 | case WEST -> orginalPos.west();
60 | case NORTH -> orginalPos.north();
61 | case SOUTH -> orginalPos.south();
62 | };
63 | }
64 |
65 |
66 | public static Block getBlock(BlockPos p) {
67 | if (p == null) return null;
68 | return mc.world.getBlockState(p).getBlock();
69 | }
70 |
71 | public static BlockPos getCityBlock(PlayerEntity target, Boolean randomize) {
72 | if (target == null || mc.player.distanceTo(target) > 4.8) return null;
73 | BlockPos targetBlock;
74 | List surroundBlocks = new ArrayList<>();
75 | for (Direction direction : Direction.values()) {
76 | if (direction == Direction.UP || direction == Direction.DOWN) continue;
77 | BlockPos pos = target.getBlockPos().offset(direction);
78 | if (AutomationUtils.isSurroundBlock(pos)) surroundBlocks.add(pos);
79 | }
80 | if (surroundBlocks.isEmpty()) return null;
81 | surroundBlocks.sort(Comparator.comparingDouble(PlayerUtils::distanceTo));
82 | int counter = 0;
83 | while (true) {
84 | if (counter >= 4) return null;
85 | BlockPos possibleTarget;
86 | if (randomize) {
87 | possibleTarget = surroundBlocks.get(new Random().nextInt(surroundBlocks.size()));
88 | } else {
89 | possibleTarget = surroundBlocks.get(counter);
90 | }
91 | if (!isOurSurroundBlock(possibleTarget) && !outOfRange(possibleTarget)) {
92 | targetBlock = possibleTarget;
93 | break;
94 | }
95 | counter++;
96 | }
97 | return targetBlock;
98 | }
99 |
100 | public static boolean isOurSurroundBlock(BlockPos bp) {
101 | BlockPos ppos = mc.player.getBlockPos();
102 | for (Direction direction : Direction.values()) {
103 | if (direction == Direction.UP || direction == Direction.DOWN) continue;
104 | BlockPos pos = ppos.offset(direction);
105 | if (pos.equals(bp)) return true;
106 | }
107 | return false;
108 | }
109 |
110 | public static boolean outOfRange(BlockPos cityBlock) {
111 | return MathHelper.sqrt((float) mc.player.squaredDistanceTo(cityBlock.getX(), cityBlock.getY(), cityBlock.getZ())) > mc.interactionManager.getReachDistance();
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/CHMainUtils.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
4 | import net.minecraft.entity.Entity;
5 | import net.minecraft.entity.player.PlayerEntity;
6 | import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;
7 | import org.apache.commons.codec.binary.Base64;
8 | import org.apache.commons.codec.digest.DigestUtils;
9 |
10 | import javax.crypto.BadPaddingException;
11 | import javax.crypto.Cipher;
12 | import javax.crypto.IllegalBlockSizeException;
13 | import javax.crypto.NoSuchPaddingException;
14 | import javax.crypto.spec.SecretKeySpec;
15 | import java.security.InvalidKeyException;
16 | import java.security.NoSuchAlgorithmException;
17 | import java.util.Arrays;
18 |
19 | import static meteordevelopment.meteorclient.MeteorClient.mc;
20 |
21 | public class CHMainUtils {
22 |
23 | public static String encrypt(String text, String key) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
24 | Cipher cipher = Cipher.getInstance("AES");
25 | cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(Arrays.copyOf(DigestUtils.sha1(key), 16), "AES"));
26 |
27 | return Base64.encodeBase64String(cipher.doFinal(text.getBytes()));
28 | }
29 |
30 | public static String decrypt(String text, String key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
31 | Cipher cipher = Cipher.getInstance("AES");
32 | cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(Arrays.copyOf(DigestUtils.sha1(key), 16), "AES"));
33 |
34 | return new String(cipher.doFinal(Base64.decodeBase64(text)));
35 | }
36 |
37 | public static String apply(String msg) {
38 | if (msg.contains(":smile:")) msg = msg.replace(":smile:", "☺");
39 | if (msg.contains(":sad:")) msg = msg.replace(":sad:", "☹");
40 | if (msg.contains(":heart:")) msg = msg.replace(":heart:", "❤");
41 | if (msg.contains(":skull:")) msg = msg.replace(":skull:", "☠");
42 | if (msg.contains(":star:")) msg = msg.replace(":star:", "★");
43 | if (msg.contains(":flower:")) msg = msg.replace(":flower:", "❀");
44 | if (msg.contains(":pick:")) msg = msg.replace(":pick:", "⛏");
45 | if (msg.contains(":wheelchair:")) msg = msg.replace(":wheelchair:", "♿");
46 | if (msg.contains(":lightning:")) msg = msg.replace(":lightning:", "⚡");
47 | if (msg.contains(":rod:")) msg = msg.replace(":rod:", "🎣");
48 | if (msg.contains(":potion:")) msg = msg.replace(":potion:", "🧪");
49 | if (msg.contains(":fire:")) msg = msg.replace(":fire:", "🔥");
50 | if (msg.contains(":shears:")) msg = msg.replace(":shears:", "✂");
51 | if (msg.contains(":bell:")) msg = msg.replace(":bell:", "🔔");
52 | if (msg.contains(":bow:")) msg = msg.replace(":bow:", "🏹");
53 | if (msg.contains(":trident:")) msg = msg.replace(":trident:", "🔱");
54 | if (msg.contains(":cloud:")) msg = msg.replace(":cloud:", "☁");
55 | if (msg.contains(":cat:")) msg = msg.replace(":cat:", "ᓚᘏᗢ");
56 |
57 | return msg;
58 | }
59 | public static Entity deadEntity;
60 | public static boolean isDeathPacket(PacketEvent.Receive event) {
61 | if (event.packet instanceof EntityStatusS2CPacket packet) {
62 | if (packet.getStatus() == 3) {
63 | deadEntity = packet.getEntity(mc.world);
64 | return deadEntity instanceof PlayerEntity;
65 | }
66 | }
67 | return false;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/HelperUtil.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
4 | import meteordevelopment.meteorclient.utils.player.InvUtils;
5 | import net.minecraft.entity.player.PlayerEntity;
6 | import net.minecraft.item.Items;
7 | import net.minecraft.util.math.BlockPos;
8 |
9 | import static meteordevelopment.meteorclient.MeteorClient.mc;
10 |
11 | public class HelperUtil {
12 |
13 | public static FindItemResult obby() {
14 | return InvUtils.findInHotbar(Items.OBSIDIAN);
15 | }
16 |
17 | public static FindItemResult piston() {
18 | return InvUtils.findInHotbar(Items.PISTON, Items.STICKY_PISTON);
19 | }
20 |
21 | public static FindItemResult redstone() {
22 | return InvUtils.findInHotbar(Items.REDSTONE_BLOCK, Items.REDSTONE_TORCH);
23 | }
24 |
25 | public static boolean isInHole(PlayerEntity player) {
26 | BlockPos pos = player.getBlockPos();
27 | return !mc.world.getBlockState(pos.add(1, 0, 0)).isAir()
28 | && !mc.world.getBlockState(pos.add(-1, 0, 0)).isAir()
29 | && !mc.world.getBlockState(pos.add(0, 0, 1)).isAir()
30 | && !mc.world.getBlockState(pos.add(0, 0, -1)).isAir()
31 | && !mc.world.getBlockState(pos.add(0, -1, 0)).isAir();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/SendRawMessageEvent.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.Cancellable;
4 |
5 | public class SendRawMessageEvent extends Cancellable {
6 | private static final SendRawMessageEvent INSTANCE = new SendRawMessageEvent();
7 |
8 | public String message;
9 |
10 | public static SendRawMessageEvent get(String message) {
11 | INSTANCE.setCancelled(false);
12 | INSTANCE.message = message;
13 | return INSTANCE;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/Task.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | public class Task {
4 |
5 | private boolean called;
6 |
7 | public Task() {
8 | this.called = false;
9 | }
10 |
11 | public void run(Runnable task) {
12 | if (!isCalled()) {
13 | task.run();
14 | setCalled();
15 | }
16 | }
17 |
18 | public void run(Runnable task, int times) {
19 | if (!isCalled()) {
20 | int i;
21 |
22 | for (i = 0; i < times; i++) {
23 | task.run();
24 | }
25 |
26 | if (i >= times) setCalled();
27 | }
28 | }
29 |
30 | public void reset() {
31 | this.called = false;
32 | }
33 |
34 | public boolean isCalled() {
35 | return this.called;
36 | }
37 |
38 | public void setCalled() {
39 | this.called = true;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/Utils/TimerUtilsbanana.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.utils.world.TickRate;
4 |
5 | public class TimerUtilsbanana {
6 | private long nanoTime = -1L;
7 |
8 | public void reset() {
9 | nanoTime = System.nanoTime();
10 | }
11 |
12 | // Set Times
13 | public void setTicks(long ticks) { nanoTime = System.nanoTime() - convertTicksToNano(ticks); }
14 | public void setNano(long time) { nanoTime = System.nanoTime() - time; }
15 | public void setMicro(long time) { nanoTime = System.nanoTime() - convertMicroToNano(time); }
16 | public void setMillis(long time) { nanoTime = System.nanoTime() - convertMillisToNano(time); }
17 | public void setSec(long time) { nanoTime = System.nanoTime() - convertSecToNano(time); }
18 |
19 |
20 | // Get Times
21 | public long getTicks() { return convertNanoToTicks(nanoTime); }
22 | public long getNano() { return nanoTime; }
23 | public long getMicro() { return convertNanoToMicro(nanoTime); }
24 | public long getMillis() { return convertNanoToMillis(nanoTime); }
25 | public long getSec() { return convertNanoToSec(nanoTime); }
26 |
27 |
28 | // Passed Time
29 | public boolean passedTicks(long ticks) { return passedNano(convertTicksToNano(ticks)); }
30 | public boolean passedNano(long time) { return System.nanoTime() - nanoTime >= time; }
31 | public boolean passedMicro(long time) { return passedNano(convertMicroToNano(time)); }
32 | public boolean passedMillis(long time) { return passedNano(convertMillisToNano(time)); }
33 | public boolean passedSec(long time) { return passedNano(convertSecToNano(time)); }
34 |
35 |
36 | // Tick Conversions
37 | public long convertMillisToTicks(long time) { return time / 50; }
38 | public long convertTicksToMillis(long ticks) { return ticks * 50; }
39 | public long convertNanoToTicks(long time) { return convertMillisToTicks(convertNanoToMillis(time)); }
40 | public long convertTicksToNano(long ticks) { return convertMillisToNano(convertTicksToMillis(ticks)); }
41 |
42 |
43 | // All Conversions To Smaller
44 | public long convertSecToMillis(long time) { return time * 1000L; }
45 | public long convertSecToMicro(long time) { return convertMillisToMicro(convertSecToMillis(time)); }
46 | public long convertSecToNano(long time) { return convertMicroToNano(convertMillisToMicro(convertSecToMillis(time))); }
47 |
48 | public long convertMillisToMicro(long time) { return time * 1000L; }
49 | public long convertMillisToNano(long time) { return convertMicroToNano(convertMillisToMicro(time)); }
50 |
51 | public long convertMicroToNano(long time) { return time * 1000L; }
52 |
53 |
54 | // All Conversions To Larger
55 | public long convertNanoToMicro(long time) { return time / 1000L; }
56 | public long convertNanoToMillis(long time) { return convertMicroToMillis(convertNanoToMicro(time)); }
57 | public long convertNanoToSec(long time) { return convertMillisToSec(convertMicroToMillis(convertNanoToMicro(time))); }
58 |
59 | public long convertMicroToMillis(long time) { return time / 1000L; }
60 | public long convertMicroToSec(long time) { return convertMillisToSec(convertMicroToMillis(time)); }
61 |
62 | public long convertMillisToSec(long time) { return time / 1000L; }
63 |
64 |
65 | // Syncs
66 | public static double getTPSMatch(boolean TPSSync) {
67 | return TPSSync ? (TickRate.INSTANCE.getTickRate() / 20) : 1;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/chat/AutoEz.java:
--------------------------------------------------------------------------------
1 | /*package bebra.hack.addon.modules.chat;
2 |
3 | import bebra.hack.addon.Addon;
4 | import it.unimi.dsi.fastutil.objects.Object2IntMap;
5 | import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
6 | import meteordevelopment.meteorclient.events.game.GameJoinedEvent;
7 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
8 | import meteordevelopment.meteorclient.events.world.TickEvent;
9 | import meteordevelopment.meteorclient.settings.*;
10 | import meteordevelopment.meteorclient.systems.friends.Friends;
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 | import net.minecraft.util.Formatting;
19 |
20 | import java.util.List;
21 | import java.util.Random;
22 | import java.util.UUID;
23 |
24 | public class AutoEz extends Module {
25 | private final SettingGroup sgEz = settings.getDefaultGroup();
26 | private final Setting messages = sgEz.add(new StringSetting.Builder().name("messages").defaultValue("Ez").build());
27 | private final Setting ignoreFriends = sgEz.add(new BoolSetting.Builder().name("ignore-friends").defaultValue(true).build());
28 |
29 | private final Object2IntMap totemPopMap = new Object2IntOpenHashMap<>();
30 | private final Object2IntMap chatIdMap = new Object2IntOpenHashMap<>();
31 | private final Random random = new Random();
32 |
33 | public AutoEz() {
34 | super(Addon.chat, "autoez", "ezzz noob");
35 | }
36 |
37 | @Override
38 | public void onActivate() {
39 | totemPopMap.clear();
40 | chatIdMap.clear();
41 | }
42 |
43 | @EventHandler
44 | private void onGameJoin(GameJoinedEvent event) {
45 | totemPopMap.clear();
46 | chatIdMap.clear();
47 | }
48 |
49 | @EventHandler
50 | private void onReceivePacket(PacketEvent.Receive event) {
51 | if (!(event.packet instanceof EntityStatusS2CPacket p)) return;
52 |
53 | if (p.getStatus() != 35) return;
54 |
55 | Entity entity = p.getEntity(mc.world);
56 |
57 | if (!(entity instanceof PlayerEntity)) return;
58 |
59 | if (entity.equals(mc.player)
60 | || (Friends.get().isFriend(((PlayerEntity) entity)) && ignoreFriends.get())
61 | ) return;
62 |
63 | synchronized (totemPopMap) {
64 | int pops = totemPopMap.getOrDefault(entity.getUuid(), 0);
65 | totemPopMap.put(entity.getUuid(), ++pops);
66 | }
67 | }
68 | String playerName;
69 | @EventHandler
70 | private void onTick(TickEvent.Post event) {
71 | synchronized (totemPopMap) {
72 | for (PlayerEntity player : mc.world.getPlayers()) {
73 | if (!totemPopMap.containsKey(player.getUuid())) continue;
74 | if (player.deathTime > 0 || player.getHealth() <= 0) {
75 | int pops = totemPopMap.removeInt(player.getUuid());
76 | String text = messages.get();
77 | ChatUtils.sendPlayerMsg("EZZZZ" + playerName + "NOOB");
78 | chatIdMap.removeInt(player.getUuid());
79 | }
80 | }
81 | }
82 | }
83 |
84 | private int getChatId(Entity entity) {
85 | return chatIdMap.computeIfAbsent(entity.getUuid(), value -> random.nextInt());
86 | }
87 | }
88 | */
89 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/chat/AutoLogin.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.chat;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.game.GameLeftEvent;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.settings.*;
7 | import meteordevelopment.meteorclient.systems.modules.Module;
8 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
9 | import meteordevelopment.orbit.EventHandler;
10 |
11 | public class AutoLogin extends Module {
12 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
13 |
14 | private final Setting loginCommand = sgGeneral.add(new StringSetting.Builder()
15 | .name("login-command")
16 | .description("Command to login.")
17 | .defaultValue("login 1234")
18 | .build()
19 | );
20 |
21 | private final Setting serverOnly = sgGeneral.add(new BoolSetting.Builder()
22 | .name("server-only")
23 | .description("Use Auto Login only on server.")
24 | .defaultValue(true)
25 | .build()
26 | );
27 |
28 | private final Setting delay = sgGeneral.add(new IntSetting.Builder()
29 | .name("delay")
30 | .description("Delay before send command in ticks (20 ticks = 1 sec).")
31 | .defaultValue(20)
32 | .range(1, 120)
33 | .sliderRange(1, 40)
34 | .build()
35 | );
36 |
37 | boolean work;
38 | private int timer;
39 |
40 | public AutoLogin() {
41 | super(Addon.chat, "auto-login", "Automatically logs in your account.");
42 | }
43 |
44 | @Override
45 | public void onActivate() {
46 | timer = 0;
47 | work = true;
48 | }
49 |
50 | @EventHandler
51 | private void onTick(TickEvent.Post event) {
52 | if (serverOnly.get() && mc.getServer() != null && mc.getServer().isSingleplayer()) return;
53 | if (timer >= delay.get() && !loginCommand.get().isEmpty() && work) {
54 | work = false;
55 | ChatUtils.sendPlayerMsg(loginCommand.get().replace("/", ""));
56 | timer = 0;
57 | } else timer ++;
58 | }
59 |
60 | @EventHandler
61 | private void onGameLeft(GameLeftEvent event) {
62 | work = true;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/chat/SpamInChat.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.chat;
2 |
3 | import bebra.hack.addon.Addon;
4 | import com.google.common.collect.Lists;
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.meteorclient.utils.player.ChatUtils;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.fabricmc.api.EnvType;
14 | import net.fabricmc.api.Environment;
15 |
16 | import java.util.List;
17 |
18 | @Environment(EnvType.CLIENT)
19 | public class SpamInChat extends Module {
20 | public enum Text {
21 | new_Rap_by_Minerica
22 | }
23 |
24 | private final SettingGroup sgGeneral = this.settings.getDefaultGroup();
25 |
26 | private final Setting> text = sgGeneral.add(new EnumSetting.Builder>()
27 | .name("text")
28 | .defaultValue(Text.new_Rap_by_Minerica)
29 | .onChanged(e -> messageI = 0)
30 | .build()
31 | );
32 |
33 | private final Setting delay = sgGeneral.add(new IntSetting.Builder()
34 | .name("delay")
35 | .description("The delay between specified messages in ticks.")
36 | .defaultValue(20)
37 | .min(0)
38 | .sliderMax(200)
39 | .build()
40 | );
41 |
42 | private int messageI, timer;
43 |
44 | public SpamInChat() {
45 | super(Addon.chat, "SpamInChat", "Better than spam.");
46 | }
47 |
48 | @Override
49 | public void onActivate() {
50 | timer = delay.get();
51 | messageI = 0;
52 | }
53 |
54 | @EventHandler
55 | private void onTick(TickEvent.Post event) {
56 | if (timer <= 0) {
57 | String line = "";
58 | if (text.get().equals(Text.new_Rap_by_Minerica)) line = new_Rap_by_Minerica.get(messageI);
59 | ChatUtils.sendPlayerMsg (line);
60 | timer = delay.get();
61 | if ((text.get().equals(Text.new_Rap_by_Minerica) && messageI++ == new_Rap_by_Minerica.size() - 1)) {
62 | messageI = 0;
63 | }
64 | } else {
65 | timer--;
66 | }
67 | }
68 | /* Я ПОМНЮ ПЕНИС БОЛЬШОЙ */
69 | private static final List new_Rap_by_Minerica = Lists.newArrayList(
70 | "ей ей ей йоу реп новый",
71 | "насрал в гуся",
72 | "насрал в рот пеликану",
73 | "йоу йоу Я ебал птиц на птицеферме",
74 | "это очень хорошо",
75 | "йоу йоу ееее."
76 |
77 | );
78 |
79 | }
80 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/chat/bebra_info_and_help.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.chat;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
6 | import net.minecraft.text.Text;
7 |
8 | public class bebra_info_and_help extends Module {
9 | public bebra_info_and_help() {
10 | super(Addon.chat, "BEBRA", "Authors: Fucking slaves#7603 , MrFiNka#8113");
11 | }
12 | @Override
13 | public void onActivate (){
14 | ChatUtils.sendMsg(Text.of("Authors: Fucking slaves#7603 , MrFiNka#8113 , Cahekska#9358"));
15 | ChatUtils.sendMsg(Text.of("BebraHack is a free addon for the meteor client for version 1.19.4"));
16 | ChatUtils.sendMsg(Text.of("Eu: if you have a question about the addon, then go to the discord server of the addon and call me in private messages. My nickname - jabronyyy https://discord.gg/8zpzhvq3U7 / Ru: по вопросам пишите мне в дс, ник - jabronyyy, найти можно в дс бебрахака (ссылка выше)"));
17 | try {
18 | String url = "https://github.com/BebraHack/BebraHackAddon";
19 | java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
20 | } catch (java.io.IOException e) {
21 | System.out.println(e.getMessage());
22 | }
23 | toggle();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/AutoCraft.java:
--------------------------------------------------------------------------------
1 | /*package bebra.hack.addon.modules.pve;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BoolSetting;
6 | import meteordevelopment.meteorclient.settings.ItemListSetting;
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.recipebook.RecipeResultCollection;
12 | import net.minecraft.item.Item;
13 | import net.minecraft.recipe.Recipe;
14 | import net.minecraft.registry.DynamicRegistryManager;
15 | import net.minecraft.screen.CraftingScreenHandler;
16 | import net.minecraft.screen.slot.SlotActionType;
17 |
18 | import java.util.Arrays;
19 | import java.util.List;
20 |
21 | public class AutoCraft extends Module {
22 |
23 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
24 |
25 | private final Setting> items = sgGeneral.add(new ItemListSetting.Builder()
26 | .name("items")
27 | .description("Items you want to get crafted.")
28 | .defaultValue(Arrays.asList())
29 | .build()
30 | );
31 |
32 | private final Setting antiDesync = sgGeneral.add(new BoolSetting.Builder()
33 | .name("anti-desync")
34 | .description("Try to prevent inventory desync.")
35 | .defaultValue(false)
36 | .build()
37 | );
38 |
39 | private final Setting craftAll = sgGeneral.add(new BoolSetting.Builder()
40 | .name("craft-all")
41 | .description("Crafts maximum possible amount amount per craft (shift-clicking)")
42 | .defaultValue(false)
43 | .build()
44 | );
45 |
46 | private final Setting drop = sgGeneral.add(new BoolSetting.Builder()
47 | .name("drop")
48 | .description("Automatically drops crafted items (useful for when not enough inventory space)")
49 | .defaultValue(false)
50 | .build()
51 | );
52 |
53 | public AutoCraft() {
54 | super(Addon.misc, "auto-craft", "Automatically crafts items.");
55 | }
56 |
57 | @EventHandler
58 | private void onTick(TickEvent.Post event) {
59 | if (mc.interactionManager == null) return;
60 | if (items.get().isEmpty()) return;
61 |
62 | if (!(mc.player.currentScreenHandler instanceof CraftingScreenHandler)) return;
63 |
64 |
65 | if (antiDesync.get())
66 | mc.player.getInventory().updateItems();
67 |
68 | CraftingScreenHandler currentScreenHandler = (CraftingScreenHandler) mc.player.currentScreenHandler;
69 | List- itemList = items.get();
70 | List recipeResultCollectionList = mc.player.getRecipeBook().getOrderedResults();
71 | for (RecipeResultCollection recipeResultCollection : recipeResultCollectionList) {
72 | for (Recipe> recipe : recipeResultCollection.getRecipes(true)) {
73 | if (!itemList.contains(recipe.getOutput((DynamicRegistryManager) mc.world.getRecipeManager()).getItem())) continue;
74 | mc.interactionManager.clickRecipe(currentScreenHandler.syncId, recipe, craftAll.get());
75 | mc.interactionManager.clickSlot(currentScreenHandler.syncId, 0, 1,
76 | drop.get() ? SlotActionType.THROW : SlotActionType.QUICK_MOVE, mc.player);
77 | }
78 | }
79 | }
80 | }
81 | */ //minecraft dead :(
82 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/AutoDrop.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pve;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import net.minecraft.item.*;
8 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
9 |
10 | import meteordevelopment.orbit.EventHandler;
11 |
12 | public class AutoDrop extends Module {
13 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
14 |
15 | private final Setting tool = sgGeneral.add(new BoolSetting.Builder()
16 | .name("No Throw Tools")
17 | .description("No Throw tools")
18 | .defaultValue(false)
19 | .build()
20 | );
21 |
22 | private final Setting dropthisslot = sgGeneral.add(new BoolSetting.Builder()
23 | .name("SpecifySlotToDrop")
24 | .description("Specifies the slot to drop.")
25 | .defaultValue(false)
26 | .build()
27 | );
28 |
29 | private final Setting dropslot = sgGeneral.add(new IntSetting.Builder()
30 | .name("DrotSlot#")
31 | .description("Drops this Slot if items are in it.")
32 | .sliderRange(1,9)
33 | .min(1)
34 | .max(9)
35 | .defaultValue(1)
36 | .visible(() -> dropthisslot.get())
37 | .build());
38 |
39 | public AutoDrop() {super(Addon.misc, "auto-drop", "Drops the stack in your selected slot automatically");}
40 | private int previousslot=0;
41 | private boolean getprevslot=false;
42 |
43 | @EventHandler
44 | private void onPreTick(TickEvent.Pre event) {
45 | if (tool.get() == true && (mc.player.getMainHandStack().getItem() instanceof BucketItem || mc.player.getMainHandStack().getItem() instanceof FlintAndSteelItem || mc.player.getMainHandStack().getItem() instanceof ToolItem || mc.player.getMainHandStack().getItem() instanceof ShearsItem))return;
46 | if (dropthisslot.get() && !mc.player.getInventory().getStack(dropslot.get()-1).isEmpty()){
47 | previousslot=mc.player.getInventory().selectedSlot;
48 | mc.player.getInventory().selectedSlot = dropslot.get()-1;
49 | getprevslot=true;
50 | }else if (!dropthisslot.get()) mc.player.dropSelectedItem(true);
51 | }
52 | @EventHandler
53 | private void onPostTick(TickEvent.Post event) {
54 | if (getprevslot==true){
55 | mc.player.dropSelectedItem(true);
56 | mc.player.getInventory().selectedSlot = previousslot;
57 | getprevslot=false;
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/Chests_farmer.java:
--------------------------------------------------------------------------------
1 | //код взята из аддона bedtrap https://discord.gg/Grjwt77E
2 | package bebra.hack.addon.modules.pve;
3 |
4 | import bebra.hack.addon.Addon;
5 | import bebra.hack.addon.Utils.Task;
6 | import meteordevelopment.meteorclient.events.world.TickEvent;
7 | import meteordevelopment.meteorclient.systems.modules.Module;
8 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
9 | import meteordevelopment.meteorclient.utils.Utils;
10 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
11 | import meteordevelopment.meteorclient.utils.player.InvUtils;
12 | import meteordevelopment.meteorclient.utils.player.PlayerUtils;
13 | import meteordevelopment.orbit.EventHandler;
14 | import net.minecraft.block.entity.BlockEntity;
15 | import net.minecraft.block.entity.ChestBlockEntity;
16 | import net.minecraft.item.Items;
17 | import net.minecraft.util.math.BlockPos;
18 |
19 | import java.util.ArrayList;
20 | import java.util.Comparator;
21 |
22 | import static bebra.hack.addon.Utils.BlockInfo.*;
23 | import static bebra.hack.addon.Utils.EntityInfo.getBlockPos;
24 |
25 | public class Chests_farmer extends Module {
26 | //private final SettingGroup sgGeneral = settings.getDefaultGroup();
27 |
28 | public Chests_farmer() {
29 | super(Addon.misc, "Chests Farm", "auto farm chests.");
30 | }
31 | private FindItemResult axe;
32 | private BlockPos pos;
33 | private int x,y,z;
34 | private Stage stage;
35 |
36 | private final Task chatTask = new Task();
37 |
38 | @Override
39 | public void onActivate() {
40 | stage = Stage.Find;
41 |
42 | chatTask.reset();
43 | pos = null;
44 | }
45 |
46 | @Override
47 | public void onDeactivate() {
48 | ChatUtils.sendPlayerMsg("#stop");
49 | }
50 |
51 | @EventHandler
52 | public void onTick(TickEvent.Pre event) {
53 | axe = InvUtils.find(itemStack -> itemStack.getItem() == Items.NETHERITE_AXE || itemStack.getItem() == Items.DIAMOND_AXE);
54 |
55 | switch (stage) {
56 | case Find -> {
57 | pos = findChests();
58 |
59 | if (pos == null) {
60 | chatTask.reset();
61 | stage = Stage.Stuck;
62 | info("There's no chests in your view distance.");
63 | toggle();
64 | return;
65 | }
66 |
67 | x = pos.getX();
68 | y = pos.getY();
69 | z = pos.getZ();
70 |
71 | chatTask.reset();
72 | stage = Stage.Move;
73 | }
74 | case Move -> {
75 | chatTask.run(() -> ChatUtils.sendPlayerMsg("#goto " + x + " " + y + " " + z));
76 |
77 | if (getBlockPos(mc.player).equals(pos)) stage = Stage.Reset;
78 | }
79 | case Reset -> {
80 | chatTask.reset();
81 |
82 | stage = Stage.Find;
83 | }
84 | case Stuck -> {
85 | if (findChests() != null) stage = Stage.Find;
86 | else chatTask.run(() -> ChatUtils.sendPlayerMsg("#goto " + getDirection().getX() + " " + y + " " + getDirection().getZ()));
87 | }
88 | }
89 | }
90 | private BlockPos getDirection() {
91 | int x = X(mc.player.getBlockPos());
92 | int y = Y(mc.player.getBlockPos());
93 | int z = Z(mc.player.getBlockPos());
94 |
95 | if (x > 0) x = 30000000;
96 | else x = -30000000;
97 |
98 | if (y > 0) y = 30000000;
99 | else y = -30000000;
100 |
101 | return new BlockPos(x,y,z);
102 | }
103 |
104 | private BlockPos findChests() {
105 | ArrayList pos = new ArrayList<>();
106 |
107 | for (BlockEntity entity : Utils.blockEntities()) {
108 | if (entity instanceof ChestBlockEntity chestBlock) {
109 | if (!pos.contains(chestBlock.getPos())) pos.add(chestBlock.getPos());
110 | }
111 | }
112 |
113 | if (pos.isEmpty()) return null;
114 |
115 | pos.sort(Comparator.comparingDouble(PlayerUtils::distanceTo));
116 | return pos.get(0);
117 | }
118 |
119 | public enum Stage {
120 | Find,
121 | Move,
122 | Reset,
123 | Stuck
124 | }
125 | }
126 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/NoDesync.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pve;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.entity.player.BreakBlockEvent;
5 | import meteordevelopment.meteorclient.events.entity.player.InteractBlockEvent;
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.network.packet.c2s.play.PlayerActionC2SPacket;
12 | import net.minecraft.util.math.BlockPos;
13 | import net.minecraft.util.math.Direction;
14 |
15 | public class NoDesync extends Module {
16 |
17 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
18 |
19 | private final Setting breakBlock = sgGeneral.add(new BoolSetting.Builder().name("break").description("Anti-desync for block breaking.").defaultValue(true).build());
20 | private final Setting placeBlock = sgGeneral.add(new BoolSetting.Builder().name("place").description("Anti-desync for block placing.").defaultValue(true).build());
21 |
22 | public NoDesync() {
23 | super(Addon.misc, "no-desync", "Prevent ghost block placements.");
24 | }
25 |
26 |
27 | @EventHandler
28 | private void onBlockPlace(InteractBlockEvent event) {
29 | if (!placeBlock.get()) return;
30 | BlockPos placePos = event.result.getBlockPos();
31 | if (placePos != null) mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, placePos, Direction.UP));
32 | }
33 |
34 | @EventHandler
35 | private void onBlockBreak(BreakBlockEvent event) {
36 | if (!breakBlock.get()) return;
37 | BlockPos breakPos = event.blockPos;
38 | if (breakPos != null) mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, breakPos, Direction.UP));
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/Spinner.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pve;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BoolSetting;
6 | import meteordevelopment.meteorclient.settings.IntSetting;
7 | import meteordevelopment.meteorclient.settings.Setting;
8 | import meteordevelopment.meteorclient.settings.SettingGroup;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 | import meteordevelopment.meteorclient.utils.player.Rotations;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.item.Items;
13 |
14 | public class Spinner extends Module {
15 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
16 | private final Setting b = sgGeneral.add(new IntSetting.Builder().name("speed").description("The speed at which you rotate.").defaultValue(5).min(0).sliderMax(100).build());
17 | private final Setting c = sgGeneral.add(new BoolSetting.Builder().name("pauseItems").description("Stop rotate when you use some pvp items.").defaultValue(true).build());
18 |
19 | private short a = 0;
20 |
21 | public Spinner() {
22 | super(Addon.misc, "spinner", "very very very very very fast spin / max speed 180");
23 | }
24 |
25 | @EventHandler
26 | public void onTick(TickEvent.Post post) {
27 | if (!c.get() || mc.player.getMainHandStack().getItem() != Items.EXPERIENCE_BOTTLE && mc.player.getMainHandStack().getItem() != Items.ENDER_PEARL && mc.player.getOffHandStack().getItem() != Items.EXPERIENCE_BOTTLE && mc.player.getOffHandStack().getItem() != Items.ENDER_PEARL && mc.player.getMainHandStack().getItem() != Items.OBSIDIAN && mc.player.getMainHandStack().getItem() != Items.NETHERITE_SWORD && mc.player.getMainHandStack().getItem() != Items.NETHERITE_PICKAXE && mc.player.getMainHandStack().getItem() != Items.END_CRYSTAL && mc.player.getMainHandStack().getItem() != Items.STONE_BUTTON && mc.player.getMainHandStack().getItem() != Items.ANVIL && mc.player.getMainHandStack().getItem() != Items.CHIPPED_ANVIL && mc.player.getMainHandStack().getItem() != Items.DAMAGED_ANVIL && mc.player.getMainHandStack().getItem() != Items.BOW && mc.player.getMainHandStack().getItem() != Items.TNT && mc.player.getMainHandStack().getItem() != Items.FLINT) {
28 | a = (short) (a + b.get());
29 | if (a > 180) {
30 | a = -180;
31 | }
32 |
33 | Rotations.rotate(a, 0.0D);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pve/Twerk.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pve;
2 |
3 | import bebra.hack.addon.Addon;
4 | import bebra.hack.addon.Utils.TimerUtilsbanana;
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 |
12 | //Я помню. Я помню пенис большой//
13 | // Я помню пенис большой //
14 | // Я помню пенис большой //
15 | // Я помню у-о-о. Я знаю пенис большой //
16 | // Я знаю пенис большой //
17 | // Я помню пенис большой //
18 | // Я помню пенис большо-у-о-у-о-у-о//
19 |
20 | public class Twerk extends Module {
21 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
22 |
23 |
24 | // General
25 | private final Setting twerkDelay = (Setting) sgGeneral.add(new DoubleSetting.Builder()
26 | .name("Twerk Delay")
27 | .description("In Millis.")
28 | .defaultValue(4)
29 | .min(1)
30 | .sliderRange(2,100)
31 | .build()
32 | );
33 |
34 |
35 | public Twerk() {
36 | super(Addon.misc, "twerk", "Twerk like the true queen Miley Cyrus.");
37 | }
38 |
39 |
40 | private boolean upp = false;
41 | private final bebra.hack.addon.Utils.TimerUtilsbanana onTwerk = new TimerUtilsbanana();
42 |
43 |
44 | @EventHandler
45 | private void onTick(TickEvent.Pre event) {
46 | mc.options.sneakKey.setPressed(upp);
47 |
48 | if (onTwerk.passedMillis(twerkDelay.get().longValue()) && !upp) {
49 | onTwerk.reset();
50 | upp = true;
51 | }
52 |
53 | if (onTwerk.passedMillis(twerkDelay.get().longValue()) && upp) {
54 | onTwerk.reset();
55 | upp = false;
56 | }
57 |
58 | }
59 |
60 | @Override
61 | public void onDeactivate() {
62 | upp = false;
63 | mc.options.sneakKey.setPressed(false);
64 | onTwerk.reset();
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/AntiCrystal.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 |
3 | import bebra.hack.addon.Addon;
4 | import com.google.common.collect.Streams;
5 | import meteordevelopment.orbit.EventHandler;
6 | import meteordevelopment.meteorclient.events.world.TickEvent;
7 | import meteordevelopment.meteorclient.systems.modules.Module;
8 | import meteordevelopment.meteorclient.settings.BoolSetting;
9 | import meteordevelopment.meteorclient.settings.DoubleSetting;
10 | import meteordevelopment.meteorclient.settings.EnumSetting;
11 | import meteordevelopment.meteorclient.settings.Setting;
12 | import meteordevelopment.meteorclient.settings.SettingGroup;
13 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
14 | import meteordevelopment.meteorclient.utils.player.InvUtils;
15 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
16 |
17 | import net.minecraft.entity.decoration.EndCrystalEntity;
18 | import net.minecraft.item.Item;
19 | import net.minecraft.item.Items;
20 |
21 |
22 | import java.util.Comparator;
23 | import java.util.Optional;
24 |
25 | public class AntiCrystal extends Module {
26 |
27 | public enum Mode {
28 | PressurePlate,
29 | Button
30 | }
31 |
32 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
33 |
34 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder()
35 | .name("mode")
36 | .description("The mode at which AntiCrystal operates.")
37 | .defaultValue(Mode.PressurePlate)
38 | .build()
39 | );
40 |
41 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
42 | .name("range")
43 | .description("The range to place Pressure Plates/Buttons.")
44 | .min(1)
45 | .max(10)
46 | .defaultValue(1)
47 | .build()
48 | );
49 |
50 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
51 | .name("rotate")
52 | .description("Rotate.")
53 | .defaultValue(true)
54 | .build()
55 | );
56 |
57 | public AntiCrystal() {
58 | super(Addon.combat, "anti-crystal", "Stops End Crystals from doing damage to you.");
59 | }
60 |
61 | private static final Item[] BUTTONS = { Items.ACACIA_BUTTON, Items.BIRCH_BUTTON, Items.CRIMSON_BUTTON, Items.DARK_OAK_BUTTON, Items.JUNGLE_BUTTON, Items.OAK_BUTTON, Items.POLISHED_BLACKSTONE_BUTTON, Items.SPRUCE_BUTTON, Items.STONE_BUTTON, Items.WARPED_BUTTON };
62 | private static final Item[] PLATES = { Items.ACACIA_PRESSURE_PLATE, Items.BIRCH_PRESSURE_PLATE, Items.CRIMSON_PRESSURE_PLATE, Items.DARK_OAK_PRESSURE_PLATE, Items.JUNGLE_PRESSURE_PLATE, Items.OAK_PRESSURE_PLATE, Items.POLISHED_BLACKSTONE_PRESSURE_PLATE, Items.SPRUCE_PRESSURE_PLATE, Items.STONE_PRESSURE_PLATE, Items.WARPED_PRESSURE_PLATE};
63 |
64 | @EventHandler
65 | private void onTick(TickEvent.Post event) {
66 | assert mc.world != null;
67 | assert mc.player != null;
68 |
69 | Optional crystalTarget = Streams.stream(mc.world.getEntities())
70 | .filter(e -> (e instanceof EndCrystalEntity))
71 | .filter(e -> e.distanceTo(mc.player) <= range.get() * 2)
72 | .filter(e -> mc.world.getBlockState(e.getBlockPos()).isAir())
73 | .min(Comparator.comparingDouble(o -> o.distanceTo(mc.player)))
74 | .map(e -> (EndCrystalEntity) e);
75 |
76 | crystalTarget.ifPresent(crystal -> {
77 |
78 | if (mode.get() == Mode.PressurePlate) {
79 | FindItemResult result = InvUtils.find(PLATES);
80 | if (!result.found()) return;
81 | BlockUtils.place(crystal.getBlockPos(), result, rotate.get(), 100);
82 | } else if (mode.get() == Mode.Button) {
83 | FindItemResult result = InvUtils.find(BUTTONS);
84 | if (!result.found()) return;
85 | BlockUtils.place(crystal.getBlockPos(), result, rotate.get(), 100);
86 | }
87 | });
88 |
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/AntiSurroundBlocks.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
10 | import meteordevelopment.meteorclient.utils.player.InvUtils;
11 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.minecraft.entity.player.PlayerEntity;
14 | import net.minecraft.item.Items;
15 | import net.minecraft.util.math.BlockPos;
16 | import net.minecraft.util.math.Direction;
17 |
18 | public class AntiSurroundBlocks extends Module {
19 | public enum Mode {Button, Web, Lever, Glass, String}
20 |
21 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
22 | private final SettingGroup sgMode = settings.createGroup("Mode");
23 |
24 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder().name("Range").description("The maximum distance to target players/place range.").defaultValue(4).range(0, 5).sliderMax(5).build());
25 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder().name("Rotate").description("Rotates when placing.").defaultValue(true).build());
26 | private final Setting disable = sgGeneral.add(new BoolSetting.Builder().name("AutoDisable").description("Disabling after place.").defaultValue(true).build());
27 | //private final Setting support = sgGeneral.add(new BoolSetting.Builder().name("Support").description("PLacing Obsidian in bottom.").defaultValue(false).build());
28 | //modes
29 | public final Setting mode = sgMode.add(new EnumSetting.Builder().name("Mode").description("AntiSurroundBlocks mode.").defaultValue(AntiSurroundBlocks.Mode.Button).build());
30 | //render
31 |
32 | private PlayerEntity target;
33 | private FindItemResult item;
34 | private BlockPos pos;
35 |
36 |
37 | public AntiSurroundBlocks() {
38 | super(Addon.combat, "AntiSurroundBlocks", "Automatically trying to fuck players surround.");
39 | }
40 |
41 | @Override
42 | public void onActivate() {
43 | target = null;
44 | pos = null;
45 | }
46 |
47 | @EventHandler
48 | private void onTick(TickEvent.Pre event) {
49 | target = TargetUtils.getPlayerTarget(range.get(), SortPriority.LowestDistance);
50 | if (target == null) return;
51 | pos = target.getBlockPos();
52 | switch (mode.get()) {
53 | case Button -> item = InvUtils.findInHotbar(Items.CRIMSON_BUTTON);
54 | case Web -> item = InvUtils.findInHotbar(Items.COBWEB);
55 | case Glass -> item = InvUtils.findInHotbar(Items.GLASS_PANE);
56 | case Lever -> item = InvUtils.findInHotbar(Items.LEVER);
57 | case String -> item = InvUtils.findInHotbar(Items.STRING);
58 | }
59 | /*
60 | if (support.get()) {
61 | doPlace(target.getBlockPos().down(), InvUtils.findInHotbar(Items.OBSIDIAN));
62 | }
63 | */
64 |
65 | for (Direction dir : Direction.values()) {
66 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
67 | boolean canPlace = BlockUtils.canPlace(pos.offset(dir));
68 | if (canPlace) {
69 | doPlace(target.getBlockPos(), item);
70 | if (disable.get()) {
71 | toggle();
72 | }
73 | return;
74 | }
75 | }
76 | }
77 |
78 | private void doPlace(BlockPos blockPos, FindItemResult findItemResult) {
79 | if (mode.get().equals(Mode.Button) || mode.get().equals(Mode.Web) || mode.get().equals(Mode.Glass) || mode.get().equals(Mode.String)) {
80 | for (Direction dir : Direction.values()) {
81 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
82 | BlockUtils.place(pos.offset(dir), item, rotate.get(), 0);
83 | }
84 | } else {
85 | for (Direction dir : Direction.values()) {
86 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
87 | BlockUtils.place(pos.offset(dir).down(), item, rotate.get(), 0);
88 | }
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/AutoSand.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 | //created by jabronyyy
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.InvUtils;
10 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.block.BlockState;
13 | import net.minecraft.entity.player.PlayerEntity;
14 | import net.minecraft.item.Items;
15 | import meteordevelopment.meteorclient.settings.BoolSetting;
16 | import meteordevelopment.meteorclient.settings.EnumSetting;
17 | import meteordevelopment.meteorclient.settings.Setting;
18 | import meteordevelopment.meteorclient.settings.SettingGroup;
19 |
20 |
21 | public class AutoSand extends Module {
22 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
23 |
24 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
25 | .name("target-range")
26 | .description("The maximum distance to target players.")
27 | .defaultValue(4)
28 | .range(0, 5)
29 | .sliderMax(5)
30 | .build()
31 | );
32 |
33 | private final Setting priority = sgGeneral.add(new EnumSetting.Builder()
34 | .name("target-priority")
35 | .description("How to filter targets within range.")
36 | .defaultValue(SortPriority.LowestDistance)
37 | .build()
38 | );
39 | private final Setting PlaceSand = sgGeneral.add(new BoolSetting.Builder()
40 | .name("Putting sand")
41 | .description("Puts sands on head.")
42 | .defaultValue(false)
43 | .build()
44 | );
45 | private final Setting PlaceObsidian = sgGeneral.add(new BoolSetting.Builder()
46 | .name("Putting obsidian")
47 | .description("Puts obsidians.")
48 | .defaultValue(false)
49 | .build()
50 | );
51 |
52 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
53 | .name("rotate")
54 | .description("Rotates towards the sands when placing.")
55 | .defaultValue(true)
56 | .build()
57 | );
58 |
59 | private PlayerEntity target = null;
60 |
61 | public AutoSand() {
62 | super(Addon.combat, "AutoSand", "Automatically places sands to your opponent (rofl module).");
63 | }
64 |
65 | @EventHandler
66 | private void onTick(TickEvent.Pre event) {
67 | if (TargetUtils.isBadTarget(target, range.get())) {
68 | target = TargetUtils.getPlayerTarget(range.get(), priority.get());
69 | if (TargetUtils.isBadTarget(target, range.get())) return;
70 | }
71 |
72 | if (PlaceObsidian.get()) {
73 | BlockUtils.place(target.getBlockPos().add(1, 1, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
74 | BlockUtils.place(target.getBlockPos().add(0, 1, 1), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
75 | BlockUtils.place(target.getBlockPos().add(-1, 1, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
76 | BlockUtils.place(target.getBlockPos().add(0, 1, -1), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
77 | BlockUtils.place(target.getBlockPos().add(0, 3, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
78 | }
79 | if (PlaceSand.get()) {
80 | BlockUtils.place(target.getBlockPos().add(0, 2, 0), InvUtils.findInHotbar(Items.SAND), rotate.get(), 0, false);
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/AutoTrapPlus.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 | //created by jabronyyy
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.InvUtils;
10 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.entity.player.PlayerEntity;
13 | import net.minecraft.item.Items;
14 |
15 | public class AutoTrapPlus extends Module {
16 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
17 |
18 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
19 | .name("target-range")
20 | .description("The maximum distance to target players.")
21 | .defaultValue(5)
22 | .range(0, 6)
23 | .sliderMax(6)
24 | .build()
25 | );
26 |
27 | private final Setting priority = sgGeneral.add(new EnumSetting.Builder()
28 | .name("target-priority")
29 | .description("How to filter targets within range.")
30 | .defaultValue(SortPriority.LowestDistance)
31 | .build()
32 | );
33 | private final Setting dont_click_here = sgGeneral.add(new BoolSetting.Builder()
34 | .name("dont_click_here")
35 | .description("dont_click_here.")
36 | .defaultValue(true)
37 | .build()
38 | );
39 | private final Setting AntiSurround = sgGeneral.add(new BoolSetting.Builder()
40 | .name("AntiSurround")
41 | .description("puts buttons")
42 | .defaultValue(false)
43 | .build()
44 | );
45 |
46 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
47 | .name("rotate")
48 | .description("Rotates towards the obsidian when placing.")
49 | .defaultValue(true)
50 | .build()
51 | );
52 |
53 | private PlayerEntity target = null;
54 |
55 | public AutoTrapPlus() {
56 | super(Addon.combat, "AutoTrapPlus", "Automatically trap your opponent.");
57 | }
58 |
59 | @EventHandler
60 | private void onTick(TickEvent.Pre event) {
61 | if (TargetUtils.isBadTarget(target, range.get())) {
62 | target = TargetUtils.getPlayerTarget(range.get(), priority.get());
63 | if (TargetUtils.isBadTarget(target, range.get())) return;
64 | }
65 |
66 | if (dont_click_here.get()) {
67 | BlockUtils.place(target.getBlockPos().add(1, 1, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
68 | }
69 | if (dont_click_here.get()) {
70 | BlockUtils.place(target.getBlockPos().add(-1, 1, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
71 | }
72 | if (dont_click_here.get()) {
73 | BlockUtils.place(target.getBlockPos().add(0, 1, 1), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
74 | }
75 | if (dont_click_here.get()) {
76 | BlockUtils.place(target.getBlockPos().add(0, 1, -1), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
77 | }
78 | if (dont_click_here.get()) {
79 | BlockUtils.place(target.getBlockPos().add(0, 2, 0), InvUtils.findInHotbar(Items.OBSIDIAN), rotate.get(), 0, false);
80 | }
81 | if (AntiSurround.get()) {
82 | BlockUtils.place(target.getBlockPos().add(1, 0, 0), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
83 | }
84 | if (AntiSurround.get()) {
85 | BlockUtils.place(target.getBlockPos().add(0, 0, 1), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
86 | }
87 | if (AntiSurround.get()) {
88 | BlockUtils.place(target.getBlockPos().add(-1, 0, 0), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
89 | }
90 | if (AntiSurround.get()) {
91 | BlockUtils.place(target.getBlockPos().add(0, 0, -1), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/ButtonPlace.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 | //created by jabronyyy
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.InvUtils;
10 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.entity.player.PlayerEntity;
13 | import net.minecraft.item.Items;
14 |
15 | public class ButtonPlace extends Module {
16 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
17 |
18 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
19 | .name("target-range")
20 | .description("The maximum distance to target players.")
21 | .defaultValue(4)
22 | .range(0, 5)
23 | .sliderMax(5)
24 | .build()
25 | );
26 |
27 | private final Setting priority = sgGeneral.add(new EnumSetting.Builder()
28 | .name("target-priority")
29 | .description("How to filter targets within range.")
30 | .defaultValue(SortPriority.LowestDistance)
31 | .build()
32 | );
33 | private final Setting AntiBurrow = sgGeneral.add(new BoolSetting.Builder()
34 | .name("AntiBurrow")
35 | .description("Puts buttons in the burrow.")
36 | .defaultValue(false)
37 | .build()
38 | );
39 |
40 | private final Setting in_Surround = sgGeneral.add(new BoolSetting.Builder()
41 | .name("in Surround")
42 | .description("Puts buttons in the surround.")
43 | .defaultValue(false)
44 | .build()
45 | );
46 |
47 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
48 | .name("rotate")
49 | .description("Rotates towards the buttons when placing.")
50 | .defaultValue(true)
51 | .build()
52 | );
53 |
54 | private PlayerEntity target = null;
55 |
56 | public ButtonPlace() {
57 | super(Addon.combat, "ButtonPlace", "Automatically places button in surround and burrow to your opponent.");
58 | }
59 |
60 | @EventHandler
61 | private void onTick(TickEvent.Pre event) {
62 | if (TargetUtils.isBadTarget(target, range.get())) {
63 | target = TargetUtils.getPlayerTarget(range.get(), priority.get());
64 | if (TargetUtils.isBadTarget(target, range.get())) return;
65 | }
66 |
67 | //BlockUtils.place(target.getBlockPos(), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
68 | if (AntiBurrow.get()) {
69 | BlockUtils.place(target.getBlockPos().add(0, 0, 0), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
70 | }
71 |
72 | if (in_Surround.get()) {
73 | BlockUtils.place(target.getBlockPos().add(1, 0, 0), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
74 | }
75 | if (in_Surround.get()) {
76 | BlockUtils.place(target.getBlockPos().add(-1, 0, 0), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
77 | }
78 | if (in_Surround.get()) {
79 | BlockUtils.place(target.getBlockPos().add(0, 0, 1), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
80 | }
81 | if (in_Surround.get()) {
82 | BlockUtils.place(target.getBlockPos().add(0, 0, -1), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/DeleteItems.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BoolSetting;
6 | import meteordevelopment.meteorclient.settings.EnumSetting;
7 | import meteordevelopment.meteorclient.settings.Setting;
8 | import meteordevelopment.meteorclient.settings.SettingGroup;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
11 | import meteordevelopment.meteorclient.utils.player.InvUtils;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.minecraft.item.Items;
14 | import net.minecraft.util.Hand;
15 |
16 | //by jabronyyy
17 | public class DeleteItems extends Module {
18 | public DeleteItems() {
19 | super(Addon.combat, "Delete-Items", "In order not to give things to the enemy, turn on this function before death (you need to carry a bucket of lava with you)");
20 | }
21 |
22 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
23 | private final Setting
- itemUse = sgGeneral.add(new EnumSetting.Builder
- ().name("item").defaultValue(Item.Lava).build());
24 | private final Setting notify = sgGeneral.add(new BoolSetting.Builder().name("notify").defaultValue(true).build());
25 |
26 | private int mainSlot;
27 | private boolean invMove;
28 |
29 | @Override
30 | public void onActivate(){
31 | invMove = false;
32 | mainSlot = mc.player.getInventory().selectedSlot;
33 | }
34 |
35 | @Override
36 | public void onDeactivate(){
37 | invMove = false;
38 | mainSlot = -1;
39 | }
40 |
41 | @EventHandler
42 | private void onTickEvent(TickEvent.Pre event) {
43 | FindItemResult fP = InvUtils.find(Items.LAVA_BUCKET);
44 | if (!fP.found() && itemUse.get() == Item.Lava) toggle();
45 | if (itemUse.get() == Item.Lava) {
46 | FindItemResult Lava = InvUtils.find(Items.LAVA_BUCKET);
47 | int LavaSlot = Lava.slot();
48 | if (!Lava.found() && notify.get()) {
49 | info("No lava-bucket found!");
50 | return;
51 | }
52 | InvUtils.move().from(LavaSlot).to(mainSlot);
53 | if (mc.player.getMainHandStack().getItem() == Items.LAVA_BUCKET) {
54 | mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND);
55 | invMove = true;
56 | }
57 | if (invMove) {
58 | InvUtils.move().from(mainSlot).to(LavaSlot);
59 | }
60 | toggle();
61 | }
62 | }
63 | public enum Item {
64 | Lava,
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/HitboxDesync.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.orbit.EventHandler;
7 | import net.minecraft.util.math.BlockPos;
8 | import net.minecraft.util.math.Box;
9 | import net.minecraft.util.math.Direction;
10 | import net.minecraft.util.math.Vec3d;
11 |
12 |
13 |
14 | public class HitboxDesync extends Module {
15 | private static final double MAGIC_OFFSET = .200009968835369999878673424677777777777761;
16 |
17 | public HitboxDesync() {
18 | super(Addon.combat, "HitboxDesync", "Crashes chinese crystal auras.");
19 | }
20 |
21 | @EventHandler
22 | private void onTick(TickEvent.Post event) {
23 | if (mc.world == null) return;
24 | Direction f = mc.player.getHorizontalFacing();
25 | Box bb = mc.player.getBoundingBox();
26 | Vec3d center = bb.getCenter();
27 | Vec3d offset = new Vec3d(f.getUnitVector());
28 |
29 | Vec3d fin = merge(Vec3d.of(BlockPos.ofFloored(center)).add(.5, 0, .5).add(offset.multiply(MAGIC_OFFSET)), f);
30 | mc.player.setPosition(fin.x == 0 ? mc.player.getX() : fin.x,
31 | mc.player.getY(),
32 | fin.z == 0 ? mc.player.getZ() : fin.z);
33 | toggle();
34 | }
35 |
36 | private Vec3d merge(Vec3d a, Direction facing) {
37 | return new Vec3d(a.x * Math.abs(facing.getUnitVector().x()), a.y * Math.abs(facing.getUnitVector().y()), a.z * Math.abs(facing.getUnitVector().z()));
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/pvp/SelfAnvilBEBRA.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.pvp;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.player.InvUtils;
8 | import meteordevelopment.meteorclient.utils.player.PlayerUtils;
9 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
10 | import meteordevelopment.orbit.EventHandler;
11 | import net.minecraft.block.Block;
12 | import net.minecraft.block.BlockState;
13 | import net.minecraft.block.Blocks;
14 | import net.minecraft.util.math.BlockPos;
15 | import java.util.Collections;
16 | import java.util.List;
17 |
18 | public class SelfAnvilBEBRA extends Module {
19 | //private final SettingGroup sgGeneral = settings.createGroup("general");
20 |
21 | //private final Setting oneAnvil = sgGeneral.add(new BoolSetting.Builder().name("one").description("For no airplace servers.").defaultValue(false).build());
22 |
23 | //private final Setting NoAirPlace = sgGeneral.add(new BoolSetting.Builder().name("NoAirPlace").description("For no airplace servers.").defaultValue(false).build());
24 | private final SettingGroup sgMisc = settings.createGroup("Misc");
25 |
26 | private final Setting checkEntity = sgMisc.add(new BoolSetting.Builder().name("check-entity").description("entity check").defaultValue(true).build());
27 | private final Setting center = sgMisc.add(new BoolSetting.Builder().name("center").description("Teleports you to the center of the block.").defaultValue(true).build());
28 |
29 | //private final Setting disableOnYChange = sgMisc.add(new BoolSetting.Builder().name("disable-on-y-change").description("Automatically disables when your y level (step, jumping, atc).").defaultValue(false).build());
30 | private final Setting rotate = sgMisc.add(new BoolSetting.Builder().name("rotate").description("Automatically faces towards the Anvil being placed.").defaultValue(false).build());
31 | private final Setting
> blocks = sgMisc.add(new BlockListSetting.Builder().name("block").description("What blocks to use for surround.").defaultValue(Collections.singletonList(Blocks.ANVIL)).filter(this::blockFilter).build());
32 |
33 | private final BlockPos.Mutable blockPos = new BlockPos.Mutable();
34 | private boolean return_;
35 |
36 | public SelfAnvilBEBRA() {
37 | super(Addon.combat, "AutoAnvilBEBRA", "puts in throws off anvils on you");
38 | }
39 |
40 | @Override
41 | public void onActivate() {
42 | if (center.get()) PlayerUtils.centerPlayer();
43 | }
44 |
45 | @EventHandler
46 | private void onTick(TickEvent.Pre event) {
47 |
48 | place(0, 2, 0);
49 | if (return_) return;
50 | }
51 |
52 | private boolean blockFilter(Block block) {
53 | return block.getBlastResistance() >= 600;
54 | }
55 |
56 | private boolean place(int x, int y, int z) {
57 | setBlockPos(x, y, z);
58 | BlockState blockState = mc.world.getBlockState(blockPos);
59 | if (!blockState.getMaterial().isReplaceable()) return true;
60 | if (BlockUtils.place(blockPos, InvUtils.findInHotbar(itemStack -> blocks.get().contains(Block.getBlockFromItem(itemStack.getItem()))), rotate.get(), 100, checkEntity.get())) {
61 | return_ = true;
62 | }
63 | return false;
64 | }
65 |
66 | private void setBlockPos(int x, int y, int z) {
67 | blockPos.set(mc.player.getX() + x, mc.player.getY() + y, mc.player.getZ() + z);
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/render/Bubbles.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.render;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.render.Render3DEvent;
5 | import meteordevelopment.meteorclient.renderer.ShapeMode;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.render.RenderUtils;
8 | import meteordevelopment.meteorclient.utils.render.color.Color;
9 | import meteordevelopment.orbit.EventHandler;
10 | import net.minecraft.util.hit.BlockHitResult;
11 | import net.minecraft.util.math.BlockPos;
12 |
13 | //by red14
14 | public class Bubbles extends Module {
15 |
16 | public Bubbles() {
17 | super(Addon.render, "Bubbles", "Create bubbles on the blocks you're looking at.");
18 | }
19 |
20 | boolean savePrev;
21 | BlockPos bpp;
22 | BlockPos bp;
23 |
24 | @Override
25 | public void onActivate() {
26 | savePrev = true;
27 | }
28 |
29 | @EventHandler
30 | private void onRender(Render3DEvent event) {
31 | if (mc.crosshairTarget instanceof BlockHitResult block) {
32 | bp = block.getBlockPos();
33 |
34 | if (savePrev) {
35 | bpp = bp;
36 | savePrev = false;
37 | }
38 |
39 | Color line = new Color(180, 0, 0, 255);
40 | Color side = new Color(225, 0, 0, 50);
41 | ShapeMode sm = ShapeMode.Both;
42 |
43 | event.renderer.box(bp, side, line, sm, 0);
44 |
45 | if (bpp.getX() != bp.getX() || bpp.getZ() != bp.getZ() || bpp.getY() != bp.getY()) {
46 | RenderUtils.renderTickingBlock(bpp, new Color(225, 0, 0, 50), line, sm, 0, 12, false, true);
47 | savePrev = true;
48 | }
49 | }
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/render/Bubbles2.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.render;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 |
6 | import meteordevelopment.meteorclient.events.render.Render3DEvent;
7 | import meteordevelopment.meteorclient.renderer.ShapeMode;
8 | import meteordevelopment.meteorclient.systems.modules.Module;
9 | import meteordevelopment.meteorclient.systems.modules.combat.Surround;
10 | import meteordevelopment.meteorclient.utils.render.RenderUtils;
11 | import meteordevelopment.meteorclient.utils.render.color.Color;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.minecraft.client.MinecraftClient;
14 | import net.minecraft.util.hit.BlockHitResult;
15 | import net.minecraft.util.math.BlockPos;
16 | public class Bubbles2 extends Module {
17 | public Bubbles2() {
18 | super(Addon.render, "Bubbles2", "Bubbles, but 2 version.");
19 | }
20 |
21 |
22 |
23 | @EventHandler
24 | public void onRender(Render3DEvent event)
25 | {
26 | BlockPos playerPos;
27 |
28 | {
29 | assert mc.player != null;
30 | playerPos = mc.player.getBlockPos();
31 | }
32 |
33 | int blockX = playerPos.getX();
34 | int blockY = playerPos.getY();
35 | int blockZ = playerPos.getZ();
36 |
37 | BlockPos blockPos = new BlockPos(blockX, blockY-1, blockZ);
38 |
39 | Color line = new Color(180, 0, 0, 255);
40 | Color side = new Color(225, 0, 0, 50);
41 | ShapeMode sm = ShapeMode.Both;
42 |
43 | RenderUtils.renderTickingBlock(blockPos, new Color(225, 0, 0, 50), line, sm, 0, 20, false, true); }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/render/KillEffects.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.render;
2 |
3 | import bebra.hack.addon.Addon;
4 | import bebra.hack.addon.Utils.BWorldUtils;
5 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
6 | import meteordevelopment.meteorclient.settings.BoolSetting;
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.entity.Entity;
13 |
14 | import static bebra.hack.addon.Utils.BEntityUtils.deadEntity;
15 | import static bebra.hack.addon.Utils.BEntityUtils.isDeathPacket;
16 |
17 | public class KillEffects extends Module {
18 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
19 |
20 |
21 | // General
22 | private final Setting range = sgGeneral.add(new IntSetting.Builder()
23 | .name("range")
24 | .description("How far away the lightning is allowed to spawn from you.")
25 | .defaultValue(16)
26 | .sliderRange(0,256)
27 | .build()
28 | );
29 |
30 | private final Setting avoidSelf = sgGeneral.add(new BoolSetting.Builder()
31 | .name("avoid-self")
32 | .description("Will not render your own deaths.")
33 | .defaultValue(true)
34 | .build()
35 | );
36 |
37 |
38 | public KillEffects() {
39 | super(Addon.render, "kill-effects", "Spawns a lightning where a player dies.");
40 | }
41 |
42 |
43 | @EventHandler
44 | private void onReceivePacket(PacketEvent.Receive event) {
45 | if (isDeathPacket(event)) {
46 | Entity player = deadEntity;
47 | if (player == mc.player && avoidSelf.get()) return;
48 | if (mc.player.distanceTo(player) > range.get()) return;
49 |
50 | double playerX = player.getX();
51 | double playerY = player.getY();
52 | double playerZ = player.getZ();
53 |
54 | BWorldUtils.spawnLightning(playerX, playerY, playerZ);
55 | }
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/render/Linia.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.render;
2 | /*
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.render.Render3DEvent;
5 | import meteordevelopment.meteorclient.systems.modules.Module;
6 | import meteordevelopment.meteorclient.utils.render.color.Color;
7 | import meteordevelopment.orbit.EventHandler;
8 | import net.minecraft.entity.player.PlayerEntity;
9 | import net.minecraft.util.math.BlockPos;
10 |
11 | public class Linia extends Module
12 | {
13 | public Linia()
14 | {
15 | super(Addon.render, "Linia", "");
16 | }
17 | public PlayerEntity target;
18 |
19 | @EventHandler
20 | public void Render(Render3DEvent event)
21 | {
22 | float x1, y1, z1;
23 | float x2, y2, z2;
24 |
25 |
26 | int blockX = target.getBlockX();
27 | int blockY = target.getBlockY();
28 | int blockZ = target.getBlockZ();
29 |
30 | BlockPos blockPos = new BlockPos(blockX, blockY, blockZ);
31 | x1 = (float) target.getBlockX();
32 | y1 = (float) target.getBlockY();
33 | z1 = (float) target.getBlockZ();
34 |
35 | x2 = (float) target.getBlockX();
36 | y2 = (float) target.getBlockY();
37 | z2 = (float) target.getBlockZ();
38 |
39 | event.renderer.line(x1, y1, z1, x2, y2, z2, new Color(225, 0, 0, 50));
40 | }
41 | }
42 | */
43 |
--------------------------------------------------------------------------------
/src/main/java/bebra/hack/addon/modules/render/TimeAnimator.java:
--------------------------------------------------------------------------------
1 | package bebra.hack.addon.modules.render;
2 |
3 | import bebra.hack.addon.Addon;
4 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.settings.IntSetting;
7 | import meteordevelopment.meteorclient.settings.Setting;
8 | import meteordevelopment.meteorclient.settings.SettingGroup;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 | import meteordevelopment.orbit.EventHandler;
11 | import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket;
12 |
13 | public class TimeAnimator extends Module {
14 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
15 |
16 |
17 | // General
18 | private final Setting speed = sgGeneral.add(new IntSetting.Builder()
19 | .name("speed")
20 | .description("How fast the day and night cycle should be.")
21 | .defaultValue(100)
22 | .sliderRange(1, 500)
23 | .build()
24 | );
25 |
26 |
27 | public TimeAnimator() {
28 | super(Addon.render, "time-animator", "Speeds up the day and night cycle.");
29 | }
30 |
31 |
32 | private long timer;
33 |
34 |
35 | @Override
36 | public void onActivate() {
37 | mc.world.setTimeOfDay(mc.world.getTime());
38 | timer = 0;
39 | }
40 |
41 | @Override
42 | public void onDeactivate() {
43 | mc.world.setTimeOfDay(mc.world.getTime());
44 | timer = 0;
45 | }
46 |
47 | @EventHandler
48 | private void onPacketReceive(PacketEvent.Receive event) {
49 | if (event.packet instanceof WorldTimeUpdateS2CPacket) {
50 | event.cancel();
51 | }
52 | }
53 |
54 | @EventHandler
55 | private void onTick(TickEvent.Post event) {
56 | timer ++;
57 | mc.world.setTimeOfDay(timer * (speed.get()));
58 |
59 | if (mc.world.getTimeOfDay() >= 24000 || mc.world.getTimeOfDay() <= -24000){
60 | timer = 0;
61 | mc.world.setTimeOfDay(0);
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Addon.java:
--------------------------------------------------------------------------------
1 | package com.example.addon;
2 | import meteordevelopment.meteorclient.systems.modules.Categories;
3 | import com.example.addon.modules.BebraHackPVP.*;
4 | import com.example.addon.modules.hud.CustomImage;
5 | import com.example.addon.modules.hud.Killfeed;
6 | import com.example.addon.modules.misc.*;
7 | import com.example.addon.modules.BebraHackRender.*;
8 | import com.mojang.logging.LogUtils;
9 | import meteordevelopment.meteorclient.systems.hud.Hud;
10 | import meteordevelopment.meteorclient.systems.hud.HudGroup;
11 | import meteordevelopment.meteorclient.addons.MeteorAddon;
12 | import meteordevelopment.meteorclient.systems.modules.Category;
13 | import meteordevelopment.meteorclient.systems.modules.Modules;
14 | import org.slf4j.Logger;
15 |
16 |
17 |
18 | public class Addon extends MeteorAddon {
19 | public static String VERSION = "BebraHack V5";
20 | public static String INVITE_LINK = "https://discord.gg/FP8jcqTZyG";
21 |
22 | public static final Logger LOG = LogUtils.getLogger();
23 |
24 | public static final Category combat = new Category("BebraHackPVP");
25 | public static final Category misc = new Category("BebraHackPVE");
26 | public static final Category render = new Category("BebraHackRender");
27 | public static final HudGroup HUD_GROUP = new HudGroup("BebraHackHUD");
28 |
29 | @Override
30 | public void onInitialize() {
31 | LOG.info("Initializing Meteor Addon BebraHack V5");
32 |
33 | // HUD
34 | // Hud.get().register(ItemCounter.INFO);
35 | Hud.get().register(Killfeed.INFO);
36 | Hud.get().register(CustomImage.INFO);
37 | // Hud.get().register(WelcomeHud.INFO);
38 | // Hud.get().register(TextPresets.INFO);
39 |
40 | // BebraHackPVP
41 | Modules.get().add(new AntiCrystal());
42 | Modules.get().add(new Burrow());
43 | Modules.get().add(new AntiSurroundBlocks());
44 | Modules.get().add(new FanSurroundBEBRA());
45 | Modules.get().add(new CevBreaker());
46 | Modules.get().add(new Notifications());
47 | Modules.get().add(new tntauraBEBRAplus());
48 | Modules.get().add(new PacketHoleFill());
49 | Modules.get().add(new sphere());
50 | Modules.get().add(new AutoEz());
51 | Modules.get().add(new SurroundBEBRA());
52 | Modules.get().add(new SelfAnvilBEBRA());
53 | Modules.get().add(new AnchorAuraBEBRA());
54 | Modules.get().add(new AntiBurrow());
55 |
56 |
57 | // BebraHackPVE
58 | Modules.get().add(new Twerk());
59 | Modules.get().add(new AutoBuild());
60 | Modules.get().add(new NoDesync());
61 | Modules.get().add(new SpamInChat());
62 | Modules.get().add(new Lavacast());
63 | Modules.get().add(new bebra_info_and_help());
64 | Modules.get().add(new AutoCraft());
65 | Modules.get().add(new VillagerRoller());
66 | Modules.get().add(new PingSpoofer());
67 | Modules.get().add(new CoordLogger());
68 | Modules.get().add(new AutoSex());
69 | Modules.get().add(new TreeAura());
70 | Modules.get().add(new AutoTNT());
71 | Modules.get().add(new AutoLogin());
72 | Modules.get().add(new EFly());
73 | Modules.get().add(new MEGA_DUPEprank());
74 | //Modules.get().add(new ChatEncryption());
75 | Modules.get().add(new AutoLogTotems());
76 | Modules.get().add(new SilentItem());
77 | Modules.get().add(new Spinner());
78 |
79 | // BebraHack Render
80 | //Modules.get().add(new Confetti());
81 | //Modules.get().add(new HoleESPPlus());
82 | Modules.get().add(new TimeAnimator());
83 | //Modules.get().add(new NewChunks());
84 | Modules.get().add(new AntiVanish());
85 | ///Modules.get().add(new Prefix());
86 | Modules.get().add(new KillEffects());
87 | //Modules.get().add(new BurrowESP());
88 | //Modules.get().add(new BebraESP());
89 |
90 | Modules.get().get(bebra_info_and_help.class).toggle();
91 | }
92 |
93 | @Override
94 | public void onRegisterCategories() {
95 | Modules.registerCategory(combat);
96 | Modules.registerCategory(misc);
97 | Modules.registerCategory(render);
98 | }
99 |
100 | @Override
101 | public String getPackage() {
102 | return "com.example.addon";
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/AAABLYA.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | public class AAABLYA {
4 |
5 | private long nanoTime = -1L;
6 |
7 | public void reset() {
8 | nanoTime = System.nanoTime();
9 | }
10 |
11 | public void setTicks(long ticks) { nanoTime = System.nanoTime() - convertTicksToNano(ticks); }
12 | public void setMillis(long time) { nanoTime = System.nanoTime() - convertMillisToNano(time); }
13 | public void setSec(long time) { nanoTime = System.nanoTime() - convertSecToNano(time); }
14 |
15 | public long getTicks() { return convertNanoToTicks(nanoTime); }
16 | public long getMillis() { return convertNanoToMillis(nanoTime); }
17 | public long getSec() { return convertNanoToSec(nanoTime); }
18 |
19 | public boolean passedTicks(long ticks) { return passedNano(convertTicksToNano(ticks)); }
20 | public boolean passedNano(long time) { return System.nanoTime() - nanoTime >= time; }
21 | public boolean passedMillis(long time) { return passedNano(convertMillisToNano(time)); }
22 | public boolean passedSec(long time) { return passedNano(convertSecToNano(time)); }
23 |
24 | public long convertMillisToTicks(long time) { return time / 50; }
25 | public long convertTicksToMillis(long ticks) { return ticks * 50; }
26 | public long convertNanoToTicks(long time) { return convertMillisToTicks(convertNanoToMillis(time)); }
27 | public long convertTicksToNano(long ticks) { return convertMillisToNano(convertTicksToMillis(ticks)); }
28 |
29 | public long convertSecToMillis(long time) { return time * 1000L; }
30 | public long convertSecToMicro(long time) { return convertMillisToMicro(convertSecToMillis(time)); }
31 | public long convertSecToNano(long time) { return convertMicroToNano(convertMillisToMicro(convertSecToMillis(time))); }
32 |
33 | public long convertMillisToMicro(long time) { return time * 1000L; }
34 | public long convertMillisToNano(long time) { return convertMicroToNano(convertMillisToMicro(time)); }
35 |
36 | public long convertMicroToNano(long time) { return time * 1000L; }
37 |
38 | public long convertNanoToMicro(long time) { return time / 1000L; }
39 | public long convertNanoToMillis(long time) { return convertMicroToMillis(convertNanoToMicro(time)); }
40 | public long convertNanoToSec(long time) { return convertMillisToSec(convertMicroToMillis(convertNanoToMicro(time))); }
41 |
42 | public long convertMicroToMillis(long time) { return time / 1000L; }
43 | public long convertMicroToSec(long time) { return convertMillisToSec(convertMicroToMillis(time)); }
44 |
45 | public long convertMillisToSec(long time) { return time / 1000L; }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/ArmorUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.item.ItemStack;
4 | import net.minecraft.item.Items;
5 |
6 | import static meteordevelopment.meteorclient.MeteorClient.mc;
7 |
8 | public class ArmorUtils {
9 |
10 | public static ItemStack getArmor(int slot) {
11 | return mc.player.getInventory().armor.get(slot);
12 | }
13 |
14 | public static boolean isFallFlying() {
15 | return getArmor(2).getItem() == Items.ELYTRA && mc.player.isFallFlying();
16 | }
17 |
18 | public static boolean checkThreshold(ItemStack i, double threshold) {
19 | return getDamage(i) <= threshold;
20 | }
21 |
22 | public static double getDamage(ItemStack i) {return (((double) (i.getMaxDamage() - i.getDamage()) / i.getMaxDamage()) * 100);}
23 |
24 |
25 | public static boolean isHelm(ItemStack itemStack) {
26 | if (itemStack == null) return false;
27 | if (itemStack.getItem() == Items.NETHERITE_HELMET) return true;
28 | if (itemStack.getItem() == Items.DIAMOND_HELMET) return true;
29 | if (itemStack.getItem() == Items.GOLDEN_HELMET) return true;
30 | if (itemStack.getItem() == Items.IRON_HELMET) return true;
31 | if (itemStack.getItem() == Items.CHAINMAIL_HELMET) return true;
32 | return itemStack.getItem() == Items.LEATHER_HELMET;
33 | }
34 |
35 | public static boolean isChest(ItemStack itemStack) {
36 | if (itemStack == null) return false;
37 | if (itemStack.getItem() == Items.NETHERITE_CHESTPLATE) return true;
38 | if (itemStack.getItem() == Items.DIAMOND_CHESTPLATE) return true;
39 | if (itemStack.getItem() == Items.GOLDEN_CHESTPLATE) return true;
40 | if (itemStack.getItem() == Items.IRON_CHESTPLATE) return true;
41 | if (itemStack.getItem() == Items.CHAINMAIL_CHESTPLATE) return true;
42 | return itemStack.getItem() == Items.LEATHER_CHESTPLATE;
43 | }
44 |
45 | public static boolean isLegs(ItemStack itemStack) {
46 | if (itemStack == null) return false;
47 | if (itemStack.getItem() == Items.NETHERITE_LEGGINGS) return true;
48 | if (itemStack.getItem() == Items.DIAMOND_LEGGINGS) return true;
49 | if (itemStack.getItem() == Items.GOLDEN_LEGGINGS) return true;
50 | if (itemStack.getItem() == Items.IRON_LEGGINGS) return true;
51 | if (itemStack.getItem() == Items.CHAINMAIL_LEGGINGS) return true;
52 | return itemStack.getItem() == Items.LEATHER_LEGGINGS;
53 | }
54 |
55 | public static boolean isBoots(ItemStack itemStack) {
56 | if (itemStack == null) return false;
57 | if (itemStack.getItem() == Items.NETHERITE_BOOTS) return true;
58 | if (itemStack.getItem() == Items.DIAMOND_BOOTS) return true;
59 | if (itemStack.getItem() == Items.GOLDEN_BOOTS) return true;
60 | if (itemStack.getItem() == Items.IRON_BOOTS) return true;
61 | if (itemStack.getItem() == Items.CHAINMAIL_BOOTS) return true;
62 | return itemStack.getItem() == Items.LEATHER_BOOTS;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/BPlayerUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.entity.Entity;
4 | import net.minecraft.util.math.BlockPos;
5 | import net.minecraft.util.math.Direction;
6 | import net.minecraft.util.math.Vec3d;
7 |
8 | import static meteordevelopment.meteorclient.MeteorClient.mc;
9 |
10 | public class BPlayerUtils {
11 | public static Vec3d playerEyePos() {
12 | return new Vec3d(mc.player.getX(), mc.player.getY() + mc.player.getEyeHeight(mc.player.getPose()), mc.player.getZ());
13 | }
14 |
15 | public static double distanceFromEye(Entity entity) {
16 | double feet = distanceFromEye(entity.getX(), entity.getY(), entity.getZ());
17 | double head = distanceFromEye(entity.getX(), entity.getY() + entity.getHeight(), entity.getZ());
18 | return Math.min(head, feet);
19 | }
20 |
21 | public static double distanceFromEye(BlockPos blockPos) {
22 | return distanceFromEye(blockPos.getX(), blockPos.getY(), blockPos.getZ());
23 | }
24 |
25 | public static double distanceFromEye(Vec3d vec3d) {
26 | return distanceFromEye(vec3d.getX(), vec3d.getY(), vec3d.getZ());
27 | }
28 |
29 | public static double distanceFromEye(double x, double y, double z) {
30 | double f = (mc.player.getX() - x);
31 | double g = (mc.player.getY() + mc.player.getEyeHeight(mc.player.getPose()) - y);
32 | double h = (mc.player.getZ() - z);
33 | return Math.sqrt(f * f + g * g + h * h);
34 | }
35 |
36 | public static double[] directionSpeed(float speed) {
37 | float forward = mc.player.input.movementForward;
38 | float side = mc.player.input.movementSideways;
39 | float yaw = mc.player.prevYaw + (mc.player.getYaw() - mc.player.prevYaw);
40 |
41 | if (forward != 0.0F) {
42 | if (side > 0.0F) {
43 | yaw += ((forward > 0.0F) ? -45 : 45);
44 | } else if (side < 0.0F) {
45 | yaw += ((forward > 0.0F) ? 45 : -45);
46 | }
47 |
48 | side = 0.0F;
49 |
50 | if (forward > 0.0F) {
51 | forward = 1.0F;
52 | } else if (forward < 0.0F) {
53 | forward = -1.0F;
54 | }
55 | }
56 |
57 | double sin = Math.sin(Math.toRadians(yaw + 90.0F));
58 | double cos = Math.cos(Math.toRadians(yaw + 90.0F));
59 | double dx = forward * speed * cos + side * speed * sin;
60 | double dz = forward * speed * sin - side * speed * cos;
61 |
62 | return new double[] { dx, dz };
63 | }
64 |
65 | public static Direction direction(float yaw){
66 | yaw = yaw % 360;
67 | if (yaw < 0) yaw += 360;
68 |
69 | if (yaw >= 315 || yaw < 45) return Direction.SOUTH;
70 | else if (yaw >= 45 && yaw < 135) return Direction.WEST;
71 | else if (yaw >= 135 && yaw < 225) return Direction.NORTH;
72 | else if (yaw >= 225 && yaw < 315) return Direction.EAST;
73 |
74 | return Direction.SOUTH;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/BedUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import com.example.addon.Utils.AutomationUtils;
4 | import net.minecraft.entity.player.PlayerEntity;
5 | import net.minecraft.util.math.BlockPos;
6 | import net.minecraft.util.math.Vec3d;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 | import java.util.Random;
11 |
12 | public class BedUtils {
13 |
14 | public static ArrayList selfTrapPositions = new ArrayList() {{
15 | add(new Vec3d(1, 1, 0));
16 | add(new Vec3d(-1, 1, 0));
17 | add(new Vec3d(0, 1, 1));
18 | add(new Vec3d(0, 1, -1));
19 | }};
20 |
21 | public static BlockPos getSelfTrapBlock(PlayerEntity p, Boolean escapePrevention) {
22 | BlockPos tpos = p.getBlockPos();
23 | List selfTrapBlocks = new ArrayList<>();
24 | if (!escapePrevention && AutomationUtils.isTrapBlock(tpos.up(2))) return tpos.up(2);
25 | for (Vec3d stp : selfTrapPositions) {
26 | BlockPos stb = tpos.add(stp.x, stp.y, stp.z);
27 | if (AutomationUtils.isTrapBlock(stb)) selfTrapBlocks.add(stb);
28 | }
29 | if (selfTrapBlocks.isEmpty()) return null;
30 | return selfTrapBlocks.get(new Random().nextInt(selfTrapBlocks.size()));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/BlockUpdateEvent.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.Cancellable;
4 | import net.minecraft.block.BlockState;
5 | import net.minecraft.util.math.BlockPos;
6 |
7 | public class BlockUpdateEvent extends Cancellable {
8 | public BlockPos pos;
9 | public BlockState oldState, newState;
10 |
11 | public BlockUpdateEvent(BlockPos pos, BlockState oldState, BlockState newState) {
12 | this.pos = pos;
13 | this.oldState = oldState;
14 | this.newState = newState;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/BreakBlockEvent.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.Cancellable;
4 | import net.minecraft.util.math.BlockPos;
5 |
6 | public class BreakBlockEvent extends Cancellable {
7 | private final BlockPos pos;
8 |
9 | public BreakBlockEvent(BlockPos pos) {
10 | this.pos = pos;
11 | }
12 |
13 | public BlockPos getPos() {
14 | return pos;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/CHMainUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
4 | import net.minecraft.entity.Entity;
5 | import net.minecraft.entity.player.PlayerEntity;
6 | import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;
7 | import org.apache.commons.codec.binary.Base64;
8 | import org.apache.commons.codec.digest.DigestUtils;
9 | import javax.crypto.BadPaddingException;
10 | import javax.crypto.Cipher;
11 | import javax.crypto.IllegalBlockSizeException;
12 | import javax.crypto.NoSuchPaddingException;
13 | import javax.crypto.spec.SecretKeySpec;
14 | import java.security.InvalidKeyException;
15 | import java.security.NoSuchAlgorithmException;
16 | import java.util.Arrays;
17 |
18 | import static meteordevelopment.meteorclient.MeteorClient.mc;
19 |
20 | public class CHMainUtils {
21 |
22 | public static String encrypt(String text, String key) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
23 | Cipher cipher = Cipher.getInstance("AES");
24 | cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(Arrays.copyOf(DigestUtils.sha1(key), 16), "AES"));
25 |
26 | return Base64.encodeBase64String(cipher.doFinal(text.getBytes()));
27 | }
28 |
29 | public static String decrypt(String text, String key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
30 | Cipher cipher = Cipher.getInstance("AES");
31 | cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(Arrays.copyOf(DigestUtils.sha1(key), 16), "AES"));
32 |
33 | return new String(cipher.doFinal(Base64.decodeBase64(text)));
34 | }
35 |
36 | public static String apply(String msg) {
37 | if (msg.contains(":smile:")) msg = msg.replace(":smile:", "☺");
38 | if (msg.contains(":sad:")) msg = msg.replace(":sad:", "☹");
39 | if (msg.contains(":heart:")) msg = msg.replace(":heart:", "❤");
40 | if (msg.contains(":skull:")) msg = msg.replace(":skull:", "☠");
41 | if (msg.contains(":star:")) msg = msg.replace(":star:", "★");
42 | if (msg.contains(":flower:")) msg = msg.replace(":flower:", "❀");
43 | if (msg.contains(":pick:")) msg = msg.replace(":pick:", "⛏");
44 | if (msg.contains(":wheelchair:")) msg = msg.replace(":wheelchair:", "♿");
45 | if (msg.contains(":lightning:")) msg = msg.replace(":lightning:", "⚡");
46 | if (msg.contains(":rod:")) msg = msg.replace(":rod:", "🎣");
47 | if (msg.contains(":potion:")) msg = msg.replace(":potion:", "🧪");
48 | if (msg.contains(":fire:")) msg = msg.replace(":fire:", "🔥");
49 | if (msg.contains(":shears:")) msg = msg.replace(":shears:", "✂");
50 | if (msg.contains(":bell:")) msg = msg.replace(":bell:", "🔔");
51 | if (msg.contains(":bow:")) msg = msg.replace(":bow:", "🏹");
52 | if (msg.contains(":trident:")) msg = msg.replace(":trident:", "🔱");
53 | if (msg.contains(":cloud:")) msg = msg.replace(":cloud:", "☁");
54 | if (msg.contains(":cat:")) msg = msg.replace(":cat:", "ᓚᘏᗢ");
55 |
56 | return msg;
57 | }
58 | public static Entity deadEntity;
59 | public static boolean isDeathPacket(PacketEvent.Receive event) {
60 | if (event.packet instanceof EntityStatusS2CPacket packet) {
61 | if (packet.getStatus() == 3) {
62 | deadEntity = packet.getEntity(mc.world);
63 | return deadEntity instanceof PlayerEntity;
64 | }
65 | }
66 | return false;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Distance.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.util.math.BlockPos;
4 | import net.minecraft.util.math.MathHelper;
5 | import net.minecraft.util.math.Vec3d;
6 |
7 |
8 | public class Distance {
9 |
10 | public static double distance(double x1, double y1, double z1, double x2, double y2, double z2) {
11 | double dX = x2 - x1;
12 | double dY = y2 - y1;
13 | double dZ = z2 - z1;
14 |
15 | return Math.sqrt(dX * dX + dY * dY + dZ * dZ);
16 | }
17 |
18 | public static double distance(Vec3d vec1, Vec3d vec2) {
19 | double dX = vec2.x - vec1.x;
20 | double dY = vec2.y - vec1.y;
21 | double dZ = vec2.z - vec1.z;
22 |
23 | return Math.sqrt(dX * dX + dY * dY + dZ * dZ);
24 | }
25 |
26 | public static double distance(BlockPos pos1, BlockPos pos2) {
27 | double dX = pos2.getX() - pos1.getX();
28 | double dY = pos2.getY() - pos1.getY();
29 | double dZ = pos2.getZ() - pos1.getZ();
30 |
31 | return Math.sqrt(dX * dX + dY * dY + dZ * dZ);
32 | }
33 |
34 | public static double distanceXZ(Vec3d pos1, Vec3d pos2) {
35 | double dX = pos1.getX() - pos2.getX();
36 | double dZ = pos1.getZ() - pos2.getZ();
37 |
38 | return MathHelper.sqrt((float) (dX * dX + dZ * dZ));
39 | }
40 |
41 | public static double distanceXZ(double x1, double x2, double z1, double z2) {
42 | double dX = x1 - x2;
43 | double dZ = z1 - z2;
44 |
45 | return MathHelper.sqrt((float) (dX * dX + dZ * dZ));
46 | }
47 |
48 | public static double distanceY(Vec3d pos1, Vec3d pos2) {
49 | return Math.abs(pos2.y - pos1.y);
50 | }
51 |
52 | public static double distanceY(double y1, double y2) {
53 | return Math.abs(y1 - y2);
54 | }
55 |
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Emotes.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | public class Emotes {
4 |
5 | public static String apply(String msg) {
6 | if (msg.contains(":smile:")) msg = msg.replace(":smile:", "☺");
7 | if (msg.contains(":sad:")) msg = msg.replace(":sad:", "☹");
8 | if (msg.contains(":heart:")) msg = msg.replace(":heart:", "❤");
9 | if (msg.contains(":skull:")) msg = msg.replace(":skull:", "☠");
10 | if (msg.contains(":star:")) msg = msg.replace(":star:", "★");
11 | if (msg.contains(":flower:")) msg = msg.replace(":flower:", "❀");
12 | if (msg.contains(":pick:")) msg = msg.replace(":pick:", "⛏");
13 | if (msg.contains(":wheelchair:")) msg = msg.replace(":wheelchair:", "♿");
14 | if (msg.contains(":lightning:")) msg = msg.replace(":lightning:", "⚡");
15 | if (msg.contains(":rod:")) msg = msg.replace(":rod:", "🎣");
16 | if (msg.contains(":potion:")) msg = msg.replace(":potion:", "🧪");
17 | if (msg.contains(":fire:")) msg = msg.replace(":fire:", "🔥");
18 | if (msg.contains(":shears:")) msg = msg.replace(":shears:", "✂");
19 | if (msg.contains(":bell:")) msg = msg.replace(":bell:", "🔔");
20 | if (msg.contains(":bow:")) msg = msg.replace(":bow:", "🏹");
21 | if (msg.contains(":trident:")) msg = msg.replace(":trident:", "🔱");
22 | if (msg.contains(":cloud:")) msg = msg.replace(":cloud:", "☁");
23 | return msg;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/HandledScreenAccessor.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.client.gui.screen.ingame.HandledScreen;
4 | import net.minecraft.client.gui.screen.ingame.MerchantScreen;
5 | import net.minecraft.screen.MerchantScreenHandler;
6 | import net.minecraft.screen.ScreenHandler;
7 | import net.minecraft.client.gui.screen.Screen;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.gen.Accessor;
10 |
11 | @Mixin(HandledScreen.class)
12 | public interface HandledScreenAccessor {
13 | @Accessor
14 | T getHandler();
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/IRenderer2D.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.utils.render.color.Color;
4 | import net.fabricmc.api.EnvType;
5 | import net.fabricmc.api.Environment;
6 |
7 | @Environment(EnvType.CLIENT)
8 | public interface IRenderer2D {
9 | void texQuadHFlip(double x, double y, double width, double height, Color color);
10 | void texQuadVFlip(double x, double y, double width, double height, Color color);
11 | void texQuadHVFlip(double x, double y, double width, double height, Color color);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Initialization.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import com.example.addon.Utils.DamageHelper;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 | import meteordevelopment.meteorclient.systems.modules.Modules;
6 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
7 | import net.minecraft.text.MutableText;
8 | import net.minecraft.text.Text;
9 | import net.minecraft.util.Formatting;
10 | import org.reflections.Reflections;
11 |
12 | import java.util.ArrayList;
13 | import java.util.List;
14 | import java.util.Set;
15 |
16 | //a
17 | import net.minecraft.client.network.ServerInfo;
18 | import net.minecraft.client.option.ServerList;
19 | import static meteordevelopment.meteorclient.MeteorClient.mc;
20 | //a
21 | public class Initialization {
22 | private static final List moduleList = new ArrayList<>();
23 |
24 | // executor.stop() breaks everything
25 | public static Thread executor = Thread.currentThread();
26 |
27 | public static void init(){
28 | modules();
29 | utils();
30 | prefix();
31 | addCPvP();
32 | add2g2c();
33 | }
34 |
35 | private static void prefix(){
36 | ChatUtils.registerCustomPrefix("bbcdevelopment.addon.bbcaddon", Initialization::getPrefix);
37 | }
38 |
39 | private static void utils(){
40 | DamageHelper.init();
41 | }
42 |
43 | private static void modules(){
44 | Set> reflections = new Reflections("bbcdevelopment.addon.bbcaddon.modules").getSubTypesOf(Module.class);
45 |
46 | reflections.forEach(aClass -> {
47 | try {
48 | moduleList.add(aClass.newInstance());
49 | } catch (InstantiationException | IllegalAccessException e) {
50 | Initialization.executor.stop();
51 | throw new RuntimeException(e);
52 | }
53 | });
54 |
55 | moduleList.forEach(module -> Modules.get().add(module));
56 | }
57 |
58 | public static Text getPrefix() {
59 | MutableText logo = Text.literal("BBC");
60 | MutableText prefix = Text.literal("");
61 | logo.setStyle(logo.getStyle().withFormatting(Formatting.DARK_GRAY));
62 | prefix.setStyle(prefix.getStyle().withFormatting(Formatting.DARK_GRAY));
63 | prefix.append("[");
64 | prefix.append(logo);
65 | prefix.append("] ");
66 | return prefix;
67 | }
68 |
69 | public static void addCPvP(){
70 | ServerList servers = new ServerList(mc);
71 | servers.loadFile();
72 |
73 | boolean found = false;
74 | for (int i = 0; i < servers.size(); i++) {
75 | ServerInfo server = servers.get(i);
76 |
77 | if (server.address.contains("eu.cpvp.me")) {
78 | found = true;
79 | break;
80 | }
81 | }
82 |
83 | if (!found) {
84 | servers.add(new ServerInfo("cpvp.me", "eu.cpvp.me", false), false);
85 | servers.saveFile();
86 | }
87 | }
88 | public static void add2g2c(){
89 | ServerList servers = new ServerList(mc);
90 | servers.loadFile();
91 |
92 | boolean found = false;
93 | for (int i = 0; i < servers.size(); i++) {
94 | ServerInfo server = servers.get(i);
95 |
96 | if (server.address.contains("2g2c.org")) {
97 | found = true;
98 | break;
99 | }
100 | }
101 |
102 | if (!found) {
103 | servers.add(new ServerInfo("2g2c", "2g2c.org", false), false);
104 | servers.saveFile();
105 | }
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/InteractUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.entity.Entity;
4 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket;
5 | import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket;
6 | import net.minecraft.util.Hand;
7 |
8 | import static meteordevelopment.meteorclient.MeteorClient.mc;
9 |
10 | public class InteractUtils {
11 | public static void normalHit(Entity target, boolean swing) {
12 | mc.interactionManager.attackEntity(mc.player, target);
13 | if (swing) mc.player.swingHand(Hand.MAIN_HAND);
14 | }
15 |
16 | public static void packetHit(Entity target, boolean swing) {
17 | mc.player.networkHandler.sendPacket(PlayerInteractEntityC2SPacket.attack(target, mc.player.isPlayer()));
18 | if (swing) mc.getNetworkHandler().sendPacket(new HandSwingC2SPacket(Hand.MAIN_HAND));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Interaction.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.utils.entity.EntityUtils;
4 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
5 | import net.minecraft.entity.Entity;
6 | import net.minecraft.entity.TntEntity;
7 | import net.minecraft.entity.decoration.EndCrystalEntity;
8 | import net.minecraft.entity.player.PlayerEntity;
9 | import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket;
10 | import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket;
11 | import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket;
12 | import net.minecraft.util.Hand;
13 | import net.minecraft.util.hit.BlockHitResult;
14 | import net.minecraft.util.math.Box;
15 |
16 | import javax.annotation.Nullable;
17 | import javax.swing.*;
18 |
19 | import java.util.function.Predicate;
20 |
21 | import static meteordevelopment.meteorclient.MeteorClient.mc;
22 |
23 | public class Interaction {
24 | private static int prevSlot = -1;
25 |
26 | public static void updateSlot(FindItemResult result, boolean packet) {
27 | updateSlot(result.slot(), packet);
28 | }
29 |
30 | public static boolean updateSlot(int slot, boolean packet) {
31 | if (slot < 0 || slot > 8) return false;
32 | if (prevSlot == -1) prevSlot = mc.player.getInventory().selectedSlot;
33 |
34 | // updates slot on client and server side
35 | mc.player.getInventory().selectedSlot = slot;
36 | if (packet) mc.getNetworkHandler().sendPacket(new UpdateSelectedSlotC2SPacket(slot));
37 | return true;
38 | }
39 |
40 | public static boolean swapBack(int slot) {
41 | return updateSlot(slot, true);
42 | }
43 |
44 |
45 | public static boolean swapBack() {
46 | if (prevSlot == -1) return false;
47 |
48 | boolean return_ = updateSlot(prevSlot, true);
49 | prevSlot = -1;
50 | return return_;
51 | }
52 |
53 | public static void doSwing(SwingHand swingHand, boolean packetSwing, @Nullable Hand autoHand) {
54 | switch (swingHand) {
55 | case MainHand -> doSwing(Hand.MAIN_HAND, packetSwing);
56 | case OffHand -> doSwing(Hand.OFF_HAND, packetSwing);
57 | case Auto -> doSwing(autoHand, packetSwing);
58 | }
59 | }
60 |
61 | public static void doSwing(Hand hand, boolean packetSwing) {
62 | if (packetSwing) mc.getNetworkHandler().sendPacket(new HandSwingC2SPacket(hand));
63 | else mc.player.swingHand(hand);
64 | }
65 |
66 | public static Hand toHand(SwingHand swingHand) {
67 | return switch (swingHand) {
68 | case MainHand, Auto -> Hand.MAIN_HAND;
69 | case OffHand -> Hand.OFF_HAND;
70 | };
71 | }
72 |
73 | public static void placeBlock(Hand hand, BlockHitResult result, boolean packetPlace) {
74 | if (packetPlace) mc.getNetworkHandler().sendPacket(new PlayerInteractBlockC2SPacket(hand, result,0));
75 | else mc.interactionManager.interactBlock(mc.player, hand, result);
76 | }
77 |
78 | public static boolean hasEntity(Box box) {
79 | return hasEntity(box, entity -> entity instanceof PlayerEntity || entity instanceof EndCrystalEntity || entity instanceof TntEntity);
80 | }
81 |
82 | public static boolean hasEntity(Box box, Predicate predicate) {
83 | return EntityUtils.intersectsWithEntity(box, predicate);
84 | }
85 |
86 | public enum SwingHand {
87 | MainHand, OffHand, Auto
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/InvHelper.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.item.AirBlockItem;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket;
6 |
7 | import static meteordevelopment.meteorclient.MeteorClient.mc;
8 |
9 | public class InvHelper {
10 | public static boolean isInventoryFull() {
11 | for (int i = 0; i < 36; i++) {
12 | ItemStack itemStack = mc.player.getInventory().getStack(i);
13 | if (itemStack == null || itemStack.getItem() instanceof AirBlockItem) return false;
14 | }
15 | return true;
16 | }
17 |
18 | public static void syncSlot() {
19 | mc.player.getInventory().selectedSlot = mc.player.getInventory().selectedSlot;
20 | mc.player.networkHandler.sendPacket(new UpdateSelectedSlotC2SPacket(mc.player.getInventory().selectedSlot));
21 | }
22 |
23 | public static int getBlank() {
24 | int index = -1;
25 | for(int i = 0; i < 45; i++) {
26 | if(mc.player.getInventory().getStack(i).isEmpty()) {
27 | index = i;
28 | break;
29 | }
30 | }
31 | return index;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Item2IntMapSetting.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import it.unimi.dsi.fastutil.objects.Object2IntArrayMap;
4 | import it.unimi.dsi.fastutil.objects.Object2IntMap;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.utils.Utils;
7 | import net.minecraft.item.Item;
8 | import net.minecraft.nbt.NbtCompound;
9 | import net.minecraft.util.Identifier;
10 | import net.minecraft.util.registry.Registry;
11 |
12 | import java.util.function.Consumer;
13 |
14 | public class Item2IntMapSetting extends Setting> {
15 |
16 | public Item2IntMapSetting(String name, String description, Object2IntMap- defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IVisible visible) {
17 | super(name, description, defaultValue, onChanged, onModuleActivated, visible);
18 | }
19 |
20 | @Override
21 | public void resetImpl() {
22 | value = new Object2IntArrayMap<>(defaultValue);
23 | }
24 |
25 | @Override
26 | protected Object2IntMap
- parseImpl(String str) {
27 | String[] values = str.split(",");
28 | Object2IntMap
- items = createItemMap();
29 | try {
30 | for (String value : values) {
31 | String[] split = value.split(" ");
32 | Item item = parseId(Registry.ITEM, split[0]);
33 | int number = Integer.parseInt(split[1]);
34 |
35 | items.put(item, number);
36 | }
37 | } catch (Exception ignored) {}
38 |
39 | return items;
40 | }
41 |
42 | @Override
43 | protected boolean isValueValid(Object2IntMap
- value) {
44 | return true;
45 | }
46 |
47 | @Override
48 | public NbtCompound save(NbtCompound tag) {
49 | NbtCompound valueTag = new NbtCompound();
50 | for (Item item : get().keySet()) {
51 | Identifier id = Registry.ITEM.getId(item);
52 | if (id != null) valueTag.putInt(id.toString(), get().getInt(item));
53 | }
54 | tag.put("value", valueTag);
55 |
56 | return tag;
57 | }
58 |
59 | @Override
60 | public Object2IntMap
- load(NbtCompound tag) {
61 | get().clear();
62 |
63 | NbtCompound valueTag = tag.getCompound("value");
64 | for (String key : valueTag.getKeys()) {
65 | Item item = Registry.ITEM.get(new Identifier(key));
66 | if (item != null) get().put(item, valueTag.getInt(key));
67 | }
68 |
69 | return get();
70 | }
71 |
72 | public static class Builder extends SettingBuilder, Item2IntMapSetting> {
73 | public Builder() {
74 | super(new Object2IntArrayMap<>(0));
75 | }
76 |
77 | @Override
78 | public Item2IntMapSetting build() {
79 | return new Item2IntMapSetting(name, description, defaultValue, onChanged, onModuleActivated, visible);
80 | }
81 | }
82 |
83 | public static Object2IntMap
- createItemMap() {
84 | Object2IntMap
- map = new Object2IntArrayMap<>(Registry.ITEM.getIds().size());
85 |
86 | Registry.ITEM.forEach(item -> map.put(item, 0));
87 |
88 | return map;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Location.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.entity.player.PlayerEntity;
4 | import net.minecraft.util.math.Vec3d;
5 |
6 | public class Location {
7 | public PlayerEntity player;
8 | public Vec3d vec3d;
9 | public double x, y, z;
10 |
11 | public Location(PlayerEntity player) {
12 | this.player = player;
13 | this.vec3d = player.getPos();
14 | this.x = this.vec3d.x;
15 | this.y = this.vec3d.y;
16 | this.z = this.vec3d.z;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/OSUtil.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import com.example.addon.Addon;
4 | import com.sun.jna.Platform;
5 | import org.apache.commons.codec.digest.DigestUtils;
6 |
7 | import javax.swing.*;
8 |
9 | public class OSUtil {
10 |
11 | public static boolean isWindows = false;
12 |
13 | public static void init() {
14 | if (getOS().equals(OSType.Windows)) isWindows = true;
15 | }
16 |
17 |
18 | public static OSType getOS() {
19 | if (Platform.isWindows()) return OSType.Windows;
20 | if (Platform.isLinux()) return OSType.Linux;
21 | if (Platform.isMac()) return OSType.Mac;
22 | return OSType.Unsupported;
23 |
24 | }
25 |
26 | public enum OSType {
27 | Windows,
28 | Linux,
29 | Mac,
30 | Unsupported
31 | }
32 |
33 | public static void messageBox(String title, String msg, int type) {
34 | try { JOptionPane.showMessageDialog(null, msg, title, type); } catch (Exception ignored) {}
35 | }
36 |
37 |
38 | public static void info(String msg) {
39 | messageBox("Reaper " + Addon.VERSION, msg, JOptionPane.INFORMATION_MESSAGE);
40 | }
41 |
42 | public static void warning(String msg) {
43 | messageBox("Reaper " + Addon.VERSION, msg, JOptionPane.WARNING_MESSAGE);
44 | }
45 |
46 | public static void error(String msg) {
47 | messageBox("Reaper " + Addon.VERSION, msg, JOptionPane.ERROR_MESSAGE);
48 | }
49 |
50 | public static void bcope() {
51 | error("""
52 | Reaper has detected banana-plus in your mods folder.
53 | Banana-plus is known to contain malicious code, and for your safety
54 | Reaper will now exit.
55 | """);
56 | }
57 |
58 | public static void debug() {
59 | error("Reaper has detected a possible debugging attempt.\n" +
60 | "If you believe this is an error, please contact support.");
61 | }
62 |
63 | public static void tamper() {
64 | error("Reaper has detected a possible tampering attempt.\n" +
65 | "If you believe this is an error, please contact support.");
66 | }
67 |
68 | public static void authError() {
69 | warning("There was an error contacting the authentication server.\nPlease try again later, or check your firewall / VPN");
70 | }
71 |
72 | public static void hwidError() {
73 | warning("There was an error generating a hardware ID for your system.\nPlease report this bug, and specify your PC's OS.");
74 | }
75 |
76 | public static void invalidError() {
77 | String h = "error";
78 | try {
79 | h = DigestUtils.sha256Hex(System.getProperty("user.name") + java.net.InetAddress.getLocalHost().getHostName() + "cope_harder");
80 | } catch (Exception ignored) {}
81 | error("You do not have an active license.\n" +
82 | "Visit " + Addon.INVITE_LINK + " to purchase a license.\n" +
83 | "If you believe this is an error, please contact support.\n" +
84 | "Your unique hash is " + h);
85 | }
86 |
87 | }
88 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/RenderInfo.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.render.Render3DEvent;
4 | import meteordevelopment.meteorclient.renderer.ShapeMode;
5 |
6 | import static com.example.addon.Utils.RenderUtils.*;
7 |
8 | public class RenderInfo {
9 | public Render3DEvent event;
10 | public RenderMode renderMode;
11 | public ShapeMode shapeMode;
12 |
13 | // Основной рендер
14 | public RenderInfo(Render3DEvent event, RenderMode renderMode, ShapeMode shapeMode) {
15 | this.event = event;
16 | this.renderMode = renderMode;
17 | this.shapeMode = shapeMode;
18 | }
19 |
20 | // Рендер в случае если нет RenderMode
21 | public RenderInfo(Render3DEvent event, RenderMode renderMode) {
22 | this.event = event;
23 | this.renderMode = renderMode;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/SendRawMessageEvent.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.events.Cancellable;
4 |
5 | public class SendRawMessageEvent extends Cancellable {
6 | private static final SendRawMessageEvent INSTANCE = new SendRawMessageEvent();
7 |
8 | public String message;
9 |
10 | public static SendRawMessageEvent get(String message) {
11 | INSTANCE.setCancelled(false);
12 | INSTANCE.message = message;
13 | return INSTANCE;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Stats.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import org.apache.commons.lang3.time.DurationFormatUtils;
4 |
5 | import java.math.RoundingMode;
6 | import java.text.DecimalFormat;
7 | import java.util.ArrayList;
8 |
9 | public class Stats {
10 | public static int kills = 0;
11 | public static int deaths = 0;
12 | public static int killStreak = 0;
13 | public static int highscore = 0;
14 | public static ArrayList killfeed = new ArrayList<>();
15 | //public static long rpcStart = System.currentTimeMillis() / 1000L;
16 | public static long startTime = System.currentTimeMillis();
17 | //public static String onlineUsers = "";
18 |
19 | public static void reset() {
20 | kills = 0;
21 | deaths = 0;
22 | killStreak = 0;
23 | highscore = 0;
24 |
25 | }
26 |
27 | public static String getPlayTime() {
28 | return DurationFormatUtils.formatDuration(System.currentTimeMillis() - startTime, "HH:mm:ss");
29 | }
30 |
31 | public static String getKD() {
32 | if (Stats.deaths == 0) return String.valueOf(Stats.kills); //make sure we don't try to divide by 0
33 | Double rawKD = (double) (Stats.kills / Stats.deaths);
34 | DecimalFormat df = new DecimalFormat("#.##");
35 | df.setRoundingMode(RoundingMode.CEILING);
36 | return df.format(rawKD);
37 | }
38 |
39 | public static void addKill(String kill) {
40 | kills++;
41 | killStreak++;
42 | killfeed.removeIf(k -> k.contains(kill));
43 | killfeed.add(kill);
44 | if (killfeed.size() > 10) killfeed.remove(0);
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/SystemTimer.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | public class SystemTimer {
4 | private long time;
5 |
6 | public SystemTimer() {
7 | time = System.currentTimeMillis();
8 | }
9 |
10 | public boolean hasPassed(double ms) {
11 | return System.currentTimeMillis() - time >= ms;
12 | }
13 |
14 | public void reset() {
15 | time = System.currentTimeMillis();
16 | }
17 |
18 | public long getTime() {
19 | return time;
20 | }
21 |
22 | public void setTime(long time) {
23 | this.time = time;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/TL.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 |
4 | import java.util.concurrent.ExecutorService;
5 | import java.util.concurrent.Executors;
6 | import java.util.concurrent.ScheduledExecutorService;
7 |
8 | public class TL { // Thread loader
9 | public static ExecutorService auth = Executors.newCachedThreadPool();
10 | public static ExecutorService cached = Executors.newCachedThreadPool();
11 | public static ScheduledExecutorService schedueled = Executors.newScheduledThreadPool(10);
12 | public static ExecutorService modules = Executors.newFixedThreadPool(10);
13 |
14 | public static void init() {
15 |
16 | }
17 |
18 | public static void shutdown() {
19 | auth.shutdown();
20 | cached.shutdown();
21 | schedueled.shutdown();
22 | modules.shutdown();
23 | }
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/TargetHelper.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.systems.friends.Friends;
4 | import net.minecraft.entity.player.PlayerEntity;
5 |
6 | import java.util.Comparator;
7 | import java.util.List;
8 | import java.util.stream.Collectors;
9 |
10 | import static meteordevelopment.meteorclient.MeteorClient.mc;
11 |
12 | public class TargetHelper {
13 | public static List getTargetsInRange(double enemyRange) {
14 | List stream = mc.world.getPlayers()
15 | .stream()
16 | .filter(e -> e != mc.player)
17 | .filter(e -> e.isAlive())
18 | .filter(e -> !Friends.get().isFriend(e))
19 | .filter(e -> ((PlayerEntity) e).getHealth() > 0)
20 | .filter(e -> mc.player.distanceTo(e) < enemyRange)
21 | .sorted(Comparator.comparing(e -> mc.player.distanceTo(e)))
22 | .collect(Collectors.toList());
23 | return stream;
24 | }
25 |
26 | public static List getFriendsInRange(double enemyRange){
27 | List stream = mc.world.getPlayers()
28 | .stream()
29 | .filter(e -> e != mc.player)
30 | .filter(e -> e.isAlive())
31 | .filter(e -> Friends.get().isFriend(e))
32 | .filter(e -> ((PlayerEntity) e).getHealth() > 0)
33 | .filter(e -> mc.player.distanceTo(e) < enemyRange)
34 | .sorted(Comparator.comparing(e -> mc.player.distanceTo(e)))
35 | .collect(Collectors.toList());
36 | return stream;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Task.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | public class Task {
4 |
5 | private boolean called;
6 |
7 | public Task() {
8 | this.called = false;
9 | }
10 |
11 | public void run(Runnable task) {
12 | if (!isCalled()) {
13 | task.run();
14 | setCalled();
15 | }
16 | }
17 |
18 | public void run(Runnable task, int times) {
19 | if (!isCalled()) {
20 | int i;
21 |
22 | for (i = 0; i < times; i++) {
23 | task.run();
24 | }
25 |
26 | if (i >= times) setCalled();
27 | }
28 | }
29 |
30 | public void reset() {
31 | this.called = false;
32 | }
33 |
34 | public boolean isCalled() {
35 | return this.called;
36 | }
37 |
38 | public void setCalled() {
39 | this.called = true;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/TimerUtils.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | public class TimerUtils {
4 | private long time = -1L;
5 |
6 | public TimerUtils reset() {
7 | this.time = System.nanoTime();
8 | return this;
9 | }
10 |
11 | public boolean passedS(double s) {
12 | return this.passedMs((long) s * 1000L);
13 | }
14 |
15 | public boolean passedDms(double dms) {
16 | return this.passedMs((long) dms * 10L);
17 | }
18 |
19 | public boolean passedDs(double ds) {
20 | return this.passedMs((long) ds * 100L);
21 | }
22 |
23 | public boolean passedMs(long ms) {
24 | return this.passedNS(this.convertToNS(ms));
25 | }
26 |
27 | public void setMs(long ms) {
28 | this.time = System.nanoTime() - this.convertToNS(ms);
29 | }
30 |
31 | public boolean passedNS(long ns) {
32 | return System.nanoTime() - this.time >= ns;
33 | }
34 |
35 | public long getPassedTimeMs() {
36 | return this.getMs(System.nanoTime() - this.time);
37 | }
38 |
39 | public long getMs(long time) {
40 | return time / 1000000L;
41 | }
42 |
43 | public long convertToNS(long time) {
44 | return time * 1000000L;
45 | }
46 |
47 | public boolean passedMillis(Integer integer) {
48 | return false;
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/TimerUtilsbanana.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import meteordevelopment.meteorclient.utils.world.TickRate;
4 |
5 | public class TimerUtilsbanana {
6 | private long nanoTime = -1L;
7 |
8 | public void reset() {
9 | nanoTime = System.nanoTime();
10 | }
11 |
12 | // Set Times
13 | public void setTicks(long ticks) { nanoTime = System.nanoTime() - convertTicksToNano(ticks); }
14 | public void setNano(long time) { nanoTime = System.nanoTime() - time; }
15 | public void setMicro(long time) { nanoTime = System.nanoTime() - convertMicroToNano(time); }
16 | public void setMillis(long time) { nanoTime = System.nanoTime() - convertMillisToNano(time); }
17 | public void setSec(long time) { nanoTime = System.nanoTime() - convertSecToNano(time); }
18 |
19 |
20 | // Get Times
21 | public long getTicks() { return convertNanoToTicks(nanoTime); }
22 | public long getNano() { return nanoTime; }
23 | public long getMicro() { return convertNanoToMicro(nanoTime); }
24 | public long getMillis() { return convertNanoToMillis(nanoTime); }
25 | public long getSec() { return convertNanoToSec(nanoTime); }
26 |
27 |
28 | // Passed Time
29 | public boolean passedTicks(long ticks) { return passedNano(convertTicksToNano(ticks)); }
30 | public boolean passedNano(long time) { return System.nanoTime() - nanoTime >= time; }
31 | public boolean passedMicro(long time) { return passedNano(convertMicroToNano(time)); }
32 | public boolean passedMillis(long time) { return passedNano(convertMillisToNano(time)); }
33 | public boolean passedSec(long time) { return passedNano(convertSecToNano(time)); }
34 |
35 |
36 | // Tick Conversions
37 | public long convertMillisToTicks(long time) { return time / 50; }
38 | public long convertTicksToMillis(long ticks) { return ticks * 50; }
39 | public long convertNanoToTicks(long time) { return convertMillisToTicks(convertNanoToMillis(time)); }
40 | public long convertTicksToNano(long ticks) { return convertMillisToNano(convertTicksToMillis(ticks)); }
41 |
42 |
43 | // All Conversions To Smaller
44 | public long convertSecToMillis(long time) { return time * 1000L; }
45 | public long convertSecToMicro(long time) { return convertMillisToMicro(convertSecToMillis(time)); }
46 | public long convertSecToNano(long time) { return convertMicroToNano(convertMillisToMicro(convertSecToMillis(time))); }
47 |
48 | public long convertMillisToMicro(long time) { return time * 1000L; }
49 | public long convertMillisToNano(long time) { return convertMicroToNano(convertMillisToMicro(time)); }
50 |
51 | public long convertMicroToNano(long time) { return time * 1000L; }
52 |
53 |
54 | // All Conversions To Larger
55 | public long convertNanoToMicro(long time) { return time / 1000L; }
56 | public long convertNanoToMillis(long time) { return convertMicroToMillis(convertNanoToMicro(time)); }
57 | public long convertNanoToSec(long time) { return convertMillisToSec(convertMicroToMillis(convertNanoToMicro(time))); }
58 |
59 | public long convertMicroToMillis(long time) { return time / 1000L; }
60 | public long convertMicroToSec(long time) { return convertMillisToSec(convertMicroToMillis(time)); }
61 |
62 | public long convertMillisToSec(long time) { return time / 1000L; }
63 |
64 |
65 | // Syncs
66 | public static double getTPSMatch(boolean TPSSync) {
67 | return TPSSync ? (TickRate.INSTANCE.getTickRate() / 20) : 1;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Utili.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import com.example.addon.Utils.bbc.world.BlockPosX;
4 | import net.minecraft.entity.Entity;
5 | import net.minecraft.entity.player.PlayerEntity;
6 | import net.minecraft.util.math.BlockPos;
7 | import net.minecraft.util.math.Box;
8 | import net.minecraft.util.math.Direction;
9 | import net.minecraft.util.math.MathHelper;
10 |
11 | import java.util.ArrayList;
12 | import java.util.List;
13 |
14 | import static meteordevelopment.meteorclient.MeteorClient.mc;
15 |
16 | public class Utili {
17 | public static List getSphere(BlockPos centerPos, double radius, double height) {
18 | List blocks = new ArrayList<>();
19 |
20 | for (int i = centerPos.getX() - (int) radius; i < centerPos.getX() + radius; i++) {
21 | for (int j = centerPos.getY() - (int) height; j < centerPos.getY() + height; j++) {
22 | for (int k = centerPos.getZ() - (int) radius; k < centerPos.getZ() + radius; k++) {
23 | BlockPosX pos = new BlockPosX(i, j, k);
24 |
25 | if (distanceTo(centerPos, pos) <= radius && !blocks.contains(pos)) blocks.add(pos);
26 | }
27 | }
28 | }
29 |
30 | return blocks;
31 | }
32 |
33 | public static boolean isSurrounded(PlayerEntity player) {
34 | List positions = new ArrayList<>();
35 | List getEntityBoxes;
36 |
37 | for (BlockPosX blockPos : getSphere(player.getBlockPos(), 3, 1)) {
38 | if (!blockPos.replaceable()) continue;
39 | getEntityBoxes = mc.world.getOtherEntities(null, blockPos.box(), entity -> entity == player);
40 | if (!getEntityBoxes.isEmpty()) continue;
41 |
42 | for (Direction direction : Direction.values()) {
43 | if (direction == Direction.UP || direction == Direction.DOWN) continue;
44 |
45 | getEntityBoxes = mc.world.getOtherEntities(null, blockPos.offset(direction).box(), entity -> entity == player);
46 | if (!getEntityBoxes.isEmpty()) positions.add(blockPos);
47 | }
48 | }
49 |
50 | return positions.isEmpty();
51 | }
52 |
53 | private static double distanceTo(BlockPos blockPos1, BlockPos blockPos2) {
54 | double d = blockPos1.getX() - blockPos2.getX();
55 | double e = blockPos1.getY() - blockPos2.getY();
56 | double f = blockPos1.getZ() - blockPos2.getZ();
57 | return MathHelper.sqrt((float) (d * d + e * e + f * f));
58 | }
59 |
60 | public static ArrayList getSurroundBlocks(PlayerEntity player) {
61 | ArrayList positions = new ArrayList<>();
62 | List getEntityBoxes;
63 |
64 | for (BlockPos blockPos : getSphere(player.getBlockPos(), 3, 1)) {
65 | getEntityBoxes = mc.world.getOtherEntities(null, new Box(blockPos), entity -> entity == player);
66 | if (!getEntityBoxes.isEmpty()) continue;
67 |
68 | for (Direction direction : Direction.values()) {
69 | if (direction == Direction.UP || direction == Direction.DOWN) continue;
70 |
71 | getEntityBoxes = mc.world.getOtherEntities(null, new Box(blockPos.offset(direction)), entity -> entity == player);
72 | if (!getEntityBoxes.isEmpty()) positions.add(blockPos);
73 | }
74 | }
75 |
76 | return positions;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/Vec3dInfo.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.entity.player.PlayerEntity;
4 | import net.minecraft.util.math.BlockPos;
5 | import net.minecraft.util.math.MathHelper;
6 | import net.minecraft.util.math.Vec3d;
7 |
8 | import static meteordevelopment.meteorclient.MeteorClient.mc;
9 |
10 | public class Vec3dInfo {
11 |
12 | //немного про век3д
13 | public static boolean isInRange(Vec3d vec3d, double radius) {return vec3d.isInRange(vec3d, radius);}
14 | public static boolean isWithinRange(Vec3d vec3d, double range) {return mc.player.getBlockPos().isWithinDistance(vec3d, range);}
15 | public static Vec3d add(Vec3d vec3d, Vec3d added) {return new Vec3d(vec3d.add(added).getX(), vec3d.add(added).getY(), vec3d.add(added).getZ());}
16 | public static Vec3d add(Vec3d vec3d, double x, double y, double z) {return new Vec3d(vec3d.add(x, y, z).getX(), vec3d.add(x, y, z).getY(), vec3d.add(x, y, z).getZ());}
17 | public static double X(Vec3d vec3d) {return vec3d.getX();}
18 | public static double Y(Vec3d vec3d) {return vec3d.getY();}
19 | public static double Z(Vec3d vec3d) {return vec3d.getZ();}
20 | public static boolean notNull(Vec3d vec3d) {return vec3d != null;}
21 |
22 | public static Vec3d getEyeVec(PlayerEntity entity) {return entity.getPos().add(0, entity.getEyeHeight(entity.getPose()), 0);}
23 | public static Vec3d closestVec3d(BlockPos blockpos) {
24 | if (blockpos == null) return new Vec3d(0.0, 0.0, 0.0);
25 | double x = MathHelper.clamp((mc.player.getX() - blockpos.getX()), 0.0, 1.0);
26 | double y = MathHelper.clamp((mc.player.getY() - blockpos.getY()), 0.0, 0.6);
27 | double z = MathHelper.clamp((mc.player.getZ() - blockpos.getZ()), 0.0, 1.0);
28 | return new Vec3d(blockpos.getX() + x, blockpos.getY() + y, blockpos.getZ() + z);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/Utils/VillagerEntityAccessor.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.Utils;
2 |
3 | import net.minecraft.entity.passive.VillagerEntity;
4 | import org.spongepowered.asm.mixin.Mixin;
5 | import org.spongepowered.asm.mixin.gen.Accessor;
6 |
7 | @Mixin(VillagerEntity.class)
8 | public interface VillagerEntityAccessor {
9 | @Accessor
10 | long getLastRestockTime();
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackPVP/AntiBurrow.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackPVP;
2 | //created by jabronyyy
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.InvUtils;
10 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.entity.player.PlayerEntity;
13 | import net.minecraft.item.Items;
14 |
15 | public class AntiBurrow extends Module {
16 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
17 |
18 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
19 | .name("target-range")
20 | .description("The maximum distance to target players.")
21 | .defaultValue(4)
22 | .range(0, 5)
23 | .sliderMax(5)
24 | .build()
25 | );
26 |
27 | private final Setting priority = sgGeneral.add(new EnumSetting.Builder()
28 | .name("target-priority")
29 | .description("How to filter targets within range.")
30 | .defaultValue(SortPriority.LowestDistance)
31 | .build()
32 | );
33 |
34 |
35 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
36 | .name("rotate")
37 | .description("Rotates towards the buttons when placing.")
38 | .defaultValue(true)
39 | .build()
40 | );
41 |
42 | private PlayerEntity target = null;
43 |
44 | public AntiBurrow() {
45 | super(Addon.combat, "AntiBurrow", "Automatically places button in burrow to your opponent.");
46 | }
47 |
48 | @EventHandler
49 | private void onTick(TickEvent.Pre event) {
50 | if (TargetUtils.isBadTarget(target, range.get())) {
51 | target = TargetUtils.getPlayerTarget(range.get(), priority.get());
52 | if (TargetUtils.isBadTarget(target, range.get())) return;
53 | }
54 |
55 | BlockUtils.place(target.getBlockPos(), InvUtils.findInHotbar(Items.STONE_BUTTON), rotate.get(), 0, false);
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackPVP/AntiCrystal.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackPVP;
2 |
3 | import com.example.addon.Addon;
4 | import com.google.common.collect.Streams;
5 | import meteordevelopment.orbit.EventHandler;
6 | import meteordevelopment.meteorclient.events.world.TickEvent;
7 | import meteordevelopment.meteorclient.systems.modules.Module;
8 | import meteordevelopment.meteorclient.settings.BoolSetting;
9 | import meteordevelopment.meteorclient.settings.DoubleSetting;
10 | import meteordevelopment.meteorclient.settings.EnumSetting;
11 | import meteordevelopment.meteorclient.settings.Setting;
12 | import meteordevelopment.meteorclient.settings.SettingGroup;
13 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
14 | import meteordevelopment.meteorclient.utils.player.InvUtils;
15 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
16 |
17 | import net.minecraft.entity.decoration.EndCrystalEntity;
18 | import net.minecraft.item.Item;
19 | import net.minecraft.item.Items;
20 |
21 |
22 | import java.util.Comparator;
23 | import java.util.Optional;
24 |
25 | public class AntiCrystal extends Module {
26 |
27 | public enum Mode {
28 | PressurePlate,
29 | Button
30 | }
31 |
32 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
33 |
34 | private final Setting mode = sgGeneral.add(new EnumSetting.Builder()
35 | .name("mode")
36 | .description("The mode at which AntiCrystal operates.")
37 | .defaultValue(Mode.PressurePlate)
38 | .build()
39 | );
40 |
41 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder()
42 | .name("range")
43 | .description("The range to place Pressure Plates/Buttons.")
44 | .min(1)
45 | .max(10)
46 | .defaultValue(1)
47 | .build()
48 | );
49 |
50 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder()
51 | .name("rotate")
52 | .description("Rotate.")
53 | .defaultValue(true)
54 | .build()
55 | );
56 |
57 | public AntiCrystal() {
58 | super(Addon.combat, "anti-crystal", "Stops End Crystals from doing damage to you.");
59 | }
60 |
61 | private static final Item[] BUTTONS = { Items.ACACIA_BUTTON, Items.BIRCH_BUTTON, Items.CRIMSON_BUTTON, Items.DARK_OAK_BUTTON, Items.JUNGLE_BUTTON, Items.OAK_BUTTON, Items.POLISHED_BLACKSTONE_BUTTON, Items.SPRUCE_BUTTON, Items.STONE_BUTTON, Items.WARPED_BUTTON };
62 | private static final Item[] PLATES = { Items.ACACIA_PRESSURE_PLATE, Items.BIRCH_PRESSURE_PLATE, Items.CRIMSON_PRESSURE_PLATE, Items.DARK_OAK_PRESSURE_PLATE, Items.JUNGLE_PRESSURE_PLATE, Items.OAK_PRESSURE_PLATE, Items.POLISHED_BLACKSTONE_PRESSURE_PLATE, Items.SPRUCE_PRESSURE_PLATE, Items.STONE_PRESSURE_PLATE, Items.WARPED_PRESSURE_PLATE};
63 |
64 | @EventHandler
65 | private void onTick(TickEvent.Post event) {
66 | assert mc.world != null;
67 | assert mc.player != null;
68 |
69 | Optional crystalTarget = Streams.stream(mc.world.getEntities())
70 | .filter(e -> (e instanceof EndCrystalEntity))
71 | .filter(e -> e.distanceTo(mc.player) <= range.get() * 2)
72 | .filter(e -> mc.world.getBlockState(e.getBlockPos()).isAir())
73 | .min(Comparator.comparingDouble(o -> o.distanceTo(mc.player)))
74 | .map(e -> (EndCrystalEntity) e);
75 |
76 | crystalTarget.ifPresent(crystal -> {
77 |
78 | if (mode.get() == Mode.PressurePlate) {
79 | FindItemResult result = InvUtils.find(PLATES);
80 | if (!result.found()) return;
81 | BlockUtils.place(crystal.getBlockPos(), result, rotate.get(), 100);
82 | } else if (mode.get() == Mode.Button) {
83 | FindItemResult result = InvUtils.find(BUTTONS);
84 | if (!result.found()) return;
85 | BlockUtils.place(crystal.getBlockPos(), result, rotate.get(), 100);
86 | }
87 | });
88 |
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackPVP/AntiSurroundBlocks.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackPVP;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.*;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.entity.SortPriority;
8 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
9 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
10 | import meteordevelopment.meteorclient.utils.player.InvUtils;
11 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.minecraft.entity.player.PlayerEntity;
14 | import net.minecraft.item.Items;
15 | import net.minecraft.util.math.BlockPos;
16 | import net.minecraft.util.math.Direction;
17 | /*
18 | @Author Ya_pank
19 | not sunochek code
20 | */
21 |
22 | public class AntiSurroundBlocks extends Module {
23 | public enum Mode {Button, Web, Lever, Glass, String}
24 |
25 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
26 | private final SettingGroup sgMode = settings.createGroup("Mode");
27 |
28 | private final Setting range = sgGeneral.add(new DoubleSetting.Builder().name("Range").description("The maximum distance to target players/place range.").defaultValue(4).range(0, 5).sliderMax(5).build());
29 | private final Setting rotate = sgGeneral.add(new BoolSetting.Builder().name("Rotate").description("Rotates when placing.").defaultValue(true).build());
30 | private final Setting disable = sgGeneral.add(new BoolSetting.Builder().name("AutoDisable").description("Disabling after place.").defaultValue(true).build());
31 | //private final Setting support = sgGeneral.add(new BoolSetting.Builder().name("Support").description("PLacing Obsidian in bottom.").defaultValue(false).build());
32 | //modes
33 | public final Setting mode = sgMode.add(new EnumSetting.Builder().name("Mode").description("AntiSurroundBlocks mode.").defaultValue(AntiSurroundBlocks.Mode.Button).build());
34 | //render
35 |
36 | private PlayerEntity target;
37 | private FindItemResult item;
38 | private BlockPos pos;
39 |
40 |
41 | public AntiSurroundBlocks() {
42 | super(Addon.combat, "AntiSurroundBlocks", "Automatically trying to fuck players surround.");
43 | }
44 |
45 | @Override
46 | public void onActivate() {
47 | target = null;
48 | pos = null;
49 | }
50 |
51 | @EventHandler
52 | private void onTick(TickEvent.Pre event) {
53 | target = TargetUtils.getPlayerTarget(range.get(), SortPriority.LowestDistance);
54 | if (target == null) return;
55 | pos = target.getBlockPos();
56 | switch (mode.get()) {
57 | case Button -> item = InvUtils.findInHotbar(Items.CRIMSON_BUTTON);
58 | case Web -> item = InvUtils.findInHotbar(Items.COBWEB);
59 | case Glass -> item = InvUtils.findInHotbar(Items.GLASS_PANE);
60 | case Lever -> item = InvUtils.findInHotbar(Items.LEVER);
61 | case String -> item = InvUtils.findInHotbar(Items.STRING);
62 | }
63 | /*
64 | if (support.get()) {
65 | doPlace(target.getBlockPos().down(), InvUtils.findInHotbar(Items.OBSIDIAN));
66 | }
67 | */
68 |
69 | for (Direction dir : Direction.values()) {
70 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
71 | boolean canPlace = BlockUtils.canPlace(pos.offset(dir));
72 | if (canPlace) {
73 | doPlace(target.getBlockPos(), item);
74 | if (disable.get()) {
75 | toggle();
76 | }
77 | return;
78 | }
79 | }
80 | }
81 |
82 | private void doPlace(BlockPos blockPos, FindItemResult findItemResult) {
83 | if (mode.get().equals(Mode.Button) || mode.get().equals(Mode.Web) || mode.get().equals(Mode.Glass) || mode.get().equals(Mode.String)) {
84 | for (Direction dir : Direction.values()) {
85 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
86 | BlockUtils.place(pos.offset(dir), item, rotate.get(), 0);
87 | }
88 | } else {
89 | for (Direction dir : Direction.values()) {
90 | if (dir == Direction.DOWN || dir == Direction.UP) continue;
91 | BlockUtils.place(pos.offset(dir).down(), item, rotate.get(), 0);
92 | }
93 | }
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackPVP/AutoEz.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackPVP;
2 |
3 | import com.example.addon.Addon;
4 | import it.unimi.dsi.fastutil.objects.Object2IntMap;
5 | import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
6 | import meteordevelopment.meteorclient.events.game.GameJoinedEvent;
7 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
8 | import meteordevelopment.meteorclient.events.world.TickEvent;
9 | import meteordevelopment.meteorclient.settings.*;
10 | import meteordevelopment.meteorclient.systems.friends.Friends;
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 | import net.minecraft.util.Formatting;
19 |
20 | import java.util.List;
21 | import java.util.Random;
22 | import java.util.UUID;
23 |
24 | public class AutoEz extends Module {
25 | private final SettingGroup sgEz = settings.getDefaultGroup();
26 | private final Setting messages = sgEz.add(new StringSetting.Builder().name("messages").defaultValue("Ez").build());
27 | private final Setting ignoreFriends = sgEz.add(new BoolSetting.Builder().name("ignore-friends").defaultValue(true).build());
28 |
29 | private final Object2IntMap totemPopMap = new Object2IntOpenHashMap<>();
30 | private final Object2IntMap chatIdMap = new Object2IntOpenHashMap<>();
31 | private final Random random = new Random();
32 |
33 | public AutoEz() {
34 | super(Addon.combat, "auto-ez", " ");
35 | }
36 |
37 | @Override
38 | public void onActivate() {
39 | totemPopMap.clear();
40 | chatIdMap.clear();
41 | }
42 |
43 | @EventHandler
44 | private void onGameJoin(GameJoinedEvent event) {
45 | totemPopMap.clear();
46 | chatIdMap.clear();
47 | }
48 |
49 | @EventHandler
50 | private void onReceivePacket(PacketEvent.Receive event) {
51 | if (!(event.packet instanceof EntityStatusS2CPacket p)) return;
52 |
53 | if (p.getStatus() != 35) return;
54 |
55 | Entity entity = p.getEntity(mc.world);
56 |
57 | if (!(entity instanceof PlayerEntity)) return;
58 |
59 | if (entity.equals(mc.player)
60 | || (Friends.get().isFriend(((PlayerEntity) entity)) && ignoreFriends.get())
61 | ) return;
62 |
63 | synchronized (totemPopMap) {
64 | int pops = totemPopMap.getOrDefault(entity.getUuid(), 0);
65 | totemPopMap.put(entity.getUuid(), ++pops);
66 | }
67 | }
68 |
69 | @EventHandler
70 | private void onTick(TickEvent.Post event) {
71 | synchronized (totemPopMap) {
72 | for (PlayerEntity player : mc.world.getPlayers()) {
73 | if (!totemPopMap.containsKey(player.getUuid())) continue;
74 | if (player.deathTime > 0 || player.getHealth() <= 0) {
75 | int pops = totemPopMap.removeInt(player.getUuid());
76 | String text = messages.get();
77 | mc.player.sendChatMessage(text);
78 | chatIdMap.removeInt(player.getUuid());
79 | }
80 | }
81 | }
82 | }
83 |
84 | private int getChatId(Entity entity) {
85 | return chatIdMap.computeIfAbsent(entity.getUuid(), value -> random.nextInt());
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackPVP/SelfAnvilBEBRA.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackPVP;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BlockListSetting;
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.meteorclient.utils.player.InvUtils;
11 | import meteordevelopment.meteorclient.utils.player.PlayerUtils;
12 | import meteordevelopment.meteorclient.utils.world.BlockUtils;
13 | import meteordevelopment.orbit.EventHandler;
14 | import net.minecraft.block.Block;
15 | import net.minecraft.block.BlockState;
16 | import net.minecraft.block.Blocks;
17 | import net.minecraft.util.math.BlockPos;
18 | import java.util.Collections;
19 | import java.util.List;
20 |
21 | public class SelfAnvilBEBRA extends Module {
22 | //private final SettingGroup sgGeneral = settings.createGroup("general");
23 |
24 | //private final Setting oneAnvil = sgGeneral.add(new BoolSetting.Builder().name("one").description("For no airplace servers.").defaultValue(false).build());
25 |
26 | //private final Setting NoAirPlace = sgGeneral.add(new BoolSetting.Builder().name("NoAirPlace").description("For no airplace servers.").defaultValue(false).build());
27 | private final SettingGroup sgMisc = settings.createGroup("Misc");
28 |
29 | private final Setting checkEntity = sgMisc.add(new BoolSetting.Builder().name("check-entity").description("entity check").defaultValue(true).build());
30 | private final Setting center = sgMisc.add(new BoolSetting.Builder().name("center").description("Teleports you to the center of the block.").defaultValue(true).build());
31 |
32 | private final Setting disableOnYChange = sgMisc.add(new BoolSetting.Builder().name("disable-on-y-change").description("Automatically disables when your y level (step, jumping, atc).").defaultValue(false).build());
33 | private final Setting rotate = sgMisc.add(new BoolSetting.Builder().name("rotate").description("Automatically faces towards the Anvil being placed.").defaultValue(false).build());
34 | private final Setting
> blocks = sgMisc.add(new BlockListSetting.Builder().name("block").description("What blocks to use for surround.").defaultValue(Collections.singletonList(Blocks.ANVIL)).filter(this::blockFilter).build());
35 |
36 | private final BlockPos.Mutable blockPos = new BlockPos.Mutable();
37 | private boolean return_;
38 |
39 | public SelfAnvilBEBRA() {
40 | super(Addon.combat, "AutoAnvilBEBRA", "puts in throws off anvils on you");
41 | }
42 |
43 | @Override
44 | public void onActivate() {
45 | if (center.get()) PlayerUtils.centerPlayer();
46 | }
47 |
48 | @EventHandler
49 | private void onTick(TickEvent.Pre event) {
50 |
51 | place(0, 2, 0);
52 | if (return_) return;
53 |
54 | /*
55 | if(oneAnvil .get()) {
56 | place(0, 2, 0);
57 | toggle();
58 | }
59 |
60 | */
61 | }
62 |
63 | private boolean blockFilter(Block block) {
64 | return block.getBlastResistance() >= 600;
65 | }
66 |
67 | private boolean place(int x, int y, int z) {
68 | setBlockPos(x, y, z);
69 | BlockState blockState = mc.world.getBlockState(blockPos);
70 | if (!blockState.getMaterial().isReplaceable()) return true;
71 | if (BlockUtils.place(blockPos, InvUtils.findInHotbar(itemStack -> blocks.get().contains(Block.getBlockFromItem(itemStack.getItem()))), rotate.get(), 100, checkEntity.get())) {
72 | return_ = true;
73 | }
74 | return false;
75 | }
76 |
77 | private void setBlockPos(int x, int y, int z) {
78 | blockPos.set(mc.player.getX() + x, mc.player.getY() + y, mc.player.getZ() + z);
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackRender/BurrowESP.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackRender;
2 | /*
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Categories;
5 | import com.example.addon.Utils.BEntityUtils;
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.entity.SortPriority;
12 | import meteordevelopment.meteorclient.utils.entity.TargetUtils;
13 | import meteordevelopment.meteorclient.utils.render.color.SettingColor;
14 | import meteordevelopment.orbit.EventHandler;
15 | import net.minecraft.entity.player.PlayerEntity;
16 | import net.minecraft.util.math.BlockPos;
17 |
18 | public class BurrowESP extends Module {
19 | private final SettingGroup sgRender = settings.createGroup("Render");
20 |
21 |
22 | // Render
23 | private final Setting shapeMode = sgRender.add(new EnumSetting.Builder()
24 | .name("shape-mode")
25 | .description("How the shapes are rendered.")
26 | .defaultValue(ShapeMode.Both)
27 | .build()
28 | );
29 |
30 | private final Setting sideColor = sgRender.add(new ColorSetting.Builder()
31 | .name("side-color")
32 | .description("The side color of the rendering.")
33 | .defaultValue(new SettingColor(230, 0, 255, 5))
34 | .visible(() -> shapeMode.get() != ShapeMode.Lines)
35 | .build()
36 | );
37 |
38 | private final Setting lineColor = sgRender.add(new ColorSetting.Builder()
39 | .name("line-color")
40 | .description("The line color of the rendering.")
41 | .defaultValue(new SettingColor(250, 0, 255, 255))
42 | .visible(() -> shapeMode.get() != ShapeMode.Sides)
43 | .build()
44 | );
45 |
46 | private final Setting renderWebbed = sgRender.add(new BoolSetting.Builder()
47 | .name("Render webbed")
48 | .description("Will render if the target is webbed.")
49 | .defaultValue(true)
50 | .build()
51 | );
52 |
53 | private final Setting webSideColor = sgRender.add(new ColorSetting.Builder()
54 | .name("web-side-color")
55 | .description("The side color of the rendering for webs.")
56 | .defaultValue(new SettingColor(240, 250, 65, 35))
57 | .visible(() -> shapeMode.get() != ShapeMode.Lines && renderWebbed.get())
58 | .build()
59 | );
60 |
61 | private final Setting webLineColor = sgRender.add(new ColorSetting.Builder()
62 | .name("web-line-color")
63 | .description("The line color of the rendering for webs.")
64 | .defaultValue(new SettingColor(0, 0, 0, 0))
65 | .visible(() -> shapeMode.get() != ShapeMode.Sides && renderWebbed.get())
66 | .build()
67 | );
68 |
69 |
70 | public BurrowESP() {
71 | super(Addon.render, "Burrow-ESP", "Displays if the closest target to you is burrowed / webbed.");
72 | }
73 |
74 |
75 | public BlockPos target;
76 | public boolean isTargetWebbed;
77 | public boolean isTargetBurrowed;
78 |
79 | @EventHandler
80 | private void onTick(TickEvent.Post event) {
81 | PlayerEntity targetEntity = TargetUtils.getPlayerTarget(mc.interactionManager.getReachDistance() + 2, SortPriority.LowestDistance);
82 |
83 | if (TargetUtils.isBadTarget(targetEntity, mc.interactionManager.getReachDistance() + 2)) {
84 | target = null;
85 | } else if (renderWebbed.get() && BEntityUtils.isWebbed(targetEntity)) {
86 | target = targetEntity.getBlockPos();
87 | } else if (BEntityUtils.isBurrowed(targetEntity, BEntityUtils.BlastResistantType.Any)) {
88 | target = targetEntity.getBlockPos();
89 | } else target = null;
90 |
91 | isTargetWebbed = (target != null && BEntityUtils.isWebbed(targetEntity));
92 | isTargetBurrowed = (target != null && BEntityUtils.isBurrowed(targetEntity, BEntityUtils.BlastResistantType.Any));
93 | }
94 |
95 | @EventHandler
96 | private void onRender(Render3DEvent event) {
97 | if (target == null) return;
98 | if (isTargetWebbed) event.renderer.box(target, webSideColor.get(), webLineColor.get(), shapeMode.get(), 0);
99 | else if (isTargetBurrowed) event.renderer.box(target, sideColor.get(), lineColor.get(), shapeMode.get(), 0);
100 | }
101 | }
102 |
103 | */
104 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackRender/Confetti.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackRender;
2 | /*
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 | import meteordevelopment.meteorclient.settings.ColorSetting;
6 | import meteordevelopment.meteorclient.settings.Setting;
7 | import meteordevelopment.meteorclient.settings.SettingGroup;
8 | import meteordevelopment.meteorclient.utils.render.color.SettingColor;
9 | import net.minecraft.util.math.Vec3d;
10 |
11 |
12 | public class Confetti extends Module {
13 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
14 |
15 | private final Setting colorOne = sgGeneral.add(new ColorSetting.Builder()
16 | .name("color-one")
17 | .description("The first confetti color to change.")
18 | .defaultValue(new SettingColor(102, 0, 0, 255))
19 | .build()
20 | );
21 |
22 | private final Setting colorTwo = sgGeneral.add(new ColorSetting.Builder()
23 | .name("color-two")
24 | .description("The second confetti color to change.")
25 | .defaultValue(new SettingColor(102, 0, 0, 255))
26 | .build()
27 | );
28 |
29 | public Confetti() {
30 | super(Addon.render, "confetti", "Changes the color of the totem pop particles.");
31 | }
32 |
33 | public Vec3d getColorOne() {
34 | return getDoubleVectorColor(colorOne);
35 | }
36 |
37 | public Vec3d getColorTwo() {
38 | return getDoubleVectorColor(colorTwo);
39 | }
40 |
41 | public Vec3d getDoubleVectorColor(Setting colorSetting) {
42 | return new Vec3d((double) colorSetting.get().r / 255, (double) colorSetting.get().g / 255, (double) colorSetting.get().b / 255);
43 | }
44 | }
45 |
46 |
47 | */
48 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackRender/KillEffects.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackRender;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Categories;
5 | import com.example.addon.Utils.BWorldUtils;
6 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
7 | import meteordevelopment.meteorclient.settings.BoolSetting;
8 | import meteordevelopment.meteorclient.settings.IntSetting;
9 | import meteordevelopment.meteorclient.settings.Setting;
10 | import meteordevelopment.meteorclient.settings.SettingGroup;
11 | import meteordevelopment.meteorclient.systems.modules.Module;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.minecraft.entity.Entity;
14 |
15 | import static com.example.addon.Utils.BEntityUtils.deadEntity;
16 | import static com.example.addon.Utils.BEntityUtils.isDeathPacket;
17 |
18 | public class KillEffects extends Module {
19 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
20 |
21 |
22 | // General
23 | private final Setting range = sgGeneral.add(new IntSetting.Builder()
24 | .name("range")
25 | .description("How far away the lightning is allowed to spawn from you.")
26 | .defaultValue(16)
27 | .sliderRange(0,256)
28 | .build()
29 | );
30 |
31 | private final Setting avoidSelf = sgGeneral.add(new BoolSetting.Builder()
32 | .name("avoid-self")
33 | .description("Will not render your own deaths.")
34 | .defaultValue(true)
35 | .build()
36 | );
37 |
38 |
39 | public KillEffects() {
40 | super(Addon.render, "kill-effects", "Spawns a lightning where a player dies.");
41 | }
42 |
43 |
44 | @EventHandler
45 | private void onReceivePacket(PacketEvent.Receive event) {
46 | if (isDeathPacket(event)) {
47 | Entity player = deadEntity;
48 | if (player == mc.player && avoidSelf.get()) return;
49 | if (mc.player.distanceTo(player) > range.get()) return;
50 |
51 | double playerX = player.getX();
52 | double playerY = player.getY();
53 | double playerZ = player.getZ();
54 |
55 | BWorldUtils.spawnLightning(playerX, playerY, playerZ);
56 | }
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/BebraHackRender/TimeAnimator.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.BebraHackRender;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.packets.PacketEvent;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.settings.IntSetting;
7 | import meteordevelopment.meteorclient.settings.Setting;
8 | import meteordevelopment.meteorclient.settings.SettingGroup;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 | import meteordevelopment.orbit.EventHandler;
11 | import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket;
12 |
13 | public class TimeAnimator extends Module {
14 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
15 |
16 |
17 | // General
18 | private final Setting speed = sgGeneral.add(new IntSetting.Builder()
19 | .name("speed")
20 | .description("How fast the day and night cycle should be.")
21 | .defaultValue(100)
22 | .sliderRange(1, 500)
23 | .build()
24 | );
25 |
26 |
27 | public TimeAnimator() {
28 | super(Addon.render, "time-animator", "Speeds up the day and night cycle.");
29 | }
30 |
31 |
32 | private long timer;
33 |
34 |
35 | @Override
36 | public void onActivate() {
37 | mc.world.setTimeOfDay(mc.world.getTime());
38 | timer = 0;
39 | }
40 |
41 | @Override
42 | public void onDeactivate() {
43 | mc.world.setTimeOfDay(mc.world.getTime());
44 | timer = 0;
45 | }
46 |
47 | @EventHandler
48 | private void onPacketReceive(PacketEvent.Receive event) {
49 | if (event.packet instanceof WorldTimeUpdateS2CPacket) {
50 | event.cancel();
51 | }
52 | }
53 |
54 | @EventHandler
55 | private void onTick(TickEvent.Post event) {
56 | timer ++;
57 | mc.world.setTimeOfDay(timer * (speed.get()));
58 |
59 | if (mc.world.getTimeOfDay() >= 24000 || mc.world.getTimeOfDay() <= -24000){
60 | timer = 0;
61 | mc.world.setTimeOfDay(0);
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/hud/Killfeed.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.hud;
2 |
3 | import com.example.addon.Addon;
4 | import com.example.addon.Utils.Formatter;
5 | import meteordevelopment.meteorclient.systems.hud.Alignment;
6 | import meteordevelopment.meteorclient.systems.hud.Hud;
7 | import meteordevelopment.meteorclient.systems.hud.HudRenderer;
8 | import meteordevelopment.meteorclient.systems.hud.HudElement;
9 | import meteordevelopment.meteorclient.systems.hud.HudElementInfo;
10 |
11 | import java.util.ArrayList;
12 |
13 | public class Killfeed extends HudElement {
14 |
15 | public static final HudElementInfo INFO = new HudElementInfo<>(Addon.HUD_GROUP, "killfeed", "Display a list of your kills", Killfeed::new);
16 |
17 | private final ArrayList feed = new ArrayList<>();
18 |
19 | private void updateFeed() {
20 | feed.clear();
21 | if (Formatter.hasKillFeed()) feed.addAll(Formatter.getKillFeed());
22 | }
23 |
24 | public Killfeed() {
25 | super(INFO);
26 | }
27 |
28 | @Override
29 | public void tick(HudRenderer renderer) {
30 | updateFeed();
31 | double width = 0;
32 | double height = 0;
33 | int i = 0;
34 | if (feed.isEmpty()) {
35 | String t = "Killfeed";
36 | width = Math.max(width, renderer.textWidth(t));
37 | height += renderer.textHeight();
38 | } else {
39 | width = Math.max(width, renderer.textWidth("Killfeed"));
40 | height += renderer.textHeight();
41 | for (String bind : feed) {
42 | width = Math.max(width, renderer.textWidth(bind));
43 | height += renderer.textHeight();
44 | if (i > 0) height += 2;
45 | i++;
46 | }
47 | }
48 | setSize(width, height);
49 | }
50 |
51 | @Override
52 | public void render(HudRenderer renderer) {
53 | Hud hud = Hud.get();
54 | var color = hud.textColors.get().get(0);
55 | updateFeed();
56 | double x = getX();
57 | double y = getY();
58 | if (isInEditor()) {
59 | renderer.text("Killfeed", x, y, color, false);
60 | return;
61 | }
62 | int i = 0;
63 | if (feed.isEmpty()) {
64 | String t = "Killfeed";
65 | renderer.text(t, x + alignX(renderer.textWidth(t), Alignment.Auto), y, color, false);
66 | } else {
67 | renderer.text("Killfeed", x + alignX(renderer.textWidth("Killfeed"), Alignment.Auto), y, color, false);
68 | y += renderer.textHeight();
69 | for (String bind : feed) {
70 | renderer.text(bind, x + alignX(renderer.textWidth(bind), Alignment.Auto), y, color, false);
71 | y += renderer.textHeight();
72 | if (i > 0) y += 2;
73 | i++;
74 | }
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/AutoCraft.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BoolSetting;
6 | import meteordevelopment.meteorclient.settings.ItemListSetting;
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.recipebook.RecipeResultCollection;
12 | import net.minecraft.item.Item;
13 | import net.minecraft.recipe.Recipe;
14 | import net.minecraft.screen.CraftingScreenHandler;
15 | import net.minecraft.screen.slot.SlotActionType;
16 |
17 | import java.util.Arrays;
18 | import java.util.List;
19 |
20 | public class AutoCraft extends Module {
21 |
22 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
23 |
24 | private final Setting> items = sgGeneral.add(new ItemListSetting.Builder()
25 | .name("items")
26 | .description("Items you want to get crafted.")
27 | .defaultValue(Arrays.asList())
28 | .build()
29 | );
30 |
31 | private final Setting antiDesync = sgGeneral.add(new BoolSetting.Builder()
32 | .name("anti-desync")
33 | .description("Try to prevent inventory desync.")
34 | .defaultValue(false)
35 | .build()
36 | );
37 |
38 | private final Setting craftAll = sgGeneral.add(new BoolSetting.Builder()
39 | .name("craft-all")
40 | .description("Crafts maximum possible amount amount per craft (shift-clicking)")
41 | .defaultValue(false)
42 | .build()
43 | );
44 |
45 | private final Setting drop = sgGeneral.add(new BoolSetting.Builder()
46 | .name("drop")
47 | .description("Automatically drops crafted items (useful for when not enough inventory space)")
48 | .defaultValue(false)
49 | .build()
50 | );
51 |
52 | public AutoCraft() {
53 | super(Addon.misc, "auto-craft", "Automatically crafts items.");
54 | }
55 |
56 | @EventHandler
57 | private void onTick(TickEvent.Post event) {
58 | if (mc.interactionManager == null) return;
59 | if (items.get().isEmpty()) return;
60 |
61 | if (!(mc.player.currentScreenHandler instanceof CraftingScreenHandler)) return;
62 |
63 |
64 | if (antiDesync.get())
65 | mc.player.getInventory().updateItems();
66 |
67 | // Danke schön GhostTypes
68 | // https://github.com/GhostTypes/orion/blob/main/src/main/java/me/ghosttypes/orion/modules/main/AutoBedCraft.java
69 | CraftingScreenHandler currentScreenHandler = (CraftingScreenHandler) mc.player.currentScreenHandler;
70 | List- itemList = items.get();
71 | List recipeResultCollectionList = mc.player.getRecipeBook().getOrderedResults();
72 | for (RecipeResultCollection recipeResultCollection : recipeResultCollectionList) {
73 | for (Recipe> recipe : recipeResultCollection.getRecipes(true)) {
74 | if (!itemList.contains(recipe.getOutput().getItem())) continue;
75 | mc.interactionManager.clickRecipe(currentScreenHandler.syncId, recipe, craftAll.get());
76 | mc.interactionManager.clickSlot(currentScreenHandler.syncId, 0, 1,
77 | drop.get() ? SlotActionType.THROW : SlotActionType.QUICK_MOVE, mc.player);
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/AutoLogin.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.game.GameLeftEvent;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.settings.*;
7 | import meteordevelopment.meteorclient.systems.modules.Module;
8 | import meteordevelopment.orbit.EventHandler;
9 |
10 | public class AutoLogin extends Module {
11 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
12 |
13 | private final Setting loginCommand = sgGeneral.add(new StringSetting.Builder()
14 | .name("login-command")
15 | .description("Command to login.")
16 | .defaultValue("login 1234")
17 | .build()
18 | );
19 |
20 | private final Setting serverOnly = sgGeneral.add(new BoolSetting.Builder()
21 | .name("server-only")
22 | .description("Use Auto Login only on server.")
23 | .defaultValue(true)
24 | .build()
25 | );
26 |
27 | private final Setting delay = sgGeneral.add(new IntSetting.Builder()
28 | .name("delay")
29 | .description("Delay before send command in ticks (20 ticks = 1 sec).")
30 | .defaultValue(20)
31 | .range(1, 120)
32 | .sliderRange(1, 40)
33 | .build()
34 | );
35 |
36 | boolean work;
37 | private int timer;
38 |
39 | public AutoLogin() {
40 | super(Addon.misc, "auto-login", "Automatically logs in your account.");
41 | }
42 |
43 | @Override
44 | public void onActivate() {
45 | timer = 0;
46 | work = true;
47 | }
48 |
49 | //Shitty code anyway work
50 | @EventHandler
51 | private void onTick(TickEvent.Post event) {
52 | if (serverOnly.get() && mc.getServer() != null && mc.getServer().isSingleplayer()) return;
53 | if (timer >= delay.get() && !loginCommand.get().isEmpty() && work) {
54 | work = false;
55 | mc.player.sendCommand(loginCommand.get().replace("/", ""));
56 | timer = 0;
57 | } else timer ++;
58 | }
59 |
60 | @EventHandler
61 | private void onGameLeft(GameLeftEvent event) {
62 | work = true;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/MEGA_DUPEprank.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import com.example.addon.Utils.Task;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.systems.modules.Module;
7 | import meteordevelopment.meteorclient.utils.Utils;
8 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
9 | import meteordevelopment.meteorclient.utils.player.InvUtils;
10 | import meteordevelopment.meteorclient.utils.player.PlayerUtils;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.block.entity.BlockEntity;
13 | import net.minecraft.block.entity.ChestBlockEntity;
14 | import net.minecraft.item.Items;
15 | import net.minecraft.util.math.BlockPos;
16 |
17 | import java.util.ArrayList;
18 | import java.util.Comparator;
19 |
20 | import static com.example.addon.Utils.BlockInfo.*;
21 | import static com.example.addon.Utils.EntityInfo.getBlockPos;
22 |
23 | public class MEGA_DUPEprank extends Module {
24 | //private final SettingGroup sgGeneral = settings.getDefaultGroup();
25 |
26 | public MEGA_DUPEprank() {
27 | super(Addon.misc, "MEGA_DUPEprank", "Look code.");
28 | }
29 | //функция должна была ломать сундуки и подбирать лут, но майн крашил, поэтому я сделал рофл название, чтобы был хоть какой-то смысл//
30 | //the function was supposed to break chests and pick up loot, but the minecraft was dying, so I made a fan name to make at least some sense//
31 | private FindItemResult axe;
32 | private BlockPos pos;
33 | private int x,y,z;
34 | private Stage stage;
35 |
36 | private final Task chatTask = new Task();
37 |
38 | @Override
39 | public void onActivate() {
40 | stage = Stage.Find;
41 |
42 | chatTask.reset();
43 | pos = null;
44 | }
45 |
46 | @Override
47 | public void onDeactivate() {
48 | mc.player.sendChatMessage("#stop");
49 | }
50 |
51 | @EventHandler
52 | public void onTick(TickEvent.Pre event) {
53 | axe = InvUtils.find(itemStack -> itemStack.getItem() == Items.NETHERITE_AXE || itemStack.getItem() == Items.DIAMOND_AXE);
54 |
55 | switch (stage) {
56 | case Find -> {
57 | pos = findChests();
58 |
59 | if (pos == null) {
60 | chatTask.reset();
61 | stage = Stage.Stuck;
62 | //info("There's no chests in your view distance.");
63 | //toggle();
64 | return;
65 | }
66 |
67 | x = pos.getX();
68 | y = pos.getY();
69 | z = pos.getZ();
70 |
71 | chatTask.reset();
72 | stage = Stage.Move;
73 | }
74 | case Move -> {
75 | chatTask.run(() -> mc.player.sendChatMessage("#goto " + x + " " + y + " " + z));
76 |
77 | if (getBlockPos(mc.player).equals(pos)) stage = Stage.Reset;
78 | }
79 | case Reset -> {
80 | chatTask.reset();
81 |
82 | stage = Stage.Find;
83 | }
84 | case Stuck -> {
85 | if (findChests() != null) stage = Stage.Find;
86 | else chatTask.run(() -> mc.player.sendChatMessage("#goto " + getDirection().getX() + " " + y + " " + getDirection().getZ()));
87 | }
88 | }
89 | }
90 |
91 | private BlockPos getDirection() {
92 | int x = X(mc.player.getBlockPos());
93 | int y = Y(mc.player.getBlockPos());
94 | int z = Z(mc.player.getBlockPos());
95 |
96 | if (x > 0) x = 30000000;
97 | else x = -30000000;
98 |
99 | if (y > 0) y = 30000000;
100 | else y = -30000000;
101 |
102 | return new BlockPos(x,y,z);
103 | }
104 |
105 | private BlockPos findChests() {
106 | ArrayList pos = new ArrayList<>();
107 |
108 | for (BlockEntity entity : Utils.blockEntities()) {
109 | if (entity instanceof ChestBlockEntity chestBlock) {
110 | if (!pos.contains(chestBlock.getPos())) pos.add(chestBlock.getPos());
111 | }
112 | }
113 |
114 | if (pos.isEmpty()) return null;
115 |
116 | pos.sort(Comparator.comparingDouble(PlayerUtils::distanceTo));
117 | return pos.get(0);
118 | }
119 |
120 | public enum Stage {
121 | Find,
122 | Move,
123 | Reset,
124 | Stuck
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/NoDesync.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 |
4 | import com.example.addon.Addon;
5 | import meteordevelopment.meteorclient.events.entity.player.BreakBlockEvent;
6 | import meteordevelopment.meteorclient.events.entity.player.InteractBlockEvent;
7 | import meteordevelopment.meteorclient.settings.BoolSetting;
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.c2s.play.PlayerActionC2SPacket;
13 | import net.minecraft.util.math.BlockPos;
14 | import net.minecraft.util.math.Direction;
15 |
16 | public class NoDesync extends Module {
17 |
18 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
19 |
20 | private final Setting breakBlock = sgGeneral.add(new BoolSetting.Builder().name("break").description("Anti-desync for block breaking.").defaultValue(true).build());
21 | private final Setting placeBlock = sgGeneral.add(new BoolSetting.Builder().name("place").description("Anti-desync for block placing.").defaultValue(true).build());
22 |
23 | public NoDesync() {
24 | super(Addon.misc, "no-desync", "Prevent ghost block placements.");
25 | }
26 |
27 |
28 | @EventHandler
29 | private void onBlockPlace(InteractBlockEvent event) {
30 | if (!placeBlock.get()) return;
31 | BlockPos placePos = event.result.getBlockPos();
32 | if (placePos != null) mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, placePos, Direction.UP));
33 | }
34 |
35 | @EventHandler
36 | private void onBlockBreak(BreakBlockEvent event) {
37 | if (!breakBlock.get()) return;
38 | BlockPos breakPos = event.blockPos;
39 | if (breakPos != null) mc.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, breakPos, Direction.UP));
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/SilentItem.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import com.example.addon.Utils.ArmorUtils;
5 | import meteordevelopment.meteorclient.events.world.TickEvent;
6 | import meteordevelopment.meteorclient.settings.BoolSetting;
7 | import meteordevelopment.meteorclient.settings.EnumSetting;
8 | import meteordevelopment.meteorclient.settings.Setting;
9 | import meteordevelopment.meteorclient.settings.SettingGroup;
10 | import meteordevelopment.meteorclient.systems.modules.Module;
11 | import meteordevelopment.meteorclient.utils.player.FindItemResult;
12 | import meteordevelopment.meteorclient.utils.player.InvUtils;
13 | import meteordevelopment.orbit.EventHandler;
14 | import net.minecraft.item.Items;
15 | import net.minecraft.util.Hand;
16 |
17 | //SilentItem by ranele (copper hack addon) https://discord.gg/tqRPu6Pudg
18 |
19 | public class SilentItem extends Module {
20 | public SilentItem() {
21 | super(Addon.misc, "silent-item", " ");
22 | }
23 |
24 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
25 | private final Setting
- itemUse = sgGeneral.add(new EnumSetting.Builder
- ().name("item").defaultValue(Item.Rocket).build());
26 | private final Setting notify = sgGeneral.add(new BoolSetting.Builder().name("notify").defaultValue(true).build());
27 |
28 | private int mainSlot;
29 | private boolean invMove;
30 |
31 | @Override
32 | public void onActivate(){
33 | invMove = false;
34 | mainSlot = mc.player.getInventory().selectedSlot;
35 | }
36 |
37 | @Override
38 | public void onDeactivate(){
39 | invMove = false;
40 | mainSlot = -1;
41 | }
42 |
43 | @EventHandler
44 | private void onTickEvent(TickEvent.Pre event) {
45 | FindItemResult fP = InvUtils.find(Items.ENDER_PEARL);
46 | if (!fP.found() && itemUse.get() == Item.Pearl) toggle();
47 | FindItemResult fR = InvUtils.find(Items.FIREWORK_ROCKET);
48 | if (!fR.found() && itemUse.get() == Item.Rocket) toggle();
49 | if (itemUse.get() == Item.Pearl) {
50 | FindItemResult pearl = InvUtils.find(Items.ENDER_PEARL);
51 | int pearlSlot = pearl.slot();
52 | if (!pearl.found() && notify.get()) {
53 | info("No pearl found!");
54 | return;
55 | }
56 | InvUtils.move().from(pearlSlot).to(mainSlot);
57 | if (mc.player.getMainHandStack().getItem() == Items.ENDER_PEARL) {
58 | mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND);
59 | invMove = true;
60 | }
61 | if (invMove) {
62 | InvUtils.move().from(mainSlot).to(pearlSlot);
63 | }
64 | toggle();
65 | }
66 | if (itemUse.get() == Item.Rocket) {
67 | if (!ArmorUtils.isFallFlying()) toggle();
68 | FindItemResult rocket = InvUtils.find(Items.FIREWORK_ROCKET);
69 | int rocketSlot = rocket.slot();
70 | if (!rocket.found() && notify.get()) {
71 | info("No rocket found!");
72 | toggle();
73 | return;
74 | }
75 | if (!rocket.found()) toggle();
76 | InvUtils.move().from(rocketSlot).to(mainSlot);
77 | if (mc.player.getMainHandStack().getItem() == Items.FIREWORK_ROCKET) {
78 | mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND);
79 | invMove = true;
80 | }
81 | if (invMove) {
82 | InvUtils.move().from(mainSlot).to(rocketSlot);
83 | }
84 | toggle();
85 | }
86 |
87 | }
88 | public enum Item {
89 | Pearl,
90 | Rocket;
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/SpamInChat.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 |
4 | import com.example.addon.Addon;
5 | import com.google.common.collect.Lists;
6 | import meteordevelopment.meteorclient.events.world.TickEvent;
7 | import meteordevelopment.meteorclient.settings.EnumSetting;
8 | import meteordevelopment.meteorclient.settings.IntSetting;
9 | import meteordevelopment.meteorclient.settings.Setting;
10 | import meteordevelopment.meteorclient.settings.SettingGroup;
11 | import meteordevelopment.meteorclient.systems.modules.Module;
12 | import meteordevelopment.orbit.EventHandler;
13 | import net.fabricmc.api.EnvType;
14 | import net.fabricmc.api.Environment;
15 |
16 | import java.util.List;
17 |
18 | @Environment(EnvType.CLIENT)
19 | public class SpamInChat extends Module {
20 | public enum Text {
21 | new_Rap_by_Minerica
22 | }
23 |
24 | private final SettingGroup sgGeneral = this.settings.getDefaultGroup();
25 |
26 | private final Setting> text = sgGeneral.add(new EnumSetting.Builder>()
27 | .name("text")
28 | .defaultValue(Text.new_Rap_by_Minerica)
29 | .onChanged(e -> messageI = 0)
30 | .build()
31 | );
32 |
33 | private final Setting delay = sgGeneral.add(new IntSetting.Builder()
34 | .name("delay")
35 | .description("The delay between specified messages in ticks.")
36 | .defaultValue(20)
37 | .min(0)
38 | .sliderMax(200)
39 | .build()
40 | );
41 |
42 | private int messageI, timer;
43 |
44 | public SpamInChat() {
45 | super(Addon.misc, "SpamInChat", "Better than spam.");
46 | }
47 |
48 | @Override
49 | public void onActivate() {
50 | timer = delay.get();
51 | messageI = 0;
52 | }
53 |
54 | @EventHandler
55 | private void onTick(TickEvent.Post event) {
56 | if (timer <= 0) {
57 | String line = "";
58 | if (text.get().equals(Text.new_Rap_by_Minerica)) line = new_Rap_by_Minerica.get(messageI);
59 | mc.player.sendChatMessage (line,null);
60 | timer = delay.get();
61 | if ((text.get().equals(Text.new_Rap_by_Minerica) && messageI++ == new_Rap_by_Minerica.size() - 1)) {
62 | messageI = 0;
63 | }
64 | } else {
65 | timer--;
66 | }
67 | }
68 | /* Я ПОМНЮ ПЕНИС БОЛЬШОЙ */
69 | private static final List new_Rap_by_Minerica = Lists.newArrayList(
70 | "ей ей ей йоу реп новый",
71 | "насрал в гуся",
72 | "насрал в рот пеликану",
73 | "йоу йоу Я ебал птиц на птицеферме",
74 | "это очень хорошо",
75 | "йоу йоу ееее."
76 |
77 | );
78 |
79 | }
80 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/Spinner.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.events.world.TickEvent;
5 | import meteordevelopment.meteorclient.settings.BoolSetting;
6 | import meteordevelopment.meteorclient.settings.IntSetting;
7 | import meteordevelopment.meteorclient.settings.Setting;
8 | import meteordevelopment.meteorclient.settings.SettingGroup;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 | import meteordevelopment.meteorclient.utils.player.Rotations;
11 | import meteordevelopment.orbit.EventHandler;
12 | import net.minecraft.item.Items;
13 |
14 | public class Spinner extends Module {
15 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
16 | private final Setting b = sgGeneral.add(new IntSetting.Builder().name("speed").description("The speed at which you rotate.").defaultValue(5).min(0).sliderMax(100).build());
17 | private final Setting c = sgGeneral.add(new BoolSetting.Builder().name("pauseItems").description("Stop rotate when you use some pvp items.").defaultValue(true).build());
18 |
19 | private short a = 0;
20 |
21 | public Spinner() {
22 | super(Addon.misc, "spinner", "very very very very very fast spin / max speed 180");
23 | }
24 |
25 | @EventHandler
26 | public void onTick(TickEvent.Post post) {
27 | if (!c.get() || mc.player.getMainHandStack().getItem() != Items.EXPERIENCE_BOTTLE && mc.player.getMainHandStack().getItem() != Items.ENDER_PEARL && mc.player.getOffHandStack().getItem() != Items.EXPERIENCE_BOTTLE && mc.player.getOffHandStack().getItem() != Items.ENDER_PEARL && mc.player.getMainHandStack().getItem() != Items.OBSIDIAN && mc.player.getMainHandStack().getItem() != Items.NETHERITE_SWORD && mc.player.getMainHandStack().getItem() != Items.NETHERITE_PICKAXE && mc.player.getMainHandStack().getItem() != Items.END_CRYSTAL && mc.player.getMainHandStack().getItem() != Items.STONE_BUTTON && mc.player.getMainHandStack().getItem() != Items.ANVIL && mc.player.getMainHandStack().getItem() != Items.CHIPPED_ANVIL && mc.player.getMainHandStack().getItem() != Items.DAMAGED_ANVIL && mc.player.getMainHandStack().getItem() != Items.BOW && mc.player.getMainHandStack().getItem() != Items.TNT && mc.player.getMainHandStack().getItem() != Items.FLINT) {
28 | a = (short) (a + b.get());
29 | if (a > 180) {
30 | a = -180;
31 | }
32 |
33 | Rotations.rotate(a, 0.0D);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/Twerk.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Utils.TimerUtilsbanana;
4 | import com.example.addon.Addon;
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 |
12 | //Я помню. Я помню пенис большой//
13 | // Я помню пенис большой //
14 | // Я помню пенис большой //
15 | // Я помню у-о-о. Я знаю пенис большой //
16 | // Я знаю пенис большой //
17 | // Я помню пенис большой //
18 | // Я помню пенис большо-у-о-у-о-у-о//
19 |
20 | public class Twerk extends Module {
21 | private final SettingGroup sgGeneral = settings.getDefaultGroup();
22 |
23 |
24 | // General
25 | private final Setting twerkDelay = (Setting) sgGeneral.add(new DoubleSetting.Builder()
26 | .name("Twerk Delay")
27 | .description("In Millis.")
28 | .defaultValue(4)
29 | .min(1)
30 | .sliderRange(2,100)
31 | .build()
32 | );
33 |
34 |
35 | public Twerk() {
36 | super(Addon.misc, "twerk", "Twerk like the true queen Miley Cyrus.");
37 | }
38 |
39 |
40 | private boolean upp = false;
41 | private final com.example.addon.Utils.TimerUtilsbanana onTwerk = new TimerUtilsbanana();
42 |
43 |
44 | @EventHandler
45 | private void onTick(TickEvent.Pre event) {
46 | mc.options.sneakKey.setPressed(upp);
47 |
48 | if (onTwerk.passedMillis(twerkDelay.get().longValue()) && !upp) {
49 | onTwerk.reset();
50 | upp = true;
51 | }
52 |
53 | if (onTwerk.passedMillis(twerkDelay.get().longValue()) && upp) {
54 | onTwerk.reset();
55 | upp = false;
56 | }
57 |
58 | }
59 |
60 | @Override
61 | public void onDeactivate() {
62 | upp = false;
63 | mc.options.sneakKey.setPressed(false);
64 | onTwerk.reset();
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/com/example/addon/modules/misc/bebra_info_and_help.java:
--------------------------------------------------------------------------------
1 | package com.example.addon.modules.misc;
2 |
3 | import com.example.addon.Addon;
4 | import meteordevelopment.meteorclient.systems.modules.Module;
5 | import meteordevelopment.meteorclient.utils.player.ChatUtils;
6 | import net.minecraft.text.Text;
7 |
8 | public class bebra_info_and_help extends Module {
9 | public bebra_info_and_help() {
10 | super(Addon.misc, "BEBRA", "Authors: Fucking slaves#7603 , MrFiNka#8113");
11 | }
12 | @Override
13 | public void onActivate (){
14 | ChatUtils.sendMsg(Text.of("Authors: Fucking slaves#7603 , MrFiNka#8113 , Cahekska#9358"));
15 | ChatUtils.sendMsg(Text.of("BebraHack is a free addon for the meteor client for version 1.19.2"));
16 | ChatUtils.sendMsg(Text.of("Eu: if you have a question about the addon, then go to the discord server of the addon and call me in private messages. My nickname FuckingSlaves#7603 https://discord.gg/8zpzhvq3U7 / Ru: по вопросам пишите мне в дс, ник - FuckingSlaves#7603, найти можно в дс бебрахака (ссылка выше)"));
17 | try {
18 | String url = "https://github.com/BebraHack/BebraHackAddon";
19 | java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
20 | } catch (java.io.IOException e) {
21 | System.out.println(e.getMessage());
22 | }
23 | toggle();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/resources/addon-template.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "package": "bebra.hack.addon.mixin",
4 | "compatibilityLevel": "JAVA_17",
5 | "client": [],
6 | "injectors": {
7 | "defaultRequire": 1
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/addon.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "package": "com.example.addon.mixin",
4 | "compatibilityLevel": "JAVA_17",
5 | "client": [],
6 | "injectors": {
7 | "defaultRequire": 1
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/assets/logo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BebraHack/BebraHackAddon/7916b607fe76e3c412d9db9a6cb4477bdacd0874/src/main/resources/assets/logo1.png
--------------------------------------------------------------------------------
/src/main/resources/assets/logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BebraHack/BebraHackAddon/7916b607fe76e3c412d9db9a6cb4477bdacd0874/src/main/resources/assets/logo2.png
--------------------------------------------------------------------------------
/src/main/resources/assets/logo3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BebraHack/BebraHackAddon/7916b607fe76e3c412d9db9a6cb4477bdacd0874/src/main/resources/assets/logo3.png
--------------------------------------------------------------------------------
/src/main/resources/assets/template/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BebraHack/BebraHackAddon/7916b607fe76e3c412d9db9a6cb4477bdacd0874/src/main/resources/assets/template/icon.png
--------------------------------------------------------------------------------
/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "addon-bebra",
4 | "version": "${version}",
5 | "name": "BebrahackV6",
6 | "description": "The best meteor addon - BebraHackV6.",
7 | "authors": [
8 | "jabronyyy, MrFiNka / assistants: Megakrutish, Vaxei"
9 | ],
10 | "contact": {
11 | "repo": "https://github.com/BebraHack/BebraHackAddon"
12 | },
13 | "icon": "assets/template/icon.png",
14 | "environment": "client",
15 | "entrypoints": {
16 | "meteor": [
17 | "bebra.hack.addon.Addon"
18 | ]
19 | },
20 | "mixins": [
21 | "addon-template.mixins.json"
22 | ],
23 | "custom": {
24 | "meteor-client:color": "204,0,102"
25 | },
26 | "depends": {
27 | "java": ">=17",
28 | "minecraft": ">=${mc_version}",
29 | "meteor-client": "*"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------