├── .gitignore ├── LICENSE ├── README.md ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── src └── main ├── java └── me │ └── srgantmoomoo │ ├── Main.java │ ├── Reference.java │ ├── mixin │ ├── MixinLoader.java │ └── mixins │ │ ├── MixinAbstractClientPlayer.java │ │ ├── MixinBlockLiquid.java │ │ ├── MixinBlockSlimeBlock.java │ │ ├── MixinBlockSoulSand.java │ │ ├── MixinBlockWeb.java │ │ ├── MixinChat.java │ │ ├── MixinEntity.java │ │ ├── MixinEntityPlayer.java │ │ ├── MixinEntityPlayerSP.java │ │ ├── MixinEntityRenderer.java │ │ ├── MixinGuiIngame.java │ │ ├── MixinGuiMainMenu.java │ │ ├── MixinGuiPlayerTabOverlay.java │ │ ├── MixinGuiScreen.java │ │ ├── MixinItemRenderer.java │ │ ├── MixinMinecraft.java │ │ ├── MixinMovementInputFromOptions.java │ │ ├── MixinNetworkManager.java │ │ ├── MixinPlayerControllerMP.java │ │ ├── MixinRender.java │ │ ├── MixinRenderLivingBase.java │ │ ├── MixinRenderPlayer.java │ │ ├── MixinWorld.java │ │ └── accessor │ │ └── AccessorEntityPlayerSP.java │ ├── postman │ ├── api │ │ ├── event │ │ │ ├── Event.java │ │ │ ├── EventProcessor.java │ │ │ └── events │ │ │ │ ├── BossbarEvent.java │ │ │ │ ├── CanCollideCheckEvent.java │ │ │ │ ├── CollisionEvent.java │ │ │ │ ├── DamageBlockEvent.java │ │ │ │ ├── DestroyBlockEvent.java │ │ │ │ ├── HandActiveEvent.java │ │ │ │ ├── JumpEvent.java │ │ │ │ ├── LiquidCollisionBBEvent.java │ │ │ │ ├── NetworkPacketEvent.java │ │ │ │ ├── PacketEvent.java │ │ │ │ ├── PlayerJoinEvent.java │ │ │ │ ├── PlayerJumpEvent.java │ │ │ │ ├── PlayerLeaveEvent.java │ │ │ │ ├── PlayerMotionUpdateEvent.java │ │ │ │ ├── PlayerMoveEvent.java │ │ │ │ ├── PlayerUpdateEvent.java │ │ │ │ ├── PlayerUpdateMoveStateEvent.java │ │ │ │ ├── RenderCameraEvent.java │ │ │ │ ├── RenderEntityNameEvent.java │ │ │ │ ├── RenderEvent.java │ │ │ │ ├── RenderRainEvent.java │ │ │ │ ├── TotemPopEvent.java │ │ │ │ ├── TransformSideFirstPersonEvent.java │ │ │ │ └── WaterPushEvent.java │ │ ├── proxy │ │ │ ├── ClientProxy.java │ │ │ └── CommonProxy.java │ │ ├── save │ │ │ ├── ClickGuiLoad.java │ │ │ ├── ClickGuiSave.java │ │ │ ├── ConfigStopper.java │ │ │ └── SaveLoad.java │ │ └── util │ │ │ ├── Wrapper.java │ │ │ ├── damagetilt │ │ │ ├── MessageUpdateAttackYaw.java │ │ │ └── PacketHandler.java │ │ │ ├── font │ │ │ ├── CustomFont.java │ │ │ ├── CustomFontRenderer.java │ │ │ └── FontUtils.java │ │ │ ├── misc │ │ │ └── Discord.java │ │ │ ├── render │ │ │ ├── Cape.java │ │ │ ├── ColorMain.java │ │ │ ├── Esp2dHelper.java │ │ │ ├── JColor.java │ │ │ ├── JTessellator.java │ │ │ ├── OutlineUtils.java │ │ │ └── crystal │ │ │ │ └── CrystalPretty.java │ │ │ └── world │ │ │ ├── BlockUtils.java │ │ │ ├── EntityUtil.java │ │ │ ├── GeometryMasks.java │ │ │ ├── JTimer.java │ │ │ ├── Location.java │ │ │ └── TpsUtils.java │ └── client │ │ ├── command │ │ ├── Command.java │ │ ├── CommandManager.java │ │ └── commands │ │ │ ├── AutoCope.java │ │ │ ├── Baritone.java │ │ │ ├── Bind.java │ │ │ ├── Clip.java │ │ │ ├── Friend.java │ │ │ ├── Help.java │ │ │ ├── MobOwner.java │ │ │ ├── Prefix.java │ │ │ ├── Protester.java │ │ │ ├── Toggle.java │ │ │ └── Vanish.java │ │ ├── friend │ │ ├── Friend.java │ │ └── FriendManager.java │ │ ├── module │ │ ├── Category.java │ │ ├── HudModule.java │ │ ├── Module.java │ │ ├── ModuleManager.java │ │ └── modules │ │ │ ├── bot │ │ │ ├── Baritone.java │ │ │ ├── ConfigCrystal.java │ │ │ └── OffHandBot.java │ │ │ ├── client │ │ │ ├── Capes.java │ │ │ ├── ChatNotifications.java │ │ │ ├── ClientFont.java │ │ │ ├── ColorMain.java │ │ │ ├── CrazyNewDupe.java │ │ │ ├── DiscordRichPresence.java │ │ │ ├── GiveMeClout.java │ │ │ └── MainMenuWatermark.java │ │ │ ├── exploits │ │ │ ├── AntiHunger.java │ │ │ ├── AntiNick.java │ │ │ ├── AntiSwing.java │ │ │ ├── Backdoor2b2t.java │ │ │ ├── CoordExploit.java │ │ │ ├── Dupe.java │ │ │ ├── ElytraFly.java │ │ │ ├── NoHandShake.java │ │ │ ├── PacketCancellor.java │ │ │ ├── PortalGodMode.java │ │ │ ├── SoftJoin.java │ │ │ └── Timer.java │ │ │ ├── hud │ │ │ ├── ArmorHud.java │ │ │ ├── ArrayListt.java │ │ │ ├── AutoCInfo.java │ │ │ ├── AutoCrystalHud.java │ │ │ ├── Coords.java │ │ │ ├── Crystals.java │ │ │ ├── Frames.java │ │ │ ├── Gapples.java │ │ │ ├── InventoryViewer.java │ │ │ ├── KeyStrokes.java │ │ │ ├── KillAuraHud.java │ │ │ ├── Ping.java │ │ │ ├── PlayerModel.java │ │ │ ├── SurroundHud.java │ │ │ ├── Totems.java │ │ │ ├── Watermark.java │ │ │ └── Welcomer.java │ │ │ ├── movement │ │ │ ├── AutoWalk.java │ │ │ ├── Fly.java │ │ │ ├── GuiMove.java │ │ │ ├── Jesus.java │ │ │ ├── LongJump.java │ │ │ ├── NoSlow.java │ │ │ ├── ReverseStep.java │ │ │ ├── SafeWalk.java │ │ │ ├── Scaffold.java │ │ │ ├── Sneak.java │ │ │ ├── Speed.java │ │ │ ├── Sprint.java │ │ │ └── Step.java │ │ │ ├── player │ │ │ ├── AutoDisconnect.java │ │ │ ├── AutoMine.java │ │ │ ├── AutoReconnect.java │ │ │ ├── AutoRespawn.java │ │ │ ├── AutoTotem.java │ │ │ ├── AutoUse.java │ │ │ ├── ChatSuffix.java │ │ │ ├── ChestStealer.java │ │ │ ├── DeathCoords.java │ │ │ ├── ElytraReplace.java │ │ │ ├── InventoryPlus.java │ │ │ ├── LiquidPlace.java │ │ │ ├── Mcf.java │ │ │ ├── Multitask.java │ │ │ ├── NoFall.java │ │ │ ├── NoPush.java │ │ │ ├── PlayerClone.java │ │ │ ├── Protester.java │ │ │ └── Velocity.java │ │ │ ├── pvp │ │ │ ├── AimBot.java │ │ │ ├── AutoArmor.java │ │ │ ├── AutoClicker.java │ │ │ ├── AutoCope.java │ │ │ ├── AutoCopeAndSeethe.java │ │ │ ├── AutoCrystal.java │ │ │ ├── AutoGap.java │ │ │ ├── AutoHut.java │ │ │ ├── AutoTrap.java │ │ │ ├── Blink.java │ │ │ ├── Criticals.java │ │ │ ├── FastUse.java │ │ │ ├── FootExp.java │ │ │ ├── HoleTp.java │ │ │ ├── KillAura.java │ │ │ ├── LogOutSpot.java │ │ │ ├── Refill.java │ │ │ ├── SmartHotbar.java │ │ │ ├── SmartOffHand.java │ │ │ └── Surround.java │ │ │ └── render │ │ │ ├── CameraClip.java │ │ │ ├── DamageTiltCorrection.java │ │ │ ├── Esp.java │ │ │ ├── Freecam.java │ │ │ ├── FullBright.java │ │ │ ├── HoleEsp.java │ │ │ ├── LowOffHand.java │ │ │ ├── Nametags.java │ │ │ ├── NewChunks.java │ │ │ ├── NoRender.java │ │ │ ├── Peek.java │ │ │ ├── Tracers.java │ │ │ ├── ViewModel.java │ │ │ ├── World.java │ │ │ └── Xray.java │ │ ├── setting │ │ ├── Setting.java │ │ ├── SettingManager.java │ │ └── settings │ │ │ ├── BooleanSetting.java │ │ │ ├── ColorSetting.java │ │ │ ├── KeybindSetting.java │ │ │ ├── ModeSetting.java │ │ │ └── NumberSetting.java │ │ └── ui │ │ ├── TabGui.java │ │ └── clickgui │ │ ├── ClickGui.java │ │ ├── ClickGuiConfig.java │ │ ├── ClickGuiModule.java │ │ ├── HudEditor.java │ │ ├── PostmanTheme.java │ │ ├── PostmanThemeOld.java │ │ └── SyncableColorComponent.java │ └── postmanplusplus │ ├── ModuleManagerPlusPlus.java │ └── modules │ ├── CustomChat.java │ ├── InstantMine.java │ ├── SkyColor.java │ └── TargetHud.java └── resources ├── assets └── pstpp │ └── textures │ ├── christman-logo-background.png │ ├── christman-logo.png │ ├── postman-cape.png │ ├── postman-logo-background.png │ ├── postman-logo-circle-background.png │ ├── postman-logo-transparent.png │ └── postman-text-transparent.png ├── christmanCircle.png ├── darwin └── libdiscord-rpc.dylib ├── linux-x86-64 └── libdiscord-rpc.so ├── mcmod.info ├── mixins.postman.json ├── postman_at.cfg ├── postmancircle.png ├── win32-x86-64 └── discord-rpc.dll └── win32-x86 └── discord-rpc.dll /.gitignore: -------------------------------------------------------------------------------- 1 | /.gradle/ 2 | /.idea/ 3 | /.mixin.out/ 4 | /build/ 5 | /config/ 6 | /logs/ 7 | /mods/ 8 | /resourcepacks/ 9 | /run/ 10 | /saves/ 11 | /postman/ 12 | 13 | options.txt 14 | usercache.json 15 | usernamecache.json 16 | .classpath 17 | .settings/ 18 | bin/ 19 | src/main/java/META-INF/ 20 | 21 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Sets default memory used for gradle commands. Can be overridden by user or command line properties. 2 | # This is required to provide enough memory for the Minecraft decompilation process. 3 | org.gradle.jvmargs=-Xmx3G 4 | modGroup=me.srgantmoomoo 5 | modVersion=1-2 6 | modBaseName=postman 7 | forgeVersion=1.12.2-14.23.5.2768 8 | # 1.12.2-14.23.0.2531 9 | #mcpVersion=snapshot_20170605 10 | mcpVersion=snapshot_20180814 11 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/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-4.8.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/Reference.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo; 2 | 3 | import me.srgantmoomoo.postman.api.util.render.JColor; 4 | 5 | public class Reference { 6 | 7 | public static final String MOD_ID = "pstpp"; 8 | public static final String NAME = "postman++"; 9 | public static final String VERSION = "1.2-2.100"; 10 | public static final String ACCEPTED_VERSIONS = "[1.12.2]"; 11 | public static final String CLIENT_PROXY_CLASS = "me.srgantmoomoo.postman.api.proxy.ClientProxy"; 12 | public static final String COMMON_PROXY_CLASS = "me.srgantmoomoo.postman.api.proxy.CommonProxy"; 13 | public static final JColor POSTMAN_COLOR = new JColor(157, 216, 255, 255); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/MixinLoader.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin; 2 | 3 | import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; 4 | import org.spongepowered.asm.launch.MixinBootstrap; 5 | import org.spongepowered.asm.mixin.Mixins; 6 | 7 | import me.srgantmoomoo.Main; 8 | 9 | import javax.annotation.Nullable; 10 | import java.util.Map; 11 | public class MixinLoader implements IFMLLoadingPlugin { 12 | 13 | public MixinLoader(){ 14 | Main.log.info("mixins initialized"); 15 | MixinBootstrap.init(); 16 | Mixins.addConfiguration("mixins.postman.json"); 17 | } 18 | 19 | @Override 20 | public String[] getASMTransformerClass(){ 21 | return new String[0]; 22 | } 23 | 24 | @Override 25 | public String getModContainerClass(){ 26 | return null; 27 | } 28 | 29 | @Nullable 30 | @Override 31 | public String getSetupClass(){ 32 | return null; 33 | } 34 | 35 | @Override 36 | public void injectData(Map data){ 37 | } 38 | 39 | @Override 40 | public String getAccessTransformerClass(){ 41 | return null; 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinAbstractClientPlayer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.entity.AbstractClientPlayer; 4 | import net.minecraft.client.network.NetworkPlayerInfo; 5 | import net.minecraft.util.ResourceLocation; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 11 | 12 | import me.srgantmoomoo.Main; 13 | import me.srgantmoomoo.Reference; 14 | import me.srgantmoomoo.postman.client.module.ModuleManager; 15 | 16 | import java.util.UUID; 17 | 18 | import javax.annotation.Nullable; 19 | 20 | @Mixin(AbstractClientPlayer.class) 21 | public abstract class MixinAbstractClientPlayer { 22 | 23 | @Shadow @Nullable protected abstract NetworkPlayerInfo getPlayerInfo(); 24 | 25 | @Inject(method = "getLocationCape", at = @At("HEAD"), cancellable = true) 26 | public void getLocationCape(CallbackInfoReturnable callbackInfoReturnable) { 27 | UUID uuid = getPlayerInfo().getGameProfile().getId(); 28 | if (ModuleManager.isModuleEnabled("capes") && Main.cape.hasCape(uuid)) { 29 | callbackInfoReturnable.setReturnValue(new ResourceLocation(Reference.MOD_ID, "textures/postman-cape.png")); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinBlockLiquid.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.block.BlockLiquid; 4 | import net.minecraft.block.state.IBlockState; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 9 | 10 | import me.srgantmoomoo.Main; 11 | import me.srgantmoomoo.postman.api.event.events.CanCollideCheckEvent; 12 | 13 | @Mixin(BlockLiquid.class) 14 | public class MixinBlockLiquid { 15 | 16 | @Inject(method = "canCollideCheck", at = @At("HEAD"), cancellable = true) 17 | public void canCollideCheck(final IBlockState blockState, final boolean b, final CallbackInfoReturnable callbackInfoReturnable) { 18 | CanCollideCheckEvent event = new CanCollideCheckEvent(); 19 | Main.EVENT_BUS.post(event); 20 | callbackInfoReturnable.setReturnValue(event.isCancelled()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinBlockSlimeBlock.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.block.BlockSlime; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.util.math.BlockPos; 6 | import net.minecraft.world.World; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | import me.srgantmoomoo.postman.client.module.ModuleManager; 13 | import me.srgantmoomoo.postman.client.module.modules.movement.NoSlow; 14 | 15 | @Mixin(BlockSlime.class) 16 | public class MixinBlockSlimeBlock { 17 | @Inject(method = "onEntityWalk", at = @At("HEAD"), cancellable = true) 18 | private void onSteppedOn(World world, BlockPos pos, Entity entity, CallbackInfo info) { 19 | if (ModuleManager.isModuleEnabled("noSlow") && ((NoSlow)ModuleManager.getModuleByName("noSlow")).slimeBlock.isEnabled()) 20 | info.cancel(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinBlockSoulSand.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | import net.minecraft.block.BlockSoulSand; 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.util.math.BlockPos; 6 | import net.minecraft.world.World; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | import me.srgantmoomoo.postman.client.module.ModuleManager; 13 | import me.srgantmoomoo.postman.client.module.modules.movement.NoSlow; 14 | 15 | @Mixin(BlockSoulSand.class) 16 | public class MixinBlockSoulSand { 17 | @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) 18 | public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { 19 | if (ModuleManager.isModuleEnabled("noSlow") && ((NoSlow)ModuleManager.getModuleByName("noSlow")).soulSand.isEnabled()) 20 | info.cancel(); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinBlockWeb.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.block.BlockWeb; 4 | import net.minecraft.block.state.IBlockState; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.util.math.BlockPos; 7 | import net.minecraft.world.World; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | import me.srgantmoomoo.postman.client.module.ModuleManager; 14 | import me.srgantmoomoo.postman.client.module.modules.movement.NoSlow; 15 | 16 | @Mixin(BlockWeb.class) 17 | public class MixinBlockWeb { 18 | @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) 19 | private void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { 20 | if (ModuleManager.isModuleEnabled("noSlow") && ((NoSlow)ModuleManager.getModuleByName("noSlow")).web.isEnabled()) 21 | info.cancel(); 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinEntity.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.entity.Entity; 4 | import net.minecraft.entity.MoverType; 5 | 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Redirect; 10 | 11 | import me.srgantmoomoo.postman.client.module.ModuleManager; 12 | 13 | @Mixin(Entity.class) 14 | public abstract class MixinEntity { 15 | 16 | @Redirect(method = "applyEntityCollision", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;addVelocity(DDD)V")) 17 | public void velocity(Entity entity, double x, double y, double z) { 18 | if (!ModuleManager.isModuleEnabled("noPush")) { 19 | entity.motionX += x; 20 | entity.motionY += y; 21 | entity.motionZ += z; 22 | entity.isAirBorne = true; 23 | } 24 | } 25 | 26 | @Shadow public abstract boolean equals(Object p_equals_1_); 27 | 28 | @Shadow 29 | public double posX; 30 | 31 | @Shadow 32 | public double posY; 33 | 34 | @Shadow 35 | public double posZ; 36 | 37 | @Shadow 38 | public double prevPosX; 39 | 40 | @Shadow 41 | public double prevPosY; 42 | 43 | @Shadow 44 | public double prevPosZ; 45 | 46 | @Shadow 47 | public double lastTickPosX; 48 | 49 | @Shadow 50 | public double lastTickPosY; 51 | 52 | @Shadow 53 | public double lastTickPosZ; 54 | 55 | @Shadow 56 | public float prevRotationYaw; 57 | 58 | @Shadow 59 | public float prevRotationPitch; 60 | 61 | @Shadow 62 | public float rotationPitch; 63 | 64 | @Shadow 65 | public float rotationYaw; 66 | 67 | @Shadow 68 | public boolean onGround; 69 | 70 | @Shadow 71 | public double motionX; 72 | 73 | @Shadow 74 | public double motionY; 75 | 76 | @Shadow 77 | public double motionZ; 78 | 79 | @Shadow 80 | public abstract boolean isSprinting(); 81 | 82 | @Shadow 83 | public abstract boolean isRiding(); 84 | 85 | @Shadow 86 | public void move(MoverType type, double x, double y, double z) { 87 | 88 | } 89 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinEntityPlayer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 11 | 12 | import me.srgantmoomoo.Main; 13 | import me.srgantmoomoo.postman.api.event.events.PlayerJumpEvent; 14 | import me.srgantmoomoo.postman.api.event.events.WaterPushEvent; 15 | 16 | @Mixin(EntityPlayer.class) 17 | public abstract class MixinEntityPlayer { 18 | 19 | @Shadow public abstract String getName(); 20 | 21 | @Inject(method = "jump", at = @At("HEAD"), cancellable = true) 22 | public void onJump(CallbackInfo callbackInfo) { 23 | if (Minecraft.getMinecraft().player.getName() == this.getName()) { 24 | Main.EVENT_BUS.post(new PlayerJumpEvent()); 25 | } 26 | } 27 | 28 | @Inject(method = "isPushedByWater", at = @At("HEAD"), cancellable = true) 29 | private void onPushedByWater(CallbackInfoReturnable callbackInfoReturnable) { 30 | WaterPushEvent event = new WaterPushEvent(); 31 | Main.EVENT_BUS.post(event); 32 | if (event.isCancelled()) { 33 | callbackInfoReturnable.setReturnValue(false); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinEntityPlayerSP.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.entity.AbstractClientPlayer; 4 | import net.minecraft.client.entity.EntityPlayerSP; 5 | import net.minecraft.entity.MoverType; 6 | 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.Redirect; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | import me.srgantmoomoo.Main; 14 | import me.srgantmoomoo.postman.api.event.Event.Era; 15 | import me.srgantmoomoo.postman.api.event.events.PlayerMotionUpdateEvent; 16 | import me.srgantmoomoo.postman.api.event.events.PlayerMoveEvent; 17 | import me.srgantmoomoo.postman.api.event.events.PlayerUpdateEvent; 18 | 19 | @Mixin(EntityPlayerSP.class) 20 | public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { 21 | 22 | public MixinEntityPlayerSP() { 23 | super(null, null); 24 | } 25 | 26 | @Inject(method = "onUpdateWalkingPlayer", at = @At("HEAD"), cancellable = true) 27 | public void OnPreUpdateWalkingPlayer(CallbackInfo info) { 28 | PlayerMotionUpdateEvent event = new PlayerMotionUpdateEvent(Era.PRE); 29 | Main.EVENT_BUS.post(event); 30 | if (event.isCancelled()) 31 | info.cancel(); 32 | } 33 | 34 | @Inject(method = "onUpdateWalkingPlayer", at = @At("RETURN"), cancellable = true) 35 | public void OnPostUpdateWalkingPlayer(CallbackInfo p_Info) { 36 | PlayerMotionUpdateEvent event = new PlayerMotionUpdateEvent(Era.POST); 37 | Main.EVENT_BUS.post(event); 38 | if (event.isCancelled()) 39 | p_Info.cancel(); 40 | } 41 | 42 | @Inject(method = "onUpdate", at = @At("HEAD"), cancellable = true) 43 | public void onUpdate(CallbackInfo info) { 44 | PlayerUpdateEvent event = new PlayerUpdateEvent(); 45 | Main.EVENT_BUS.post(event); 46 | if (event.isCancelled()) 47 | info.cancel(); 48 | } 49 | 50 | @Redirect(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/entity/AbstractClientPlayer;move(Lnet/minecraft/entity/MoverType;DDD)V")) 51 | public void move(AbstractClientPlayer player, MoverType type, double x, double y, double z) { 52 | PlayerMoveEvent moveEvent = new PlayerMoveEvent(type, x, y, z); 53 | Main.EVENT_BUS.post(moveEvent); 54 | super.move(type, moveEvent.x, moveEvent.y, moveEvent.z); 55 | } 56 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.multiplayer.WorldClient; 4 | import net.minecraft.client.renderer.EntityRenderer; 5 | import net.minecraft.util.math.RayTraceResult; 6 | import net.minecraft.util.math.Vec3d; 7 | 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.Redirect; 12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 13 | 14 | import me.srgantmoomoo.Main; 15 | import me.srgantmoomoo.postman.api.event.events.RenderCameraEvent; 16 | import me.srgantmoomoo.postman.client.module.ModuleManager; 17 | import me.srgantmoomoo.postman.client.module.modules.render.NoRender; 18 | 19 | @Mixin(EntityRenderer.class) 20 | public class MixinEntityRenderer { 21 | 22 | @Inject(method = "hurtCameraEffect", at = @At("HEAD"), cancellable = true) 23 | public void hurtCameraEffect(float ticks, CallbackInfo info) { 24 | if (ModuleManager.isModuleEnabled("noRender") && ((NoRender)ModuleManager.getModuleByName("noRender")).hurtCam.is("normal")) 25 | info.cancel(); 26 | } 27 | 28 | @Redirect(method = "orientCamera", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/WorldClient;rayTraceBlocks(Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;)Lnet/minecraft/util/math/RayTraceResult;"), expect = 0) 29 | private RayTraceResult rayTraceBlocks(WorldClient worldClient, Vec3d start, Vec3d end) { 30 | RenderCameraEvent event = new RenderCameraEvent(); 31 | Main.EVENT_BUS.post(event); 32 | if (event.isCancelled()) 33 | return null; 34 | else return worldClient.rayTraceBlocks(start, end); 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinGuiIngame.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.gui.GuiIngame; 4 | import net.minecraft.client.gui.ScaledResolution; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | import me.srgantmoomoo.postman.client.module.ModuleManager; 11 | import me.srgantmoomoo.postman.client.module.modules.render.NoRender; 12 | 13 | @Mixin(GuiIngame.class) 14 | public class MixinGuiIngame { 15 | 16 | @Inject(method = "renderPotionEffects", at = @At("HEAD"), cancellable = true) 17 | protected void renderPotionEffectsHook(ScaledResolution scaledRes, CallbackInfo callbackInfo) { 18 | if (ModuleManager.isModuleEnabled("noRender") && ((NoRender)ModuleManager.getModuleByName("noRender")).potionEffects.isEnabled()) { 19 | callbackInfo.cancel(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinGuiMainMenu.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import org.spongepowered.asm.mixin.Mixin; 4 | import org.spongepowered.asm.mixin.injection.At; 5 | import org.spongepowered.asm.mixin.injection.Inject; 6 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 7 | 8 | import me.srgantmoomoo.Reference; 9 | import me.srgantmoomoo.postman.client.module.ModuleManager; 10 | import net.minecraft.client.gui.FontRenderer; 11 | import net.minecraft.client.gui.GuiMainMenu; 12 | import net.minecraft.client.gui.GuiScreen; 13 | import net.minecraft.util.text.TextFormatting; 14 | 15 | @Mixin({GuiMainMenu.class}) 16 | public class MixinGuiMainMenu extends GuiScreen { 17 | @Inject(method = {"drawScreen"}, at = {@At("TAIL")}, cancellable = true) 18 | public void drawText(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { 19 | if(ModuleManager.getModuleByName("mainMenuWatermark").isToggled()) { 20 | FontRenderer fr = mc.fontRenderer; 21 | fr.drawStringWithShadow(TextFormatting.ITALIC + Reference.NAME + TextFormatting.WHITE + " by" + TextFormatting.GRAY + "" + 22 | TextFormatting.ITALIC + " SrgantMooMoo", 2, 2, 0xff9dd8ff); 23 | fr.drawStringWithShadow(TextFormatting.WHITE + "ur on version " + TextFormatting.RESET + TextFormatting.ITALIC + Reference.VERSION + TextFormatting.WHITE + "!", 2, 12, 0xff9dd8ff); 24 | fr.drawStringWithShadow("https://github.com/moomooooo/postman", 2, 22, 0xff9dd8ff); 25 | fr.drawStringWithShadow("https://discord.gg/Jd8EmEuhb5", 2, 32, 0xff9dd8ff); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinGuiPlayerTabOverlay.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.gui.GuiPlayerTabOverlay; 4 | import net.minecraft.client.network.NetworkPlayerInfo; 5 | import net.minecraft.scoreboard.ScorePlayerTeam; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | 11 | @Mixin(GuiPlayerTabOverlay.class) 12 | public class MixinGuiPlayerTabOverlay{ 13 | 14 | @Inject(method = "getPlayerName", at = @At("HEAD"), cancellable = true) 15 | public void getPlayerName(NetworkPlayerInfo networkPlayerInfoIn, CallbackInfoReturnable returnable){ 16 | returnable.cancel(); 17 | returnable.setReturnValue(getPlayerName(networkPlayerInfoIn)); 18 | } 19 | 20 | public String getPlayerName(NetworkPlayerInfo networkPlayerInfoIn){ 21 | String dname = networkPlayerInfoIn.getDisplayName() != null ? networkPlayerInfoIn.getDisplayName().getFormattedText() : ScorePlayerTeam.formatPlayerName(networkPlayerInfoIn.getPlayerTeam(), networkPlayerInfoIn.getGameProfile().getName()); 22 | return dname; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinItemRenderer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import org.spongepowered.asm.mixin.Mixin; 4 | import org.spongepowered.asm.mixin.injection.Inject; 5 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | 8 | import me.srgantmoomoo.Main; 9 | import me.srgantmoomoo.postman.api.event.events.TransformSideFirstPersonEvent; 10 | import net.minecraft.client.renderer.ItemRenderer; 11 | import net.minecraft.util.EnumHandSide; 12 | 13 | @Mixin(ItemRenderer.class) 14 | public class MixinItemRenderer { 15 | 16 | @Inject(method = "transformSideFirstPerson", at = @At("HEAD")) 17 | public void transformSideFirstPerson(EnumHandSide hand, float p_187459_2_, CallbackInfo callbackInfo) { 18 | TransformSideFirstPersonEvent event = new TransformSideFirstPersonEvent(hand); 19 | Main.EVENT_BUS.post(event); 20 | } 21 | 22 | @Inject(method = "transformFirstPerson", at = @At("HEAD")) 23 | public void transformFirstPerson(EnumHandSide hand, float p_187453_2_, CallbackInfo callbackInfo) { 24 | TransformSideFirstPersonEvent event = new TransformSideFirstPersonEvent(hand); 25 | Main.EVENT_BUS.post(event); 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinMinecraft.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.client.entity.EntityPlayerSP; 5 | import net.minecraft.client.multiplayer.PlayerControllerMP; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | import me.srgantmoomoo.mixin.mixins.accessor.AccessorEntityPlayerSP; 13 | import me.srgantmoomoo.postman.client.module.ModuleManager; 14 | 15 | @Mixin(value = Minecraft.class) 16 | public class MixinMinecraft { 17 | 18 | @Shadow public EntityPlayerSP player; 19 | @Shadow public PlayerControllerMP playerController; 20 | 21 | private boolean handActive = false; 22 | private boolean isHittingBlock = false; 23 | 24 | @Inject(method = "rightClickMouse", at = @At("HEAD")) 25 | public void rightClickMousePre(CallbackInfo ci) { 26 | if (ModuleManager.isModuleEnabled("multitask")) { 27 | isHittingBlock = playerController.getIsHittingBlock(); 28 | playerController.isHittingBlock = false; 29 | } 30 | } 31 | 32 | @Inject(method = "rightClickMouse", at = @At("RETURN")) 33 | public void rightClickMousePost(CallbackInfo ci) { 34 | if (ModuleManager.isModuleEnabled("multitask") && !playerController.getIsHittingBlock()) { 35 | playerController.isHittingBlock = isHittingBlock; 36 | } 37 | } 38 | 39 | @Inject(method = "sendClickBlockToController", at = @At("HEAD")) 40 | public void sendClickBlockToControllerPre(boolean leftClick, CallbackInfo ci) { 41 | if (ModuleManager.isModuleEnabled("multitask")) { 42 | handActive = player.isHandActive(); 43 | ((AccessorEntityPlayerSP) player).gsSetHandActive(false); 44 | } 45 | } 46 | 47 | @Inject(method = "sendClickBlockToController", at = @At("RETURN")) 48 | public void sendClickBlockToControllerPost(boolean leftClick, CallbackInfo ci) { 49 | if (ModuleManager.isModuleEnabled("multitask") && !player.isHandActive()) { 50 | ((AccessorEntityPlayerSP) player).gsSetHandActive(handActive); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinMovementInputFromOptions.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.client.gui.GuiChat; 5 | import net.minecraft.client.settings.KeyBinding; 6 | import net.minecraft.util.MovementInput; 7 | import net.minecraft.util.MovementInputFromOptions; 8 | import org.lwjgl.input.Keyboard; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.injection.At; 11 | import org.spongepowered.asm.mixin.injection.Inject; 12 | import org.spongepowered.asm.mixin.injection.Redirect; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | import me.srgantmoomoo.Main; 16 | import me.srgantmoomoo.postman.api.event.events.PlayerUpdateMoveStateEvent; 17 | import me.srgantmoomoo.postman.client.module.ModuleManager; 18 | import me.srgantmoomoo.postman.client.module.modules.movement.GuiMove; 19 | 20 | @Mixin(value = MovementInputFromOptions.class, priority = 10000) 21 | public abstract class MixinMovementInputFromOptions extends MovementInput { 22 | 23 | @Inject(method = "updatePlayerMoveState", at = @At("RETURN")) 24 | public void updatePlayerMoveStateReturn(CallbackInfo callback) { 25 | Main.EVENT_BUS.post(new PlayerUpdateMoveStateEvent()); 26 | } 27 | 28 | @Redirect(method = "updatePlayerMoveState", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/KeyBinding;isKeyDown()Z")) 29 | public boolean isKeyPressed(KeyBinding keyBinding) { 30 | if (ModuleManager.isModuleEnabled("guiMove") && ((GuiMove)ModuleManager.getModuleByName("guiMove")).isToggled() 31 | && Minecraft.getMinecraft().currentScreen != null 32 | && !(Minecraft.getMinecraft().currentScreen instanceof GuiChat) 33 | && Minecraft.getMinecraft().player != null) { 34 | return Keyboard.isKeyDown(keyBinding.getKeyCode()); 35 | } 36 | return keyBinding.isKeyDown(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinPlayerControllerMP.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.multiplayer.PlayerControllerMP; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | 9 | import me.srgantmoomoo.postman.client.module.ModuleManager; 10 | 11 | @Mixin(PlayerControllerMP.class) 12 | public abstract class MixinPlayerControllerMP { 13 | //author cookiedragon234 14 | @Inject(method = "resetBlockRemoving", at = @At("HEAD"), cancellable = true) 15 | private void resetBlock(CallbackInfo callbackInfo) { 16 | if (ModuleManager.isModuleEnabled("multitask")) { 17 | callbackInfo.cancel(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinRender.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.renderer.entity.Render; 4 | import net.minecraft.entity.Entity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | 8 | @Mixin(Render.class) 9 | abstract class MixinRender { 10 | 11 | @Shadow 12 | protected abstract boolean bindEntityTexture(T entity); 13 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinRenderPlayer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import net.minecraft.client.entity.AbstractClientPlayer; 4 | import net.minecraft.client.renderer.entity.RenderPlayer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | import me.srgantmoomoo.Main; 11 | import me.srgantmoomoo.postman.api.event.events.RenderEntityNameEvent; 12 | 13 | @Mixin(RenderPlayer.class) 14 | public class MixinRenderPlayer { 15 | @Inject(method = "renderEntityName", at = @At("HEAD"), cancellable = true) 16 | public void renderLivingLabel(AbstractClientPlayer entityIn, double x, double y, double z, String name, double distanceSq, CallbackInfo info) { 17 | RenderEntityNameEvent event = new RenderEntityNameEvent(entityIn, x, y, z, name, distanceSq); 18 | Main.EVENT_BUS.post(event); 19 | if (event.isCancelled()) 20 | info.cancel(); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/MixinWorld.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins; 2 | 3 | import me.srgantmoomoo.Main; 4 | import me.srgantmoomoo.postman.api.event.events.RenderRainEvent; 5 | import net.minecraft.world.World; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | 11 | @Mixin(World.class) 12 | public class MixinWorld { 13 | 14 | @Inject(method = "getRainStrength", at = @At("HEAD"), cancellable = true) 15 | public void getRainStrength(float delta, CallbackInfoReturnable callback) { 16 | RenderRainEvent event = new RenderRainEvent(); 17 | Main.EVENT_BUS.post(event); 18 | if (event.isCancelled()) { 19 | callback.cancel(); 20 | callback.setReturnValue(0.0f); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/mixin/mixins/accessor/AccessorEntityPlayerSP.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.mixin.mixins.accessor; 2 | 3 | import net.minecraft.client.entity.EntityPlayerSP; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | /* 8 | * this is from gamesense, im just a gamesense skid don't talk to me. 9 | */ 10 | 11 | @Mixin(EntityPlayerSP.class) 12 | public interface AccessorEntityPlayerSP { 13 | 14 | @Accessor("handActive") 15 | void gsSetHandActive(boolean value); 16 | 17 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/Event.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event; 2 | 3 | import me.srgantmoomoo.postman.api.util.Wrapper; 4 | import me.zero.alpine.type.Cancellable; 5 | 6 | public class Event extends Cancellable { 7 | 8 | private Era era = Era.PRE; 9 | private final float partialTicks; 10 | 11 | public Event() { 12 | partialTicks = Wrapper.getMinecraft().getRenderPartialTicks(); 13 | } 14 | 15 | public Event(Era p_Era) { 16 | partialTicks = Wrapper.getMinecraft().getRenderPartialTicks(); 17 | era = p_Era; 18 | } 19 | 20 | public Era getEra() { 21 | return era; 22 | } 23 | 24 | public float getPartialTicks() { 25 | return partialTicks; 26 | } 27 | 28 | public enum Era { 29 | PRE, 30 | PERI, 31 | POST 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/BossbarEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class BossbarEvent extends Event { 6 | 7 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/CanCollideCheckEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class CanCollideCheckEvent extends Event { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/CollisionEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.entity.Entity; 5 | 6 | public final class CollisionEvent extends Event { 7 | private final Entity entity; 8 | 9 | public CollisionEvent(Entity entity) 10 | { 11 | this.entity = entity; 12 | } 13 | 14 | public Entity getEntity() 15 | { 16 | return entity; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/DamageBlockEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.util.EnumFacing; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | public class DamageBlockEvent extends Event { 8 | 9 | private BlockPos blockPos; 10 | private EnumFacing enumFacing; 11 | 12 | public DamageBlockEvent(BlockPos blockPos, EnumFacing enumFacing) { 13 | this.blockPos = blockPos; 14 | this.enumFacing = enumFacing; 15 | } 16 | 17 | public BlockPos getBlockPos() { 18 | return this.blockPos; 19 | } 20 | 21 | public void setBlockPos(BlockPos blockPos) { 22 | this.blockPos = blockPos; 23 | } 24 | 25 | public EnumFacing getEnumFacing() { 26 | return this.enumFacing; 27 | } 28 | 29 | public void setEnumFacing(EnumFacing enumFacing) { 30 | this.enumFacing = enumFacing; 31 | } 32 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/DestroyBlockEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.util.math.BlockPos; 5 | 6 | public class DestroyBlockEvent extends Event { 7 | 8 | BlockPos blockPos; 9 | 10 | public DestroyBlockEvent(BlockPos blockPos) { 11 | super(); 12 | this.blockPos = blockPos; 13 | } 14 | 15 | public BlockPos getBlockPos() { 16 | return this.blockPos; 17 | } 18 | 19 | public void setBlockPos(BlockPos blockPos) { 20 | this.blockPos = blockPos; 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/HandActiveEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class HandActiveEvent extends Event {} -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/JumpEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import me.srgantmoomoo.postman.api.util.world.Location; 5 | 6 | public class JumpEvent extends Event { 7 | 8 | private Location location; 9 | 10 | public JumpEvent(Location location) { 11 | this.location = location; 12 | } 13 | 14 | public Location getLocation() { 15 | return this.location; 16 | } 17 | 18 | public void setLocation(Location location) { 19 | this.location = location; 20 | } 21 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/LiquidCollisionBBEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.util.math.AxisAlignedBB; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | public class LiquidCollisionBBEvent extends Event { 8 | 9 | private AxisAlignedBB boundingBox; 10 | private BlockPos blockPos; 11 | 12 | public LiquidCollisionBBEvent() { 13 | 14 | } 15 | 16 | public LiquidCollisionBBEvent(BlockPos blockPos) { 17 | this.blockPos = blockPos; 18 | } 19 | 20 | public AxisAlignedBB getBoundingBox() { 21 | return boundingBox; 22 | } 23 | 24 | public void setBoundingBox(AxisAlignedBB boundingBox) { 25 | this.boundingBox = boundingBox; 26 | } 27 | 28 | public BlockPos getBlockPos() { 29 | return blockPos; 30 | } 31 | 32 | public void setBlockPos(BlockPos blockPos) { 33 | this.blockPos = blockPos; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/NetworkPacketEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.network.Packet; 5 | 6 | public class NetworkPacketEvent extends Event { 7 | 8 | public Packet m_Packet; 9 | 10 | 11 | public NetworkPacketEvent(Packet p_Packet) { 12 | super(); 13 | m_Packet = p_Packet; 14 | } 15 | 16 | public Packet GetPacket() { 17 | return m_Packet; 18 | } 19 | 20 | public Packet getPacket() { 21 | return m_Packet; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PacketEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.network.Packet; 5 | 6 | public class PacketEvent extends Event { 7 | 8 | private final Packet packet; 9 | 10 | public PacketEvent(Packet packet) { 11 | super(); 12 | this.packet = packet; 13 | } 14 | 15 | public Packet getPacket() { 16 | return this.packet; 17 | } 18 | 19 | public static class Receive extends PacketEvent { 20 | 21 | public Receive(Packet packet) { 22 | super(packet); 23 | } 24 | } 25 | 26 | public static class Send extends PacketEvent { 27 | public Send(Packet packet) { 28 | super(packet); 29 | } 30 | } 31 | 32 | public static class PostReceive extends PacketEvent { 33 | public PostReceive(Packet packet) { 34 | super(packet); 35 | } 36 | } 37 | 38 | public static class PostSend extends PacketEvent { 39 | public PostSend(Packet packet) { 40 | super(packet); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerJoinEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerJoinEvent extends Event { 6 | 7 | private final String name; 8 | 9 | public PlayerJoinEvent(String name) { 10 | super(); 11 | this.name = name; 12 | } 13 | 14 | public String getName() { 15 | return this.name; 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerJumpEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerJumpEvent extends Event { 6 | 7 | public PlayerJumpEvent() { 8 | super(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerLeaveEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerLeaveEvent extends Event { 6 | 7 | private final String name; 8 | 9 | public PlayerLeaveEvent(String name) { 10 | super(); 11 | this.name = name; 12 | } 13 | 14 | public String getName() { 15 | return this.name; 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerMotionUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerMotionUpdateEvent extends Event { 6 | public PlayerMotionUpdateEvent(Era era) { 7 | super(era); 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerMoveEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.entity.MoverType; 5 | 6 | public class PlayerMoveEvent extends Event { 7 | 8 | MoverType type; 9 | public double x; 10 | public double y; 11 | public double z; 12 | 13 | public PlayerMoveEvent(MoverType moverType, double x, double y, double z) { 14 | super(); 15 | this.type = moverType; 16 | this.x = x; 17 | this.y = y; 18 | this.z = z; 19 | } 20 | 21 | public MoverType getType() { 22 | return this.type; 23 | } 24 | 25 | public void setType(MoverType type) { 26 | this.type = type; 27 | } 28 | 29 | public double getX() { 30 | return this.x; 31 | } 32 | 33 | public double getY() { 34 | return this.y; 35 | } 36 | 37 | public double getZ() { 38 | return this.z; 39 | } 40 | 41 | public void setX(double x) { 42 | this.x = x; 43 | } 44 | 45 | public void setY(double y) { 46 | this.y = y; 47 | } 48 | 49 | public void setZ(double z) { 50 | this.z = z; 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerUpdateEvent extends Event { 6 | public PlayerUpdateEvent() { 7 | super(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/PlayerUpdateMoveStateEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class PlayerUpdateMoveStateEvent extends Event { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/RenderCameraEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class RenderCameraEvent extends Event { 6 | 7 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/RenderEntityNameEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.client.entity.AbstractClientPlayer; 5 | 6 | public class RenderEntityNameEvent extends Event { 7 | 8 | public AbstractClientPlayer Entity; 9 | public double X; 10 | public double Y; 11 | public double Z; 12 | public String Name; 13 | public double DistanceSq; 14 | 15 | public RenderEntityNameEvent(AbstractClientPlayer entityIn, double x, double y, double z, String name, double distanceSq) { 16 | Entity = entityIn; 17 | x = X; 18 | y = Y; 19 | z = Z; 20 | Name = name; 21 | DistanceSq = distanceSq; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/RenderEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class RenderEvent extends Event { 6 | 7 | private final float partialTicks; 8 | 9 | public RenderEvent(float partialTicks) { 10 | super(); 11 | this.partialTicks = partialTicks; 12 | } 13 | 14 | public float getPartialTicks() { 15 | return this.partialTicks; 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/RenderRainEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class RenderRainEvent extends Event { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/TotemPopEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.entity.Entity; 5 | 6 | public class TotemPopEvent extends Event { 7 | 8 | private final Entity entity; 9 | 10 | public TotemPopEvent(Entity entity) { 11 | super(); 12 | this.entity = entity; 13 | } 14 | 15 | public Entity getEntity() { 16 | return this.entity; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/TransformSideFirstPersonEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | import net.minecraft.util.EnumHandSide; 5 | 6 | public class TransformSideFirstPersonEvent extends Event { 7 | 8 | private final EnumHandSide enumHandSide; 9 | 10 | public TransformSideFirstPersonEvent(EnumHandSide enumHandSide){ 11 | this.enumHandSide = enumHandSide; 12 | } 13 | 14 | public EnumHandSide getEnumHandSide(){ 15 | return this.enumHandSide; 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/event/events/WaterPushEvent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.event.events; 2 | 3 | import me.srgantmoomoo.postman.api.event.Event; 4 | 5 | public class WaterPushEvent extends Event { 6 | 7 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/proxy/ClientProxy.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.proxy; 2 | 3 | /* 4 | * Written by @SrgantMooMoo on 11/17/20. 5 | */ 6 | 7 | public class ClientProxy extends CommonProxy { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/proxy/CommonProxy.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.proxy; 2 | 3 | /* 4 | * Written by @SrgantMooMoo on 11/17/20. 5 | */ 6 | 7 | public class CommonProxy { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/save/ClickGuiLoad.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.save; 2 | 3 | import java.io.IOException; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.client.ui.clickgui.ClickGuiConfig; 7 | 8 | /** 9 | * @author Hoosiers 10 | * @since 10/15/2020 11 | */ 12 | 13 | public class ClickGuiLoad { 14 | 15 | public ClickGuiLoad() { 16 | try { 17 | clickGuiLoad(); 18 | } 19 | catch (IOException e) { 20 | e.printStackTrace(); 21 | } 22 | } 23 | 24 | String fileName = "postman/"; 25 | String mainName = "clickGui/"; 26 | 27 | public void clickGuiLoad() throws IOException { 28 | loadClickGUIPositions(); 29 | } 30 | 31 | public void loadClickGUIPositions() throws IOException { 32 | Main.clickGui.gui.loadConfig(new ClickGuiConfig(fileName+mainName)); 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/save/ClickGuiSave.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.save; 2 | 3 | import java.io.File; 4 | import java.io.IOException; 5 | import java.nio.file.Files; 6 | import java.nio.file.Paths; 7 | 8 | import me.srgantmoomoo.Main; 9 | import me.srgantmoomoo.postman.client.ui.clickgui.ClickGuiConfig; 10 | 11 | /** 12 | * @author Hoosiers 13 | * @since 10/15/2020 14 | */ 15 | 16 | public class ClickGuiSave { 17 | 18 | public ClickGuiSave() { 19 | try { 20 | clickGuiSave(); 21 | } 22 | catch (IOException e) { 23 | e.printStackTrace(); 24 | } 25 | } 26 | 27 | public static final String fileName = "postman/"; 28 | String mainName = "clickGui/"; 29 | 30 | public void clickGuiSave() throws IOException { 31 | if (!Files.exists(Paths.get(fileName))) { 32 | Files.createDirectories(Paths.get(fileName)); 33 | } 34 | if (!Files.exists(Paths.get(fileName + mainName))) { 35 | Files.createDirectories(Paths.get(fileName + mainName)); 36 | } 37 | } 38 | 39 | public void registerFiles(String location, String name) throws IOException { 40 | if (!Files.exists(Paths.get(fileName + location + name + ".json"))) { 41 | Files.createFile(Paths.get(fileName + location + name + ".json")); 42 | } 43 | else { 44 | File file = new File(fileName + location + name + ".json"); 45 | 46 | file.delete(); 47 | 48 | Files.createFile(Paths.get(fileName + location +name + ".json")); 49 | } 50 | } 51 | 52 | public void saveClickGUIPositions() throws IOException { 53 | registerFiles(mainName, "ClickGUI"); 54 | Main.clickGui.gui.saveConfig(new ClickGuiConfig(fileName+mainName)); 55 | } 56 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/save/ConfigStopper.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.save; 2 | 3 | import java.io.IOException; 4 | 5 | import me.srgantmoomoo.Main; 6 | 7 | public class ConfigStopper extends Thread { 8 | 9 | @Override 10 | public void run() { 11 | saveConfig(); 12 | } 13 | 14 | public static void saveConfig() { 15 | try { 16 | Main.clickGuiSave.clickGuiSave(); 17 | Main.clickGuiSave.saveClickGUIPositions(); 18 | Main.log.info("saved config."); 19 | } 20 | catch (IOException e) { 21 | e.printStackTrace(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/Wrapper.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.client.entity.EntityPlayerSP; 5 | import net.minecraft.client.gui.FontRenderer; 6 | import net.minecraft.world.World; 7 | import org.lwjgl.input.Keyboard; 8 | 9 | //Created by 086 on 11/11/2017. 10 | 11 | public class Wrapper{ 12 | 13 | private static FontRenderer fontRenderer; 14 | 15 | public static Minecraft mc = Minecraft.getMinecraft(); 16 | 17 | public static Minecraft getMinecraft(){ 18 | return Minecraft.getMinecraft(); 19 | } 20 | 21 | public static EntityPlayerSP getPlayer(){ 22 | return getMinecraft().player; 23 | } 24 | 25 | public static World getWorld(){ 26 | return getMinecraft().world; 27 | } 28 | 29 | public static int getKey(String keyname){ 30 | return Keyboard.getKeyIndex(keyname.toUpperCase()); 31 | } 32 | 33 | public static FontRenderer getFontRenderer(){ 34 | return fontRenderer; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/damagetilt/MessageUpdateAttackYaw.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.damagetilt; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import me.srgantmoomoo.postman.client.module.ModuleManager; 5 | import net.minecraft.client.Minecraft; 6 | import net.minecraft.entity.EntityLivingBase; 7 | import net.minecraftforge.fml.common.network.simpleimpl.IMessage; 8 | import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; 9 | import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; 10 | import net.minecraftforge.fml.relauncher.Side; 11 | import net.minecraftforge.fml.relauncher.SideOnly; 12 | 13 | public class MessageUpdateAttackYaw implements IMessage { 14 | private float attackedAtYaw; 15 | 16 | public MessageUpdateAttackYaw() {} 17 | 18 | public MessageUpdateAttackYaw(EntityLivingBase entity) { 19 | this.attackedAtYaw = entity.attackedAtYaw; 20 | } 21 | 22 | public void fromBytes(ByteBuf buf) { 23 | this.attackedAtYaw = buf.readFloat(); 24 | } 25 | 26 | public void toBytes(ByteBuf buf) { 27 | buf.writeFloat(this.attackedAtYaw); 28 | } 29 | 30 | public static class Handler implements IMessageHandler { 31 | public IMessage onMessage(MessageUpdateAttackYaw message, MessageContext ctx) { 32 | if (ctx.side == Side.CLIENT) 33 | Minecraft.getMinecraft().addScheduledTask(() -> fromMessage(message)); 34 | return null; 35 | } 36 | 37 | @SideOnly(Side.CLIENT) 38 | public static void fromMessage(MessageUpdateAttackYaw message) { 39 | if (!ModuleManager.getModuleByName("damageTilt").isToggled()) 40 | return; 41 | (Minecraft.getMinecraft()).player.attackedAtYaw = message.attackedAtYaw; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/damagetilt/PacketHandler.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.damagetilt; 2 | 3 | import net.minecraftforge.fml.common.network.NetworkRegistry; 4 | import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; 5 | import net.minecraftforge.fml.relauncher.Side; 6 | 7 | public class PacketHandler { 8 | public static final SimpleNetworkWrapper instance = NetworkRegistry.INSTANCE.newSimpleChannel("damagetilt"); 9 | 10 | public static void init() { 11 | instance.registerMessage(MessageUpdateAttackYaw.Handler.class, MessageUpdateAttackYaw.class, 0, Side.CLIENT); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/font/FontUtils.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.font; 2 | 3 | import me.srgantmoomoo.Main; 4 | import me.srgantmoomoo.postman.api.util.render.JColor; 5 | import net.minecraft.client.Minecraft; 6 | 7 | public class FontUtils { 8 | 9 | private static final Minecraft mc = Minecraft.getMinecraft(); 10 | 11 | public static float drawStringWithShadow(boolean customFont, String text, int x, int y, JColor color) { 12 | if(customFont) { 13 | return Main.customFontRenderer.drawStringWithShadow(text, x, y, color); 14 | } 15 | else { 16 | return mc.fontRenderer.drawStringWithShadow(text, x, y, color.getRGB()); 17 | } 18 | } 19 | 20 | public static int getStringWidth(boolean customFont, String string) { 21 | if (customFont) { 22 | return Main.customFontRenderer.getStringWidth(string); 23 | } 24 | else { 25 | return mc.fontRenderer.getStringWidth(string); 26 | } 27 | } 28 | 29 | public static int getFontHeight(boolean customFont) { 30 | if (customFont) { 31 | return Main.customFontRenderer.getHeight(); 32 | } 33 | else { 34 | return mc.fontRenderer.FONT_HEIGHT; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/misc/Discord.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.misc; 2 | 3 | import club.minnced.discord.rpc.DiscordEventHandlers; 4 | import club.minnced.discord.rpc.DiscordRPC; 5 | import club.minnced.discord.rpc.DiscordRichPresence; 6 | import me.srgantmoomoo.Reference; 7 | import net.minecraft.client.Minecraft; 8 | 9 | public class Discord { 10 | 11 | private static String discordID = "815053529651609620"; 12 | private static DiscordRichPresence discordRichPresence = new DiscordRichPresence(); 13 | private static DiscordRPC discordRPC = DiscordRPC.INSTANCE; 14 | 15 | public static void startRPC(){ 16 | DiscordEventHandlers eventHandlers = new DiscordEventHandlers(); 17 | eventHandlers.disconnected = ((var1, var2) -> System.out.println("Discord RPC disconnected, var1: " + var1 + ", var2: " + var2)); 18 | 19 | discordRPC.Discord_Initialize(discordID, eventHandlers, true, null); 20 | 21 | discordRichPresence.startTimestamp = System.currentTimeMillis() / 1000L; 22 | discordRichPresence.details = Minecraft.getMinecraft().player.getName(); 23 | discordRichPresence.largeImageKey = "postman--"; 24 | discordRichPresence.largeImageText = "postman++ is yes"; 25 | discordRichPresence.state = "im on version " + Reference.VERSION + "!"; 26 | discordRPC.Discord_UpdatePresence(discordRichPresence); 27 | } 28 | 29 | public static void stopRPC(){ 30 | discordRPC.Discord_Shutdown(); 31 | discordRPC.Discord_ClearPresence(); 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/render/Cape.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.render; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.InputStreamReader; 5 | import java.net.URL; 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | import java.util.UUID; 9 | 10 | public class Cape { 11 | 12 | List uuids = new ArrayList<>(); 13 | 14 | public Cape() { 15 | try { 16 | URL capesList = new URL("https://pastebin.com/raw/2K1zmXZc"); 17 | BufferedReader in = new BufferedReader(new InputStreamReader(capesList.openStream())); 18 | String inputLine; 19 | while ((inputLine = in.readLine()) != null) { 20 | uuids.add(UUID.fromString(inputLine)); 21 | } 22 | } 23 | catch(Exception e) { 24 | e.printStackTrace(); 25 | } 26 | } 27 | 28 | public boolean hasCape(UUID id) { 29 | return uuids.contains(id); 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/render/ColorMain.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.render; 2 | 3 | import java.util.ArrayList; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 10 | import net.minecraft.util.text.TextFormatting; 11 | 12 | // this is from gs 13 | 14 | public class ColorMain extends Module { 15 | 16 | private static final Module ColorMain = null; 17 | public static ModeSetting colorModel = new ModeSetting("penis right?", ColorMain, "HSB", "RGB", "HSB"); 18 | 19 | public ColorMain() { 20 | super ("colorMain", "world of colors", Keyboard.KEY_NONE, Category.CLIENT); 21 | this.addSettings(colorModel); 22 | } 23 | 24 | public void setup() { 25 | ArrayList tab = new ArrayList<>(); 26 | tab.add("Black"); 27 | tab.add("Dark Green"); 28 | tab.add("Dark Red"); 29 | tab.add("Gold"); 30 | tab.add("Dark Gray"); 31 | tab.add("Green"); 32 | tab.add("Red"); 33 | tab.add("Yellow"); 34 | tab.add("Dark Blue"); 35 | tab.add("Dark Aqua"); 36 | tab.add("Dark Purple"); 37 | tab.add("Gray"); 38 | tab.add("Blue"); 39 | tab.add("Aqua"); 40 | tab.add("Light Purple"); 41 | tab.add("White"); 42 | ArrayList models=new ArrayList<>(); 43 | models.add("RGB"); 44 | models.add("HSB"); 45 | } 46 | 47 | public void onEnable() { 48 | this.disable(); 49 | } 50 | 51 | private static TextFormatting settingToFormatting () { 52 | return TextFormatting.AQUA; 53 | } 54 | 55 | public static TextFormatting getEnabledColor() { return settingToFormatting(); } 56 | 57 | public static TextFormatting getDisabledColor() { return settingToFormatting(); } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/render/JColor.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.render; 2 | 3 | import java.awt.Color; 4 | 5 | import net.minecraft.client.renderer.GlStateManager; 6 | 7 | /** 8 | * @author lukflug 9 | */ 10 | 11 | // this is taken from gs from a while ago lol - SrgantMooMoo 12 | 13 | public class JColor extends Color { 14 | 15 | private static final long serialVersionUID = 1L; 16 | 17 | public JColor (int rgb) { 18 | super(rgb); 19 | } 20 | 21 | public JColor (int rgba, boolean hasalpha) { 22 | super(rgba,hasalpha); 23 | } 24 | 25 | public JColor (int r, int g, int b) { 26 | super(r,g,b); 27 | } 28 | 29 | public JColor (int r, int g, int b, int a) { 30 | super(r,g,b,a); 31 | } 32 | 33 | public JColor (Color color) { 34 | super(color.getRed(),color.getGreen(),color.getBlue(),color.getAlpha()); 35 | } 36 | 37 | public JColor (JColor color, int a) { 38 | super(color.getRed(),color.getGreen(),color.getBlue(),a); 39 | } 40 | 41 | public static JColor fromHSB (float hue, float saturation, float brightness) { 42 | return new JColor(Color.getHSBColor(hue,saturation,brightness)); 43 | } 44 | 45 | public float getHue() { 46 | return RGBtoHSB(getRed(),getGreen(),getBlue(),null)[0]; 47 | } 48 | 49 | public float getSaturation() { 50 | return RGBtoHSB(getRed(),getGreen(),getBlue(),null)[1]; 51 | } 52 | 53 | public float getBrightness() { 54 | return RGBtoHSB(getRed(),getGreen(),getBlue(),null)[2]; 55 | } 56 | 57 | public void glColor() { 58 | GlStateManager.color(getRed()/255.0f,getGreen()/255.0f,getBlue()/255.0f,getAlpha()/255.0f); 59 | } 60 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/render/crystal/CrystalPretty.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.render.crystal; 2 | 3 | import net.minecraft.client.Minecraft; 4 | 5 | public class CrystalPretty { 6 | public Minecraft mc = Minecraft.getMinecraft(); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/world/GeometryMasks.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.world; 2 | 3 | import net.minecraft.util.EnumFacing; 4 | 5 | import java.util.HashMap; 6 | 7 | public final class GeometryMasks{ 8 | 9 | public static final HashMap FACEMAP = new HashMap<>(); 10 | static{ 11 | FACEMAP.put(EnumFacing.DOWN, Quad.DOWN); 12 | FACEMAP.put(EnumFacing.WEST, Quad.WEST); 13 | FACEMAP.put(EnumFacing.NORTH, Quad.NORTH); 14 | FACEMAP.put(EnumFacing.SOUTH, Quad.SOUTH); 15 | FACEMAP.put(EnumFacing.EAST, Quad.EAST); 16 | FACEMAP.put(EnumFacing.UP, Quad.UP); 17 | } 18 | 19 | public static final class Quad{ 20 | public static final int DOWN = 0x01; 21 | public static final int UP = 0x02; 22 | public static final int NORTH = 0x04; 23 | public static final int SOUTH = 0x08; 24 | public static final int WEST = 0x10; 25 | public static final int EAST = 0x20; 26 | public static final int ALL = DOWN | UP | NORTH | SOUTH | WEST | EAST; 27 | } 28 | 29 | public static final class Line{ 30 | public static final int DOWN_WEST = 0x11; 31 | public static final int UP_WEST = 0x12; 32 | public static final int DOWN_EAST = 0x21; 33 | public static final int UP_EAST = 0x22; 34 | public static final int DOWN_NORTH = 0x05; 35 | public static final int UP_NORTH = 0x06; 36 | public static final int DOWN_SOUTH = 0x09; 37 | public static final int UP_SOUTH = 0x0A; 38 | public static final int NORTH_WEST = 0x14; 39 | public static final int NORTH_EAST = 0x24; 40 | public static final int SOUTH_WEST = 0x18; 41 | public static final int SOUTH_EAST = 0x28; 42 | public static final int ALL = DOWN_WEST | UP_WEST | DOWN_EAST | UP_EAST | DOWN_NORTH | UP_NORTH | DOWN_SOUTH | UP_SOUTH | NORTH_WEST | NORTH_EAST | SOUTH_WEST | SOUTH_EAST; 43 | } 44 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/world/JTimer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.world; 2 | 3 | public class JTimer{ 4 | private long current; 5 | 6 | public JTimer(){ 7 | this.current = System.currentTimeMillis(); 8 | } 9 | 10 | public boolean hasReached(final long delay){ 11 | return System.currentTimeMillis() - this.current >= delay; 12 | } 13 | 14 | public boolean hasReached(final long delay, boolean reset){ 15 | if (reset) 16 | reset(); 17 | return System.currentTimeMillis() - this.current >= delay; 18 | } 19 | 20 | public void reset(){ 21 | this.current = System.currentTimeMillis(); 22 | } 23 | 24 | public long getTimePassed(){ 25 | return System.currentTimeMillis() - this.current; 26 | } 27 | 28 | public boolean sleep(final long time){ 29 | if (time() >= time){ 30 | reset(); 31 | return true; 32 | } 33 | return false; 34 | } 35 | 36 | public long time() { 37 | return System.currentTimeMillis() - current; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/world/Location.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.world; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | public class Location{ 8 | private double x, y, z; 9 | private boolean ground; 10 | 11 | public Location(double x, double y, double z, boolean ground){ 12 | this.x = x; 13 | this.y = y; 14 | this.z = z; 15 | this.ground = ground; 16 | } 17 | 18 | public Location(double x, double y, double z){ 19 | this.x = x; 20 | this.y = y; 21 | this.z = z; 22 | this.ground = true; 23 | } 24 | 25 | public Location(int x, int y, int z){ 26 | this.x = x; 27 | this.y = y; 28 | this.z = z; 29 | this.ground = true; 30 | } 31 | 32 | public Location add(int x, int y, int z){ 33 | this.x += x; 34 | this.y += y; 35 | this.z += z; 36 | return this; 37 | } 38 | 39 | public Location add(double x, double y, double z){ 40 | this.x += x; 41 | this.y += y; 42 | this.z += z; 43 | return this; 44 | } 45 | 46 | public Location subtract(int x, int y, int z){ 47 | this.x -= x; 48 | this.y -= y; 49 | this.z -= z; 50 | 51 | return this; 52 | } 53 | 54 | public Location subtract(double x, double y, double z){ 55 | this.x -= x; 56 | this.y -= y; 57 | this.z -= z; 58 | 59 | return this; 60 | } 61 | 62 | public Block getBlock(){ 63 | return Minecraft.getMinecraft().world.getBlockState(this.toBlockPos()).getBlock(); 64 | } 65 | 66 | public boolean isOnGround(){ 67 | return this.ground; 68 | } 69 | 70 | public Location setOnGround(boolean ground){ 71 | this.ground = ground; 72 | return this; 73 | } 74 | 75 | public double getX(){ 76 | return x; 77 | } 78 | 79 | public Location setX(double x){ 80 | this.x = x; 81 | return this; 82 | } 83 | 84 | public double getY(){ 85 | return y; 86 | } 87 | 88 | public Location setY(double y){ 89 | this.y = y; 90 | return this; 91 | } 92 | 93 | public double getZ(){ 94 | return z; 95 | } 96 | 97 | public Location setZ(double z){ 98 | this.z = z; 99 | return this; 100 | } 101 | 102 | public static Location fromBlockPos(BlockPos blockPos){ 103 | return new Location(blockPos.getX(), blockPos.getY(), blockPos.getZ()); 104 | } 105 | 106 | public BlockPos toBlockPos(){ 107 | return new BlockPos(getX(), getY(), getZ()); 108 | } 109 | } 110 | 111 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/api/util/world/TpsUtils.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.api.util.world; 2 | /*package me.srgantmoomoo.api.util.world; 3 | 4 | import me.srgantmoomoo.api.event.events.PacketEvent; 5 | import me.zero.alpine.listener.EventHandler; 6 | import me.zero.alpine.listener.Listener; 7 | import net.minecraft.network.play.server.SPacketTimeUpdate; 8 | import net.minecraft.util.math.MathHelper; 9 | 10 | import java.util.Arrays; 11 | 12 | // @Author 086 13 | 14 | public class TpsUtils{ 15 | private static final float[] tickRates = new float[20]; 16 | private int nextIndex = 0; 17 | private long timeLastTimeUpdate; 18 | 19 | public TpsUtils(){ 20 | nextIndex = 0; 21 | timeLastTimeUpdate = -1L; 22 | Arrays.fill(tickRates, 0.0F); 23 | } 24 | 25 | public static float getTickRate(){ 26 | float numTicks = 0.0F; 27 | float sumTickRates = 0.0F; 28 | for (float tickRate : tickRates){ 29 | if (tickRate > 0.0F){ 30 | sumTickRates += tickRate; 31 | numTicks += 1.0F; 32 | } 33 | } 34 | return MathHelper.clamp(sumTickRates / numTicks, 0.0F, 20.0F); 35 | } 36 | 37 | private void onTimeUpdate(){ 38 | if (this.timeLastTimeUpdate != -1L){ 39 | float timeElapsed = (float) (System.currentTimeMillis() - this.timeLastTimeUpdate) / 1000.0F; 40 | tickRates[(this.nextIndex % tickRates.length)] = MathHelper.clamp(20.0F / timeElapsed, 0.0F, 20.0F); 41 | this.nextIndex += 1; 42 | } 43 | this.timeLastTimeUpdate = System.currentTimeMillis(); 44 | } 45 | 46 | @EventHandler 47 | Listener listener = new Listener<>(event -> { 48 | if (event.getPacket() instanceof SPacketTimeUpdate){ 49 | onTimeUpdate(); 50 | } 51 | }); 52 | } 53 | */ 54 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/Command.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | public abstract class Command { 8 | public String name, description, syntax; 9 | public List aliases = new ArrayList(); 10 | 11 | public Command(String name, String description, String syntax, String... aliases) { 12 | this.name = name; 13 | this.description = description; 14 | this.syntax = syntax; 15 | this.aliases = Arrays.asList(aliases); 16 | } 17 | 18 | public abstract void onCommand(String[] args, String command); 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public String getDescription() { 29 | return description; 30 | } 31 | 32 | public void setDescription(String description) { 33 | this.description = description; 34 | } 35 | 36 | public String getSyntax() { 37 | return syntax; 38 | } 39 | 40 | public void setSyntax(String syntax) { 41 | this.syntax = syntax; 42 | } 43 | 44 | public List getAliases() { 45 | return aliases; 46 | } 47 | 48 | public void setAliases(List aliases) { 49 | this.aliases = aliases; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/AutoCope.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | 5 | import me.srgantmoomoo.postman.client.command.Command; 6 | import me.srgantmoomoo.postman.client.command.CommandManager; 7 | import me.srgantmoomoo.postman.client.module.ModuleManager; 8 | 9 | public class AutoCope extends Command { 10 | 11 | public AutoCope() { 12 | super("autoCope", "edit the autoCope msg.", "autoCope ", "ac"); 13 | } 14 | 15 | @Override 16 | public void onCommand(String[] args, String command) { 17 | if(args.length >= 1) { 18 | StringBuilder msg = new StringBuilder(); 19 | boolean flag = true; 20 | for (String string : args) { 21 | if (flag) { 22 | flag = false; 23 | continue; 24 | } 25 | msg.append(string).append(" "); 26 | } 27 | 28 | me.srgantmoomoo.postman.client.module.modules.pvp.AutoCope.setMessage(args[0] + " " + msg.toString()); 29 | ModuleManager.addChatMessage("set autoCope message to " + ChatFormatting.GREEN + args[0] + " " + msg.toString() + ChatFormatting.GRAY + "."); 30 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Bind.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import com.mojang.realmsclient.gui.ChatFormatting; 6 | 7 | import me.srgantmoomoo.postman.client.command.Command; 8 | import me.srgantmoomoo.postman.client.command.CommandManager; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.module.ModuleManager; 11 | 12 | public class Bind extends Command { 13 | 14 | public Bind() { 15 | super("bind", "bind modules to specific keys.", "bind | bind clear", "bi"); 16 | } 17 | 18 | @Override 19 | public void onCommand(String[] args, String command) { 20 | if(args.length == 2) { 21 | String moduleName = args[0]; 22 | String keyName = args[1]; 23 | boolean moduleFound = false; 24 | 25 | for(Module module : ModuleManager.modules) { 26 | if(module.name.equalsIgnoreCase(moduleName)) { 27 | module.keyCode.setKeyCode(Keyboard.getKeyIndex(keyName.toUpperCase())); 28 | 29 | ModuleManager.addChatMessage(String.format(ChatFormatting.GREEN + "%s " + ChatFormatting.GRAY + "was bound to" + ChatFormatting.GREEN + " %s", module.name, Keyboard.getKeyName(module.getKey())));; 30 | moduleFound = true; 31 | break; 32 | } 33 | } 34 | if(!moduleFound) { 35 | ModuleManager.addChatMessage(ChatFormatting.DARK_RED + "module not found."); 36 | } 37 | } 38 | 39 | if(args.length == 1) { 40 | String clear = args[0]; 41 | if(clear.equalsIgnoreCase("clear")) { 42 | for(Module module : ModuleManager.modules) { 43 | module.keyCode.setKeyCode(Keyboard.KEY_NONE); 44 | } 45 | ModuleManager.addChatMessage("cleared all binds."); 46 | } else CommandManager.correctUsageMsg(getName(), getSyntax()); 47 | } 48 | if(args.length == 0) CommandManager.correctUsageMsg(getName(), getSyntax()); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Clip.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import me.srgantmoomoo.postman.client.command.Command; 4 | import me.srgantmoomoo.postman.client.command.CommandManager; 5 | import me.srgantmoomoo.postman.client.module.ModuleManager; 6 | import net.minecraft.client.Minecraft; 7 | import net.minecraft.entity.Entity; 8 | import net.minecraft.util.math.Vec3d; 9 | 10 | public class Clip extends Command { 11 | 12 | public Clip() { 13 | super("clip", "clip horrizontally or vertically through blocks.", "clip h | clip v ", "c"); 14 | } 15 | 16 | @Override 17 | public void onCommand(String[] args, String command) { 18 | if(args.length > 0) { 19 | String start = args[0]; 20 | Entity entity = (Minecraft.getMinecraft().player.isRiding() ? Minecraft.getMinecraft().player.getRidingEntity() : Minecraft.getMinecraft().player); 21 | final Vec3d faceDirection = direction(Minecraft.getMinecraft().player.rotationYaw); 22 | 23 | if(start.equalsIgnoreCase("v")) { 24 | entity.setPosition(Minecraft.getMinecraft().player.posX, Minecraft.getMinecraft().player.posY + Double.parseDouble(args[1]), Minecraft.getMinecraft().player.posZ); 25 | ModuleManager.addChatMessage("vertically clipped " + args[1] + " blocks"); 26 | 27 | }else if(start.equalsIgnoreCase("h")) { 28 | entity.setPosition(Minecraft.getMinecraft().player.posX + faceDirection.x * Double.parseDouble(args[1]), Minecraft.getMinecraft().player.posY, Minecraft.getMinecraft().player.posZ + faceDirection.z * Double.valueOf(args[1])); 29 | ModuleManager.addChatMessage("horizontally clipped " + args[1] + " blocks"); 30 | }else 31 | CommandManager.correctUsageMsg(getName(), getSyntax()); 32 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 33 | } 34 | 35 | public static Vec3d direction(float yaw) { 36 | return new Vec3d(Math.cos(degToRad(yaw + 90f)), 0, Math.sin(degToRad(yaw + 90f))); 37 | } 38 | 39 | public static double degToRad(double deg) { 40 | return deg * (float) (Math.PI / 180.0f); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Friend.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | 5 | import me.srgantmoomoo.postman.client.command.Command; 6 | import me.srgantmoomoo.postman.client.command.CommandManager; 7 | import me.srgantmoomoo.postman.client.friend.FriendManager; 8 | import me.srgantmoomoo.postman.client.module.ModuleManager; 9 | 10 | public class Friend extends Command { 11 | 12 | public Friend() { 13 | super("friend", "manage your friends.", "friend list | friend add | friend remove | friend clear", "f"); 14 | } 15 | 16 | @Override 17 | public void onCommand(String[] args, String command) { 18 | if(args.length > 0) { 19 | String start = args[0]; 20 | 21 | if(start.equalsIgnoreCase("list")) { 22 | ModuleManager.addChatMessage("friends: " + FriendManager.getFriendsByName()); 23 | }else if(start.equalsIgnoreCase("clear")) { 24 | FriendManager.clearFriends(); 25 | ModuleManager.addChatMessage("cleared all friends"); 26 | }else 27 | 28 | if (start.equalsIgnoreCase("add") && !FriendManager.isFriend(args[1])) { 29 | FriendManager.addFriend(args[1]); 30 | ModuleManager.addChatMessage(ChatFormatting.GREEN + "added" + ChatFormatting.GRAY + " friend: " + args[1].toUpperCase()); 31 | }else if (start.equalsIgnoreCase("remove") && FriendManager.isFriend(args[1])) { 32 | FriendManager.removeFriend(args[1]); 33 | ModuleManager.addChatMessage(ChatFormatting.DARK_RED + "removed" + ChatFormatting.GRAY + " friend: " + args[1].toUpperCase()); 34 | }else { 35 | CommandManager.correctUsageMsg(getName(), getSyntax()); 36 | } 37 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/MobOwner.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import java.util.Objects; 4 | 5 | import me.srgantmoomoo.postman.api.util.world.EntityUtil; 6 | import me.srgantmoomoo.postman.client.command.Command; 7 | import me.srgantmoomoo.postman.client.command.CommandManager; 8 | import me.srgantmoomoo.postman.client.module.ModuleManager; 9 | import net.minecraft.client.Minecraft; 10 | import net.minecraft.entity.passive.AbstractHorse; 11 | import net.minecraft.util.text.TextFormatting; 12 | 13 | public class MobOwner extends Command { 14 | 15 | public MobOwner() { 16 | super("mobOwner", "check the owner of a ridden mob.", "mobOwner", "mo"); 17 | } 18 | 19 | @Override 20 | public void onCommand(String[] args, String command) { 21 | if(args.length == 0) { 22 | if (Minecraft.getMinecraft().player.getRidingEntity() != null && Minecraft.getMinecraft().player.getRidingEntity() instanceof AbstractHorse) { 23 | AbstractHorse horse = (AbstractHorse) Minecraft.getMinecraft().player.getRidingEntity(); 24 | 25 | String ownerUUID = horse.getOwnerUniqueId() == null ? "entity has no owner" : horse.getOwnerUniqueId().toString(); 26 | 27 | try { 28 | String ownerReplace = Objects.requireNonNull(EntityUtil.getNameFromUUID(ownerUUID)).replace("\"", ""); 29 | ModuleManager.addChatMessage("mob owner is " + TextFormatting.GREEN + ownerReplace); 30 | }catch (Exception e) { 31 | ModuleManager.addChatMessage("something went wrong, this entity may not have a real owner."); 32 | } 33 | }else { 34 | ModuleManager.addChatMessage("ridden entity is not compatible with this command"); 35 | } 36 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 37 | } 38 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Prefix.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | 5 | import me.srgantmoomoo.postman.client.command.Command; 6 | import me.srgantmoomoo.postman.client.command.CommandManager; 7 | import me.srgantmoomoo.postman.client.module.ModuleManager; 8 | 9 | public class Prefix extends Command { 10 | public Prefix() { 11 | super("prefix", "sets the command prefix.", "prefix ", "p"); 12 | } 13 | 14 | @Override 15 | public void onCommand(String[] args, String command) { 16 | if(args.length == 1) { 17 | String key = args[0]; 18 | CommandManager.setCommandPrefix(key); 19 | ModuleManager.addChatMessage(String.format(ChatFormatting.GREEN + "command prefix " + ChatFormatting.GRAY + "was set to " + ChatFormatting.GREEN + CommandManager.prefix)); 20 | } 21 | 22 | if(args.length == 0) CommandManager.correctUsageMsg(getName(), getSyntax()); 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Protester.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | 5 | import me.srgantmoomoo.postman.client.command.Command; 6 | import me.srgantmoomoo.postman.client.command.CommandManager; 7 | import me.srgantmoomoo.postman.client.module.ModuleManager; 8 | 9 | public class Protester extends Command { 10 | 11 | public Protester() { 12 | super("protester", "edit the protester msg.", "protester ", "pr"); 13 | } 14 | 15 | @Override 16 | public void onCommand(String[] args, String command) { 17 | if(args.length >= 1) { 18 | StringBuilder msg = new StringBuilder(); 19 | boolean flag = true; 20 | for (String string : args) { 21 | if (flag) { 22 | flag = false; 23 | continue; 24 | } 25 | msg.append(string).append(" "); 26 | } 27 | 28 | me.srgantmoomoo.postman.client.module.modules.player.Protester.setMessage(args[0] + " " + msg.toString()); 29 | ModuleManager.addChatMessage("set protester message to " + ChatFormatting.GREEN + args[0] + " " + msg.toString() + ChatFormatting.GRAY + "."); 30 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Toggle.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | 5 | import me.srgantmoomoo.postman.client.command.Command; 6 | import me.srgantmoomoo.postman.client.command.CommandManager; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import me.srgantmoomoo.postman.client.module.ModuleManager; 9 | 10 | public class Toggle extends Command { 11 | 12 | public Toggle() { 13 | super("toggle", "toggles a module on or off.", "toggle ", "t"); 14 | } 15 | 16 | @Override 17 | public void onCommand(String[] args, String command) { 18 | if(args.length > 0) { 19 | String moduleName = args[0]; 20 | boolean moduleFound = false; 21 | for(Module module : ModuleManager.modules) { 22 | if(module.name.equalsIgnoreCase(moduleName)) { 23 | module.toggle(); 24 | ModuleManager.addChatMessage(module.name + " " + (module.isToggled() ? ChatFormatting.GREEN + "enabled" + ChatFormatting.GRAY + "." : ChatFormatting.RED + "disabled" + ChatFormatting.GRAY + ".")); 25 | moduleFound = true; 26 | break; 27 | } 28 | } 29 | if(!moduleFound) { 30 | ModuleManager.addChatMessage(ChatFormatting.DARK_RED + "module not found."); 31 | } 32 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/command/commands/Vanish.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.command.commands; 2 | 3 | import me.srgantmoomoo.postman.client.command.Command; 4 | import me.srgantmoomoo.postman.client.command.CommandManager; 5 | import me.srgantmoomoo.postman.client.module.ModuleManager; 6 | import net.minecraft.client.Minecraft; 7 | import net.minecraft.entity.Entity; 8 | 9 | public class Vanish extends Command { 10 | private static Entity ridden; 11 | 12 | public Vanish() { 13 | super("vanish", "vanish ridden entities.", "vanish", "v"); 14 | } 15 | 16 | @Override 17 | public void onCommand(String[] args, String command) { 18 | if(args.length == 0) { 19 | if (Minecraft.getMinecraft().player.getRidingEntity() != null && ridden == null) { 20 | ridden = Minecraft.getMinecraft().player.getRidingEntity(); 21 | 22 | Minecraft.getMinecraft().player.dismountRidingEntity(); 23 | Minecraft.getMinecraft().world.removeEntityFromWorld(ridden.getEntityId()); 24 | ModuleManager.addChatMessage("entity " + ridden.getName() + " removed."); 25 | }else { 26 | if (ridden != null) { 27 | ridden.isDead = false; 28 | 29 | Minecraft.getMinecraft().world.addEntityToWorld(ridden.getEntityId(), ridden); 30 | Minecraft.getMinecraft().player.startRiding(ridden, true); 31 | ModuleManager.addChatMessage("entity " + ridden.getName() + " created."); 32 | ridden = null; 33 | }else { 34 | ModuleManager.addChatMessage("no entity is being ridden"); 35 | } 36 | } 37 | }else CommandManager.correctUsageMsg(getName(), getSyntax()); 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/friend/Friend.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.friend; 2 | 3 | public class Friend { 4 | 5 | String name; 6 | 7 | public Friend(String name) { 8 | this.name = name; 9 | } 10 | 11 | public String getName() { 12 | return this.name; 13 | } 14 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/friend/FriendManager.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.friend; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import me.srgantmoomoo.Main; 7 | 8 | public class FriendManager { 9 | 10 | public static List friends; 11 | 12 | public FriendManager(){ 13 | friends = new ArrayList<>(); 14 | } 15 | 16 | public static List getFriendsByName() { 17 | ArrayList friendsName = new ArrayList<>(); 18 | friends.forEach(friend -> friendsName.add(friend.getName())); 19 | 20 | return friendsName; 21 | } 22 | 23 | public static boolean isFriend(String name) { 24 | boolean b = false; 25 | for (Friend f : friends) { 26 | if (f.getName().equalsIgnoreCase(name)) { 27 | b = true; 28 | break; 29 | } 30 | } 31 | 32 | return b; 33 | } 34 | 35 | public static Friend getFriendByName(String name) { 36 | Friend fr = null; 37 | for (Friend f : friends) { 38 | if (f.getName().equalsIgnoreCase(name)) { 39 | fr = f; 40 | } 41 | } 42 | 43 | return fr; 44 | } 45 | 46 | public static void addFriend(String name) { 47 | friends.add(new Friend(name)); 48 | 49 | if(Main.saveLoad != null) { 50 | Main.saveLoad.save(); 51 | } 52 | } 53 | 54 | public static void removeFriend(String name) { 55 | friends.remove(getFriendByName(name)); 56 | } 57 | 58 | public static void clearFriends() { 59 | friends.clear(); 60 | } 61 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/Category.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module; 2 | // i got the bot idea from momentum, thanks linus, very based client. 3 | public enum Category { 4 | PLAYER("player"), RENDER("render"), PVP("pvp"), EXPLOITS("exploits"), MOVEMENT("movement"), HUD("hud"), CLIENT("client"), BOT("bot"); 5 | 6 | public String name; 7 | public int moduleIndex; 8 | 9 | Category(String name) { 10 | this.name = name; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/HudModule.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module; 2 | 3 | import java.awt.Point; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import com.lukflug.panelstudio.FixedComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | 10 | import me.srgantmoomoo.Main; 11 | 12 | /** 13 | * @author lukflug 14 | */ 15 | 16 | public abstract class HudModule extends Module { 17 | 18 | protected FixedComponent component; 19 | protected Point position; 20 | 21 | public HudModule (String title, String description, Point defaultPos, Category category) { 22 | super(title, description, Keyboard.KEY_NONE, category); 23 | position = defaultPos; 24 | } 25 | 26 | public abstract void populate (Theme theme); 27 | 28 | public FixedComponent getComponent() { 29 | return component; 30 | } 31 | 32 | public void resetPosition() { 33 | component.setPosition(Main.clickGui.guiInterface,position); 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/bot/OffHandBot.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.bot; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class OffHandBot extends Module { 9 | 10 | public OffHandBot() { 11 | super("(wip) offHandBot", "a bot that better manages ur off hand.", Keyboard.KEY_NONE, Category.BOT); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/Capes.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Capes extends Module { 9 | 10 | public Capes() { 11 | super("capes", "allows u to see ur and others postman capes.", Keyboard.KEY_NONE, Category.CLIENT); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/ChatNotifications.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | public class ChatNotifications { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/ClientFont.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import java.awt.Font; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import me.srgantmoomoo.Main; 8 | import me.srgantmoomoo.postman.api.util.font.CustomFontRenderer; 9 | import me.srgantmoomoo.postman.client.module.Category; 10 | import me.srgantmoomoo.postman.client.module.Module; 11 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 12 | 13 | public class ClientFont extends Module { 14 | public ModeSetting font = new ModeSetting("font", this, "Comic Sans Ms", "Comic Sans Ms", "Arial", "Verdana"); 15 | 16 | public ClientFont() { 17 | super ("clientFont", "changes the font the client uses.", Keyboard.KEY_NONE, Category.CLIENT); 18 | this.addSettings(font); 19 | } 20 | 21 | public void onEnable() { 22 | if(font.is("Comic Sans Ms")) { 23 | Main.customFontRenderer = new CustomFontRenderer(new Font("Comic Sans MS", Font.PLAIN, 18), true, true); 24 | } 25 | 26 | if(font.is("Arial")) { 27 | Main.customFontRenderer = new CustomFontRenderer(new Font("Arial", Font.PLAIN, 18), true, true); 28 | } 29 | 30 | if(font.is("Verdana")) { 31 | Main.customFontRenderer = new CustomFontRenderer(new Font("Verdana", Font.PLAIN, 18), true, true); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/ColorMain.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import java.util.ArrayList; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import me.srgantmoomoo.postman.api.util.render.JColor; 8 | import me.srgantmoomoo.postman.client.module.Category; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 11 | import net.minecraft.util.text.TextFormatting; 12 | 13 | // this is from gs 14 | 15 | public class ColorMain extends Module { 16 | 17 | private static final Module ColorMain = null; 18 | public static ModeSetting colorModel = new ModeSetting("penis right?", ColorMain, "HSB", "RGB", "HSB"); 19 | 20 | public ColorMain() { 21 | super ("colorMain", "world of colors", Keyboard.KEY_NONE, Category.CLIENT); 22 | this.addSettings(colorModel); 23 | } 24 | 25 | public void setup() { 26 | ArrayList tab = new ArrayList<>(); 27 | tab.add("Black"); 28 | tab.add("Dark Green"); 29 | tab.add("Dark Red"); 30 | tab.add("Gold"); 31 | tab.add("Dark Gray"); 32 | tab.add("Green"); 33 | tab.add("Red"); 34 | tab.add("Yellow"); 35 | tab.add("Dark Blue"); 36 | tab.add("Dark Aqua"); 37 | tab.add("Dark Purple"); 38 | tab.add("Gray"); 39 | tab.add("Blue"); 40 | tab.add("Aqua"); 41 | tab.add("Light Purple"); 42 | tab.add("White"); 43 | ArrayList models=new ArrayList<>(); 44 | models.add("RGB"); 45 | models.add("HSB"); 46 | } 47 | 48 | public void onEnable() { 49 | this.disable(); 50 | } 51 | 52 | private static TextFormatting settingToFormatting () { 53 | return TextFormatting.AQUA; 54 | } 55 | 56 | public static TextFormatting getEnabledColor() { return settingToFormatting(); } 57 | 58 | public static TextFormatting getDisabledColor() { return settingToFormatting(); } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/CrazyNewDupe.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import java.awt.Desktop; 4 | import java.net.URI; 5 | 6 | import org.lwjgl.input.Keyboard; 7 | 8 | import me.srgantmoomoo.postman.client.module.Category; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 11 | 12 | public class CrazyNewDupe extends Module { 13 | public ModeSetting dupeMode = new ModeSetting("mode", this, "donate", "donate", "github", "discord"); 14 | 15 | public CrazyNewDupe() { 16 | super("postmanAppreciation", "crazyyyyyyy 0_0.", Keyboard.KEY_NONE, Category.CLIENT); 17 | this.addSettings(dupeMode); 18 | } 19 | 20 | public void onEnable() { 21 | if(dupeMode.is("sex")) { 22 | try { 23 | Desktop.getDesktop().browse(URI.create("https://www.paypal.com/biz/fund?id=4A9XUTEQMVUZG")); 24 | } catch (Exception e) {} 25 | } 26 | if(dupeMode.is("blowy")) { 27 | try { 28 | Desktop.getDesktop().browse(URI.create("https://github.com/moomooooo/postman")); 29 | } catch (Exception e) {} 30 | } 31 | if(dupeMode.is("moneyGlitch")) { 32 | try { 33 | Desktop.getDesktop().browse(URI.create("https://discord.gg/Jd8EmEuhb5")); 34 | } catch (Exception e) {} 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/DiscordRichPresence.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.api.util.misc.Discord; 6 | import me.srgantmoomoo.postman.client.module.Category; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | 9 | public class DiscordRichPresence extends Module { 10 | 11 | public DiscordRichPresence() { 12 | super ("discordRpc", "shows ur playing postman on discord.", Keyboard.KEY_NONE, Category.CLIENT); 13 | } 14 | 15 | public void onEnable() { 16 | Discord.startRPC(); 17 | } 18 | 19 | public void onDisable() { 20 | Discord.stopRPC(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/GiveMeClout.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import java.awt.Desktop; 4 | import java.net.URI; 5 | 6 | import org.lwjgl.input.Keyboard; 7 | 8 | import me.srgantmoomoo.postman.client.module.Category; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 11 | 12 | public class GiveMeClout extends Module { 13 | public ModeSetting dupeMode = new ModeSetting("mode", this, "donate", "donate", "github", "discord"); 14 | 15 | public GiveMeClout() { 16 | super("giveMeClout", "crazyyyyyyy 0_0.", Keyboard.KEY_NONE, Category.CLIENT); 17 | this.addSettings(dupeMode); 18 | } 19 | 20 | public void onEnable() { 21 | if(dupeMode.is("sex")) { 22 | try { 23 | Desktop.getDesktop().browse(URI.create("https://www.paypal.com/biz/fund?id=4A9XUTEQMVUZG")); 24 | } catch (Exception e) {} 25 | } 26 | if(dupeMode.is("blowy")) { 27 | try { 28 | Desktop.getDesktop().browse(URI.create("https://github.com/moomooooo/postman")); 29 | } catch (Exception e) {} 30 | } 31 | if(dupeMode.is("moneyGlitch")) { 32 | try { 33 | Desktop.getDesktop().browse(URI.create("https://discord.gg/Jd8EmEuhb5")); 34 | } catch (Exception e) {} 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/client/MainMenuWatermark.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.client; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class MainMenuWatermark extends Module { 9 | 10 | public MainMenuWatermark() { 11 | super("mainMenuWatermark", "shows postman on minecrafts main menu screen.", Keyboard.KEY_NONE, Category.CLIENT); 12 | toggled = true; 13 | } 14 | //check MixinGuiMainMenu :) 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/AntiHunger.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import net.minecraft.network.play.client.CPacketEntityAction; 4 | import net.minecraft.network.play.client.CPacketPlayer; 5 | 6 | import static net.minecraft.network.play.client.CPacketEntityAction.Action.START_SPRINTING; 7 | import static net.minecraft.network.play.client.CPacketEntityAction.Action.STOP_SPRINTING; 8 | 9 | import org.lwjgl.input.Keyboard; 10 | 11 | import me.srgantmoomoo.Main; 12 | import me.srgantmoomoo.postman.api.event.events.NetworkPacketEvent; 13 | import me.srgantmoomoo.postman.client.module.Category; 14 | import me.srgantmoomoo.postman.client.module.Module; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.zero.alpine.listener.EventHandler; 17 | import me.zero.alpine.listener.Listener; 18 | 19 | public final class AntiHunger extends Module { 20 | public BooleanSetting sprint = new BooleanSetting("cancelSprintPacket", this, false); 21 | public BooleanSetting ground = new BooleanSetting("spoofGroundState", this, true); 22 | 23 | public AntiHunger() { 24 | super ("antiHunger", "anti HUNGER.", Keyboard.KEY_NONE, Category.EXPLOITS); 25 | this.addSettings(sprint,ground); 26 | } 27 | 28 | public void onEnable() { 29 | Main.EVENT_BUS.subscribe(this); 30 | } 31 | 32 | public void onDisable() { 33 | Main.EVENT_BUS.unsubscribe(this); 34 | } 35 | 36 | @EventHandler 37 | private Listener PacketEvent = new Listener<>(event -> { 38 | if (event.getPacket() instanceof CPacketPlayer && ground.isEnabled() && !mc.player.isElytraFlying()) { 39 | final CPacketPlayer packet = (CPacketPlayer) event.getPacket(); 40 | if (mc.player.fallDistance > 0 || mc.playerController.isHittingBlock) { 41 | packet.onGround = true; 42 | } 43 | else { 44 | packet.onGround = false; 45 | } 46 | } 47 | 48 | if (event.getPacket() instanceof CPacketEntityAction && sprint.isEnabled()) { 49 | final CPacketEntityAction packet = (CPacketEntityAction) event.getPacket(); 50 | if (packet.getAction() == START_SPRINTING || packet.getAction() == STOP_SPRINTING) { 51 | event.cancel(); 52 | } 53 | } 54 | }); 55 | 56 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/AntiNick.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class AntiNick extends Module { 9 | 10 | public AntiNick() { 11 | super("antiNick", "shows who is nicked in the player list.", Keyboard.KEY_NONE, Category.EXPLOITS); 12 | } 13 | 14 | public void onEnable() { 15 | /*try { 16 | Desktop.getDesktop().browse(URI.create("https://namemc.com/profile/" + mc.player.getName() + ".1")); 17 | } catch (Exception e) {}*/ 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/AntiSwing.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.network.play.client.CPacketAnimation; 12 | 13 | public class AntiSwing extends Module { 14 | 15 | public AntiSwing() { 16 | super ("antiSwing", "prevents swinging server side.", Keyboard.KEY_NONE, Category.EXPLOITS); 17 | } 18 | 19 | @EventHandler 20 | public Listener listener = new Listener<>(event -> { 21 | if (event.getPacket() instanceof CPacketAnimation) { 22 | event.cancel(); 23 | } 24 | }); 25 | 26 | public void onEnable() { 27 | Main.EVENT_BUS.subscribe(this); 28 | } 29 | 30 | public void onDisable() { 31 | Main.EVENT_BUS.unsubscribe(this); 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/Backdoor2b2t.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Backdoor2b2t extends Module { 9 | 10 | public Backdoor2b2t() { 11 | super ("backdoor", "backdoors 2b lol.", Keyboard.KEY_NONE, Category.EXPLOITS); 12 | } 13 | 14 | public void onEnable() { 15 | if (mc.player != null) 16 | mc.player.sendChatMessage("penis"); 17 | disable(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/CoordExploit.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | /* 9 | * Written by @SrgantMooMoo on 11/17/20 10 | * this code was originally written to steal sm1's coords, if u wanna screw urself then u can un-annotate it lmao. 11 | */ 12 | 13 | public class CoordExploit extends Module { 14 | 15 | public CoordExploit() { 16 | super ("coordExploit", "doesn't actually work lol :(", Keyboard.KEY_NONE, Category.EXPLOITS); 17 | } 18 | //private Minecraft mc = Minecraft.getMinecraft(); 19 | 20 | 21 | /*public void onEnable(){ 22 | if (mc.player != null) 23 | mc.player.sendChatMessage("/msg" + " " + " " + "I just got coord exploited!" + " " + "(x)" + mc.player.getPosition().getX() + " " + "(y)" + mc.player.getPosition().getY() + " " + "(z)" + mc.player.getPosition().getZ()); 24 | disable(); 25 | } */ 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/Dupe.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Dupe extends Module { 9 | 10 | public Dupe() { 11 | super ("dupe", "dupes an item for u (cap).", Keyboard.KEY_NONE, Category.EXPLOITS); 12 | } 13 | 14 | public void onEnable() { 15 | 16 | if (mc.player != null) 17 | mc.player.sendChatMessage("holy crap, i just duped 69 shulkers with postman!!! https://discord.gg/Jd8EmEuhb5 0_0"); 18 | disable(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/ElytraFly.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class ElytraFly extends Module { 9 | 10 | public ElytraFly() { 11 | super ("elytraFly", "fly ez lololol", Keyboard.KEY_NONE, Category.EXPLOITS); 12 | } 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/NoHandShake.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import io.netty.buffer.Unpooled; 6 | import me.srgantmoomoo.Main; 7 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 8 | import me.srgantmoomoo.postman.client.module.Category; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.zero.alpine.listener.EventHandler; 11 | import me.zero.alpine.listener.Listener; 12 | import net.minecraft.network.PacketBuffer; 13 | import net.minecraft.network.play.client.CPacketCustomPayload; 14 | import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; 15 | 16 | public class NoHandShake extends Module { 17 | 18 | public NoHandShake() { 19 | super("noHandShake", "stops forge from sending ur mod list to server's.", Keyboard.KEY_NONE, Category.EXPLOITS); 20 | } 21 | 22 | @EventHandler 23 | private Listener send_listener = new Listener<>(event -> { 24 | if (event.getPacket() instanceof FMLProxyPacket && !mc.isSingleplayer()) { 25 | event.cancel(); 26 | } 27 | if (event.getPacket() instanceof CPacketCustomPayload) { 28 | final CPacketCustomPayload packet = (CPacketCustomPayload) event.getPacket(); 29 | if (packet.getChannelName().equalsIgnoreCase("MC|Brand")) { 30 | packet.data = new PacketBuffer(Unpooled.buffer()).writeString("vanilla"); 31 | } 32 | } 33 | }); 34 | 35 | public void onEnable() { 36 | Main.EVENT_BUS.subscribe(this); 37 | } 38 | 39 | public void onDisable() { 40 | Main.EVENT_BUS.unsubscribe(this); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/PacketCancellor.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 10 | import me.zero.alpine.listener.EventHandler; 11 | import me.zero.alpine.listener.Listener; 12 | import net.minecraft.network.play.client.CPacketEntityAction; 13 | import net.minecraft.network.play.client.CPacketInput; 14 | import net.minecraft.network.play.client.CPacketPlayer; 15 | import net.minecraft.network.play.client.CPacketUseEntity; 16 | import net.minecraft.network.play.client.CPacketVehicleMove; 17 | 18 | public class PacketCancellor extends Module { 19 | public BooleanSetting packetInput = new BooleanSetting("packetInput", this, true); 20 | public BooleanSetting packetPlayer = new BooleanSetting("packetPlayer", this, true); 21 | public BooleanSetting packetEntityAction = new BooleanSetting("packetEntityAction", this, true); 22 | public BooleanSetting packetUseEntity = new BooleanSetting("packetUseEntity", this, true); 23 | public BooleanSetting packetVehicleMove = new BooleanSetting("packetVehicleMove", this, true); 24 | 25 | public PacketCancellor() { 26 | super("packetCancellor", "cancel specific packets.", Keyboard.KEY_NONE, Category.EXPLOITS); 27 | this.addSettings(packetInput, packetPlayer, packetEntityAction, packetUseEntity, packetVehicleMove); 28 | } 29 | private int packets; 30 | 31 | @EventHandler 32 | private final Listener sendListener = new Listener<>(event -> { 33 | if ((packetInput.isEnabled() && event.getPacket() instanceof CPacketInput) || (packetPlayer.isEnabled() && event.getPacket() instanceof CPacketPlayer) 34 | || (packetEntityAction.isEnabled() && event.getPacket() instanceof CPacketEntityAction) || (packetUseEntity.isEnabled() && event.getPacket() instanceof CPacketUseEntity) 35 | || (packetVehicleMove.isEnabled() && event.getPacket() instanceof CPacketVehicleMove)) { 36 | event.cancel(); 37 | packets++; 38 | } 39 | }); 40 | 41 | public void onEnable() { 42 | Main.EVENT_BUS.subscribe(this); 43 | } 44 | 45 | public void onDisable() { 46 | Main.EVENT_BUS.unsubscribe(this); 47 | packets = 0; 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/PortalGodMode.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.network.play.client.CPacketConfirmTeleport; 12 | 13 | public class PortalGodMode extends Module { 14 | 15 | public PortalGodMode() { 16 | super ("portalGodMode", "stupid fucking module but im adding it cause the more modules the better right....", Keyboard.KEY_NONE, Category.EXPLOITS); 17 | } 18 | 19 | public void onEnable() { 20 | Main.EVENT_BUS.subscribe(this); 21 | } 22 | 23 | public void onDisable() { 24 | Main.EVENT_BUS.unsubscribe(this); 25 | } 26 | 27 | @EventHandler 28 | private final Listener listener = new Listener<>(event -> { 29 | if (event.getPacket() instanceof CPacketConfirmTeleport) { 30 | event.cancel(); 31 | } 32 | }); 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/SoftJoin.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | public class SoftJoin { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/exploits/Timer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.exploits; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 8 | import net.minecraftforge.common.MinecraftForge; 9 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 10 | import net.minecraftforge.fml.common.gameevent.TickEvent; 11 | 12 | public class Timer extends Module { 13 | public NumberSetting speed = new NumberSetting("speed", this, 20, 1, 300, 1); 14 | 15 | public Timer() { 16 | super ("timer", "changes player timer.", Keyboard.KEY_NONE, Category.EXPLOITS); 17 | this.addSettings(speed); 18 | } 19 | 20 | @SubscribeEvent 21 | public void onTick(final TickEvent.ClientTickEvent event) { 22 | mc.timer.tickLength = (float) (50f / (speed.getValue() / 10f)); 23 | } 24 | 25 | @Override 26 | public void onEnable() { 27 | MinecraftForge.EVENT_BUS.register(this); 28 | } 29 | 30 | @Override 31 | public void onDisable() { 32 | mc.timer.tickLength = 50f; 33 | MinecraftForge.EVENT_BUS.unregister(this); 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/AutoCInfo.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.module.ModuleManager; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 17 | 18 | 19 | public class AutoCInfo extends HudModule { 20 | private AutoCInfoList list=new AutoCInfoList(); 21 | 22 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 23 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 24 | 25 | 26 | public AutoCInfo() { 27 | super("autoCrystalInfo", "shows if autocrystal is on or off.", new Point(-3,39), Category.HUD); 28 | this.addSettings(sort, color); 29 | } 30 | 31 | @Override 32 | public void populate (Theme theme) { 33 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 34 | } 35 | 36 | private class AutoCInfoList implements HUDList { 37 | 38 | @Override 39 | public int getSize() { 40 | return 1; 41 | } 42 | 43 | @Override 44 | public String getItem(int index) { 45 | if (ModuleManager.isModuleEnabled("autoCrystal")) return ChatFormatting.GREEN + "autoC" + " on"; 46 | else return "autoC" + " off"; 47 | } 48 | 49 | @Override 50 | public Color getItemColor(int index) { 51 | return color.getValue(); 52 | } 53 | 54 | @Override 55 | public boolean sortUp() { 56 | return false; 57 | } 58 | 59 | @Override 60 | public boolean sortRight() { 61 | return sort.isEnabled(); 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/AutoCrystalHud.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.module.ModuleManager; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 17 | 18 | 19 | public class AutoCrystalHud extends HudModule { 20 | private AutoCInfoList list=new AutoCInfoList(); 21 | 22 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 23 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 24 | 25 | 26 | public AutoCrystalHud() { 27 | super("autoCrystalHud", "shows u if autoCrystal is on or off.", new Point(-2, 39), Category.HUD); 28 | this.addSettings(color, sort); 29 | } 30 | 31 | @Override 32 | public void populate (Theme theme) { 33 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 34 | } 35 | 36 | private class AutoCInfoList implements HUDList { 37 | 38 | @Override 39 | public int getSize() { 40 | return 1; 41 | } 42 | 43 | @Override 44 | public String getItem(int index) { 45 | if (ModuleManager.isModuleEnabled("autoCrystal")) return ChatFormatting.GREEN + "autoC" + " on"; 46 | else return "autoC" + " off"; 47 | } 48 | 49 | @Override 50 | public Color getItemColor(int index) { 51 | return color.getValue(); 52 | } 53 | 54 | @Override 55 | public boolean sortUp() { 56 | return false; 57 | } 58 | 59 | @Override 60 | public boolean sortRight() { 61 | return sort.isEnabled(); 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Coords.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 15 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 16 | 17 | public class Coords extends HudModule { 18 | public ColorSetting color = new ColorSetting("color", this, new JColor(172, 172, 172, 255)); 19 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 20 | 21 | 22 | public Coords() { 23 | super("coords", "shows ur coords on ur hud.", new Point(122, 57), Category.HUD); 24 | this.addSettings(sort, color); 25 | } 26 | 27 | @Override 28 | public void populate (Theme theme) { 29 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, new CoordsList()); 30 | } 31 | 32 | private class CoordsList implements HUDList { 33 | 34 | @Override 35 | public int getSize() { 36 | return 1; 37 | } 38 | 39 | @Override 40 | public String getItem(int index) { 41 | return ChatFormatting.RESET + "(x)" + ChatFormatting.WHITE + mc.player.getPosition().getX() 42 | + ChatFormatting.RESET + "(y)" + ChatFormatting.WHITE + mc.player.getPosition().getY() 43 | + ChatFormatting.RESET + "(z)" + ChatFormatting.WHITE + mc.player.getPosition().getZ(); 44 | } 45 | 46 | @Override 47 | public Color getItemColor(int index) { 48 | return color.getValue(); 49 | } 50 | 51 | @Override 52 | public boolean sortUp() { 53 | return false; 54 | } 55 | 56 | @Override 57 | public boolean sortRight() { 58 | return sort.isEnabled(); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Crystals.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | 10 | import me.srgantmoomoo.Reference; 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 15 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 16 | import net.minecraft.init.Items; 17 | import net.minecraft.item.ItemStack; 18 | 19 | 20 | public class Crystals extends HudModule { 21 | private CrystalsCounterList list = new CrystalsCounterList(); 22 | 23 | public ColorSetting color = new ColorSetting("color", this, new JColor(Reference.POSTMAN_COLOR, 255)); 24 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 25 | 26 | public Crystals() { 27 | super("crystals", "shows how many crystals u have in ur inventory.", new Point(75, 82), Category.HUD); 28 | this.addSettings(sort, color); 29 | } 30 | 31 | public void onRender() { 32 | list.crystals = mc.player.inventory.mainInventory.stream() 33 | .filter(itemStack -> itemStack.getItem() == Items.END_CRYSTAL) 34 | .mapToInt(ItemStack::getCount).sum(); 35 | if (mc.player.getHeldItemOffhand().getItem() == Items.END_CRYSTAL) 36 | list.crystals++; 37 | } 38 | 39 | @Override 40 | public void populate (Theme theme) { 41 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 42 | } 43 | 44 | private class CrystalsCounterList implements HUDList { 45 | public int crystals = 0; 46 | 47 | @Override 48 | public int getSize() { 49 | return 1; 50 | } 51 | 52 | @Override 53 | public String getItem(int index) { 54 | return "crystals " + crystals; 55 | } 56 | 57 | @Override 58 | public Color getItemColor(int index) { 59 | return color.getValue(); 60 | } 61 | 62 | @Override 63 | public boolean sortUp() { 64 | return false; 65 | } 66 | 67 | @Override 68 | public boolean sortRight() { 69 | return sort.isEnabled(); 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Frames.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | import com.lukflug.panelstudio.hud.HUDList; 6 | import com.lukflug.panelstudio.hud.ListComponent; 7 | import com.lukflug.panelstudio.theme.Theme; 8 | import com.mojang.realmsclient.gui.ChatFormatting; 9 | 10 | import me.srgantmoomoo.postman.api.util.render.JColor; 11 | import me.srgantmoomoo.postman.client.module.Category; 12 | import me.srgantmoomoo.postman.client.module.HudModule; 13 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 14 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 15 | import net.minecraft.client.Minecraft; 16 | 17 | 18 | public class Frames extends HudModule { 19 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 20 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 21 | 22 | public Frames() { 23 | super("frames", "shows ur fps on ur hud.", new Point(-2,29), Category.HUD); 24 | this.addSettings(sort, color); 25 | } 26 | 27 | @Override 28 | public void populate (Theme theme) { 29 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, new FramesList()); 30 | } 31 | 32 | private class FramesList implements HUDList { 33 | 34 | @Override 35 | public int getSize() { 36 | return 1; 37 | } 38 | 39 | @Override 40 | public String getItem(int index) { 41 | if(Minecraft.getDebugFPS() <= 20) return "fps "+ Minecraft.getDebugFPS(); 42 | else return ChatFormatting.WHITE + "fps "+ Minecraft.getDebugFPS(); 43 | } 44 | 45 | @Override 46 | public Color getItemColor(int index) { 47 | return color.getValue(); 48 | } 49 | 50 | @Override 51 | public boolean sortUp() { 52 | return false; 53 | } 54 | 55 | @Override 56 | public boolean sortRight() { 57 | return sort.isEnabled(); 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Gapples.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | 10 | import me.srgantmoomoo.Reference; 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 15 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 16 | import net.minecraft.init.Items; 17 | import net.minecraft.item.ItemStack; 18 | 19 | 20 | public class Gapples extends HudModule { 21 | private GapplesCounterList list = new GapplesCounterList(); 22 | 23 | public ColorSetting color = new ColorSetting("color", this, new JColor(Reference.POSTMAN_COLOR, 255)); 24 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 25 | 26 | public Gapples() { 27 | super("gapples", "shows how many gapples u have in ur inventory.", new Point(134, 82), Category.HUD); 28 | this.addSettings(sort, color); 29 | } 30 | 31 | public void onRender() { 32 | list.gapples = mc.player.inventory.mainInventory.stream() 33 | .filter(itemStack -> itemStack.getItem() == Items.GOLDEN_APPLE) 34 | .mapToInt(ItemStack::getCount).sum(); 35 | if (mc.player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) 36 | list.gapples++; 37 | } 38 | 39 | @Override 40 | public void populate (Theme theme) { 41 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 42 | } 43 | 44 | private class GapplesCounterList implements HUDList { 45 | public int gapples = 0; 46 | 47 | @Override 48 | public int getSize() { 49 | return 1; 50 | } 51 | 52 | @Override 53 | public String getItem(int index) { 54 | return "gapples " + gapples; 55 | } 56 | 57 | @Override 58 | public Color getItemColor(int index) { 59 | return color.getValue(); 60 | } 61 | 62 | @Override 63 | public boolean sortUp() { 64 | return false; 65 | } 66 | 67 | @Override 68 | public boolean sortRight() { 69 | return sort.isEnabled(); 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/KillAuraHud.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.module.ModuleManager; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 17 | 18 | 19 | public class KillAuraHud extends HudModule { 20 | private KillAuraInfoList list=new KillAuraInfoList(); 21 | 22 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 23 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 24 | 25 | 26 | public KillAuraHud() { 27 | super("killAuraHud", "shows u if killAura is on or off.", new Point(-2, 49), Category.HUD); 28 | this.addSettings(color, sort); 29 | } 30 | 31 | @Override 32 | public void populate (Theme theme) { 33 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 34 | } 35 | 36 | private class KillAuraInfoList implements HUDList { 37 | 38 | @Override 39 | public int getSize() { 40 | return 1; 41 | } 42 | 43 | @Override 44 | public String getItem(int index) { 45 | if (ModuleManager.isModuleEnabled("killAura")) return ChatFormatting.GREEN + "killA" + " on"; 46 | else return "killA" + " off"; 47 | } 48 | 49 | @Override 50 | public Color getItemColor(int index) { 51 | return color.getValue(); 52 | } 53 | 54 | @Override 55 | public boolean sortUp() { 56 | return false; 57 | } 58 | 59 | @Override 60 | public boolean sortRight() { 61 | return sort.isEnabled(); 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Ping.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 15 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 16 | 17 | 18 | public class Ping extends HudModule { 19 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 20 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 21 | 22 | public Ping() { 23 | super("ping", "shows ur ping on ur hud.", new Point(-2,19), Category.HUD); 24 | this.addSettings(sort, color); 25 | } 26 | 27 | @Override 28 | public void populate (Theme theme) { 29 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, new PingList()); 30 | } 31 | 32 | private static int getPing () { 33 | int p = -1; 34 | if (mc.player == null || mc.getConnection() == null || mc.getConnection().getPlayerInfo(mc.player.getName()) == null) { 35 | p = -1; 36 | } 37 | else { 38 | p = mc.getConnection().getPlayerInfo(mc.player.getName()).getResponseTime(); 39 | } 40 | return p; 41 | } 42 | 43 | private class PingList implements HUDList { 44 | 45 | @Override 46 | public int getSize() { 47 | return 1; 48 | } 49 | 50 | @Override 51 | public String getItem(int index) { 52 | if(getPing() >= 200) return "ping " + getPing(); 53 | else return ChatFormatting.WHITE + "ping " + getPing(); 54 | } 55 | 56 | @Override 57 | public Color getItemColor(int index) { 58 | return color.getValue(); 59 | } 60 | 61 | @Override 62 | public boolean sortUp() { 63 | return false; 64 | } 65 | 66 | @Override 67 | public boolean sortRight() { 68 | return sort.isEnabled(); 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/PlayerModel.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.Context; 7 | import com.lukflug.panelstudio.Interface; 8 | import com.lukflug.panelstudio.hud.HUDComponent; 9 | import com.lukflug.panelstudio.theme.Theme; 10 | 11 | import me.srgantmoomoo.Reference; 12 | import me.srgantmoomoo.postman.api.util.render.JColor; 13 | import me.srgantmoomoo.postman.client.module.Category; 14 | import me.srgantmoomoo.postman.client.module.HudModule; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 17 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 18 | import me.srgantmoomoo.postman.client.ui.clickgui.ClickGui; 19 | 20 | public class PlayerModel extends HudModule { 21 | public BooleanSetting rect = new BooleanSetting("rect", this, true); 22 | public NumberSetting size = new NumberSetting("size", this, 28, 10, 100, 1); 23 | public ColorSetting color = new ColorSetting("rectColor", this, new JColor(Reference.POSTMAN_COLOR, 100)); 24 | 25 | public PlayerModel() { 26 | super("playerModel","shows ur player model on ur hud.", new Point(75, 2), Category.HUD); 27 | this.addSettings(size, rect, color); 28 | } 29 | 30 | @Override 31 | public void populate (Theme theme) { 32 | component = new PlayerModelComponent(theme); 33 | } 34 | 35 | private class PlayerModelComponent extends HUDComponent { 36 | 37 | public PlayerModelComponent (Theme theme) { 38 | super(getName(), theme.getPanelRenderer(), PlayerModel.this.position); 39 | } 40 | 41 | @Override 42 | public void render (Context context) { 43 | super.render(context); 44 | if(rect.isEnabled()) { 45 | Color bgcolor = new JColor(color.getValue()); 46 | context.getInterface().fillRect(context.getRect(), bgcolor, bgcolor, bgcolor, bgcolor); 47 | } 48 | ClickGui.renderEntity(mc.player, new Point(context.getPos().x + 22, context.getPos().y + 58 - (mc.player.isSneaking() ? 10 : 0)), (int) size.getValue()); 49 | } 50 | 51 | @Override 52 | public int getWidth (Interface inter) { 53 | return 44; 54 | } 55 | 56 | @Override 57 | public void getHeight (Context context) { 58 | context.setHeight(64); 59 | } 60 | } 61 | 62 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/SurroundHud.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | import com.mojang.realmsclient.gui.ChatFormatting; 10 | 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.module.ModuleManager; 15 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 16 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 17 | 18 | 19 | public class SurroundHud extends HudModule { 20 | private SurroundInfoList list=new SurroundInfoList(); 21 | 22 | public ColorSetting color = new ColorSetting("color", this, new JColor(230, 0, 0, 255)); 23 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 24 | 25 | public SurroundHud() { 26 | super("surroundHud", "shows u if surround is on or off.", new Point(-2, 59), Category.HUD); 27 | this.addSettings(color, sort); 28 | } 29 | 30 | @Override 31 | public void populate (Theme theme) { 32 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 33 | } 34 | 35 | private class SurroundInfoList implements HUDList { 36 | 37 | @Override 38 | public int getSize() { 39 | return 1; 40 | } 41 | 42 | @Override 43 | public String getItem(int index) { 44 | if (ModuleManager.isModuleEnabled("surround")) return ChatFormatting.GREEN + "srnd" + " on"; 45 | else return "srnd" + " off"; 46 | } 47 | 48 | @Override 49 | public Color getItemColor(int index) { 50 | return color.getValue(); 51 | } 52 | 53 | @Override 54 | public boolean sortUp() { 55 | return false; 56 | } 57 | 58 | @Override 59 | public boolean sortRight() { 60 | return sort.isEnabled(); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Totems.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | 6 | import com.lukflug.panelstudio.hud.HUDList; 7 | import com.lukflug.panelstudio.hud.ListComponent; 8 | import com.lukflug.panelstudio.theme.Theme; 9 | 10 | import me.srgantmoomoo.postman.api.util.render.JColor; 11 | import me.srgantmoomoo.postman.client.module.Category; 12 | import me.srgantmoomoo.postman.client.module.HudModule; 13 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 14 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 15 | import net.minecraft.init.Items; 16 | import net.minecraft.item.ItemStack; 17 | 18 | 19 | public class Totems extends HudModule { 20 | private TotemList list = new TotemList(); 21 | 22 | public ColorSetting color = new ColorSetting("color", this, new JColor(218, 165, 32, 255)); 23 | public BooleanSetting sort = new BooleanSetting("sortRight", this, false); 24 | 25 | public Totems() { 26 | super("totems", "shows how many totems u have in ur inventory.", new Point(-2, 11), Category.HUD); 27 | this.addSettings(sort, color); 28 | } 29 | 30 | public void onRender() { 31 | list.totems = mc.player.inventory.mainInventory.stream() 32 | .filter(itemStack -> itemStack.getItem() == Items.TOTEM_OF_UNDYING) 33 | .mapToInt(ItemStack::getCount).sum(); 34 | if (mc.player.getHeldItemOffhand().getItem() == Items.TOTEM_OF_UNDYING) 35 | list.totems++; 36 | } 37 | 38 | @Override 39 | public void populate (Theme theme) { 40 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, list); 41 | } 42 | 43 | private class TotemList implements HUDList { 44 | 45 | public int totems = 0; 46 | 47 | @Override 48 | public int getSize() { 49 | return 1; 50 | } 51 | 52 | @Override 53 | public String getItem(int index) { 54 | return "" + totems; 55 | } 56 | 57 | @Override 58 | public Color getItemColor(int index) { 59 | return color.getValue(); 60 | } 61 | 62 | @Override 63 | public boolean sortUp() { 64 | return false; 65 | } 66 | 67 | @Override 68 | public boolean sortRight() { 69 | return sort.isEnabled(); 70 | } 71 | } 72 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Watermark.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | import com.lukflug.panelstudio.hud.HUDList; 6 | import com.lukflug.panelstudio.hud.ListComponent; 7 | import com.lukflug.panelstudio.theme.Theme; 8 | import com.mojang.realmsclient.gui.ChatFormatting; 9 | 10 | import me.srgantmoomoo.Reference; 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 15 | 16 | 17 | public class Watermark extends HudModule { 18 | public ColorSetting color = new ColorSetting("color", this, new JColor(Reference.POSTMAN_COLOR)); 19 | 20 | public Watermark() { 21 | super("watermark", "postman watermark!", new Point(-2, 1), Category.HUD); 22 | this.addSettings(color); 23 | } 24 | 25 | @Override 26 | public void populate (Theme theme) { 27 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, new WatermarkList()); 28 | } 29 | 30 | private class WatermarkList implements HUDList { 31 | 32 | @Override 33 | public int getSize() { 34 | return 1; 35 | } 36 | 37 | @Override 38 | public String getItem(int index) { 39 | return ChatFormatting.WHITE + Reference.NAME + " " + ChatFormatting.RESET + Reference.VERSION; 40 | } 41 | 42 | @Override 43 | public Color getItemColor(int index) { 44 | return color.getValue(); 45 | } 46 | 47 | @Override 48 | public boolean sortUp() { 49 | return false; 50 | } 51 | 52 | @Override 53 | public boolean sortRight() { 54 | return false; 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/hud/Welcomer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.hud; 2 | 3 | import java.awt.Color; 4 | import java.awt.Point; 5 | import com.lukflug.panelstudio.hud.HUDList; 6 | import com.lukflug.panelstudio.hud.ListComponent; 7 | import com.lukflug.panelstudio.theme.Theme; 8 | import com.mojang.realmsclient.gui.ChatFormatting; 9 | 10 | import me.srgantmoomoo.Reference; 11 | import me.srgantmoomoo.postman.api.util.render.JColor; 12 | import me.srgantmoomoo.postman.client.module.Category; 13 | import me.srgantmoomoo.postman.client.module.HudModule; 14 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 15 | 16 | 17 | public class Welcomer extends HudModule { 18 | public ColorSetting color = new ColorSetting("color", this, new JColor(Reference.POSTMAN_COLOR, 255)); 19 | 20 | public Welcomer() { 21 | super("welcomer", "welcomes u to postman.", new Point(75, 70), Category.HUD); 22 | this.addSettings(color); 23 | } 24 | 25 | @Override 26 | public void populate (Theme theme) { 27 | component = new ListComponent(getName(), theme.getPanelRenderer(), position, new WelcomerList()); 28 | } 29 | 30 | private class WelcomerList implements HUDList { 31 | 32 | @Override 33 | public int getSize() { 34 | return 1; 35 | } 36 | 37 | @Override 38 | public String getItem(int index) { 39 | return "welcome to postman, " + ChatFormatting.WHITE + mc.player.getName() + ChatFormatting.RESET + " :)"; 40 | } 41 | 42 | @Override 43 | public Color getItemColor(int index) { 44 | return color.getValue(); 45 | } 46 | 47 | @Override 48 | public boolean sortUp() { 49 | return false; 50 | } 51 | 52 | @Override 53 | public boolean sortRight() { 54 | return false; 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/AutoWalk.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import net.minecraft.client.settings.KeyBinding; 8 | 9 | public class AutoWalk extends Module { 10 | 11 | public AutoWalk() { 12 | super ("autoWalk", "automatically walks for u, u lazy fuck.", Keyboard.KEY_NONE, Category.MOVEMENT); 13 | } 14 | 15 | public void onDisable() { 16 | KeyBinding.setKeyBindState(mc.gameSettings.keyBindForward.getKeyCode(), false); 17 | } 18 | 19 | public void onUpdate() { 20 | if(mc.currentScreen == null) { 21 | KeyBinding.setKeyBindState(mc.gameSettings.keyBindForward.getKeyCode(), true); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/GuiMove.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import net.minecraft.client.Minecraft; 8 | import net.minecraft.client.gui.GuiChat; 9 | public class GuiMove extends Module { 10 | 11 | public GuiMove() { 12 | super ("guiMove", "lets you move while in ur a gui screen.", Keyboard.KEY_NONE, Category.MOVEMENT); 13 | } 14 | 15 | private Minecraft mc = Minecraft.getMinecraft(); 16 | 17 | public void onUpdate(){ 18 | if (mc.currentScreen != null){ 19 | if (!(mc.currentScreen instanceof GuiChat)){ 20 | if (Keyboard.isKeyDown(200)){ 21 | mc.player.rotationPitch -= 5; 22 | } 23 | if (Keyboard.isKeyDown(208)){ 24 | mc.player.rotationPitch += 5; 25 | } 26 | if (Keyboard.isKeyDown(205)){ 27 | mc.player.rotationYaw += 5; 28 | } 29 | if (Keyboard.isKeyDown(203)){ 30 | mc.player.rotationYaw -= 5; 31 | } 32 | if (mc.player.rotationPitch > 90){ 33 | mc.player.rotationPitch = 90; 34 | } 35 | if (mc.player.rotationPitch < -90){ 36 | mc.player.rotationPitch = -90; 37 | } 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/LongJump.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class LongJump extends Module { 9 | 10 | public LongJump() { 11 | super ("longJump", "long, jump.", Keyboard.KEY_NONE, Category.MOVEMENT); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/NoSlow.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | import org.lwjgl.input.Keyboard; 3 | 4 | import me.srgantmoomoo.Main; 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 8 | import me.zero.alpine.listener.EventHandler; 9 | import me.zero.alpine.listener.Listener; 10 | import net.minecraft.init.Blocks; 11 | import net.minecraftforge.client.event.InputUpdateEvent; 12 | 13 | public class NoSlow extends Module { 14 | public BooleanSetting food = new BooleanSetting("food", this, true); 15 | public BooleanSetting web = new BooleanSetting("web", this, true); 16 | public BooleanSetting soulSand = new BooleanSetting("soulSand", this, true); 17 | public BooleanSetting slimeBlock = new BooleanSetting("slimeBlock", this, true); 18 | 19 | public NoSlow() { 20 | super ("noSlow", "slow? no.", Keyboard.KEY_NONE, Category.MOVEMENT); 21 | this.addSettings(food, web, soulSand, slimeBlock); 22 | } 23 | 24 | public void onEnable() { 25 | Main.EVENT_BUS.subscribe(this); 26 | Blocks.DIRT.setLightOpacity(10); 27 | } 28 | 29 | public void onDisable() { 30 | Main.EVENT_BUS.unsubscribe(this); 31 | } 32 | 33 | @EventHandler 34 | private final Listener eventListener = new Listener<>(event -> { 35 | if (mc.player.isHandActive() && !mc.player.isRiding() && food.isEnabled()) { 36 | event.getMovementInput().moveStrafe *= 5; 37 | event.getMovementInput().moveForward *= 5; 38 | } 39 | }); 40 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/ReverseStep.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 8 | 9 | public class ReverseStep extends Module { 10 | public NumberSetting height = new NumberSetting("height", this, 2.5, 0.5, 10, 0.5); 11 | 12 | public ReverseStep() { 13 | super ("reverseStep", "sucks u down when going down a block.", Keyboard.KEY_NONE, Category.MOVEMENT); 14 | } 15 | 16 | public void onUpdate() { 17 | if (mc.world == null || mc.player == null || mc.player.isInWater() || mc.player.isInLava() || mc.player.isOnLadder() || mc.gameSettings.keyBindJump.isKeyDown()) { 18 | return; 19 | } 20 | 21 | if (mc.player != null && mc.player.onGround && !mc.player.isInWater() && !mc.player.isOnLadder()) { 22 | for (double y = 0.0; y < this.height.getValue() + 0.5; y += 0.01) { 23 | if (!mc.world.getCollisionBoxes(mc.player, mc.player.getEntityBoundingBox().offset(0.0, -y, 0.0)).isEmpty()) { 24 | mc.player.motionY = -10.0; 25 | break; 26 | } 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/Scaffold.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Scaffold extends Module { 9 | 10 | public Scaffold() { 11 | super ("scaffold", "places blocks under u automatically.", Keyboard.KEY_NONE, Category.MOVEMENT); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/Sneak.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Sneak extends Module { 9 | 10 | public Sneak() { 11 | super ("sneak", "sneak... doesn't work rn.", Keyboard.KEY_NONE, Category.MOVEMENT); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/movement/Sprint.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.movement; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 8 | import net.minecraft.client.Minecraft; 9 | 10 | public class Sprint extends Module { 11 | public ModeSetting mode = new ModeSetting("mode", this, "normal", "normal", "sickomode"); 12 | 13 | private Minecraft mc = Minecraft.getMinecraft(); 14 | public boolean on; 15 | 16 | public Sprint() { 17 | super ("sprint", "now u cant walk, good going.", Keyboard.KEY_NONE, Category.MOVEMENT); 18 | this.addSettings(mode); 19 | } 20 | 21 | @Override 22 | public void onUpdate() { 23 | if(mode.is("normal")) { 24 | if(mc.player.movementInput.moveForward > 0 && !mc.player.isSneaking() && !mc.player.collidedHorizontally) { 25 | mc.player.setSprinting(true); 26 | } 27 | }else if(mode.is("sickomode")) { 28 | mc.player.setSprinting(true); 29 | 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/AutoDisconnect.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 8 | import net.minecraft.client.gui.GuiMainMenu; 9 | 10 | public class AutoDisconnect extends Module { 11 | public NumberSetting health = new NumberSetting("health", this, 10, 1, 30, 1); 12 | 13 | 14 | public AutoDisconnect() { 15 | super ("autoDisconnect", "automatically disconnects at desired health.", Keyboard.KEY_NONE, Category.PLAYER); 16 | this.addSettings(health); 17 | } 18 | 19 | public void onUpdate() { 20 | if (mc.player == null || mc.world == null) return; 21 | if (mc.player.getHealth() <= health.getValue()) { 22 | toggled = false; 23 | mc.world.sendQuittingDisconnectingPacket(); 24 | mc.loadWorld(null); 25 | mc.displayGuiScreen(new GuiMainMenu()); 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/AutoMine.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import net.minecraft.client.settings.KeyBinding; 8 | 9 | public class AutoMine extends Module { 10 | 11 | public AutoMine() { 12 | super("autoMine", "automatically mines.", Keyboard.KEY_NONE, Category.PLAYER); 13 | } 14 | 15 | @Override 16 | public void onUpdate() { 17 | if(mc.currentScreen == null) KeyBinding.setKeyBindState(mc.gameSettings.keyBindAttack.getKeyCode(), true); 18 | else mc.playerController.isHittingBlock = true; 19 | } 20 | 21 | public void onDisable() { 22 | KeyBinding.setKeyBindState(mc.gameSettings.keyBindAttack.getKeyCode(), false); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/AutoReconnect.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.Event.Era; 7 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 8 | import me.srgantmoomoo.postman.api.util.world.JTimer; 9 | import me.srgantmoomoo.postman.client.module.Category; 10 | import me.srgantmoomoo.postman.client.module.Module; 11 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 12 | import me.zero.alpine.listener.EventHandler; 13 | import me.zero.alpine.listener.Listener; 14 | import net.minecraft.client.Minecraft; 15 | import net.minecraft.client.multiplayer.GuiConnecting; 16 | import net.minecraft.network.EnumConnectionState; 17 | import net.minecraft.network.handshake.client.C00Handshake; 18 | 19 | public class AutoReconnect extends Module { 20 | public NumberSetting delay = new NumberSetting("delay", this, 5, 1, 20, 1); 21 | 22 | public AutoReconnect() { 23 | super("autoReconnect", "automatically reconnects to a server.", Keyboard.KEY_NONE, Category.PLAYER); 24 | this.addSettings(delay); 25 | } 26 | private String lastIp; 27 | private int lastPort; 28 | private boolean reconnect; 29 | private JTimer timer = new JTimer(); 30 | 31 | @EventHandler 32 | private final Listener sendPacketEventPre = new Listener<>(event -> { 33 | if(event.getEra() == Era.PRE) { 34 | if(event.getPacket() instanceof C00Handshake) { 35 | final C00Handshake packet = (C00Handshake) event.getPacket(); 36 | if(packet.getRequestedState() == EnumConnectionState.LOGIN) { 37 | this.lastIp = packet.ip; 38 | this.lastPort = packet.port; 39 | } 40 | } 41 | } 42 | if(event.getEra() == Era.POST) { 43 | if (this.lastIp != null && this.lastPort > 0 && this.reconnect) { 44 | if (this.timer.hasReached((long) delay.getValue())) { 45 | Minecraft.getMinecraft().displayGuiScreen(new GuiConnecting(null, Minecraft.getMinecraft(), this.lastIp, this.lastPort)); 46 | this.timer.reset(); 47 | this.reconnect = false; 48 | } 49 | } 50 | } 51 | }); 52 | 53 | public void onEnable() { 54 | Main.EVENT_BUS.subscribe(this); 55 | } 56 | 57 | public void onDisbale() { 58 | Main.EVENT_BUS.unsubscribe(this); 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/AutoRespawn.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class AutoRespawn extends Module { 9 | 10 | public AutoRespawn() { 11 | super("autoRespawn", "automatically respawns after death occurs.", Keyboard.KEY_NONE, Category.PLAYER); 12 | } 13 | 14 | public void onUpdate() { 15 | if(mc.player.isDead) { 16 | mc.player.respawnPlayer(); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/AutoUse.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import net.minecraft.client.settings.KeyBinding; 8 | import net.minecraft.util.EnumHand; 9 | 10 | public class AutoUse extends Module { 11 | 12 | public AutoUse() { 13 | super("autoUse", "automatically uses whatever u r holding.", Keyboard.KEY_NONE, Category.PLAYER); 14 | } 15 | 16 | @Override 17 | public void onUpdate() { 18 | if(mc.currentScreen == null) KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); 19 | else mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND); 20 | } 21 | 22 | public void onDisable() { 23 | KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), false); 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/ChatSuffix.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import java.util.Arrays; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 10 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 11 | import net.minecraftforge.client.event.ClientChatEvent; 12 | import net.minecraftforge.common.MinecraftForge; 13 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 14 | 15 | public class ChatSuffix extends Module { 16 | public ModeSetting mode = new ModeSetting("mode", this, "normal", "normal", "fucked lol"); 17 | public BooleanSetting discludePercent = new BooleanSetting("disclude%", this, true); 18 | 19 | public ChatSuffix() { 20 | super ("chatSuffix", "adds postman suffix to all of ur chat msg's.", Keyboard.KEY_NONE, Category.PLAYER); 21 | this.addSettings(mode); 22 | } 23 | 24 | @SubscribeEvent 25 | public void onChat(final ClientChatEvent event) { 26 | if(toggled) { 27 | for (final String s : Arrays.asList("/", ".", "-", ",", ":", ";", "'", "\"", "+", "\\", "@", "#")) { 28 | if (event.getMessage().startsWith(s)) return; 29 | } 30 | if(mode.is("fucked")) event.setMessage(event.getMessage() + " " + "ᕦᴘᴏѕᴛຕ" + "\u1d00" + "η " + "ѕᴛяᴏηɢᕤ"); 31 | else if(mode.is("normal")) event.setMessage(event.getMessage() + " " + "\u1566\u1D18\u1D0F\u0455\u1D1B\u0E95\u1D00\u03B7 \u0020\u0455\u1D1B\u044F\u1D0F\u03B7\u0262\u1564"); 32 | // \u1566 \u1D18 \u1D0F \u0455 \u1D1B \u0E95 \u1D00 \u03B7 \u0020 \u0455 \u1D1B \u044F \u1D0F \u03B7 \u0262 \u1564 ᕦᴘᴏѕᴛຕᴀη ѕᴛяᴏηɢᕤ 33 | } 34 | } 35 | 36 | public void onEnable() { 37 | MinecraftForge.EVENT_BUS.register(this); 38 | } 39 | 40 | public void onDisable() { 41 | MinecraftForge.EVENT_BUS.unregister(this); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/ChestStealer.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PlayerUpdateEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 10 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 11 | import me.srgantmoomoo.postman.api.util.world.JTimer; 12 | import me.zero.alpine.listener.EventHandler; 13 | import me.zero.alpine.listener.Listener; 14 | import net.minecraft.inventory.ClickType; 15 | import net.minecraft.inventory.ContainerChest; 16 | 17 | public class ChestStealer extends Module { 18 | public ModeSetting mode = new ModeSetting("mode", this, "steal", "steal", "drop"); 19 | public NumberSetting delay = new NumberSetting("delay", this, 1, 0, 10, 1); 20 | 21 | public ChestStealer() { 22 | super ("chestStealer", "automatically steals from inventory gui's.", Keyboard.KEY_NONE, Category.PLAYER); 23 | this.addSettings(mode,delay); 24 | } 25 | 26 | private JTimer timer = new JTimer(); 27 | 28 | public void onEnable() { 29 | Main.EVENT_BUS.subscribe(this); 30 | } 31 | 32 | public void onDisable() { 33 | Main.EVENT_BUS.unsubscribe(this); 34 | } 35 | 36 | 37 | @EventHandler 38 | private Listener OnPlayerUpdate = new Listener<>(event -> { 39 | 40 | if((Module.mc.player.openContainer != null) && ((Module.mc.player.openContainer instanceof ContainerChest))) { 41 | ContainerChest chest = (ContainerChest) Module.mc.player.openContainer; 42 | 43 | for(int i = 0; i < chest.getLowerChestInventory().getSizeInventory(); i++) { 44 | if((chest.getLowerChestInventory().getStackInSlot(i) != null) && (this.timer.hasReached(40L))) { 45 | if(mode.is("steal")) { 46 | Module.mc.playerController.windowClick(chest.windowId, i, 0, ClickType.QUICK_MOVE, Module.mc.player); 47 | this.timer.reset(); 48 | if(mode.is("drop")) { 49 | Module.mc.playerController.windowClick(chest.windowId, i, 0, ClickType.THROW, Module.mc.player); 50 | this.timer.reset(); 51 | } 52 | } 53 | } 54 | } 55 | } 56 | }); 57 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/DeathCoords.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import com.mojang.realmsclient.gui.ChatFormatting; 6 | 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.module.ModuleManager; 10 | 11 | public class DeathCoords extends Module { 12 | 13 | public DeathCoords() { 14 | super ("deathCoords", "tells u ur coords after death occurs.", Keyboard.KEY_NONE, Category.PLAYER); 15 | } 16 | 17 | public void onUpdate() { 18 | if(mc.player.isDead) { 19 | ModuleManager.addChatMessage(ChatFormatting.WHITE + "lol u just died loser" + 20 | ChatFormatting.GRAY + " (x)" + mc.player.getPosition().x + " (y)" + mc.player.getPosition().y + " (z)" + mc.player.getPosition().z); 21 | toggled = false; 22 | } 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/ElytraReplace.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class ElytraReplace extends Module { 9 | 10 | public ElytraReplace() { 11 | super ("elytraReplace", "automatically replaces a broken elytra.", Keyboard.KEY_NONE, Category.PLAYER); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/InventoryPlus.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.client.Minecraft; 12 | import net.minecraft.network.play.client.CPacketCloseWindow; 13 | 14 | public class InventoryPlus extends Module { 15 | 16 | public InventoryPlus() { 17 | super ("inventoryPlus", "lets u hold extra items in ur crafting gui.", Keyboard.KEY_NONE, Category.PLAYER); 18 | } 19 | 20 | public void onEnable() { 21 | Main.EVENT_BUS.subscribe(this); 22 | } 23 | 24 | public void onDisable() { 25 | Main.EVENT_BUS.unsubscribe(this); 26 | } 27 | 28 | @EventHandler 29 | private final Listener listener = new Listener<>(event -> { 30 | if (event.getPacket() instanceof CPacketCloseWindow) { 31 | final CPacketCloseWindow packet = (CPacketCloseWindow) event.getPacket(); 32 | if (packet.windowId == Minecraft.getMinecraft().player.inventoryContainer.windowId) { 33 | event.cancel(); 34 | } 35 | } 36 | }); 37 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/LiquidPlace.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.CanCollideCheckEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | 12 | public class LiquidPlace extends Module { 13 | 14 | public LiquidPlace() { 15 | super ("liquidPlace", "lets u place blocks on liquid.", Keyboard.KEY_NONE, Category.PLAYER); 16 | } 17 | 18 | public void onEnable() { 19 | Main.EVENT_BUS.subscribe(this); 20 | 21 | } 22 | 23 | public void onDisable() { 24 | Main.EVENT_BUS.unsubscribe(this); 25 | } 26 | 27 | @EventHandler 28 | private Listener CanCollid = new Listener<>(event -> { 29 | event.cancel(); 30 | }); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/Mcf.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | import org.lwjgl.input.Mouse; 5 | 6 | import me.srgantmoomoo.Main; 7 | import me.srgantmoomoo.postman.client.friend.FriendManager; 8 | import me.srgantmoomoo.postman.client.module.Category; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.module.ModuleManager; 11 | import me.zero.alpine.listener.EventHandler; 12 | import me.zero.alpine.listener.Listener; 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.util.math.RayTraceResult; 15 | import net.minecraftforge.fml.common.gameevent.InputEvent; 16 | 17 | public class Mcf extends Module { 18 | 19 | public Mcf() { 20 | super("mcf", "middle click a player to friend them.", Keyboard.KEY_NONE, Category.PLAYER); 21 | } 22 | 23 | public void onEnable() { 24 | Main.EVENT_BUS.subscribe(this); 25 | } 26 | 27 | public void onDisable() { 28 | Main.EVENT_BUS.unsubscribe(this); 29 | } 30 | 31 | @EventHandler 32 | private final Listener listener = new Listener<>(event -> { 33 | if (mc.objectMouseOver.typeOfHit.equals(RayTraceResult.Type.ENTITY) && mc.objectMouseOver.entityHit instanceof EntityPlayer && Mouse.isButtonDown(2)) { 34 | if (FriendManager.isFriend(mc.objectMouseOver.entityHit.getName())) { 35 | FriendManager.removeFriend(mc.objectMouseOver.entityHit.getName()); 36 | ModuleManager.addChatMessage("removed friend: " + mc.objectMouseOver.entityHit.getName()); 37 | }else { 38 | FriendManager.addFriend(mc.objectMouseOver.entityHit.getName()); 39 | ModuleManager.addChatMessage("added friend: " + mc.objectMouseOver.entityHit.getName()); 40 | } 41 | } 42 | }); 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/Multitask.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Multitask extends Module { 9 | 10 | public Multitask() { 11 | super("multitask", "allows you to do different things in each hand.", Keyboard.KEY_NONE, Category.PLAYER); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/NoFall.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.NetworkPacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.client.Minecraft; 12 | import net.minecraft.network.play.client.CPacketPlayer; 13 | 14 | public class NoFall extends Module { 15 | 16 | public NoFall() { 17 | super ("noFall", "yea no... fall.", Keyboard.KEY_NONE, Category.PLAYER); 18 | } 19 | 20 | public void onEnable() { 21 | Main.EVENT_BUS.subscribe(this); 22 | } 23 | 24 | public void onDisable() { 25 | Main.EVENT_BUS.unsubscribe(this); 26 | } 27 | 28 | @EventHandler 29 | private final Listener listener = new Listener<>(event -> { 30 | if (event.getPacket() instanceof CPacketPlayer) { 31 | final CPacketPlayer packet = (CPacketPlayer) event.getPacket(); 32 | if (event.getPacket() instanceof CPacketPlayer && Minecraft.getMinecraft().player.fallDistance >= 3.0f) { 33 | packet.onGround = true; 34 | } 35 | } 36 | }); 37 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/NoPush.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.WaterPushEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | 12 | public class NoPush extends Module { 13 | 14 | public NoPush() { 15 | super ("noPush", "u cant get pushed, and u cant push.", Keyboard.KEY_NONE, Category.PLAYER); 16 | } 17 | 18 | @EventHandler 19 | private final Listener waterPushEventListener = new Listener<>(event -> { 20 | event.cancel(); 21 | }); 22 | 23 | @Override 24 | public void onEnable() { 25 | Main.EVENT_BUS.subscribe(this); 26 | } 27 | 28 | @Override 29 | public void onDisable() { 30 | Main.EVENT_BUS.unsubscribe(this); 31 | } 32 | } 33 | 34 | // Refrenced in MixinEntity -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/PlayerClone.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import java.util.UUID; 4 | 5 | import org.lwjgl.input.Keyboard; 6 | 7 | import com.mojang.authlib.GameProfile; 8 | 9 | import me.srgantmoomoo.postman.client.module.Category; 10 | import me.srgantmoomoo.postman.client.module.Module; 11 | import net.minecraft.client.Minecraft; 12 | import net.minecraft.client.entity.EntityOtherPlayerMP; 13 | import net.minecraft.world.GameType; 14 | 15 | /* 16 | * Taken from gamesense, edited a little by @SrgantMooMoo on November 6th, 2020. 17 | */ 18 | public class PlayerClone extends Module { 19 | 20 | public PlayerClone() { 21 | super ("playerClone", "cloneeee.", Keyboard.KEY_NONE, Category.PLAYER); 22 | } 23 | private EntityOtherPlayerMP clonedPlayer; 24 | 25 | public void onEnable() { 26 | Minecraft mc = Minecraft.getMinecraft(); 27 | 28 | 29 | if (mc.player == null || mc.player.isDead){ 30 | disable(); 31 | return; 32 | } 33 | 34 | clonedPlayer = new EntityOtherPlayerMP(mc.world, new GameProfile(UUID.fromString("fdee323e-7f0c-4c15-8d1c-0f277442342a"), "ThePostman")); 35 | clonedPlayer.copyLocationAndAnglesFrom(mc.player); 36 | clonedPlayer.rotationYawHead = mc.player.rotationYawHead; 37 | clonedPlayer.rotationYaw = mc.player.rotationYaw; 38 | clonedPlayer.rotationPitch = mc.player.rotationPitch; 39 | clonedPlayer.setGameType(GameType.SURVIVAL); 40 | clonedPlayer.setHealth(20); 41 | mc.world.addEntityToWorld(-1234, clonedPlayer); 42 | clonedPlayer.onLivingUpdate(); 43 | } 44 | 45 | public void onDisable() { 46 | Minecraft mc = Minecraft.getMinecraft(); 47 | 48 | if (mc.world != null) { 49 | mc.world.removeEntityFromWorld(-1234); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/player/Velocity.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.player; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 10 | import me.zero.alpine.listener.EventHandler; 11 | import me.zero.alpine.listener.Listener; 12 | import net.minecraft.client.Minecraft; 13 | import net.minecraft.network.play.server.SPacketEntityVelocity; 14 | import net.minecraft.network.play.server.SPacketExplosion; 15 | 16 | public class Velocity extends Module { 17 | public NumberSetting percent = new NumberSetting("percent", this, 0, 0, 100, 10); 18 | 19 | private Minecraft mc = Minecraft.getMinecraft(); 20 | 21 | public boolean on; 22 | 23 | public Velocity() { 24 | super ("velocity", "take no knockback when hit.", Keyboard.KEY_NONE, Category.PLAYER); 25 | this.addSettings(); 26 | } 27 | 28 | public void onEnable() { 29 | Main.EVENT_BUS.subscribe(this); 30 | } 31 | 32 | public void onDisable() { 33 | Main.EVENT_BUS.unsubscribe(this); 34 | } 35 | 36 | @EventHandler 37 | private final Listener receiveListener = new Listener<>(event -> { 38 | if (event.getPacket() instanceof SPacketEntityVelocity){ 39 | if (((SPacketEntityVelocity) event.getPacket()).getEntityID() == mc.player.getEntityId()) { 40 | event.cancel(); 41 | } 42 | } 43 | if (event.getPacket() instanceof SPacketExplosion){ 44 | event.cancel(); 45 | } 46 | }); 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/AimBot.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class AimBot extends Module { 9 | 10 | public AimBot() { 11 | super ("aimBot", "locks camera on to the closest target.", Keyboard.KEY_NONE, Category.PVP); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/AutoClicker.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | import org.lwjgl.input.Mouse; 5 | 6 | import me.srgantmoomoo.postman.client.module.Category; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import net.minecraft.client.settings.KeyBinding; 9 | 10 | public class AutoClicker extends Module { 11 | 12 | private long lastClick; 13 | private long hold; 14 | 15 | private double speed; 16 | private double holdLength; 17 | 18 | public AutoClicker() { 19 | super ("autoClicker", "clicks fast when holding down left click.", Keyboard.KEY_NONE, Category.PVP); 20 | } 21 | 22 | public void onUpdate() { 23 | if(Mouse.isButtonDown(0)) { 24 | if(System.currentTimeMillis() - lastClick > speed * 1000) { 25 | lastClick = System.currentTimeMillis(); 26 | if(hold < lastClick) { 27 | hold = lastClick; 28 | } 29 | int key = mc.gameSettings.keyBindAttack.getKeyCode(); 30 | KeyBinding.setKeyBindState(key, true); 31 | KeyBinding.onTick(key); 32 | } else if (System.currentTimeMillis() - hold > holdLength * 1000) { 33 | KeyBinding.setKeyBindState(mc.gameSettings.keyBindAttack.getKeyCode(), false); 34 | } 35 | } 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/AutoCopeAndSeethe.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | import me.srgantmoomoo.postman.client.module.Category; 5 | import me.srgantmoomoo.postman.client.module.Module; 6 | 7 | public class AutoCopeAndSeethe extends Module { 8 | 9 | public AutoCopeAndSeethe() { 10 | super("autCope", "penis yes noa.", Keyboard.KEY_NONE, Category.PVP); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/AutoHut.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class AutoHut extends Module { 9 | 10 | public AutoHut() { 11 | super ("autoHut", "automatically builds hut for u.", Keyboard.KEY_NONE, Category.PVP); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/AutoTrap.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class AutoTrap extends Module { 9 | 10 | public AutoTrap() { 11 | super ("autoTrap", "automatically traps opponent.", Keyboard.KEY_NONE, Category.PVP); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/Blink.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import me.srgantmoomoo.Main; 4 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.zero.alpine.listener.EventHandler; 8 | import me.zero.alpine.listener.Listener; 9 | import net.minecraft.client.entity.EntityOtherPlayerMP; 10 | import net.minecraft.network.play.client.CPacketPlayer; 11 | 12 | import java.util.LinkedList; 13 | import java.util.Queue; 14 | 15 | import org.lwjgl.input.Keyboard; 16 | 17 | public class Blink extends Module { 18 | private final Queue packetQueue = new LinkedList<>(); 19 | private EntityOtherPlayerMP player; 20 | 21 | public Blink() { 22 | super ("blink", "makes temporary player clone and stuff.", Keyboard.KEY_NONE, Category.PVP); 23 | } 24 | 25 | @EventHandler 26 | private final Listener sendListener = new Listener<>(event -> { 27 | if(mc.player == null || mc.world == null) return; 28 | 29 | if (event.getPacket() instanceof CPacketPlayer) { 30 | event.cancel(); 31 | packetQueue.add((CPacketPlayer) event.getPacket()); 32 | } 33 | }); 34 | 35 | @Override 36 | public void onEnable() { 37 | Main.EVENT_BUS.subscribe(this); 38 | player = new EntityOtherPlayerMP(mc.world, mc.getSession().getProfile()); 39 | player.copyLocationAndAnglesFrom(mc.player); 40 | player.rotationYawHead = mc.player.rotationYawHead; 41 | mc.world.addEntityToWorld(-100, player); 42 | } 43 | 44 | @Override 45 | public void onDisable() { 46 | Main.EVENT_BUS.unsubscribe(this); 47 | while (!packetQueue.isEmpty()) mc.player.connection.sendPacket(packetQueue.poll()); 48 | 49 | if (mc.player != null) { 50 | mc.world.removeEntityFromWorld(-100); 51 | player = null; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/Criticals.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.NetworkPacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 10 | import me.zero.alpine.listener.EventHandler; 11 | import me.zero.alpine.listener.Listener; 12 | import net.minecraft.entity.EntityLivingBase; 13 | import net.minecraft.network.play.client.CPacketPlayer; 14 | import net.minecraft.network.play.client.CPacketUseEntity; 15 | 16 | public class Criticals extends Module { 17 | public ModeSetting mode = new ModeSetting("mode", this, "packet", "packet", "jump"); 18 | 19 | public Criticals() { 20 | super ("criticals", "always land a critical hit.", Keyboard.KEY_NONE, Category.PVP); 21 | this.addSettings(mode); 22 | } 23 | 24 | public void onEnable() { 25 | Main.EVENT_BUS.subscribe(this); 26 | } 27 | 28 | public void onDisable() { 29 | Main.EVENT_BUS.unsubscribe(this); 30 | } 31 | 32 | @EventHandler 33 | private Listener PacketEvent = new Listener<>(event -> { 34 | if (event.getPacket() instanceof CPacketUseEntity) { 35 | CPacketUseEntity packet = (CPacketUseEntity)event.getPacket(); 36 | 37 | if (packet.getAction() == CPacketUseEntity.Action.ATTACK) { 38 | if (packet.getEntityFromWorld(mc.world) instanceof EntityLivingBase && mc.player.onGround && !mc.gameSettings.keyBindJump.isKeyDown()) { 39 | 40 | if(mode.is("jump")) { 41 | mc.player.jump(); 42 | } 43 | 44 | if(mode.is("packet")) { 45 | mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 0.1f, mc.player.posZ, false)); 46 | mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY, mc.player.posZ, false)); 47 | } 48 | } 49 | } 50 | } 51 | }); 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/FastUse.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 8 | import net.minecraft.client.Minecraft; 9 | import net.minecraft.init.Items; 10 | import net.minecraft.network.play.client.CPacketPlayerDigging; 11 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; 12 | import net.minecraft.util.math.BlockPos; 13 | 14 | public class FastUse extends Module { 15 | 16 | public boolean plswork; 17 | public BooleanSetting xpBottle = new BooleanSetting("xpBottle", this, true); 18 | public BooleanSetting bow = new BooleanSetting("bow", this, true); 19 | 20 | public FastUse() { 21 | super ("fastUse", "lol bow and xp bottle go brrrrrrrr.", Keyboard.KEY_NONE, Category.PVP); 22 | this.addSettings(xpBottle, bow); 23 | } 24 | private Minecraft mc = Minecraft.getMinecraft(); 25 | 26 | @Override 27 | public void onUpdate() { 28 | 29 | if (bow.isEnabled() && mc.player.isHandActive() && mc.player.getItemInUseMaxCount() >= 3 && (mc.player.getHeldItemMainhand().getItem() == Items.BOW || mc.player.getHeldItemOffhand().getItem() == Items.BOW)) { 30 | mc.player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, mc.player.getHorizontalFacing())); 31 | mc.player.connection.sendPacket(new CPacketPlayerTryUseItem(mc.player.getActiveHand())); 32 | mc.player.stopActiveHand(); 33 | } 34 | 35 | if (xpBottle.isEnabled() && mc.player != null && (mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE || mc.player.getHeldItemOffhand().getItem() == Items.EXPERIENCE_BOTTLE)) { 36 | mc.rightClickDelayTimer = 0; 37 | } 38 | } 39 | 40 | } 41 | 42 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/FootExp.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PacketEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.item.ItemExpBottle; 12 | import net.minecraft.network.play.client.CPacketPlayer; 13 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; 14 | 15 | /* 16 | * I originally got this idea from olliem5, it was done in his "past" client. not sure where he got it, but that's where i got it :) 17 | */ 18 | 19 | public class FootExp extends Module { 20 | 21 | public FootExp() { 22 | super ("footExp", "automatically throws xp bottles downwards.", Keyboard.KEY_NONE, Category.PVP); 23 | } 24 | 25 | public void onEnable() { 26 | Main.EVENT_BUS.subscribe(this); 27 | } 28 | 29 | public void onDisable() { 30 | Main.EVENT_BUS.unsubscribe(this); 31 | } 32 | 33 | @EventHandler 34 | public Listener listener = new Listener<>(event -> { 35 | if(event.getPacket() instanceof CPacketPlayerTryUseItem && mc.player.getHeldItemMainhand().getItem() instanceof ItemExpBottle) { 36 | mc.player.connection.sendPacket(new CPacketPlayer.Rotation(mc.player.rotationYaw, 90.0f, mc.player.onGround)); 37 | } 38 | }); 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/LogOutSpot.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class LogOutSpot extends Module { 9 | 10 | public LogOutSpot() { 11 | super ("logOutSpot", "shows where a player logs out.", Keyboard.KEY_NONE, Category.PVP); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/pvp/SmartHotbar.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.pvp; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class SmartHotbar extends Module { 9 | 10 | public SmartHotbar() { 11 | super ("smartHotbar", "a smart hotbar (wip).", Keyboard.KEY_NONE, Category.PVP); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/CameraClip.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.RenderCameraEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | 12 | public class CameraClip extends Module { 13 | 14 | public CameraClip() { 15 | super ("cameraClip", "camera clips when in 3rd person.", Keyboard.KEY_NONE, Category.RENDER); 16 | } 17 | 18 | public void onEnable() { 19 | Main.EVENT_BUS.subscribe(this); 20 | } 21 | 22 | public void onDisable() { 23 | Main.EVENT_BUS.unsubscribe(this); 24 | } 25 | 26 | @EventHandler 27 | private Listener onRenderCameraEvent = new Listener<>(event -> { 28 | event.cancel(); 29 | }); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/DamageTiltCorrection.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.api.util.damagetilt.MessageUpdateAttackYaw; 6 | import me.srgantmoomoo.postman.api.util.damagetilt.PacketHandler; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import net.minecraft.entity.EntityLivingBase; 10 | import net.minecraft.entity.player.EntityPlayer; 11 | import net.minecraft.entity.player.EntityPlayerMP; 12 | import net.minecraftforge.common.MinecraftForge; 13 | import net.minecraftforge.event.entity.living.LivingKnockBackEvent; 14 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 15 | 16 | public class DamageTiltCorrection extends Module { 17 | 18 | public DamageTiltCorrection() { 19 | super ("damageTilt", "fixes minecraft's age old damage tilt bug.", Keyboard.KEY_NONE, Category.RENDER); 20 | } 21 | 22 | @SubscribeEvent 23 | public void onKnockback(LivingKnockBackEvent event) { 24 | if (event.getEntityLiving() instanceof EntityPlayer) { 25 | EntityPlayer player = (EntityPlayer)event.getEntityLiving(); 26 | if (player.world.isRemote) 27 | return; 28 | PacketHandler.instance.sendTo(new MessageUpdateAttackYaw((EntityLivingBase)player), (EntityPlayerMP)player); 29 | } 30 | } 31 | 32 | public void onEnable() { 33 | PacketHandler.init(); 34 | MinecraftForge.EVENT_BUS.register(this); 35 | } 36 | 37 | public void onDisable() { 38 | MinecraftForge.EVENT_BUS.unregister(this); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/FullBright.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.PlayerUpdateEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.zero.alpine.listener.EventHandler; 10 | import me.zero.alpine.listener.Listener; 11 | import net.minecraft.init.MobEffects; 12 | 13 | /* 14 | * Written by @SrgantMooMoo on 11/17/20. 15 | * Rewritten by @SrgantMooMoo on 1/4/21. 16 | */ 17 | 18 | public class FullBright extends Module { 19 | 20 | public FullBright() { 21 | super ("fullBright", "makes everything fully bright.", Keyboard.KEY_NONE, Category.RENDER); 22 | } 23 | private float lastGamma; 24 | 25 | @Override 26 | public void onEnable() { 27 | Main.EVENT_BUS.subscribe(this); 28 | 29 | lastGamma = mc.gameSettings.gammaSetting; 30 | } 31 | 32 | @Override 33 | public void onDisable() { 34 | Main.EVENT_BUS.unsubscribe(this); 35 | 36 | mc.gameSettings.gammaSetting = this.lastGamma; 37 | } 38 | 39 | @EventHandler 40 | private Listener OnPlayerUpdate = new Listener<>(p_Event -> { 41 | mc.gameSettings.gammaSetting = 1000; 42 | mc.player.removePotionEffect(MobEffects.NIGHT_VISION); 43 | }); 44 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/LowOffHand.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 8 | import net.minecraft.client.renderer.ItemRenderer; 9 | 10 | /* 11 | * Written by @SrgantMooMoo on 11/17/20. 12 | */ 13 | 14 | public class LowOffHand extends Module { 15 | public NumberSetting lowness = new NumberSetting("lowness", this, 0.7, 0, 1, 0.1); 16 | 17 | public LowOffHand() { 18 | super ("lowOffHand", "lowers the offhand.", Keyboard.KEY_NONE, Category.RENDER); 19 | this.addSettings(lowness); 20 | } 21 | 22 | ItemRenderer itemRenderer = mc.entityRenderer.itemRenderer; 23 | 24 | 25 | @Override 26 | public void onUpdate(){ 27 | itemRenderer.equippedProgressOffHand = (float) lowness.getValue(); 28 | } 29 | 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/NewChunks.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class NewChunks extends Module { 9 | 10 | public NewChunks() { 11 | super ("newChunks", "shows when new chunks r generated.", Keyboard.KEY_NONE, Category.RENDER); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/Peek.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Peek extends Module { 9 | 10 | //look in me.srgantmoomoo.api.mixin.mixins.MixinGuiScreen 11 | public Peek() { 12 | super ("peek", "shows preview of wuts in a shulker.", Keyboard.KEY_NONE, Category.RENDER); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/ViewModel.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.api.event.events.TransformSideFirstPersonEvent; 7 | import me.srgantmoomoo.postman.client.module.Category; 8 | import me.srgantmoomoo.postman.client.module.Module; 9 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 10 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 11 | import me.zero.alpine.listener.EventHandler; 12 | import me.zero.alpine.listener.Listener; 13 | import net.minecraft.client.renderer.GlStateManager; 14 | import net.minecraft.util.EnumHandSide; 15 | import net.minecraftforge.common.MinecraftForge; 16 | 17 | public class ViewModel extends Module { 18 | public BooleanSetting cancelEating = new BooleanSetting("noEat", this, false); 19 | public NumberSetting LeftX = new NumberSetting("LeftX", this, 0, -2, 2, 0.1); 20 | public NumberSetting LeftY = new NumberSetting("LeftY", this, 0, -2, 2, 0.1); 21 | public NumberSetting LeftZ = new NumberSetting("LeftZ", this, 0, -2, 2, 0.1); 22 | public NumberSetting RightX = new NumberSetting("RightX", this, 0, -2, 2, 0.1); 23 | public NumberSetting RightY = new NumberSetting("RightY", this, 0, -2, 2, 0.1); 24 | public NumberSetting RightZ = new NumberSetting("RightZ", this, 0, -2, 2, 0.1); 25 | 26 | public ViewModel() { 27 | super("viewModel", "allows u to change how ur model look in 1st person.", Keyboard.KEY_NONE, Category.RENDER); 28 | this.addSettings(LeftX, LeftY, LeftZ, RightX, RightY, RightZ); 29 | } 30 | 31 | @EventHandler 32 | private final Listener listener = new Listener<>(event -> { 33 | if (event.getEnumHandSide() == EnumHandSide.RIGHT) { 34 | GlStateManager.translate(RightX.getValue(), RightY.getValue(), RightZ.getValue()); 35 | } else if (event.getEnumHandSide() == EnumHandSide.LEFT) { 36 | GlStateManager.translate(LeftX.getValue(), LeftY.getValue(), LeftZ.getValue()); 37 | } 38 | }); 39 | 40 | public void onEnable() { 41 | Main.EVENT_BUS.subscribe(this); 42 | MinecraftForge.EVENT_BUS.register(this); 43 | } 44 | 45 | public void onDisable() { 46 | Main.EVENT_BUS.unsubscribe(this); 47 | MinecraftForge.EVENT_BUS.unregister(this); 48 | } 49 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/World.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.client.module.Category; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import me.srgantmoomoo.postman.client.setting.settings.ModeSetting; 9 | import me.srgantmoomoo.postman.client.setting.settings.NumberSetting; 10 | 11 | public class World extends Module { 12 | public ModeSetting weather = new ModeSetting("weather", this, "clear", "clear", "rain", "thunderStorm"); 13 | public NumberSetting time = new NumberSetting("time", this, 0.0D, 0.0D, 24000.0D, 1.0D); 14 | 15 | public World() { 16 | super("world", "change world shit.", Keyboard.KEY_NONE, Category.RENDER); 17 | this.addSettings(weather, time); 18 | } 19 | 20 | public void onEnable() { 21 | Main.EVENT_BUS.subscribe(this); 22 | } 23 | 24 | public void onDisable() { 25 | Main.EVENT_BUS.unsubscribe(this); 26 | } 27 | 28 | public void onUpdate() { 29 | // timeOfDay 30 | mc.world.setWorldTime((long) time.getValue()); 31 | 32 | // weather 33 | if(weather.is("clear")) mc.world.setRainStrength(0); 34 | if(weather.is("rain")) mc.world.setRainStrength(1); 35 | if(weather.is("thunderStorm")) mc.world.setRainStrength(2); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/module/modules/render/Xray.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.module.modules.render; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.client.module.Category; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | 8 | public class Xray extends Module { 9 | 10 | public Xray() { 11 | super ("xray", "use commands for better customizability.", Keyboard.KEY_NONE, Category.RENDER); 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/Setting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting; 2 | 3 | import me.srgantmoomoo.postman.client.module.Module; 4 | 5 | /* 6 | * Written by @SrgantMooMoo on 11/17/20. 7 | */ 8 | 9 | public abstract class Setting { 10 | 11 | public String name; 12 | public Module parent; 13 | public boolean focused; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/SettingManager.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting; 2 | 3 | import java.util.ArrayList; 4 | 5 | import me.srgantmoomoo.postman.client.module.Module; 6 | import me.srgantmoomoo.postman.client.module.ModuleManager; 7 | 8 | /* 9 | * Written originally by @HeroCode. 10 | * Edited by @SrgantMooMoo on 11/17/20 with inspiration taken from @Sebsb. 11 | */ 12 | 13 | public class SettingManager { 14 | 15 | private ArrayList settings; 16 | 17 | public SettingManager(){ 18 | this.settings = new ArrayList(); 19 | } 20 | 21 | public void rSetting(Setting in){ 22 | this.settings.add(in); 23 | } 24 | 25 | public ArrayList getSettings() { 26 | return this.settings; 27 | } 28 | 29 | public ArrayList getSettingsByMod(Module mod) { 30 | ArrayList out = new ArrayList(); 31 | for(Setting s : getSettings()) { 32 | if(s.parent.equals(mod)) { 33 | out.add(s); 34 | } 35 | } 36 | if(out.isEmpty()) { 37 | return null; 38 | } 39 | return out; 40 | } 41 | 42 | public Setting getSettingByName(Module mod, String name) { 43 | for (Module m : ModuleManager.modules) { 44 | for (Setting set : m.settings) { 45 | if (set.name.equalsIgnoreCase(name) && set.parent == mod) { 46 | return set; 47 | } 48 | } 49 | } 50 | System.err.println("[postman] Error Setting NOT found: '" + name +"'!"); 51 | return null; 52 | } 53 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/settings/BooleanSetting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting.settings; 2 | 3 | import com.lukflug.panelstudio.settings.Toggleable; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.Setting; 8 | 9 | /* 10 | * Written by @SrgantMooMoo on 11/17/20. 11 | */ 12 | 13 | public class BooleanSetting extends Setting implements Toggleable { 14 | public boolean enabled; 15 | 16 | public BooleanSetting(String name, Module parent, boolean enabled) { 17 | this.name = name; 18 | this.parent = parent; 19 | this.enabled = enabled; 20 | } 21 | 22 | public boolean isEnabled() { 23 | return this.enabled; 24 | } 25 | 26 | public void setEnabled(boolean enabled) { 27 | this.enabled = enabled; 28 | 29 | if(Main.saveLoad != null) { 30 | Main.saveLoad.save(); 31 | } 32 | } 33 | 34 | public void toggle() { 35 | this.enabled = !this.enabled; 36 | 37 | if(Main.saveLoad != null) { 38 | Main.saveLoad.save(); 39 | } 40 | } 41 | 42 | @Override 43 | public boolean isOn() { 44 | return this.isEnabled(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/settings/ColorSetting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting.settings; 2 | 3 | import java.awt.Color; 4 | 5 | import me.srgantmoomoo.postman.api.util.render.JColor; 6 | import me.srgantmoomoo.postman.client.module.Module; 7 | import me.srgantmoomoo.postman.client.setting.Setting; 8 | 9 | public class ColorSetting extends Setting implements com.lukflug.panelstudio.settings.ColorSetting { 10 | 11 | private boolean rainbow; 12 | private JColor value; 13 | 14 | public ColorSetting (String name, Module parent, final JColor value) { 15 | this.name = name; 16 | this.parent = parent; 17 | this.value = value; 18 | } 19 | 20 | public JColor getValue() { 21 | if (rainbow) { 22 | return getRainbow(0, this.getColor().getAlpha()); 23 | } 24 | return this.value; 25 | } 26 | 27 | public static JColor getRainbow(int incr, int alpha) { 28 | JColor color = JColor.fromHSB(((System.currentTimeMillis() + incr * 200)%(360*20))/(360f * 20),0.5f,1f); 29 | return new JColor(color.getRed(), color.getBlue(), color.getGreen(), alpha); 30 | } 31 | 32 | 33 | public void setValue (boolean rainbow, final JColor value) { 34 | this.rainbow = rainbow; 35 | this.value = value; 36 | } 37 | 38 | public long toInteger() { 39 | return this.value.getRGB() & (0xFFFFFFFF); 40 | } 41 | 42 | public void fromInteger (long number) { 43 | this.value = new JColor(Math.toIntExact(number & 0xFFFFFFFF),true); 44 | } 45 | 46 | public JColor getColor() { 47 | return this.value; 48 | } 49 | 50 | @Override 51 | public boolean getRainbow() { 52 | return this.rainbow; 53 | } 54 | 55 | @Override 56 | public void setValue(Color value) { 57 | setValue(getRainbow(), new JColor(value)); 58 | } 59 | 60 | @Override 61 | public void setRainbow(boolean rainbow) { 62 | this.rainbow = rainbow; 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/settings/KeybindSetting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting.settings; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import com.lukflug.panelstudio.theme.Renderer; 6 | 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import me.srgantmoomoo.postman.client.setting.Setting; 9 | 10 | /* 11 | * Written by @SrgantMooMoo on 11/17/20. 12 | */ 13 | 14 | public class KeybindSetting extends Setting implements com.lukflug.panelstudio.settings.KeybindSetting { 15 | 16 | public int code; 17 | 18 | public KeybindSetting(int code) { 19 | this.name = "KeyBind"; 20 | this.code = code; 21 | } 22 | 23 | public KeybindSetting(Renderer componentRenderer, Module module) { 24 | // TODO Auto-generated constructor stub 25 | } 26 | 27 | public int getKeyCode() { 28 | return this.code; 29 | } 30 | 31 | public void setKeyCode(int code) { 32 | this.code = code; 33 | } 34 | 35 | @Override 36 | public int getKey() { 37 | return code; 38 | } 39 | 40 | @Override 41 | public String getKeyName() { 42 | return Keyboard.getKeyName(code); 43 | } 44 | 45 | @Override 46 | public void setKey(int key) { 47 | code=key; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/settings/ModeSetting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting.settings; 2 | 3 | import java.util.Arrays; 4 | import java.util.List; 5 | 6 | import com.lukflug.panelstudio.settings.EnumSetting; 7 | 8 | import me.srgantmoomoo.Main; 9 | import me.srgantmoomoo.postman.client.module.Module; 10 | import me.srgantmoomoo.postman.client.setting.Setting; 11 | 12 | /* 13 | * Written by @SrgantMooMoo on 11/17/20. 14 | */ 15 | 16 | public class ModeSetting extends Setting implements EnumSetting { 17 | 18 | public int index; 19 | 20 | public List modes; 21 | 22 | public ModeSetting(String name, Module parent, String defaultMode, String... modes) { 23 | this.name = name; 24 | this.parent = parent; 25 | this.modes = Arrays.asList(modes); 26 | this.index = this.modes.indexOf(defaultMode); 27 | } 28 | 29 | public String getMode() { 30 | return this.modes.get(this.index); 31 | } 32 | 33 | public void setMode(String mode) { 34 | this.index = this.modes.indexOf(mode); 35 | 36 | if(Main.saveLoad != null) { 37 | Main.saveLoad.save(); 38 | } 39 | } 40 | 41 | public boolean is(String mode) { 42 | return (this.index == this.modes.indexOf(mode)); 43 | } 44 | 45 | public void cycle() { 46 | if (this.index < this.modes.size() - 1) { 47 | this.index++; 48 | }else { 49 | this.index = 0; 50 | } 51 | 52 | if(Main.saveLoad != null) { 53 | Main.saveLoad.save(); 54 | } 55 | } 56 | 57 | @Override 58 | public String getValueName() { 59 | return this.modes.get(this.index); 60 | } 61 | 62 | @Override 63 | public void increment() { 64 | if (this.index < this.modes.size() - 1) { 65 | this.index++; 66 | }else { 67 | this.index = 0; 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/setting/settings/NumberSetting.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.setting.settings; 2 | 3 | import me.srgantmoomoo.Main; 4 | import me.srgantmoomoo.postman.client.module.Module; 5 | import me.srgantmoomoo.postman.client.setting.Setting; 6 | 7 | /* 8 | * Written by @SrgantMooMoo on 11/17/20. 9 | */ 10 | 11 | public class NumberSetting extends Setting implements com.lukflug.panelstudio.settings.NumberSetting { 12 | public double value; 13 | 14 | public double minimum; 15 | 16 | public double maximum; 17 | 18 | public double increment; 19 | 20 | public NumberSetting(String name, Module parent, double value, double minimum, double maximum, double increment) { 21 | this.name = name; 22 | this.parent = parent; 23 | this.value = value; 24 | this.minimum = minimum; 25 | this.maximum = maximum; 26 | this.increment = increment; 27 | } 28 | 29 | public double getValue() { 30 | return this.value; 31 | } 32 | 33 | public void setValue(double value) { 34 | double precision = 1.0D / this.increment; 35 | //this.value = value; 36 | this.value = Math.round(Math.max(this.minimum, Math.min(this.maximum, value)) * precision) / precision; 37 | 38 | if(Main.saveLoad != null) { 39 | Main.saveLoad.save(); 40 | } 41 | } 42 | 43 | public void increment(boolean positive) { 44 | setValue(getValue() + (positive ? 1 : -1) * increment); 45 | } 46 | 47 | public double getMinimun() { 48 | return this.minimum; 49 | } 50 | 51 | public void setMinimun(double minimun) { 52 | this.minimum = minimun; 53 | } 54 | 55 | public double getMaximum() { 56 | return this.maximum; 57 | } 58 | 59 | public void setMaximum(double maximum) { 60 | this.maximum = maximum; 61 | } 62 | 63 | public double getIncrement() { 64 | return this.increment; 65 | } 66 | 67 | public void setIncrement(double increment) { 68 | this.increment = increment; 69 | } 70 | 71 | @Override 72 | public double getMaximumValue() { 73 | return this.maximum; 74 | } 75 | 76 | @Override 77 | public double getMinimumValue() { 78 | return this.minimum; 79 | } 80 | 81 | @Override 82 | public double getNumber() { 83 | return this.value; 84 | } 85 | 86 | @Override 87 | public int getPrecision() { 88 | return 1; 89 | } 90 | 91 | @Override 92 | public void setNumber(double value) { 93 | double precision = 1.0D / this.increment; 94 | this.value = Math.round(Math.max(this.minimum, Math.min(this.maximum, value)) * precision) / precision; 95 | } 96 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/ui/TabGui.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.ui; 2 | 3 | public class TabGui { 4 | // vast void of emptiness..... 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/ui/clickgui/HudEditor.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.ui.clickgui; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.Main; 6 | import me.srgantmoomoo.postman.client.module.Category; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 9 | 10 | public class HudEditor extends Module { 11 | public BooleanSetting exitToClickGui = new BooleanSetting("exitToClickGui", this, true); 12 | 13 | public HudEditor() { 14 | super("hudEditor", "descrp", Keyboard.KEY_NONE, Category.HUD); 15 | this.addSettings(exitToClickGui); 16 | } 17 | 18 | public void onEnable() { 19 | Main.clickGui.enterHUDEditor(); 20 | } 21 | 22 | public void onUpdate() { 23 | 24 | if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) { 25 | if(exitToClickGui.isEnabled()) { 26 | this.setToggled(false); 27 | Main.clickGui.enterGUI(); 28 | }else { 29 | this.setToggled(false); 30 | } 31 | } 32 | 33 | } 34 | 35 | public void onDisable() { 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postman/client/ui/clickgui/SyncableColorComponent.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postman.client.ui.clickgui; 2 | 3 | import com.lukflug.panelstudio.Animation; 4 | import com.lukflug.panelstudio.Context; 5 | import com.lukflug.panelstudio.FocusableComponent; 6 | import com.lukflug.panelstudio.Interface; 7 | import com.lukflug.panelstudio.settings.ColorComponent; 8 | import com.lukflug.panelstudio.settings.Toggleable; 9 | import com.lukflug.panelstudio.theme.Renderer; 10 | import com.lukflug.panelstudio.theme.Theme; 11 | 12 | import me.srgantmoomoo.postman.client.module.ModuleManager; 13 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 14 | import net.minecraft.util.text.TextFormatting; 15 | 16 | public class SyncableColorComponent extends ColorComponent { 17 | public SyncableColorComponent (Theme theme, ColorSetting setting, Toggleable colorToggle, Animation animation) { 18 | super(TextFormatting.BOLD+setting.name,null,theme.getContainerRenderer(),animation,theme.getComponentRenderer(),setting,true,true,colorToggle); 19 | if (setting!=((ClickGuiModule) ModuleManager.getModuleByName("clickGui")).enabledColor) addComponent(new SyncButton(theme.getComponentRenderer())); 20 | } 21 | 22 | private class SyncButton extends FocusableComponent { 23 | public SyncButton (Renderer renderer) { 24 | super("Sync Color",null,renderer); 25 | } 26 | 27 | @Override 28 | public void render (Context context) { 29 | super.render(context); 30 | renderer.overrideColorScheme(overrideScheme); 31 | renderer.renderTitle(context,title,hasFocus(context),false); 32 | renderer.restoreColorScheme(); 33 | } 34 | 35 | @Override 36 | public void handleButton (Context context, int button) { 37 | super.handleButton(context,button); 38 | if (button==Interface.LBUTTON && context.isClicked()) { 39 | setting.setValue(((ClickGuiModule) ModuleManager.getModuleByName("clickGui")).enabledColor.getColor()); 40 | setting.setRainbow(((ClickGuiModule) ModuleManager.getModuleByName("clickGui")).enabledColor.getRainbow()); 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postmanplusplus/ModuleManagerPlusPlus.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postmanplusplus; 2 | 3 | import me.srgantmoomoo.postman.client.module.ModuleManager; 4 | import me.srgantmoomoo.postmanplusplus.modules.CustomChat; 5 | import me.srgantmoomoo.postmanplusplus.modules.InstantMine; 6 | import me.srgantmoomoo.postmanplusplus.modules.SkyColor; 7 | import me.srgantmoomoo.postmanplusplus.modules.TargetHud; 8 | 9 | public class ModuleManagerPlusPlus { 10 | 11 | public ModuleManagerPlusPlus() { 12 | ModuleManager.modules.add(new CustomChat()); 13 | ModuleManager.modules.add(new SkyColor()); 14 | ModuleManager.modules.add(new TargetHud()); 15 | ModuleManager.modules.add(new InstantMine()); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/me/srgantmoomoo/postmanplusplus/modules/SkyColor.java: -------------------------------------------------------------------------------- 1 | package me.srgantmoomoo.postmanplusplus.modules; 2 | 3 | import org.lwjgl.input.Keyboard; 4 | 5 | import me.srgantmoomoo.postman.api.util.render.JColor; 6 | import me.srgantmoomoo.postman.client.module.Category; 7 | import me.srgantmoomoo.postman.client.module.Module; 8 | import me.srgantmoomoo.postman.client.setting.settings.BooleanSetting; 9 | import me.srgantmoomoo.postman.client.setting.settings.ColorSetting; 10 | import net.minecraft.util.text.TextFormatting; 11 | import net.minecraftforge.client.event.EntityViewRenderEvent; 12 | import net.minecraftforge.common.MinecraftForge; 13 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 14 | 15 | public class SkyColor extends Module { 16 | public BooleanSetting fog = new BooleanSetting("fog", this, false); 17 | public ColorSetting colorJ = new ColorSetting("color", this, new JColor(255, 255, 255, 255)); 18 | 19 | public SkyColor() { 20 | super("" + TextFormatting.RESET + TextFormatting.ITALIC + "skyColor" + TextFormatting.OBFUSCATED + "++", "colors the sky.", Keyboard.KEY_NONE, Category.RENDER); 21 | this.addSettings(fog, colorJ); 22 | } 23 | 24 | @SubscribeEvent 25 | public void onFogColorRender(EntityViewRenderEvent.FogColors event) { 26 | JColor color = colorJ.getValue(); 27 | event.setRed(color.getRed() / 255f); 28 | event.setGreen(color.getGreen() / 255f); 29 | event.setBlue(color.getBlue() / 255f); 30 | } 31 | 32 | @SubscribeEvent 33 | public void fog(EntityViewRenderEvent.FogDensity event) { 34 | if (!fog.isEnabled()) { 35 | event.setDensity(0); 36 | event.setCanceled(true); 37 | } 38 | } 39 | 40 | public void onEnable() { 41 | MinecraftForge.EVENT_BUS.register(this); 42 | } 43 | 44 | public void onDisable() { 45 | MinecraftForge.EVENT_BUS.unregister(this); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/christman-logo-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/christman-logo-background.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/christman-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/christman-logo.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/postman-cape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/postman-cape.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/postman-logo-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/postman-logo-background.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/postman-logo-circle-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/postman-logo-circle-background.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/postman-logo-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/postman-logo-transparent.png -------------------------------------------------------------------------------- /src/main/resources/assets/pstpp/textures/postman-text-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/assets/pstpp/textures/postman-text-transparent.png -------------------------------------------------------------------------------- /src/main/resources/christmanCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/christmanCircle.png -------------------------------------------------------------------------------- /src/main/resources/darwin/libdiscord-rpc.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/darwin/libdiscord-rpc.dylib -------------------------------------------------------------------------------- /src/main/resources/linux-x86-64/libdiscord-rpc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/linux-x86-64/libdiscord-rpc.so -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "modid": "pstpp", 4 | "name": "postman++", 5 | "description": "a minecraft client for 1.12.2 anarchy servers.", 6 | "version": "1.2-2.100", 7 | "mcversion": "1.12.2", 8 | "url": "https://github.com/moomooooo/postman", 9 | "authorList": ["SrgantMooMoo", "lukflug"], 10 | "credits": "anyone who paid for this client.", 11 | "logoFile": "postmancircle.png", 12 | "screenshots": [], 13 | "dependencies": [] 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /src/main/resources/mixins.postman.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "compatibilityLevel": "JAVA_8", 4 | "package": "me.srgantmoomoo.mixin.mixins", 5 | "refmap": "mixins.postman.refmap.json", 6 | "mixins": [ 7 | "MixinAbstractClientPlayer", 8 | "MixinBlockLiquid", 9 | "MixinBlockSlimeBlock", 10 | "MixinBlockSoulSand", 11 | "MixinChat", 12 | "MixinBlockWeb", 13 | "MixinEntity", 14 | "MixinEntityPlayer", 15 | "MixinEntityPlayerSP", 16 | "MixinEntityRenderer", 17 | "MixinGuiIngame", 18 | "MixinGuiMainMenu", 19 | "MixinGuiPlayerTabOverlay", 20 | "MixinGuiScreen", 21 | "MixinItemRenderer", 22 | "MixinMinecraft", 23 | "MixinMovementInputFromOptions", 24 | "MixinNetworkManager", 25 | "MixinPlayerControllerMP", 26 | "MixinRender", 27 | "MixinRenderLivingBase", 28 | "MixinRenderPlayer", 29 | "MixinWorld", 30 | "accessor.AccessorEntityPlayerSP" 31 | ] 32 | } -------------------------------------------------------------------------------- /src/main/resources/postmancircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/postmancircle.png -------------------------------------------------------------------------------- /src/main/resources/win32-x86-64/discord-rpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/win32-x86-64/discord-rpc.dll -------------------------------------------------------------------------------- /src/main/resources/win32-x86/discord-rpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srgantmoomoo/postmanplusplus/a6705266e92420ec79349512ae09acbf39c0a341/src/main/resources/win32-x86/discord-rpc.dll --------------------------------------------------------------------------------