├── .gitattributes ├── LICENSE ├── README.md ├── build.gradle ├── createIdea.bat ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src └── main ├── java ├── best │ └── reich │ │ └── ingros │ │ └── events │ │ └── entity │ │ └── UpdateEvent.java ├── club │ └── minnced │ │ └── discord │ │ └── rpc │ │ ├── DiscordEventHandlers.java │ │ ├── DiscordRPC.java │ │ ├── DiscordRichPresence.java │ │ ├── DiscordUser.java │ │ └── package-info.java ├── com │ ├── esotericsoftware │ │ └── reflectasm │ │ │ ├── AccessClassLoader.java │ │ │ ├── ConstructorAccess.java │ │ │ ├── FieldAccess.java │ │ │ ├── MethodAccess.java │ │ │ └── PublicConstructorAccess.java │ └── veteran │ │ └── hack │ │ ├── event │ │ ├── MinecraftEvent.java │ │ └── events │ │ │ └── RenderEvent.java │ │ └── util │ │ └── VetHackTessellator.java ├── me │ ├── travis │ │ ├── turok │ │ │ ├── Turok.java │ │ │ ├── draw │ │ │ │ ├── GL.java │ │ │ │ └── RenderHelp.java │ │ │ ├── task │ │ │ │ ├── Font.java │ │ │ │ └── Rect.java │ │ │ └── values │ │ │ │ ├── TurokBoolean.java │ │ │ │ ├── TurokDouble.java │ │ │ │ ├── TurokEnum.java │ │ │ │ ├── TurokFloat.java │ │ │ │ ├── TurokGeneric.java │ │ │ │ ├── TurokInt.java │ │ │ │ └── TurokString.java │ │ └── wurstplus │ │ │ ├── FloppaHack.java │ │ │ ├── PresenceCore.java │ │ │ ├── mixins │ │ │ ├── MixinItemStack.java │ │ │ ├── WurstplusMixinAbstractClientPlayer.java │ │ │ ├── WurstplusMixinEntity.java │ │ │ ├── WurstplusMixinEntityRenderer.java │ │ │ ├── WurstplusMixinEntitySP.java │ │ │ ├── WurstplusMixinGuiNewChat.java │ │ │ ├── WurstplusMixinGuiPlayerTabOverlay.java │ │ │ ├── WurstplusMixinGuiScreen.java │ │ │ ├── WurstplusMixinItemRenderer.java │ │ │ ├── WurstplusMixinLoader.java │ │ │ ├── WurstplusMixinMinecraft.java │ │ │ ├── WurstplusMixinNetworkManager.java │ │ │ ├── WurstplusMixinPlayer.java │ │ │ ├── WurstplusMixinPlayerControllerMP.java │ │ │ ├── WurstplusMixinRenderLivingBase.java │ │ │ ├── WurstplusMixinRenderPlayer.java │ │ │ └── WurstplusMixinWorld.java │ │ │ └── wurstplustwo │ │ │ ├── command │ │ │ ├── WurstplusCommand.java │ │ │ ├── WurstplusCommands.java │ │ │ └── commands │ │ │ │ ├── WurstplusAlert.java │ │ │ │ ├── WurstplusBind.java │ │ │ │ ├── WurstplusConfig.java │ │ │ │ ├── WurstplusDrawn.java │ │ │ │ ├── WurstplusEnemy.java │ │ │ │ ├── WurstplusEzMessage.java │ │ │ │ ├── WurstplusFriend.java │ │ │ │ ├── WurstplusHelp.java │ │ │ │ ├── WurstplusPrefix.java │ │ │ │ ├── WurstplusSettings.java │ │ │ │ └── WurstplusToggle.java │ │ │ ├── event │ │ │ ├── WurstplusEventBus.java │ │ │ ├── WurstplusEventCancellable.java │ │ │ ├── WurstplusEventHandler.java │ │ │ ├── WurstplusEventRegister.java │ │ │ └── events │ │ │ │ ├── TransformSideFirstPersonEvent.java │ │ │ │ ├── WurstplusEventBlock.java │ │ │ │ ├── WurstplusEventDamageBlock.java │ │ │ │ ├── WurstplusEventEntity.java │ │ │ │ ├── WurstplusEventEntityRemoved.java │ │ │ │ ├── WurstplusEventGUIScreen.java │ │ │ │ ├── WurstplusEventGameOverlay.java │ │ │ │ ├── WurstplusEventMotionUpdate.java │ │ │ │ ├── WurstplusEventMove.java │ │ │ │ ├── WurstplusEventPacket.java │ │ │ │ ├── WurstplusEventPlayerJump.java │ │ │ │ ├── WurstplusEventPlayerTravel.java │ │ │ │ ├── WurstplusEventRender.java │ │ │ │ ├── WurstplusEventRenderEntityModel.java │ │ │ │ ├── WurstplusEventRenderName.java │ │ │ │ ├── WurstplusEventSetupFog.java │ │ │ │ └── WurstplusEventSwing.java │ │ │ ├── guiscreen │ │ │ ├── Helper │ │ │ │ └── RenderHelper.java │ │ │ ├── WurstplusGUI.java │ │ │ ├── WurstplusHUD.java │ │ │ ├── hud │ │ │ │ ├── CompassRewrite.java │ │ │ │ ├── WurstplusArmorDurabilityWarner.java │ │ │ │ ├── WurstplusArmorPreview.java │ │ │ │ ├── WurstplusArrayList.java │ │ │ │ ├── WurstplusCompass.java │ │ │ │ ├── WurstplusCoordinates.java │ │ │ │ ├── WurstplusCrystalCount.java │ │ │ │ ├── WurstplusDirection.java │ │ │ │ ├── WurstplusEXPCount.java │ │ │ │ ├── WurstplusEffectHud.java │ │ │ │ ├── WurstplusEntityList.java │ │ │ │ ├── WurstplusFPS.java │ │ │ │ ├── WurstplusFriendList.java │ │ │ │ ├── WurstplusGappleCount.java │ │ │ │ ├── WurstplusInventoryPreview.java │ │ │ │ ├── WurstplusInventoryXCarryPreview.java │ │ │ │ ├── WurstplusLogo.java │ │ │ │ ├── WurstplusPing.java │ │ │ │ ├── WurstplusPlayerList.java │ │ │ │ ├── WurstplusPvpHud.java │ │ │ │ ├── WurstplusSpeedometer.java │ │ │ │ ├── WurstplusSurroundBlocks.java │ │ │ │ ├── WurstplusTPS.java │ │ │ │ ├── WurstplusTime.java │ │ │ │ ├── WurstplusTotemCount.java │ │ │ │ ├── WurstplusUser.java │ │ │ │ └── WurstplusWatermark.java │ │ │ ├── render │ │ │ │ ├── WurstplusDraw.java │ │ │ │ ├── components │ │ │ │ │ ├── WurstplusAbstractWidget.java │ │ │ │ │ ├── WurstplusFrame.java │ │ │ │ │ ├── WurstplusModuleButton.java │ │ │ │ │ └── widgets │ │ │ │ │ │ ├── WurstplusButton.java │ │ │ │ │ │ ├── WurstplusButtonBind.java │ │ │ │ │ │ ├── WurstplusCombobox.java │ │ │ │ │ │ ├── WurstplusLabel.java │ │ │ │ │ │ └── WurstplusSlider.java │ │ │ │ └── pinnables │ │ │ │ │ ├── WurstplusFrame.java │ │ │ │ │ ├── WurstplusPinnable.java │ │ │ │ │ └── WurstplusPinnableButton.java │ │ │ └── settings │ │ │ │ └── WurstplusSetting.java │ │ │ ├── hacks │ │ │ ├── WurstplusCategory.java │ │ │ ├── WurstplusClickGUI.java │ │ │ ├── WurstplusClickHUD.java │ │ │ ├── WurstplusHack.java │ │ │ ├── chat │ │ │ │ ├── AutoExcuse.java │ │ │ │ ├── FloppaChatSuffix.java │ │ │ │ ├── PhobosAutoGG.java │ │ │ │ ├── Shrug.java │ │ │ │ ├── WurstplusAnnouncer.java │ │ │ │ ├── WurstplusAntiRacist.java │ │ │ │ ├── WurstplusAutoEz.java │ │ │ │ ├── WurstplusChatMods.java │ │ │ │ ├── WurstplusChatSuffix.java │ │ │ │ ├── WurstplusClearChat.java │ │ │ │ ├── WurstplusTotempop.java │ │ │ │ ├── WurstplusVisualRange.java │ │ │ │ └── YakGodChatSuffix.java │ │ │ ├── combat │ │ │ │ ├── AutoArmor.java │ │ │ │ ├── AutoKit.java │ │ │ │ ├── AutoShield.java │ │ │ │ ├── BowExploit.java │ │ │ │ ├── FootXP.java │ │ │ │ ├── WurstplusAuto32k.java │ │ │ │ ├── WurstplusAutoArmour.java │ │ │ │ ├── WurstplusAutoCrystal.java │ │ │ │ ├── WurstplusAutoGapple.java │ │ │ │ ├── WurstplusAutoMine.java │ │ │ │ ├── WurstplusAutoTotem.java │ │ │ │ ├── WurstplusAutoWeb.java │ │ │ │ ├── WurstplusBedAura.java │ │ │ │ ├── WurstplusCriticals.java │ │ │ │ ├── WurstplusHoleFill.java │ │ │ │ ├── WurstplusKillAura.java │ │ │ │ ├── WurstplusMessageUtil.java │ │ │ │ ├── WurstplusOffhand.java │ │ │ │ ├── WurstplusSelfTrap.java │ │ │ │ ├── WurstplusSocks.java │ │ │ │ ├── WurstplusSurround.java │ │ │ │ ├── WurstplusTrap.java │ │ │ │ └── WurstplusWebfill.java │ │ │ ├── dev │ │ │ │ ├── AutoBackdoor.java │ │ │ │ ├── CancelPortal.java │ │ │ │ ├── ColorSign.java │ │ │ │ ├── CoolChat.java │ │ │ │ ├── DDOSAura.java │ │ │ │ ├── FastBow.java │ │ │ │ ├── FloppaRPC.java │ │ │ │ ├── GSViewModel.java │ │ │ │ ├── PingBypass.java │ │ │ │ ├── SimpleViewModel.java │ │ │ │ ├── UnicodeBypass.java │ │ │ │ ├── UnicodeFont.java │ │ │ │ ├── WurstPlusFootXP.java │ │ │ │ └── WurstplusDebug.java │ │ │ ├── exploit │ │ │ │ ├── AutoDupe.java │ │ │ │ ├── AutoQueueMain.java │ │ │ │ ├── CrashExploit.java │ │ │ │ ├── WurstplusBuildHeight.java │ │ │ │ ├── WurstplusCoordExploit.java │ │ │ │ ├── WurstplusEntityMine.java │ │ │ │ ├── WurstplusNoHandshake.java │ │ │ │ ├── WurstplusNoSwing.java │ │ │ │ ├── WurstplusPacketMine.java │ │ │ │ ├── WurstplusPortalGodMode.java │ │ │ │ ├── WurstplusSpeedmine.java │ │ │ │ └── WurstplusXCarry.java │ │ │ ├── memes │ │ │ │ ├── AutoCrystal.java │ │ │ │ ├── AutoFish.java │ │ │ │ ├── AutoRacist.java │ │ │ │ ├── BoxESP.java │ │ │ │ ├── DefaultModule.java │ │ │ │ ├── NoEntityTrace.java │ │ │ │ ├── OffhandBypass.java │ │ │ │ ├── RocanStrafe.java │ │ │ │ └── TrueDurability.java │ │ │ ├── misc │ │ │ │ ├── AntiAFK.java │ │ │ │ ├── AutoFarmer.java │ │ │ │ ├── AutoRespawn.java │ │ │ │ ├── ClientSideHaste.java │ │ │ │ ├── ClientSideStrenght.java │ │ │ │ ├── TwoBored2Wait.java │ │ │ │ ├── TwoBored2Wait2.java │ │ │ │ ├── WurstplusAutoNomadHut.java │ │ │ │ ├── WurstplusAutoReplenish.java │ │ │ │ ├── WurstplusAutoWither.java │ │ │ │ ├── WurstplusCapes.java │ │ │ │ ├── WurstplusFakePlayer.java │ │ │ │ ├── WurstplusFastUtil.java │ │ │ │ ├── WurstplusMiddleClickFriends.java │ │ │ │ └── WurstplusStopEXP.java │ │ │ ├── movement │ │ │ │ ├── BlockLag.java │ │ │ │ ├── ClientSideSpeed.java │ │ │ │ ├── ElytraFly.java │ │ │ │ ├── FastSwim.java │ │ │ │ ├── IceSpeed.java │ │ │ │ ├── InventoryMove.java │ │ │ │ ├── NoSlow.java │ │ │ │ ├── Speed.java │ │ │ │ ├── Strafe.java │ │ │ │ ├── WurstPlusAnchor.java │ │ │ │ ├── WurstplusSprint.java │ │ │ │ ├── WurstplusStep.java │ │ │ │ ├── WurstplusStrafe.java │ │ │ │ └── WurstplusVelocity.java │ │ │ └── render │ │ │ │ ├── FullBright.java │ │ │ │ ├── GlowESP.java │ │ │ │ ├── NoHurtCamDEV.java │ │ │ │ ├── NoRender.java │ │ │ │ ├── NoSandRender.java │ │ │ │ ├── NoWeather.java │ │ │ │ ├── OffhandSwing.java │ │ │ │ ├── SmallHand.java │ │ │ │ ├── SwingAnimFix.java │ │ │ │ ├── WurstplusAlwaysNight.java │ │ │ │ ├── WurstplusAntifog.java │ │ │ │ ├── WurstplusChams.java │ │ │ │ ├── WurstplusCityEsp.java │ │ │ │ ├── WurstplusFuckedDetector.java │ │ │ │ ├── WurstplusHighlight.java │ │ │ │ ├── WurstplusHoleESP.java │ │ │ │ ├── WurstplusNameTags.java │ │ │ │ ├── WurstplusShulkerPreview.java │ │ │ │ ├── WurstplusSkyColour.java │ │ │ │ ├── WurstplusTracers.java │ │ │ │ ├── WurstplusViewmodleChanger.java │ │ │ │ └── WurstplusVoidESP.java │ │ │ ├── manager │ │ │ ├── WurstplusCommandManager.java │ │ │ ├── WurstplusConfigManager.java │ │ │ ├── WurstplusEventManager.java │ │ │ ├── WurstplusHUDManager.java │ │ │ ├── WurstplusModuleManager.java │ │ │ └── WurstplusSettingManager.java │ │ │ └── util │ │ │ ├── UtilTwo.java │ │ │ ├── WurstplusBlockInteractHelper.java │ │ │ ├── WurstplusBlockUtil.java │ │ │ ├── WurstplusBreakUtil.java │ │ │ ├── WurstplusCapeUtil.java │ │ │ ├── WurstplusCrystalUtil.java │ │ │ ├── WurstplusDamageUtil.java │ │ │ ├── WurstplusDrawnUtil.java │ │ │ ├── WurstplusEnemyUtil.java │ │ │ ├── WurstplusEntityUtil.java │ │ │ ├── WurstplusEzMessageUtil.java │ │ │ ├── WurstplusFriendUtil.java │ │ │ ├── WurstplusMathUtil.java │ │ │ ├── WurstplusMessageUtil.java │ │ │ ├── WurstplusOnlineFriends.java │ │ │ ├── WurstplusPair.java │ │ │ ├── WurstplusPlayerUtil.java │ │ │ ├── WurstplusPosManager.java │ │ │ ├── WurstplusRenderUtil.java │ │ │ ├── WurstplusRotationUtil.java │ │ │ ├── WurstplusTabUtil.java │ │ │ ├── WurstplusTextureHelper.java │ │ │ ├── WurstplusTimeUtil.java │ │ │ ├── WurstplusTimer.java │ │ │ └── ZoriWrapper.java │ ├── xenforu │ │ └── kelo │ │ │ └── util │ │ │ └── math │ │ │ ├── MathUtil.java │ │ │ └── TimerUtil.java │ └── zero │ │ └── alpine │ │ └── type │ │ └── Cancellable.java └── net │ └── b0at │ └── api │ └── event │ ├── Event.java │ ├── EventHandler.java │ ├── EventManager.java │ ├── Subscribe.java │ ├── cache │ ├── HandlerEncapsulator.java │ └── HandlerEncapsulatorWithTiming.java │ ├── exceptions │ ├── ListenerAlreadyRegisteredException.java │ └── ListenerNotAlreadyRegisteredException.java │ ├── profiler │ └── IEventProfiler.java │ ├── sorting │ └── HandlerEncapsulatorSorter.java │ └── types │ ├── EventPriority.java │ ├── EventTiming.java │ └── EventType.java └── resources ├── assets └── minecraft │ └── custom │ ├── cape.png │ └── wurst.jpg ├── darwin └── libdiscord-rpc.dylib ├── linux-x86-64 └── libdiscord-rpc.so ├── mcmod.info ├── mixins.wurstplus.json ├── win32-x86-64 └── discord-rpc.dll ├── win32-x86 └── discord-rpc.dll ├── wurst.png └── wurstplus_at.cfg /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FloppaHack-b1.1-Source 2 | 3 | ## Basically, floppaHack was a "Secret" project that i, Floppinqq started, it started like 3 weeks ago. 4 | 5 | This is a meme, but a real attempt to learn Java, ngl i learned a bit of java like variables, methods and etc... 6 | 7 | # Credits 8 | - Wurst+2 from @TrvsF for the client base 9 | - CheatBreaker+ from @WarriorCrystal for some modules 10 | - IngrosWare for util stuff 11 | - dont count because it was removed but Phobos from any Decompiled for Utils (removed) 12 | - Tripi for the crazy suffix 13 | - Zori for pasted wrapper 14 | - Gamesense from @UIDevMan for custom view model better 15 | - emphack+ from historian by the initial strafe 16 | - if i forget someone srry kek 17 | 18 | # Why i turned it public 19 | because with only one guy in the whole project is hard, i was losing braincells while seeing w+2 spaghetti code and need to fix everything 20 | my project was add custom font and stuff like, idk, uuid protection, and shit but spaghetti code dont let me do that. 21 | 22 | # License? 23 | hmm, yeah, if you want skid that you can but if you want to post in github, add my credit pls :) 24 | 25 | # etc... 26 | i fixed the fucking horrible gui from W+2 27 | fixed tab bug 28 | fixed boogaloo things in util 29 | 30 | - red name modules is the unstable / not working modules 31 | 32 | # enjoy the buggie buggie hack 33 | -------------------------------------------------------------------------------- /createIdea.bat: -------------------------------------------------------------------------------- 1 | start gradlew.bat idea -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Created by me. 2 | org.gradle.jvmargs =-Xmx3G 3 | client_name = WURSTPLUS 4 | client_version = 1.0 5 | client_group = me.travis.wurstplus 6 | client_base_name = wurstplus -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jul 25 10:33:29 BST 2020 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/settings.gradle -------------------------------------------------------------------------------- /src/main/java/best/reich/ingros/events/entity/UpdateEvent.java: -------------------------------------------------------------------------------- 1 | package best.reich.ingros.events.entity; 2 | 3 | import net.b0at.api.event.Event; 4 | import net.b0at.api.event.types.EventType; 5 | import net.minecraft.client.entity.EntityPlayerSP; 6 | 7 | public class UpdateEvent extends Event { 8 | private EventType type; 9 | private EntityPlayerSP player; 10 | private float yaw,pitch; 11 | private double x,y,z; 12 | private boolean onGround; 13 | public UpdateEvent(EventType type, EntityPlayerSP player, float yaw,float pitch, double x,double y,double z,boolean onGround) { 14 | this.type = type; 15 | this.player = player; 16 | this.yaw = yaw; 17 | this.pitch = pitch; 18 | this.x = x; 19 | this.y = y; 20 | this.z = z; 21 | this.onGround = onGround; 22 | } 23 | 24 | public UpdateEvent() { 25 | type = EventType.POST; 26 | } 27 | 28 | public void setType(EventType type) { 29 | this.type = type; 30 | } 31 | 32 | public void setPlayer(EntityPlayerSP player) { 33 | this.player = player; 34 | } 35 | 36 | public void setYaw(float yaw) { 37 | this.yaw = yaw; 38 | } 39 | 40 | public void setPitch(float pitch) { 41 | this.pitch = pitch; 42 | } 43 | 44 | public void setX(double x) { 45 | this.x = x; 46 | } 47 | 48 | public void setY(double y) { 49 | this.y = y; 50 | } 51 | 52 | public void setZ(double z) { 53 | this.z = z; 54 | } 55 | 56 | public void setOnGround(boolean onGround) { 57 | this.onGround = onGround; 58 | } 59 | 60 | public boolean isOnGround() { 61 | return onGround; 62 | } 63 | 64 | public float getYaw() { 65 | return yaw; 66 | } 67 | 68 | public float getPitch() { 69 | return pitch; 70 | } 71 | 72 | public double getX() { 73 | return x; 74 | } 75 | 76 | public double getY() { 77 | return y; 78 | } 79 | 80 | public double getZ() { 81 | return z; 82 | } 83 | 84 | public EventType getType() { 85 | return type; 86 | } 87 | 88 | public EntityPlayerSP getPlayer() { 89 | return player; 90 | } 91 | } -------------------------------------------------------------------------------- /src/main/java/club/minnced/discord/rpc/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 - 2019 Florian Spieß and the java-discord-rpc contributors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Java bindings for the official Discord RPC SDK. 19 | */ 20 | package club.minnced.discord.rpc; 21 | -------------------------------------------------------------------------------- /src/main/java/com/esotericsoftware/reflectasm/PublicConstructorAccess.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2008, Nathan Sweet 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | * 3. Neither the name of Esoteric Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | * 11 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 12 | * 13 | */ 14 | 15 | package com.esotericsoftware.reflectasm; 16 | 17 | public abstract class PublicConstructorAccess extends ConstructorAccess { 18 | 19 | } -------------------------------------------------------------------------------- /src/main/java/com/veteran/hack/event/MinecraftEvent.java: -------------------------------------------------------------------------------- 1 | package com.veteran.hack.event; 2 | 3 | import me.travis.wurstplus.wurstplustwo.util.ZoriWrapper; 4 | import me.zero.alpine.type.Cancellable; 5 | 6 | public class MinecraftEvent extends Cancellable 7 | { 8 | private Era era; 9 | private final float partialTicks; 10 | 11 | public MinecraftEvent() { 12 | this.era = Era.PRE; 13 | this.partialTicks = ZoriWrapper.mc.getRenderPartialTicks(); 14 | } 15 | 16 | public MinecraftEvent(final Era p_Era) { 17 | this.era = Era.PRE; 18 | this.partialTicks = ZoriWrapper.mc.getRenderPartialTicks(); 19 | } 20 | 21 | public Era getEra() { 22 | return this.era; 23 | } 24 | 25 | public float getPartialTicks() { 26 | return this.partialTicks; 27 | } 28 | 29 | public enum Era 30 | { 31 | PRE, 32 | PERI, 33 | POST; 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/com/veteran/hack/event/events/RenderEvent.java: -------------------------------------------------------------------------------- 1 | package com.veteran.hack.event.events; 2 | 3 | import net.minecraft.client.renderer.BufferBuilder; 4 | import net.minecraft.util.math.Vec3d; 5 | import net.minecraft.client.renderer.Tessellator; 6 | import com.veteran.hack.event.MinecraftEvent; 7 | 8 | public class RenderEvent extends MinecraftEvent 9 | { 10 | private final Tessellator tessellator; 11 | private final Vec3d renderPos; 12 | 13 | public RenderEvent(final Tessellator tessellator, final Vec3d renderPos) { 14 | this.tessellator = tessellator; 15 | this.renderPos = renderPos; 16 | } 17 | 18 | public Tessellator getTessellator() { 19 | return this.tessellator; 20 | } 21 | 22 | public BufferBuilder getBuffer() { 23 | return this.tessellator.getBuffer(); 24 | } 25 | 26 | public Vec3d getRenderPos() { 27 | return this.renderPos; 28 | } 29 | 30 | public void setTranslation(final Vec3d translation) { 31 | this.getBuffer().setTranslation(-translation.x, -translation.y, -translation.z); 32 | } 33 | 34 | public void resetTranslation() { 35 | this.setTranslation(this.renderPos); 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/Turok.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok; 2 | 3 | // Draw. 4 | 5 | import me.travis.turok.draw.GL; 6 | import me.travis.turok.task.Font; 7 | 8 | // Task. 9 | 10 | /** 11 | * @author me 12 | * 13 | * Created by me. 14 | * 27/04/20. 15 | * 16 | */ 17 | public class Turok { 18 | private final String tag; 19 | 20 | private Font font_manager; 21 | 22 | public Turok(String tag) { 23 | this.tag = tag; 24 | } 25 | 26 | public void resize(int x, int y, float size) { 27 | GL.resize(x, y, size); 28 | } 29 | 30 | public void resize(int x, int y, float size, String tag) { 31 | GL.resize(x, y, size, "end"); 32 | } 33 | 34 | public Font get_font_manager() { 35 | return this.font_manager; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/draw/GL.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.draw; 2 | 3 | import org.lwjgl.opengl.GL11; 4 | 5 | /** 6 | * @author me 7 | * 8 | * Created by me. 9 | * 08/04/20. 10 | * 11 | */ 12 | public class GL { 13 | public static void color(float r, float g, float b, float a) { 14 | GL11.glColor4f(r / 255, g / 255, b / 255, a / 255); 15 | } 16 | 17 | public static void start() { 18 | GL11.glDisable(GL11.GL_TEXTURE_2D); 19 | } 20 | 21 | public static void finish() { 22 | GL11.glDisable(GL11.GL_TEXTURE_2D); 23 | GL11.glDisable(GL11.GL_BLEND); 24 | } 25 | 26 | public static void draw_rect(int x, int y, int width, int height) { 27 | GL11.glEnable(GL11.GL_BLEND); 28 | GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 29 | 30 | GL11.glBegin(GL11.GL_QUADS); { 31 | GL11.glVertex2d(x + width, y); 32 | GL11.glVertex2d(x, y); 33 | GL11.glVertex2d(x, y + height); 34 | GL11.glVertex2d(x + width, y + height); 35 | } 36 | 37 | GL11.glEnd(); 38 | } 39 | 40 | public static void resize(int x, int y, float size) { 41 | GL11.glEnable(GL11.GL_TEXTURE_2D); 42 | GL11.glEnable(GL11.GL_BLEND); 43 | GL11.glTranslatef(x, y, 0); 44 | GL11.glScalef(size, size, 1); 45 | GL11.glColor4f(1, 1, 1, 1); 46 | } 47 | 48 | public static void resize(int x, int y, float size, String tag) { 49 | GL11.glScalef(1f / size, 1f / size, 1); 50 | GL11.glTranslatef(- x, - y, 0); 51 | GL11.glDisable(GL11.GL_TEXTURE_2D); 52 | } 53 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/task/Font.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.task; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 08/05/20. 8 | * 9 | */ 10 | public class Font { 11 | public static String smoth(String base) { 12 | String new_base = base; 13 | 14 | new_base = new_base.replace("a", "\u1d00"); 15 | new_base = new_base.replace("b", "\u0299"); 16 | new_base = new_base.replace("c", "\u1d04"); 17 | new_base = new_base.replace("d", "\u1d05"); 18 | new_base = new_base.replace("e", "\u1d07"); 19 | new_base = new_base.replace("f", "\u0493"); 20 | new_base = new_base.replace("g", "\u0262"); 21 | new_base = new_base.replace("h", "\u029c"); 22 | new_base = new_base.replace("i", "\u026a"); 23 | new_base = new_base.replace("j", "\u1d0a"); 24 | new_base = new_base.replace("k", "\u1d0b"); 25 | new_base = new_base.replace("l", "\u029f"); 26 | new_base = new_base.replace("m", "\u1d0d"); 27 | new_base = new_base.replace("n", "\u0274"); 28 | new_base = new_base.replace("o", "\u1d0f"); 29 | new_base = new_base.replace("p", "\u1d18"); 30 | new_base = new_base.replace("q", "\u01eb"); 31 | new_base = new_base.replace("r", "\u0280"); 32 | new_base = new_base.replace("s", "\u0455"); 33 | new_base = new_base.replace("t", "\u1d1b"); 34 | new_base = new_base.replace("u", "\u1d1c"); 35 | new_base = new_base.replace("v", "\u1d20"); 36 | new_base = new_base.replace("w", "\u1d21"); 37 | new_base = new_base.replace("x", "\u0445"); 38 | new_base = new_base.replace("y", "\u028f"); 39 | new_base = new_base.replace("z", "\u1d22"); 40 | 41 | return new_base; 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/task/Rect.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.task; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 25/04/20. 8 | * 9 | */ 10 | public class Rect { 11 | private final String tag; 12 | 13 | private int x; 14 | private int y; 15 | 16 | private int width; 17 | private int height; 18 | 19 | public Rect(String tag, int width, int height) { 20 | this.tag = tag; 21 | this.width = width; 22 | this.height = height; 23 | } 24 | 25 | public void transform(int x, int y) { 26 | this.x = x; 27 | this.y = y; 28 | } 29 | 30 | public void transform(int x, int y, int width, int height) { 31 | this.x = x; 32 | this.y = y; 33 | this.width = width; 34 | this.height = height; 35 | } 36 | 37 | public boolean event_mouse(int mx, int my) { 38 | return mx >= get_x() && my >= get_y() && mx <= get_screen_width() && my <= get_screen_height(); 39 | } 40 | 41 | public String get_tag() { 42 | return this.tag; 43 | } 44 | 45 | public int get_x() { 46 | return this.x; 47 | } 48 | 49 | public int get_y() { 50 | return this.y; 51 | } 52 | 53 | public int get_width() { 54 | return this.width; 55 | } 56 | 57 | public int get_height() { 58 | return this.height; 59 | } 60 | 61 | public int get_screen_width() { 62 | return (this.x + this.width); 63 | } 64 | 65 | public int get_screen_height() { 66 | return (this.y + this.height); 67 | } 68 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokBoolean.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | // Values. 4 | 5 | /** 6 | * @author me 7 | * 8 | * Created by me. 9 | * 08/04/20. 10 | * 11 | */ 12 | public class TurokBoolean { 13 | private final TurokString name; 14 | private final TurokString tag; 15 | 16 | private final TurokGeneric value; 17 | 18 | public TurokBoolean(TurokString name, TurokString tag, boolean _bool) { 19 | this.name = name; 20 | this.tag = tag; 21 | this.value = new TurokGeneric(_bool); 22 | } 23 | 24 | public void set_value(boolean _bool) { 25 | this.value.set_value(_bool); 26 | } 27 | 28 | public TurokString get_name() { 29 | return this.name; 30 | } 31 | 32 | public TurokString get_tag() { 33 | return this.tag; 34 | } 35 | 36 | public boolean get_value() { 37 | return this.value.get_value(); 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokDouble.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | import java.math.BigDecimal; 4 | import java.math.RoundingMode; 5 | 6 | /** 7 | * @author me 8 | * 9 | * Created by me. 10 | * 08/04/20. 11 | * 12 | */ 13 | public class TurokDouble { 14 | private final TurokString name; 15 | private final TurokString tag; 16 | 17 | private double value; 18 | private final double max; 19 | private final double min; 20 | 21 | public TurokDouble(TurokString name, TurokString tag, double _double, double min, double max) { 22 | this.name = name; 23 | this.tag = tag; 24 | this.value = _double; 25 | this.max = max; 26 | this.min = min; 27 | } 28 | 29 | public void set_value(double _double) { 30 | this.value = _double; 31 | } 32 | 33 | public void set_slider_value(double _double) { 34 | if (_double >= this.max) { 35 | this.value = this.max; 36 | } else if (_double <= this.min) { 37 | this.value = this.min; 38 | } else { 39 | this.value = _double; 40 | } 41 | } 42 | 43 | public TurokString get_name() { 44 | return this.name; 45 | } 46 | 47 | public TurokString get_tag() { 48 | return this.tag; 49 | } 50 | 51 | public double get_value() { 52 | return this.value; 53 | } 54 | 55 | public static double round(double abs_1) { 56 | if (2 < 0) { 57 | throw new IllegalArgumentException(); 58 | } 59 | 60 | BigDecimal decimal = new BigDecimal(abs_1); 61 | 62 | decimal = decimal.setScale(2, RoundingMode.HALF_UP); 63 | 64 | return decimal.doubleValue(); 65 | } 66 | 67 | // With reference in KAMI. 68 | public static double floor(double abs_1, double abs_2) { 69 | abs_1 = Math.floor(abs_1); 70 | abs_2 = Math.floor(abs_2); 71 | 72 | if (abs_1 == 0 || abs_2 == 0) { 73 | return abs_1 + abs_2; 74 | } 75 | 76 | // If not. 77 | return floor(abs_1, abs_1 % abs_2); 78 | } 79 | 80 | public static double step(double abs_1, double abs_2) { 81 | double floor_requested = floor(abs_1, abs_2); 82 | 83 | if (floor_requested > abs_2) { 84 | floor_requested = abs_2 / 20; 85 | } 86 | 87 | if (abs_2 > 10) { 88 | floor_requested = Math.round(floor_requested); 89 | } 90 | 91 | if (floor_requested == 0) { 92 | floor_requested = abs_2; 93 | } 94 | 95 | return floor_requested; 96 | } 97 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokEnum.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 08/04/20. 8 | * 9 | */ 10 | public class TurokEnum { 11 | Class value; 12 | 13 | public TurokEnum(Class _enum) { 14 | this.value = _enum; 15 | } 16 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokFloat.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 08/04/20. 8 | * 9 | */ 10 | public class TurokFloat { 11 | private final TurokString name; 12 | private final TurokString tag; 13 | 14 | private float value; 15 | private final float max; 16 | private final float min; 17 | 18 | public TurokFloat(TurokString name, TurokString tag, float _float, float min, float max) { 19 | this.name = name; 20 | this.tag = tag; 21 | this.value = value; 22 | this.max = max; 23 | this.min = min; 24 | } 25 | 26 | public void set_value(float _float) { 27 | this.value = _float; 28 | } 29 | 30 | public void set_slider_value(float _float) { 31 | if (_float >= this.max) { 32 | this.value = this.max; 33 | } else if (_float <= this.min) { 34 | this.value = this.min; 35 | } else { 36 | this.value = _float; 37 | } 38 | } 39 | 40 | public TurokString get_name() { 41 | return this.name; 42 | } 43 | 44 | public TurokString get_tag() { 45 | return this.tag; 46 | } 47 | 48 | public float get_value() { 49 | return this.value; 50 | } 51 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokGeneric.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | public class TurokGeneric { 4 | S value; 5 | 6 | public TurokGeneric(S value) { 7 | this.value = value; 8 | } 9 | 10 | public void set_value(S value) { 11 | this.value = value; 12 | } 13 | 14 | public S get_value() { 15 | return this.value; 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokInt.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 08/04/20. 8 | * 9 | */ 10 | public class TurokInt { 11 | private final TurokString name; 12 | private final TurokString tag; 13 | 14 | private int value; 15 | private final int max; 16 | private final int min; 17 | 18 | public TurokInt(TurokString name, TurokString tag, int _int, int min, int max) { 19 | this.name = name; 20 | this.tag = tag; 21 | this.value = _int; 22 | this.max = max; 23 | this.min = min; 24 | } 25 | 26 | public void set_value(int _int) { 27 | this.value = _int; 28 | } 29 | 30 | public void set_slider_value(int _int) { 31 | if (_int >= this.max) { 32 | this.value = this.max; 33 | } else if (_int <= this.min) { 34 | this.value = this.min; 35 | } else { 36 | this.value = _int; 37 | } 38 | } 39 | 40 | public TurokString get_name() { 41 | return this.name; 42 | } 43 | 44 | public TurokString get_tag() { 45 | return this.tag; 46 | } 47 | 48 | public int get_value() { 49 | return this.value; 50 | } 51 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/turok/values/TurokString.java: -------------------------------------------------------------------------------- 1 | package me.travis.turok.values; 2 | 3 | /** 4 | * @author me 5 | * 6 | * Created by me. 7 | * 08/04/20. 8 | * 9 | */ 10 | public class TurokString { 11 | private final java.lang.String name; 12 | private final java.lang.String tag; 13 | private java.lang.String value; 14 | 15 | public TurokString(java.lang.String name, java.lang.String tag, java.lang.String string) { 16 | this.name = name; 17 | this.tag = tag; 18 | this.value = string; 19 | } 20 | 21 | public void set_value(java.lang.String string) { 22 | this.value = string; 23 | } 24 | 25 | public java.lang.String get_name() { 26 | return this.name; 27 | } 28 | 29 | public java.lang.String get_tag() { 30 | return this.tag; 31 | } 32 | 33 | public java.lang.String get_value() { 34 | return this.value; 35 | } 36 | 37 | public static java.lang.String to_string(java.lang.String value) { 38 | return value; 39 | } 40 | 41 | public static java.lang.String to_string(boolean value) { 42 | return Boolean.toString(value); 43 | } 44 | 45 | public static java.lang.String to_string(double value) { 46 | return Double.toString(value); 47 | } 48 | 49 | public static java.lang.String to_string(float value) { 50 | return Float.toString(value); 51 | } 52 | 53 | public static java.lang.String to_string(int value) { 54 | return Integer.toString(value); 55 | } 56 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/MixinItemStack.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.memes.TrueDurability; 4 | import org.spongepowered.asm.mixin.Dynamic; 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 | import net.minecraft.nbt.NBTTagCompound; 9 | import net.minecraft.item.Item; 10 | import org.spongepowered.asm.mixin.Shadow; 11 | import net.minecraft.item.ItemStack; 12 | import org.spongepowered.asm.mixin.Mixin; 13 | 14 | @Mixin({ ItemStack.class }) 15 | public abstract class MixinItemStack 16 | { 17 | @Shadow 18 | private int itemDamage; 19 | 20 | @Inject(method = { "(Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)V" }, at = { @At("RETURN") }) 21 | @Dynamic 22 | private void initHook(final Item item, final int idkWhatDisIsIPastedThis, final int dura, final NBTTagCompound compound, final CallbackInfo info) { 23 | this.itemDamage = this.checkDurability(ItemStack.class.cast(this), this.itemDamage, dura); 24 | } 25 | 26 | @Inject(method = { "(Lnet/minecraft/nbt/NBTTagCompound;)V" }, at = { @At("RETURN") }) 27 | private void initHook2(final NBTTagCompound compound, final CallbackInfo info) { 28 | this.itemDamage = this.checkDurability(ItemStack.class.cast(this), this.itemDamage, compound.getShort("Damage")); 29 | } 30 | 31 | private int checkDurability(final ItemStack item, final int damage, final int dura) { 32 | int trueDura = damage; 33 | if (TrueDurability.getInstance().is_active() && dura < 0) { 34 | trueDura = dura; 35 | } 36 | return trueDura; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinAbstractClientPlayer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.util.WurstplusCapeUtil; 5 | import net.minecraft.client.entity.AbstractClientPlayer; 6 | import net.minecraft.client.network.NetworkPlayerInfo; 7 | import net.minecraft.util.ResourceLocation; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.Shadow; 10 | import org.spongepowered.asm.mixin.injection.At; 11 | import org.spongepowered.asm.mixin.injection.Inject; 12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 13 | 14 | import javax.annotation.Nullable; 15 | 16 | @Mixin(value={AbstractClientPlayer.class}) 17 | public abstract class WurstplusMixinAbstractClientPlayer { 18 | @Shadow 19 | @Nullable 20 | protected abstract NetworkPlayerInfo getPlayerInfo(); 21 | 22 | @Inject(method={"getLocationCape"}, at={@At(value="HEAD")}, cancellable=true) 23 | public void getLocationCape(CallbackInfoReturnable callbackInfoReturnable) { 24 | 25 | if (FloppaHack.get_hack_manager().get_module_with_tag("Capes").is_active()) { 26 | NetworkPlayerInfo info = this.getPlayerInfo(); 27 | assert info != null; 28 | if (!WurstplusCapeUtil.is_uuid_valid(info.getGameProfile().getId())) { 29 | return; 30 | } 31 | ResourceLocation r; 32 | if (FloppaHack.get_setting_manager().get_setting_with_tag("Capes", "CapeCape").in("OG")) { 33 | r = new ResourceLocation("custom/cape-old.png"); 34 | } else { 35 | r = new ResourceLocation("custom/cape.png"); 36 | } 37 | 38 | callbackInfoReturnable.setReturnValue(r); 39 | } 40 | 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinEntity.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventEntity; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.MoverType; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Redirect; 11 | 12 | // External. 13 | 14 | 15 | @Mixin(value = Entity.class) 16 | public class WurstplusMixinEntity { 17 | // Inject. 18 | @Redirect(method = "applyEntityCollision", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;addVelocity(DDD)V")) 19 | public void velocity(Entity entity, double x, double y, double z) { 20 | WurstplusEventEntity.WurstplusEventColision event = new WurstplusEventEntity.WurstplusEventColision(entity, x, y, z); 21 | 22 | WurstplusEventBus.EVENT_BUS.post(event); 23 | 24 | if (event.isCancelled()) { 25 | return; 26 | } 27 | 28 | entity.motionX += x; 29 | entity.motionY += y; 30 | entity.motionZ += z; 31 | 32 | entity.isAirBorne = true; 33 | } 34 | 35 | @Shadow 36 | public void move(MoverType type, double x, double y, double z) 37 | { 38 | 39 | } 40 | 41 | @Shadow 42 | public double motionX; 43 | 44 | @Shadow 45 | public double motionY; 46 | 47 | @Shadow 48 | public double motionZ; 49 | 50 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventSetupFog; 5 | import net.minecraft.client.renderer.EntityRenderer; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | // External. 12 | 13 | @Mixin(value = EntityRenderer.class) 14 | public class WurstplusMixinEntityRenderer { 15 | 16 | @Inject(method = "setupFog", at = @At("HEAD"), cancellable = true) 17 | public void setupFog(int startCoords, float partialTicks, CallbackInfo p_Info) 18 | { 19 | WurstplusEventSetupFog event = new WurstplusEventSetupFog(startCoords, partialTicks); 20 | WurstplusEventBus.EVENT_BUS.post(event); 21 | 22 | if (event.isCancelled()) { 23 | return; 24 | } 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinGuiNewChat.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | //Core 4 | 5 | import me.travis.wurstplus.FloppaHack; 6 | import net.minecraft.client.gui.Gui; 7 | import net.minecraft.client.gui.GuiNewChat; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Redirect; 11 | 12 | //Data 13 | //randospongethingo 14 | 15 | @Mixin({ GuiNewChat.class }) 16 | public class WurstplusMixinGuiNewChat { 17 | 18 | @Redirect(method = "drawChat", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiNewChat;drawRect(IIIII)V", ordinal = 0)) 19 | private void overrideChatBackgroundColour(int left, int top, int right, int bottom, int color) { 20 | 21 | if (!FloppaHack.get_hack_manager().get_module_with_tag("ClearChatbox").is_active()) { 22 | 23 | Gui.drawRect(left, top, right, bottom, color); 24 | 25 | } 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinGuiPlayerTabOverlay.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.util.WurstplusTabUtil; 4 | import net.minecraft.client.gui.GuiPlayerTabOverlay; 5 | import net.minecraft.client.network.NetworkPlayerInfo; 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.Redirect; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 11 | 12 | import java.util.List; 13 | 14 | @Mixin(GuiPlayerTabOverlay.class) 15 | public class WurstplusMixinGuiPlayerTabOverlay { 16 | 17 | @Redirect(method = { "renderPlayerlist" }, at = @At(value = "INVOKE", target = "Ljava/util/List;subList(II)Ljava/util/List;")) 18 | public List subListHook(final List list, final int fromIndex, final int toIndex) { 19 | if (255 > list.size()) { 20 | return list.subList(fromIndex, list.size()); 21 | } 22 | return list.subList(fromIndex, 255); 23 | } 24 | 25 | @Inject(method = { "getPlayerName" }, at = { @At("HEAD") }, cancellable = true) 26 | public void getPlayerNameHook(final NetworkPlayerInfo networkPlayerInfoIn, final CallbackInfoReturnable info) { 27 | info.setReturnValue(WurstplusTabUtil.get_player_name(networkPlayerInfoIn)); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinLoader.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; 4 | import org.spongepowered.asm.launch.MixinBootstrap; 5 | import org.spongepowered.asm.mixin.MixinEnvironment; 6 | import org.spongepowered.asm.mixin.Mixins; 7 | 8 | import javax.annotation.Nullable; 9 | import java.util.Map; 10 | 11 | 12 | public class WurstplusMixinLoader implements IFMLLoadingPlugin { 13 | public WurstplusMixinLoader() { 14 | MixinBootstrap.init(); 15 | 16 | Mixins.addConfiguration("mixins.wurstplus.json"); 17 | 18 | MixinEnvironment.getDefaultEnvironment().setObfuscationContext("searge"); 19 | } 20 | 21 | @Override 22 | public String[] getASMTransformerClass() { 23 | return new String[0]; 24 | } 25 | 26 | @Override 27 | public String getModContainerClass() { 28 | return null; 29 | } 30 | 31 | @Nullable 32 | @Override 33 | public String getSetupClass() { 34 | return null; 35 | } 36 | 37 | @Override 38 | public void injectData(Map data) {} 39 | 40 | @Override 41 | public String getAccessTransformerClass() { 42 | return null; 43 | } 44 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinMinecraft.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 5 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventGUIScreen; 6 | import net.minecraft.client.Minecraft; 7 | import net.minecraft.client.gui.GuiScreen; 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 | // External. 14 | 15 | 16 | @Mixin(value = Minecraft.class) 17 | public class WurstplusMixinMinecraft { 18 | @Inject(method = "displayGuiScreen", at = @At("HEAD")) 19 | private void displayGuiScreen(GuiScreen guiScreenIn, CallbackInfo info) { 20 | WurstplusEventGUIScreen guiscreen = new WurstplusEventGUIScreen(guiScreenIn); 21 | 22 | WurstplusEventBus.EVENT_BUS.post(guiscreen); 23 | } 24 | 25 | @Inject(method = "shutdown", at = @At("HEAD")) 26 | private void shutdown(CallbackInfo info) { 27 | FloppaHack.get_config_manager().save_settings(); 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinNetworkManager.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import io.netty.channel.ChannelHandlerContext; 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 5 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 6 | import net.minecraft.network.NetworkManager; 7 | import net.minecraft.network.Packet; 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 | // External. 14 | 15 | 16 | @Mixin(value = NetworkManager.class) 17 | public class WurstplusMixinNetworkManager { 18 | // Receive packet. 19 | @Inject(method = "channelRead0", at = @At("HEAD"), cancellable = true) 20 | private void receive(ChannelHandlerContext context, Packet packet, CallbackInfo callback) { 21 | WurstplusEventPacket event_packet = new WurstplusEventPacket.ReceivePacket(packet); 22 | 23 | WurstplusEventBus.EVENT_BUS.post(event_packet); 24 | 25 | if (event_packet.isCancelled()) { 26 | callback.cancel(); 27 | } 28 | } 29 | 30 | // Send packet. 31 | @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) 32 | private void send(Packet packet, CallbackInfo callback) { 33 | WurstplusEventPacket event_packet = new WurstplusEventPacket.SendPacket(packet); 34 | 35 | WurstplusEventBus.EVENT_BUS.post(event_packet); 36 | 37 | if (event_packet.isCancelled()) { 38 | callback.cancel(); 39 | } 40 | } 41 | 42 | // Exception packet. 43 | @Inject(method = "exceptionCaught", at = @At("HEAD"), cancellable = true) 44 | private void exception(ChannelHandlerContext exc, Throwable exc_, CallbackInfo callback) { 45 | if (exc_ instanceof Exception) { 46 | callback.cancel(); 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinPlayer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPlayerTravel; 5 | import net.minecraft.entity.MoverType; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(value = EntityPlayer.class) 13 | public class WurstplusMixinPlayer extends WurstplusMixinEntity { 14 | 15 | @Inject(method = "travel", at = @At("HEAD"), cancellable = true) 16 | public void travel(float strafe, float vertical, float forward, CallbackInfo info) { 17 | WurstplusEventPlayerTravel event_packet = new WurstplusEventPlayerTravel(strafe, vertical, forward); 18 | 19 | WurstplusEventBus.EVENT_BUS.post(event_packet); 20 | 21 | if (event_packet.isCancelled()) { 22 | move(MoverType.SELF, motionX, motionY, motionZ); 23 | info.cancel(); 24 | } 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinRenderLivingBase.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventRenderEntityModel; 5 | import net.minecraft.client.model.ModelBase; 6 | import net.minecraft.client.renderer.entity.Render; 7 | import net.minecraft.client.renderer.entity.RenderLivingBase; 8 | import net.minecraft.client.renderer.entity.RenderManager; 9 | import net.minecraft.entity.Entity; 10 | import net.minecraft.entity.EntityLivingBase; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.injection.At; 13 | import org.spongepowered.asm.mixin.injection.Redirect; 14 | 15 | @Mixin(RenderLivingBase.class) 16 | public abstract class WurstplusMixinRenderLivingBase extends Render { 17 | 18 | protected WurstplusMixinRenderLivingBase(final RenderManager renderManagerIn, final ModelBase modelBaseIn, final float shadowSizeIn) { 19 | super(renderManagerIn); 20 | } 21 | 22 | @Redirect(method = { "renderModel" }, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/ModelBase;render(Lnet/minecraft/entity/Entity;FFFFFF)V")) 23 | private void renderModelHook(final ModelBase modelBase, final Entity entityIn, final float limbSwing, final float limbSwingAmount, final float ageInTicks, final float netHeadYaw, final float headPitch, final float scale) { 24 | if (FloppaHack.get_hack_manager().get_module_with_tag("Chams").is_active()) { 25 | final WurstplusEventRenderEntityModel event = new WurstplusEventRenderEntityModel(0, modelBase, entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); 26 | FloppaHack.get_hack_manager().get_module_with_tag("Chams").on_render_model(event); 27 | if (event.isCancelled()) { 28 | return; 29 | } 30 | } 31 | modelBase.render(entityIn, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinRenderPlayer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventRenderName; 5 | import net.minecraft.client.entity.AbstractClientPlayer; 6 | import net.minecraft.client.renderer.entity.RenderPlayer; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(value = RenderPlayer.class) 13 | public class WurstplusMixinRenderPlayer { 14 | 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 | 18 | WurstplusEventRenderName event_packet = new WurstplusEventRenderName(entityIn, x, y, z, name, distanceSq); 19 | 20 | WurstplusEventBus.EVENT_BUS.post(event_packet); 21 | 22 | if (event_packet.isCancelled()) { 23 | info.cancel(); 24 | } 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/mixins/WurstplusMixinWorld.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.mixins; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventEntityRemoved; 5 | import net.minecraft.entity.Entity; 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 | @Mixin(value = World.class) 13 | public class WurstplusMixinWorld { 14 | 15 | @Inject(method = "onEntityRemoved", at = @At("HEAD"), cancellable = true) 16 | public void onEntityRemoved(Entity event_packet, CallbackInfo p_Info) 17 | { 18 | WurstplusEventEntityRemoved l_Event = new WurstplusEventEntityRemoved(event_packet); 19 | 20 | WurstplusEventBus.EVENT_BUS.post(l_Event); 21 | 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/WurstplusCommand.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusCommandManager; 5 | 6 | 7 | public class WurstplusCommand { 8 | String name; 9 | String description; 10 | 11 | public WurstplusCommand(String name, String description) { 12 | this.name = name; 13 | this.description = description; 14 | } 15 | 16 | public boolean get_message(String[] message) { 17 | return false; 18 | } 19 | 20 | public String get_name() { 21 | return this.name; 22 | } 23 | 24 | public String get_description() { 25 | return this.description; 26 | } 27 | 28 | public String current_prefix() { 29 | return WurstplusCommandManager.get_prefix(); 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusBind.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 7 | import org.lwjgl.input.Keyboard; 8 | 9 | public class WurstplusBind extends WurstplusCommand { 10 | public WurstplusBind() { 11 | super("bind", "bind module to key"); 12 | } 13 | 14 | public boolean get_message(String[] message) { 15 | String module = "null;"; 16 | String key = "null"; 17 | 18 | if (message.length == 3) { 19 | module = message[1].toUpperCase(); 20 | key = message[2].toUpperCase(); 21 | } else if (message.length > 1) { 22 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "bind "); 23 | 24 | return true; 25 | } 26 | 27 | if (module.equals("null") || key.equals("null")) { 28 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "bind "); 29 | 30 | return true; 31 | } 32 | 33 | WurstplusHack module_requested = FloppaHack.get_hack_manager().get_module_with_tag(module); 34 | 35 | if (module_requested == null) { 36 | WurstplusMessageUtil.send_client_error_message("Module does not exist."); 37 | 38 | return true; 39 | } 40 | 41 | if (key.equalsIgnoreCase("NONE")) { 42 | module_requested.set_bind(0); 43 | 44 | WurstplusMessageUtil.send_client_message(module_requested.get_tag() + " is bound to None."); 45 | 46 | return true; 47 | } 48 | 49 | int new_bind = Keyboard.getKeyIndex(key.toUpperCase()); 50 | 51 | if (new_bind == 0) { 52 | WurstplusMessageUtil.send_client_error_message("Key does not exist."); 53 | 54 | return true; 55 | } 56 | 57 | if (new_bind == module_requested.get_bind(0)) { 58 | WurstplusMessageUtil.send_client_error_message(module_requested.get_tag() + " is already bound to this key"); 59 | 60 | return true; 61 | } 62 | 63 | module_requested.set_bind(new_bind); 64 | 65 | WurstplusMessageUtil.send_client_message(module_requested.get_tag() + " is bound to " + module_requested.get_bind("")); 66 | 67 | return true; 68 | } 69 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusConfig.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 6 | 7 | public class WurstplusConfig extends WurstplusCommand { 8 | 9 | public WurstplusConfig() { 10 | super("config", "changes which config is loaded"); 11 | } 12 | 13 | public boolean get_message(String[] message) { 14 | 15 | if (message.length == 1) { 16 | WurstplusMessageUtil.send_client_error_message("config needed"); 17 | return true; 18 | } else if (message.length == 2) { 19 | String config = message[1]; 20 | if (FloppaHack.get_config_manager().set_active_config_folder(config+"/")) { 21 | WurstplusMessageUtil.send_client_message("new config folder set as " + config); 22 | } else { 23 | WurstplusMessageUtil.send_client_error_message("cannot set folder to " + config); 24 | } 25 | return true; 26 | } else { 27 | WurstplusMessageUtil.send_client_error_message("config path may only be one word"); 28 | return true; 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusDrawn.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusDrawnUtil; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | 9 | import java.util.List; 10 | 11 | public class WurstplusDrawn extends WurstplusCommand { 12 | 13 | public WurstplusDrawn() { 14 | super("drawn", "Hide elements of the array list"); 15 | } 16 | 17 | public boolean get_message(String[] message) { 18 | 19 | if (message.length == 1) { 20 | WurstplusMessageUtil.send_client_error_message("module name needed"); 21 | 22 | return true; 23 | } 24 | 25 | if (message.length == 2) { 26 | 27 | if (is_module(message[1])) { 28 | WurstplusDrawnUtil.add_remove_item(message[1]); 29 | FloppaHack.get_config_manager().save_settings(); 30 | } else { 31 | WurstplusMessageUtil.send_client_error_message("cannot find module by name: " + message[1]); 32 | } 33 | return true; 34 | 35 | } 36 | 37 | return false; 38 | 39 | } 40 | 41 | public boolean is_module(String s) { 42 | 43 | List modules = FloppaHack.get_hack_manager().get_array_hacks(); 44 | 45 | for (WurstplusHack module : modules) { 46 | if (module.get_tag().equalsIgnoreCase(s)) { 47 | return true; 48 | } 49 | } 50 | 51 | return false; 52 | 53 | } 54 | 55 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusEzMessage.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusEzMessageUtil; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | 9 | public class WurstplusEzMessage extends WurstplusCommand { 10 | 11 | public WurstplusEzMessage() { 12 | super("ezmessage", "Set ez mode"); 13 | } 14 | 15 | public boolean get_message(String[] message) { 16 | 17 | if (message.length == 1) { 18 | WurstplusMessageUtil.send_client_error_message("message needed"); 19 | return true; 20 | } 21 | 22 | if (message.length >= 2) { 23 | StringBuilder ez = new StringBuilder(); 24 | boolean flag = true; 25 | for (String word : message) { 26 | if (flag) { 27 | flag = false; 28 | continue; 29 | } 30 | ez.append(word).append(" "); 31 | } 32 | WurstplusEzMessageUtil.set_message(ez.toString()); 33 | WurstplusMessageUtil.send_client_message("ez message changed to " + ChatFormatting.BOLD + ez.toString()); 34 | FloppaHack.get_config_manager().save_settings(); 35 | return true; 36 | } 37 | 38 | return false; 39 | 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusHelp.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommands; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 7 | 8 | 9 | public class WurstplusHelp extends WurstplusCommand { 10 | public WurstplusHelp() { 11 | super("help", "helps people"); 12 | } 13 | 14 | public boolean get_message(String[] message) { 15 | String type = "null"; 16 | 17 | if (message.length == 1) { 18 | type = "list"; 19 | } 20 | 21 | if (message.length > 1) { 22 | type = message[1]; 23 | } 24 | 25 | if (message.length > 2) { 26 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "help "); 27 | 28 | return true; 29 | } 30 | 31 | if (type.equals("null")) { 32 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "help "); 33 | 34 | return true; 35 | } 36 | 37 | if (type.equalsIgnoreCase("list")) { 38 | 39 | for (WurstplusCommand commands : WurstplusCommands.get_pure_command_list()) { 40 | WurstplusMessageUtil.send_client_message(commands.get_name()); 41 | 42 | } 43 | 44 | return true; 45 | } 46 | 47 | WurstplusCommand command_requested = WurstplusCommands.get_command_with_name(type); 48 | 49 | if (command_requested == null) { 50 | WurstplusMessageUtil.send_client_error_message("This command does not exist."); 51 | 52 | return true; 53 | } 54 | 55 | WurstplusMessageUtil.send_client_message(command_requested.get_name() + " - " + command_requested.get_description()); 56 | 57 | return true; 58 | } 59 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusPrefix.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusCommandManager; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 7 | 8 | 9 | public class WurstplusPrefix extends WurstplusCommand { 10 | public WurstplusPrefix() { 11 | super("prefix", "Change prefix."); 12 | } 13 | 14 | public boolean get_message(String[] message) { 15 | String prefix = "null"; 16 | 17 | if (message.length > 1) { 18 | prefix = message[1]; 19 | } 20 | 21 | if (message.length > 2) { 22 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "prefix "); 23 | 24 | return true; 25 | } 26 | 27 | if (prefix.equals("null")) { 28 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "prefix "); 29 | 30 | return true; 31 | } 32 | 33 | WurstplusCommandManager.set_prefix(prefix); 34 | 35 | WurstplusMessageUtil.send_client_message("The new prefix is " + prefix); 36 | 37 | return true; 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusSettings.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 7 | 8 | 9 | public class WurstplusSettings extends WurstplusCommand { 10 | public WurstplusSettings() { 11 | super("settings", "To save/load settings."); 12 | } 13 | 14 | public boolean get_message(String[] message) { 15 | String msg = "null"; 16 | 17 | if (message.length > 1) { 18 | msg = message[1]; 19 | } 20 | 21 | if (msg.equals("null")) { 22 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "settings "); 23 | 24 | return true; 25 | } 26 | 27 | ChatFormatting c = ChatFormatting.GRAY; 28 | 29 | if (msg.equalsIgnoreCase("save")) { 30 | FloppaHack.get_config_manager().save_settings(); 31 | 32 | WurstplusMessageUtil.send_client_message(ChatFormatting.GREEN + "Successfully " + c + "saved!"); 33 | } else if (msg.equalsIgnoreCase("load")) { 34 | FloppaHack.get_config_manager().load_settings(); 35 | 36 | WurstplusMessageUtil.send_client_message(ChatFormatting.GREEN + "Successfully " + c + "loaded!"); 37 | } else { 38 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "settings "); 39 | 40 | return true; 41 | } 42 | 43 | return true; 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/command/commands/WurstplusToggle.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.command.commands; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommand; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusCommandManager; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | 9 | public class WurstplusToggle extends WurstplusCommand { 10 | public WurstplusToggle() { 11 | super("t", "turn on and off stuffs"); 12 | } 13 | 14 | public boolean get_message(String[] message) { 15 | String module = "null"; 16 | 17 | if (message.length > 1) { 18 | module = message[1]; 19 | } 20 | 21 | if (message.length > 2) { 22 | WurstplusMessageUtil.send_client_error_message(current_prefix() + "t "); 23 | 24 | return true; 25 | } 26 | 27 | if (module.equals("null")) { 28 | WurstplusMessageUtil.send_client_error_message(WurstplusCommandManager.get_prefix() + "t "); 29 | 30 | return true; 31 | } 32 | 33 | WurstplusHack module_requested = FloppaHack.get_module_manager().get_module_with_tag(module); 34 | 35 | if (module_requested != null) { 36 | module_requested.toggle(); 37 | 38 | WurstplusMessageUtil.send_client_message("[" + module_requested.get_tag() + "] - Toggled to " + module_requested.is_active() + "."); 39 | } else { 40 | WurstplusMessageUtil.send_client_error_message("Module does not exist."); 41 | } 42 | 43 | return true; 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/WurstplusEventBus.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event; 2 | 3 | import me.zero.alpine.fork.bus.EventBus; 4 | import me.zero.alpine.fork.bus.EventManager; 5 | 6 | public class WurstplusEventBus { 7 | public static final EventBus EVENT_BUS = new EventManager(); 8 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/WurstplusEventCancellable.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event; 2 | 3 | import me.zero.alpine.fork.event.type.Cancellable; 4 | import net.minecraft.client.Minecraft; 5 | 6 | 7 | public class WurstplusEventCancellable extends Cancellable { 8 | private final Era era_switch = Era.EVENT_PRE; 9 | private final float partial_ticks; 10 | 11 | public WurstplusEventCancellable() { 12 | partial_ticks = Minecraft.getMinecraft().getRenderPartialTicks(); 13 | } 14 | 15 | public Era get_era() { 16 | return era_switch; 17 | } 18 | 19 | public float get_partial_ticks() { 20 | return partial_ticks; 21 | } 22 | 23 | public enum Era { 24 | EVENT_PRE, 25 | EVENT_PERI, 26 | EVENT_POST 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/WurstplusEventHandler.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.zero.alpine.fork.listener.EventHandler; 5 | import me.zero.alpine.fork.listener.Listenable; 6 | import me.zero.alpine.fork.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 | public class WurstplusEventHandler implements Listenable { 13 | public static WurstplusEventHandler INSTANCE; 14 | 15 | static final float[] ticks = new float[20]; 16 | 17 | private long last_update_tick; 18 | private int next_index = 0; 19 | 20 | @EventHandler 21 | private final Listener receive_event_packet = new Listener<>(event -> { 22 | if (event.get_packet() instanceof SPacketTimeUpdate) { 23 | INSTANCE.update_time(); 24 | } 25 | }); 26 | 27 | public WurstplusEventHandler() { 28 | WurstplusEventBus.EVENT_BUS.subscribe(this); 29 | 30 | reset_tick(); 31 | } 32 | 33 | public float get_tick_rate() { 34 | float num_ticks = 0.0f; 35 | float sum_ticks = 0.0f; 36 | 37 | for (float tick : ticks) { 38 | if (tick > 0.0f) { 39 | sum_ticks += tick; 40 | num_ticks += 1.0f; 41 | } 42 | } 43 | 44 | return MathHelper.clamp(sum_ticks / num_ticks, 0.0f, 20.0f); 45 | } 46 | 47 | public void reset_tick() { 48 | this.next_index = 0; 49 | this.last_update_tick = -1L; 50 | 51 | Arrays.fill(ticks, 0.0f); 52 | } 53 | 54 | public void update_time() { 55 | if (this.last_update_tick != -1L) { 56 | float time = (float) (System.currentTimeMillis() - this.last_update_tick) / 1000.0f; 57 | ticks[(this.next_index % ticks.length)] = MathHelper.clamp(20.0f / time, 0.0f, 20.0f); 58 | 59 | this.next_index += 1; 60 | } 61 | 62 | this.last_update_tick = System.currentTimeMillis(); 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/WurstplusEventRegister.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event; 2 | 3 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusCommandManager; 4 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusEventManager; 5 | import net.minecraftforge.common.MinecraftForge; 6 | 7 | 8 | public class WurstplusEventRegister { 9 | public static void register_command_manager(WurstplusCommandManager manager) { 10 | MinecraftForge.EVENT_BUS.register(manager); 11 | } 12 | 13 | public static void register_module_manager(WurstplusEventManager manager) { 14 | MinecraftForge.EVENT_BUS.register(manager); 15 | } 16 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/TransformSideFirstPersonEvent.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.util.EnumHandSide; 5 | 6 | public class TransformSideFirstPersonEvent extends WurstplusEventCancellable { 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/travis/wurstplus/wurstplustwo/event/events/WurstplusEventBlock.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.util.EnumFacing; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | public class WurstplusEventBlock extends WurstplusEventCancellable { 8 | 9 | public BlockPos pos; 10 | public EnumFacing facing; 11 | 12 | private int stage; 13 | 14 | public WurstplusEventBlock(final int stage, final BlockPos pos, final EnumFacing facing) { 15 | this.pos = pos; 16 | this.facing = facing; 17 | this.stage = stage; 18 | } 19 | 20 | public void set_stage(int stage) { 21 | this.stage = stage; 22 | } 23 | 24 | public int get_stage() { 25 | return this.stage; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventDamageBlock.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.util.EnumFacing; 5 | import net.minecraft.util.math.BlockPos; 6 | 7 | public class WurstplusEventDamageBlock extends WurstplusEventCancellable { 8 | 9 | private final BlockPos BlockPos; 10 | private EnumFacing Direction; 11 | 12 | public WurstplusEventDamageBlock(BlockPos posBlock, EnumFacing directionFacing) 13 | { 14 | BlockPos = posBlock; 15 | setDirection(directionFacing); 16 | } 17 | 18 | public BlockPos getPos() 19 | { 20 | return BlockPos; 21 | } 22 | 23 | /** 24 | * @return the direction 25 | */ 26 | public EnumFacing getDirection() 27 | { 28 | return Direction; 29 | } 30 | 31 | /** 32 | * @param direction the direction to set 33 | */ 34 | public void setDirection(EnumFacing direction) 35 | { 36 | Direction = direction; 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventEntity.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.entity.Entity; 5 | 6 | // External. 7 | 8 | 9 | public class WurstplusEventEntity extends WurstplusEventCancellable { 10 | private final Entity entity; 11 | 12 | public WurstplusEventEntity(Entity entity) { 13 | this.entity = entity; 14 | } 15 | 16 | public Entity get_entity() { 17 | return this.entity; 18 | } 19 | 20 | public static class WurstplusEventColision extends WurstplusEventEntity { 21 | private double x, y, z; 22 | 23 | public WurstplusEventColision(Entity entity, double x, double y, double z) { 24 | super(entity); 25 | 26 | this.x = x; 27 | this.y = y; 28 | this.z = z; 29 | } 30 | 31 | public void set_x(double x) { 32 | this.x = x; 33 | } 34 | 35 | public void set_y(double y) { 36 | this.y = y; 37 | } 38 | 39 | public void set_z(double x) { 40 | this.z = z; 41 | } 42 | 43 | public double get_x() { 44 | return this.x; 45 | } 46 | 47 | public double get_y() { 48 | return this.y; 49 | } 50 | 51 | public double get_z() { 52 | return this.z; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventEntityRemoved.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.entity.Entity; 5 | 6 | public class WurstplusEventEntityRemoved extends WurstplusEventCancellable { 7 | 8 | private final Entity entity; 9 | 10 | public WurstplusEventEntityRemoved(Entity entity) { 11 | this.entity = entity; 12 | } 13 | 14 | public Entity get_entity() { 15 | return this.entity; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventGUIScreen.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.client.gui.GuiScreen; 5 | 6 | // External. 7 | 8 | 9 | public class WurstplusEventGUIScreen extends WurstplusEventCancellable { 10 | private final GuiScreen guiscreen; 11 | 12 | public WurstplusEventGUIScreen(GuiScreen screen) { 13 | super(); 14 | 15 | guiscreen = screen; 16 | } 17 | 18 | public GuiScreen get_guiscreen() { 19 | return guiscreen; 20 | } 21 | 22 | public static class Displayed extends WurstplusEventGUIScreen { 23 | public Displayed(GuiScreen screen) { 24 | super(screen); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventGameOverlay.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.client.gui.ScaledResolution; 5 | 6 | public class WurstplusEventGameOverlay extends WurstplusEventCancellable { 7 | 8 | public float partial_ticks; 9 | private final ScaledResolution scaled_resolution; 10 | 11 | public WurstplusEventGameOverlay(float partial_ticks, ScaledResolution scaled_resolution) { 12 | 13 | this.partial_ticks = partial_ticks; 14 | this.scaled_resolution = scaled_resolution; 15 | 16 | } 17 | 18 | public ScaledResolution get_scaled_resoltion() { 19 | return scaled_resolution; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventMotionUpdate.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | 5 | public class WurstplusEventMotionUpdate extends WurstplusEventCancellable { 6 | 7 | public int stage; 8 | 9 | public WurstplusEventMotionUpdate(int stage) { 10 | super(); 11 | this.stage = stage; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventMove.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.entity.MoverType; 5 | 6 | // External. 7 | 8 | public class WurstplusEventMove extends WurstplusEventCancellable { 9 | 10 | private MoverType move_type; 11 | 12 | public double x, y, z; 13 | 14 | public WurstplusEventMove(MoverType type, double x, double y, double z) { 15 | this.move_type = type; 16 | this.x = x; 17 | this.y = y; 18 | this.z = z; 19 | } 20 | 21 | public void set_move_type(MoverType type) { 22 | this.move_type = type; 23 | } 24 | 25 | public void set_x(double x) { 26 | this.x = x; 27 | } 28 | 29 | public void set_y(double y) { 30 | this.y = y; 31 | } 32 | 33 | public void set_z(double z) { 34 | this.z = z; 35 | } 36 | 37 | public MoverType get_move_type() { 38 | return this.move_type; 39 | } 40 | 41 | public double get_x() { 42 | return this.x; 43 | } 44 | 45 | public double get_y() { 46 | return this.y; 47 | } 48 | 49 | public double get_z() { 50 | return this.z; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventPacket.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.network.Packet; 5 | 6 | // External. 7 | 8 | 9 | public class WurstplusEventPacket extends WurstplusEventCancellable { 10 | private final Packet packet; 11 | 12 | public WurstplusEventPacket(Packet packet) { 13 | super(); 14 | 15 | this.packet = packet; 16 | } 17 | 18 | public Packet get_packet() { 19 | return this.packet; 20 | } 21 | 22 | public static class ReceivePacket extends WurstplusEventPacket { 23 | public ReceivePacket(Packet packet) { 24 | super(packet); 25 | } 26 | } 27 | 28 | public static class SendPacket extends WurstplusEventPacket { 29 | public SendPacket(Packet packet) { 30 | super(packet); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventPlayerJump.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | 5 | public class WurstplusEventPlayerJump extends WurstplusEventCancellable { 6 | 7 | public double motion_x; 8 | public double motion_y; 9 | 10 | public WurstplusEventPlayerJump(double motion_x, double motion_y) { 11 | super(); 12 | 13 | this.motion_x = motion_x; 14 | this.motion_y = motion_y; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventPlayerTravel.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | 5 | public class WurstplusEventPlayerTravel extends WurstplusEventCancellable { 6 | 7 | public float Strafe; 8 | public float Vertical; 9 | public float Forward; 10 | 11 | public WurstplusEventPlayerTravel(float p_Strafe, float p_Vertical, float p_Forward) { 12 | Strafe = p_Strafe; 13 | Vertical = p_Vertical; 14 | Forward = p_Forward; 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventRender.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.gui.ScaledResolution; 6 | import net.minecraft.client.renderer.BufferBuilder; 7 | import net.minecraft.client.renderer.Tessellator; 8 | import net.minecraft.util.math.Vec3d; 9 | 10 | // External. 11 | 12 | 13 | public class WurstplusEventRender extends WurstplusEventCancellable { 14 | private final ScaledResolution res = new ScaledResolution(Minecraft.getMinecraft()); 15 | private final Tessellator tessellator; 16 | private final Vec3d render_pos; 17 | 18 | public WurstplusEventRender(Tessellator tessellator, Vec3d pos) { 19 | super(); 20 | 21 | this.tessellator = tessellator; 22 | this.render_pos = pos; 23 | } 24 | 25 | public Tessellator get_tessellator() { 26 | return this.tessellator; 27 | } 28 | 29 | public Vec3d get_render_pos() { 30 | return render_pos; 31 | } 32 | 33 | public BufferBuilder get_buffer_build() { 34 | return this.tessellator.getBuffer(); 35 | } 36 | 37 | public void set_translation(Vec3d pos) { 38 | get_buffer_build().setTranslation(- pos.x, - pos.y, - pos.z); 39 | } 40 | 41 | public void reset_translation() { 42 | set_translation(render_pos); 43 | } 44 | 45 | public double get_screen_width() { 46 | return res.getScaledWidth_double(); 47 | } 48 | 49 | public double get_screen_height() { 50 | return res.getScaledHeight_double(); 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventRenderEntityModel.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.client.model.ModelBase; 5 | import net.minecraft.entity.Entity; 6 | 7 | public class WurstplusEventRenderEntityModel extends WurstplusEventCancellable { 8 | public ModelBase modelBase; 9 | public Entity entity; 10 | public float limbSwing; 11 | public float limbSwingAmount; 12 | public float age; 13 | public float headYaw; 14 | public float headPitch; 15 | public float scale; 16 | public int stage; 17 | 18 | public WurstplusEventRenderEntityModel(final int stage, final ModelBase modelBase, final Entity entity, final float limbSwing, final float limbSwingAmount, final float age, final float headYaw, final float headPitch, final float scale) { 19 | this.stage = stage; 20 | this.modelBase = modelBase; 21 | this.entity = entity; 22 | this.limbSwing = limbSwing; 23 | this.limbSwingAmount = limbSwingAmount; 24 | this.age = age; 25 | this.headYaw = headYaw; 26 | this.headPitch = headPitch; 27 | this.scale = scale; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventRenderName.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.client.entity.AbstractClientPlayer; 5 | 6 | public class WurstplusEventRenderName extends WurstplusEventCancellable { 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 WurstplusEventRenderName(AbstractClientPlayer entityIn, double x, double y, double z, String name, double distanceSq) { 16 | super(); 17 | 18 | Entity = entityIn; 19 | x = X; 20 | y = Y; 21 | z = Z; 22 | Name = name; 23 | DistanceSq = distanceSq; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventSetupFog.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | 5 | public class WurstplusEventSetupFog extends WurstplusEventCancellable { 6 | 7 | public int start_coords; 8 | public float partial_ticks; 9 | 10 | public WurstplusEventSetupFog(int coords, float ticks) { 11 | start_coords = coords; 12 | partial_ticks = ticks; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/event/events/WurstplusEventSwing.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.event.events; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 4 | import net.minecraft.util.EnumHand; 5 | 6 | public class WurstplusEventSwing extends WurstplusEventCancellable { 7 | 8 | public EnumHand hand; 9 | 10 | public WurstplusEventSwing(EnumHand hand) { 11 | super(); 12 | this.hand = hand; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusArmorDurabilityWarner.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 4 | import net.minecraft.item.ItemStack; 5 | 6 | import java.util.HashMap; 7 | import java.util.Map; 8 | 9 | public class WurstplusArmorDurabilityWarner extends WurstplusPinnable { // STILL BROKEN 10 | 11 | public WurstplusArmorDurabilityWarner() { 12 | super("Armor Warner", "ArmorWarner", 1, 0, 0); 13 | } 14 | 15 | @Override 16 | public void render() { 17 | 18 | String line = "ur armor is kinda low rn :/"; 19 | 20 | if (is_damaged()) { 21 | create_line(line, this.docking(1, line), 2, 255, 20, 20, 255); 22 | } 23 | 24 | this.set_width(this.get(line, "width") + 2); 25 | this.set_height(this.get(line, "height") + 2); 26 | } 27 | 28 | private boolean is_damaged() { 29 | 30 | for (Map.Entry armor_slot : get_armor().entrySet()) { 31 | if (armor_slot.getValue().isEmpty()) continue; 32 | final ItemStack stack = armor_slot.getValue(); 33 | 34 | double max_dam = stack.getMaxDamage(); 35 | double dam_left = stack.getMaxDamage() - stack.getItemDamage(); 36 | double percent = (dam_left / max_dam) * 100; 37 | 38 | if (percent < 30) { 39 | return true; 40 | } 41 | } 42 | 43 | return false; 44 | } 45 | 46 | private Map get_armor() { 47 | return get_inv_slots(5, 8); 48 | } 49 | 50 | private Map get_inv_slots(int current, final int last) { 51 | final Map full_inv_slots = new HashMap(); 52 | while (current <= last) { 53 | full_inv_slots.put(current, mc.player.inventoryContainer.getInventory().get(current)); 54 | ++current; 55 | } 56 | return full_inv_slots; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusCoordinates.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | 7 | 8 | public class WurstplusCoordinates extends WurstplusPinnable { 9 | ChatFormatting dg = ChatFormatting.DARK_GRAY; 10 | ChatFormatting db = ChatFormatting.DARK_BLUE; 11 | ChatFormatting dr = ChatFormatting.DARK_RED; 12 | 13 | public WurstplusCoordinates() { 14 | super("Coordinates", "Coordinates", 1, 0, 0); 15 | } 16 | 17 | @Override 18 | public void render() { 19 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 20 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 21 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 22 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 23 | 24 | String x = FloppaHack.g + "[" + FloppaHack.r + (int) (mc.player.posX) + FloppaHack.g + "]" + FloppaHack.r; 25 | String y = FloppaHack.g + "[" + FloppaHack.r + (int) (mc.player.posY) + FloppaHack.g + "]" + FloppaHack.r; 26 | String z = FloppaHack.g + "[" + FloppaHack.r + (int) (mc.player.posZ) + FloppaHack.g + "]" + FloppaHack.r; 27 | 28 | String x_nether = FloppaHack.g + "[" + FloppaHack.r + Math.round(mc.player.dimension != -1 ? (mc.player.posX / 8) : (mc.player.posX * 8)) + FloppaHack.g + "]" + FloppaHack.r; 29 | String z_nether = FloppaHack.g + "[" + FloppaHack.r + Math.round(mc.player.dimension != -1 ? (mc.player.posZ / 8) : (mc.player.posZ * 8)) + FloppaHack.g + "]" + FloppaHack.r; 30 | 31 | String line = "XYZ " + x + y + z + " XZ " + x_nether + z_nether; 32 | 33 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 34 | 35 | this.set_width(this.get(line, "width")); 36 | this.set_height(this.get(line, "height") + 2); 37 | } 38 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusFPS.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | import net.minecraft.client.Minecraft; 7 | 8 | public class WurstplusFPS extends WurstplusPinnable { 9 | 10 | public WurstplusFPS() { 11 | super("Fps", "Fps", 1, 0, 0); 12 | } 13 | 14 | @Override 15 | public void render() { 16 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 17 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 18 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 19 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 20 | 21 | String line = "FPS: " + get_fps(); 22 | 23 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 24 | 25 | this.set_width(this.get(line, "width") + 2); 26 | this.set_height(this.get(line, "height") + 2); 27 | } 28 | 29 | public String get_fps() { 30 | int fps = Minecraft.getDebugFPS(); 31 | if (fps >= 60) { 32 | return "\u00A7a"+ fps; 33 | } else if (fps >= 30) { 34 | return "\u00A73"+ fps; 35 | } else { 36 | return "\u00A74"+ fps; 37 | } 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusFriendList.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusOnlineFriends; 7 | import net.minecraft.entity.Entity; 8 | 9 | public class WurstplusFriendList extends WurstplusPinnable { 10 | 11 | public WurstplusFriendList() { 12 | super("Friends", "Friends", 1, 0, 0); 13 | } 14 | 15 | int passes; 16 | 17 | public static ChatFormatting bold = ChatFormatting.BOLD; 18 | 19 | @Override 20 | public void render() { 21 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 22 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 23 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 24 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 25 | 26 | String line1 = bold + "Friends: "; 27 | 28 | passes = 0; 29 | 30 | create_line(line1, this.docking(1, line1), 2, nl_r, nl_g, nl_b, nl_a); 31 | 32 | if (!WurstplusOnlineFriends.getFriends().isEmpty()) { 33 | for (Entity e : WurstplusOnlineFriends.getFriends()) { 34 | passes++; 35 | create_line(e.getName(), this.docking(1, e.getName()), this.get(line1, "height")*passes, nl_r, nl_g, nl_b, nl_a); 36 | } 37 | } 38 | 39 | this.set_width(this.get(line1, "width") + 2); 40 | this.set_height(this.get(line1, "height") + 2); 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusInventoryPreview.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 5 | import net.minecraft.client.renderer.GlStateManager; 6 | import net.minecraft.client.renderer.RenderHelper; 7 | import net.minecraft.item.ItemStack; 8 | 9 | 10 | public class WurstplusInventoryPreview extends WurstplusPinnable { 11 | public WurstplusInventoryPreview() { 12 | super("Inventory Preview", "InventoryPreview", 1, 0, 0); 13 | } 14 | 15 | @Override 16 | public void render() { 17 | if (mc.player != null) { 18 | GlStateManager.pushMatrix(); 19 | RenderHelper.enableGUIStandardItemLighting(); 20 | 21 | create_rect(0, 0, this.get_width(), this.get_height(), 0, 0, 0, 60); 22 | 23 | this.set_width(16 * 9); 24 | this.set_height(16 * 3); 25 | 26 | for (int i = 0; i < 27; i++) { 27 | ItemStack item_stack = mc.player.inventory.mainInventory.get(i + 9); 28 | 29 | int item_position_x = this.get_x() + (i % 9) * 16; 30 | int item_position_y = this.get_y() + (i / 9) * 16; 31 | 32 | mc.getRenderItem().renderItemAndEffectIntoGUI(item_stack, item_position_x, item_position_y); 33 | mc.getRenderItem().renderItemOverlayIntoGUI(mc.fontRenderer, item_stack, item_position_x, item_position_y, null); 34 | } 35 | 36 | mc.getRenderItem().zLevel = - 5.0f; 37 | 38 | RenderHelper.disableStandardItemLighting(); 39 | 40 | GlStateManager.popMatrix(); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusInventoryXCarryPreview.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 5 | import net.minecraft.client.renderer.GlStateManager; 6 | import net.minecraft.client.renderer.RenderHelper; 7 | import net.minecraft.item.ItemStack; 8 | 9 | 10 | public class WurstplusInventoryXCarryPreview extends WurstplusPinnable { 11 | public WurstplusInventoryXCarryPreview() { 12 | super("Inventory XCarry", "InventoryXPreview", 1, 0, 0); 13 | } 14 | 15 | @Override 16 | public void render() { 17 | if (mc.player != null) { 18 | GlStateManager.pushMatrix(); 19 | RenderHelper.enableGUIStandardItemLighting(); 20 | 21 | create_rect(0, 0, this.get_width(), this.get_height(), 0, 0, 0, 60); 22 | 23 | this.set_width(16 * 2); 24 | this.set_height(16 * 2); 25 | 26 | for (int i = 1; i < 5; i++) { 27 | ItemStack item_stack = mc.player.inventoryContainer.inventorySlots.get(i).getStack(); 28 | 29 | // CHING CONG I CBA TO DO MATHS ITS 3 AM 30 | int item_position_x = this.get_x(); 31 | int item_position_y = this.get_y(); 32 | if (i == 1) { 33 | item_position_x += 0; 34 | item_position_y += 0; 35 | } 36 | if (i == 2) { 37 | item_position_x += 16; 38 | item_position_y += 0; 39 | } 40 | if (i == 3) { 41 | item_position_x += 0; 42 | item_position_y += 16; 43 | } 44 | if (i == 4) { 45 | item_position_x += 16; 46 | item_position_y += 16; 47 | } 48 | 49 | mc.getRenderItem().renderItemAndEffectIntoGUI(item_stack, item_position_x, item_position_y); 50 | mc.getRenderItem().renderItemOverlayIntoGUI(mc.fontRenderer, item_stack, item_position_x, item_position_y, null); 51 | } 52 | 53 | mc.getRenderItem().zLevel = - 5.0f; 54 | 55 | RenderHelper.disableStandardItemLighting(); 56 | 57 | GlStateManager.popMatrix(); 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusLogo.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 4 | import me.travis.wurstplus.wurstplustwo.util.WurstplusTextureHelper; 5 | import net.minecraft.util.ResourceLocation; 6 | import org.lwjgl.opengl.GL11; 7 | 8 | public class WurstplusLogo extends WurstplusPinnable { 9 | 10 | public WurstplusLogo() { 11 | super("Logo", "Logo", 1, 0, 0); 12 | } 13 | 14 | ResourceLocation r = new ResourceLocation("custom/wurst.png", "custom/wurst.png"); 15 | 16 | @Override 17 | public void render() { 18 | 19 | GL11.glPushMatrix(); 20 | GL11.glTranslatef(this.get_x(), this.get_y(), 0.0F); 21 | WurstplusTextureHelper.drawTexture(r, this.get_x(), this.get_y(), 199, 199); 22 | GL11.glPopMatrix(); 23 | 24 | this.set_width(199); 25 | this.set_height(199); 26 | } 27 | 28 | 29 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusPing.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | 7 | public class WurstplusPing extends WurstplusPinnable { 8 | 9 | public WurstplusPing() { 10 | super("Ping", "Ping", 1, 0, 0); 11 | } 12 | 13 | @Override 14 | public void render() { 15 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 16 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 17 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 18 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 19 | 20 | String line = "Ping: " + get_ping(); 21 | 22 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 23 | 24 | this.set_width(this.get(line, "width") + 2); 25 | this.set_height(this.get(line, "height") + 2); 26 | } 27 | 28 | public String get_ping() { 29 | try { 30 | int ping = mc.getConnection().getPlayerInfo(mc.player.getUniqueID()).getResponseTime(); 31 | if (ping <= 50) { 32 | return "\u00A7a"+ ping; 33 | } else if (ping <= 150) { 34 | return "\u00A73"+ ping; 35 | } else { 36 | return "\u00A74"+ ping; 37 | } 38 | } catch (Exception e) { 39 | return "oh no"; 40 | } 41 | 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusSpeedometer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 5 | import net.minecraft.util.math.MathHelper; 6 | 7 | import java.text.DecimalFormat; 8 | 9 | public class WurstplusSpeedometer extends WurstplusPinnable { 10 | 11 | public WurstplusSpeedometer() { 12 | super("Speedometer", "Speedometer", 1, 0, 0); 13 | } 14 | 15 | @Override 16 | public void render() { 17 | 18 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 19 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 20 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 21 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 22 | 23 | final double x = mc.player.posX - mc.player.prevPosX; 24 | final double z = mc.player.posZ - mc.player.prevPosZ; 25 | final float tr = (mc.timer.tickLength / 1000.0f); 26 | 27 | String bps = "Bps: " + new DecimalFormat("#.#").format(MathHelper.sqrt(x * x + z * z) / tr); 28 | 29 | create_line(bps, this.docking(1, bps), 2, nl_r, nl_g, nl_b, nl_a); 30 | 31 | this.set_width(this.get(bps, "width") + 2); 32 | this.set_height(this.get(bps, "height") + 2); 33 | 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusTPS.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventHandler; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | 7 | public class WurstplusTPS extends WurstplusPinnable { 8 | 9 | public WurstplusTPS() { 10 | super("TPS", "TPS", 1, 0, 0); 11 | } 12 | 13 | @Override 14 | public void render() { 15 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 16 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 17 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 18 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 19 | 20 | String line = "TPS: " + getTPS(); 21 | 22 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 23 | 24 | this.set_width(this.get(line, "width") + 2); 25 | this.set_height(this.get(line, "height") + 2); 26 | } 27 | 28 | public String getTPS() { 29 | try { 30 | int tps = Math.round(WurstplusEventHandler.INSTANCE.get_tick_rate()); 31 | if (tps >= 16) { 32 | return "\u00A7a"+ tps; 33 | } else if (tps >= 10) { 34 | return "\u00A73"+ tps; 35 | } else { 36 | return "\u00A74"+ tps; 37 | } 38 | } catch (Exception e) { 39 | return "oh no " +e; 40 | } 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusTime.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import me.travis.wurstplus.FloppaHack; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusTimeUtil; 7 | 8 | public class WurstplusTime extends WurstplusPinnable { 9 | 10 | public WurstplusTime() { 11 | super("Time", "Time", 1, 0, 0); 12 | } 13 | 14 | @Override 15 | public void render() { 16 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 17 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 18 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 19 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 20 | 21 | String line = ""; 22 | 23 | line += WurstplusTimeUtil.get_hour() < 10 ? "0" + WurstplusTimeUtil.get_hour() : WurstplusTimeUtil.get_hour(); 24 | line += ":"; 25 | line += WurstplusTimeUtil.get_minuite() < 10 ? "0" + WurstplusTimeUtil.get_minuite() : WurstplusTimeUtil.get_minuite(); 26 | line += ":"; 27 | line += WurstplusTimeUtil.get_second() < 10 ? "0" + WurstplusTimeUtil.get_second() : WurstplusTimeUtil.get_second(); 28 | 29 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 30 | 31 | this.set_width(this.get(line, "width") + 2); 32 | this.set_height(this.get(line, "height") + 2); 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/hud/WurstplusWatermark.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.hud; 2 | 3 | 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.FloppaHack; 6 | import me.travis.wurstplus.wurstplustwo.guiscreen.render.pinnables.WurstplusPinnable; 7 | 8 | 9 | public class WurstplusWatermark extends WurstplusPinnable { 10 | public WurstplusWatermark() { 11 | super("Watermark", "Watermark", 1, 0, 0); 12 | } 13 | 14 | @Override 15 | public void render() { 16 | int nl_r = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorR").get_value(1); 17 | int nl_g = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorG").get_value(1); 18 | int nl_b = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorB").get_value(1); 19 | int nl_a = FloppaHack.get_setting_manager().get_setting_with_tag("HUD", "HUDStringsColorA").get_value(1); 20 | 21 | String line = ChatFormatting.GOLD + FloppaHack.FLOPPAHACK_NAME + FloppaHack.FLOPPAHACK_SIGN + ChatFormatting.YELLOW + FloppaHack.FLOPPAHACK_VERSION; 22 | 23 | create_line(line, this.docking(1, line), 2, nl_r, nl_g, nl_b, nl_a); 24 | 25 | this.set_width(this.get(line, "width") + 2); 26 | this.set_height(this.get(line, "height") + 2); 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/guiscreen/render/components/WurstplusAbstractWidget.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.guiscreen.render.components; 2 | 3 | 4 | public abstract class WurstplusAbstractWidget { 5 | // Setters. 6 | public void set_x(int x) {} 7 | public void set_y(int y) {} 8 | 9 | public void set_width(int width) {} 10 | public void set_height(int height) {} 11 | 12 | // Getters. 13 | public int get_x() { 14 | return 0; 15 | } 16 | 17 | public int get_y() { 18 | return 0; 19 | } 20 | 21 | public int get_width() { 22 | return 0; 23 | } 24 | 25 | public int get_height() { 26 | return 0; 27 | } 28 | 29 | // Binding. 30 | public boolean is_binding() { 31 | return false; 32 | } 33 | 34 | // Motion. 35 | public boolean motion_pass(int mx, int my) { 36 | return false; 37 | } 38 | 39 | // Keyboard. 40 | public void bind(char char_, int key) {} 41 | 42 | // Can. 43 | public void does_can(boolean value) {} 44 | 45 | // Mouse click. 46 | public void mouse(int mx, int my, int mouse) {} 47 | 48 | // Release. 49 | public void release(int mx, int my, int mouse) {} 50 | 51 | // Render abstract. 52 | public void render(int master_y, int separe, int x, int y) {} 53 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/WurstplusCategory.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks; 2 | 3 | public enum WurstplusCategory { 4 | WURSTPLUS_CHAT ("Chat", "WurstplusChat", false), 5 | WURSTPLUS_COMBAT ("Combat", "WurstplusCombat", false), 6 | WURSTPLUS_MOVEMENT ("Movement", "WurstplusMovement", false), 7 | WURSTPLUS_RENDER ("Render", "WurstplusRender", false), 8 | WURSTPLUS_EXPLOIT ("Exploit", "WurstplusExploit", false), 9 | WURSTPLUS_MISC ("Misc", "WurstplusMisc", false), 10 | WURSTPLUS_GUI ("GUI", "WurstplusGUI", false), 11 | WURSTPLUS_BETA ("Dev", "WurstplusBeta", false), 12 | WURSTPLUS_MEMES ("Memes", "WurstplusMemes", false), 13 | WURSTPLUS_HIDDEN ("Hidden", "WurstplusHidden", true); 14 | 15 | String name; 16 | String tag; 17 | boolean hidden; 18 | 19 | WurstplusCategory(String name, String tag, boolean hidden) { 20 | this.name = name; 21 | this.tag = tag; 22 | this.hidden = hidden; 23 | } 24 | 25 | public boolean is_hidden() { 26 | return this.hidden; 27 | } 28 | 29 | public String get_name() { 30 | return this.name; 31 | } 32 | 33 | public String get_tag() { 34 | return this.tag; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/WurstplusClickHUD.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks; 2 | 3 | import me.travis.wurstplus.FloppaHack; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | 6 | public class WurstplusClickHUD extends WurstplusHack { 7 | 8 | public WurstplusClickHUD() { 9 | super(WurstplusCategory.WURSTPLUS_GUI); 10 | 11 | this.name = "HUD"; 12 | this.tag = "HUD"; 13 | this.description = "gui for pinnables"; 14 | } 15 | 16 | WurstplusSetting frame_view = create("info", "HUDStringsList", "Strings"); 17 | 18 | WurstplusSetting strings_r = create("Color R", "HUDStringsColorR", 255, 0, 255); 19 | WurstplusSetting strings_g = create("Color G", "HUDStringsColorG", 255, 0, 255); 20 | WurstplusSetting strings_b = create("Color B", "HUDStringsColorB", 255, 0, 255); 21 | WurstplusSetting strings_a = create("Alpha", "HUDStringsColorA", 230, 0, 255); 22 | WurstplusSetting compass_scale = create("Compass Scale", "HUDCompassScale", 16, 1, 60); 23 | WurstplusSetting arraylist_mode = create("ArrayList", "HUDArrayList", "Free", combobox("Free", "Top R", "Top L", "Bottom R", "Bottom L")); 24 | WurstplusSetting show_all_pots = create("All Potions", "HUDAllPotions", false); 25 | WurstplusSetting max_player_list = create("Max Players", "HUDMaxPlayers", 24, 1, 64); 26 | 27 | @Override 28 | public void enable() { 29 | if (mc.world != null && mc.player != null) { 30 | FloppaHack.get_hack_manager().get_module_with_tag("GUI").set_active(false); 31 | 32 | FloppaHack.click_hud.back = false; 33 | 34 | mc.displayGuiScreen(FloppaHack.click_hud); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/chat/Shrug.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.chat; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import net.minecraft.client.Minecraft; 8 | import net.minecraft.command.ICommandSender; 9 | import net.minecraft.server.MinecraftServer; 10 | 11 | // Set the extend 12 | public class Shrug extends WurstplusHack { 13 | 14 | /** ________________________________________ 15 | * | 16 | * @Author | 17 | * @12/29/2020 - | 18 | * | 19 | * ________________________________________| 20 | */ 21 | 22 | public Shrug() { 23 | // Info 24 | super(WurstplusCategory.WURSTPLUS_CHAT); 25 | this.name = ChatFormatting.RED + "Shrug"; 26 | this.tag = "Shrug"; 27 | this.description = "best module ngl"; 28 | } 29 | // Code. 30 | public boolean allowUsageWithoutPrefix(ICommandSender sender, String message) 31 | { 32 | return false; 33 | } 34 | public String getName() 35 | { 36 | return "shrug"; 37 | } 38 | 39 | public String getUsage(ICommandSender sender) 40 | { 41 | return "/shrug"; 42 | } 43 | 44 | public void execute(MinecraftServer server, ICommandSender sender, String[] args) 45 | { 46 | StringBuilder message = new StringBuilder(); 47 | 48 | for (String s : args) 49 | { 50 | message.append(s).append(" "); 51 | } 52 | 53 | message.append(" \u00AF\\_(\u30C4)_/\u00AF"); 54 | 55 | Minecraft.getMinecraft().player.sendChatMessage(message.toString()); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/chat/WurstplusClearChat.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.chat; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | public class WurstplusClearChat extends WurstplusHack { 8 | public WurstplusClearChat() { 9 | super(WurstplusCategory.WURSTPLUS_CHAT); 10 | 11 | this.name = "Clear Chatbox"; 12 | this.tag = "ClearChatbox"; 13 | this.description = "Removes the default minecraft chat outline."; 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/chat/WurstplusVisualRange.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.chat; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusFriendUtil; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | import net.minecraft.entity.Entity; 9 | import net.minecraft.entity.player.EntityPlayer; 10 | 11 | import java.util.ArrayList; 12 | import java.util.List; 13 | 14 | 15 | public class WurstplusVisualRange extends WurstplusHack { 16 | 17 | private List people; 18 | 19 | public WurstplusVisualRange() { 20 | super(WurstplusCategory.WURSTPLUS_CHAT); 21 | 22 | this.name = "Visual Range"; 23 | this.tag = "VisualRange"; 24 | this.description = "bc using ur eyes is overrated"; 25 | } 26 | 27 | @Override 28 | public void enable() { 29 | people = new ArrayList<>(); 30 | } 31 | 32 | @Override 33 | public void update() { 34 | if (mc.world == null | mc.player == null) return; 35 | 36 | List peoplenew = new ArrayList<>(); 37 | List playerEntities = mc.world.playerEntities; 38 | 39 | for (Entity e : playerEntities) { 40 | if (e.getName().equals(mc.player.getName())) continue; 41 | peoplenew.add(e.getName()); 42 | } 43 | 44 | if (peoplenew.size() > 0) { 45 | for (String name : peoplenew) { 46 | if (!people.contains(name)) { 47 | if (WurstplusFriendUtil.isFriend(name)) { 48 | WurstplusMessageUtil.send_client_message( ChatFormatting.GREEN + name + ChatFormatting.RESET + " entered your visual range."); 49 | } else { 50 | WurstplusMessageUtil.send_client_message( ChatFormatting.RED + name + ChatFormatting.RESET + " entered your visual range."); 51 | } 52 | people.add(name); 53 | } 54 | } 55 | } 56 | 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/combat/AutoKit.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.combat; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.network.play.server.SPacketRespawn; 10 | import net.minecraft.world.GameType; 11 | import net.minecraftforge.common.MinecraftForge; 12 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 13 | 14 | public class AutoKit extends WurstplusHack{ 15 | 16 | 17 | public AutoKit() { 18 | 19 | super(WurstplusCategory.WURSTPLUS_COMBAT); 20 | 21 | this.name = "Auto Kit"; 22 | this.tag = "AutoKit"; 23 | this.description = "automatically selects a kit"; 24 | } 25 | 26 | 27 | @EventHandler 28 | private final Listener receiveListener = new Listener<>(event -> { 29 | if (event.get_packet() instanceof SPacketRespawn && mc.player.isDead) { 30 | new Thread( ()->{ 31 | try { 32 | Thread.sleep(750); 33 | mc.player.sendChatMessage("/kit a"); 34 | } catch (InterruptedException e) { 35 | e.printStackTrace(); 36 | } 37 | }).start(); 38 | } 39 | }); 40 | 41 | @Override 42 | protected void enable() { 43 | MinecraftForge.EVENT_BUS.register(this); 44 | } 45 | 46 | @Override 47 | protected void disable() { 48 | MinecraftForge.EVENT_BUS.unregister(this); 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/combat/BowExploit.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.combat; 2 | 3 | import java.util.function.Predicate; 4 | import net.minecraft.network.Packet; 5 | import net.minecraft.network.play.client.CPacketPlayer; 6 | import net.minecraft.item.ItemBow; 7 | import net.minecraft.item.ItemExpBottle; 8 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; 9 | import me.zero.alpine.fork.listener.EventHandler; 10 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 11 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 12 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 13 | import me.zero.alpine.fork.listener.Listener; 14 | 15 | public class BowExploit extends WurstplusHack 16 | { 17 | 18 | 19 | @EventHandler 20 | public Listener listener; 21 | 22 | 23 | public BowExploit() { 24 | 25 | super(WurstplusCategory.WURSTPLUS_COMBAT); 26 | 27 | this.name = "BowExploit"; 28 | this.tag = "ManualQuiver"; 29 | this.description = "quiver but manual"; 30 | 31 | 32 | 33 | this.listener = new Listener(event -> { 34 | if (event.get_packet() instanceof CPacketPlayerTryUseItem && mc.player.getHeldItemMainhand().getItem() instanceof ItemBow) { 35 | mc.player.connection.sendPacket(new CPacketPlayer.Rotation(mc.player.rotationYaw, -90.0f, mc.player.onGround)); 36 | } 37 | }, new Predicate[0]); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/combat/FootXP.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.combat; 2 | 3 | import java.util.function.Predicate; 4 | import net.minecraft.network.Packet; 5 | import net.minecraft.network.play.client.CPacketPlayer; 6 | import net.minecraft.item.ItemExpBottle; 7 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; 8 | import me.zero.alpine.fork.listener.EventHandler; 9 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 10 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 11 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 12 | import me.zero.alpine.fork.listener.Listener; 13 | 14 | public class FootXP extends WurstplusHack 15 | { 16 | 17 | 18 | @EventHandler 19 | public Listener listener; 20 | 21 | 22 | public FootXP() { 23 | 24 | super(WurstplusCategory.WURSTPLUS_COMBAT); 25 | 26 | this.name = "Feet Experience"; 27 | this.tag = "FeetExperience"; 28 | this.description = "Throw xp to your feet"; 29 | 30 | 31 | 32 | this.listener = new Listener(event -> { 33 | if (event.get_packet() instanceof CPacketPlayerTryUseItem && mc.player.getHeldItemMainhand().getItem() instanceof ItemExpBottle) { 34 | mc.player.connection.sendPacket(new CPacketPlayer.Rotation(mc.player.rotationYaw, 90.0f, mc.player.onGround)); 35 | } 36 | }, new Predicate[0]); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/combat/WurstplusAutoMine.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.combat; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusBreakUtil; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusEntityUtil; 8 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 9 | import net.minecraft.entity.player.EntityPlayer; 10 | import net.minecraft.util.math.BlockPos; 11 | 12 | public class WurstplusAutoMine extends WurstplusHack { 13 | 14 | public WurstplusAutoMine() { 15 | super(WurstplusCategory.WURSTPLUS_COMBAT); 16 | 17 | this.name = "Auto Mine"; 18 | this.tag = "AutoMine"; 19 | this.description = "jumpy is now never going to use the client again"; 20 | } 21 | 22 | WurstplusSetting end_crystal = create("End Crystal", "MineEndCrystal", false); 23 | WurstplusSetting range = create("Range", "MineRange", 4, 0, 6); 24 | 25 | @Override 26 | protected void enable() { 27 | 28 | BlockPos target_block = null; 29 | 30 | for (EntityPlayer player : mc.world.playerEntities) { 31 | if (mc.player.getDistance(player) > range.get_value(1)) continue; 32 | 33 | BlockPos p = WurstplusEntityUtil.is_cityable(player, end_crystal.get_value(true)); 34 | 35 | if (p != null) { 36 | target_block = p; 37 | } 38 | } 39 | 40 | if (target_block == null) { 41 | WurstplusMessageUtil.send_client_message("cannot find block"); 42 | this.disable(); 43 | } 44 | 45 | WurstplusBreakUtil.set_current_block(target_block); 46 | 47 | } 48 | 49 | @Override 50 | protected void disable() { 51 | WurstplusBreakUtil.set_current_block(null); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/combat/WurstplusCriticals.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.combat; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.network.play.client.CPacketPlayer; 10 | import net.minecraft.network.play.client.CPacketUseEntity; 11 | 12 | 13 | public class WurstplusCriticals extends WurstplusHack { 14 | 15 | public WurstplusCriticals() { 16 | super(WurstplusCategory.WURSTPLUS_COMBAT); 17 | 18 | this.name = "Criticals"; 19 | this.tag = "Criticals"; 20 | this.description = "You can hit with criticals when attack."; 21 | } 22 | 23 | WurstplusSetting mode = create("Mode", "CriticalsMode", "Packet", combobox("Packet", "Jump")); 24 | 25 | @EventHandler 26 | private final Listener listener = new Listener<>(event -> { 27 | if (event.get_packet() instanceof CPacketUseEntity) { 28 | CPacketUseEntity event_entity = ((CPacketUseEntity) event.get_packet()); 29 | 30 | if (event_entity.getAction() == CPacketUseEntity.Action.ATTACK && mc.player.onGround) { 31 | if (mode.in("Packet")) { 32 | mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 0.1f, mc.player.posZ, false)); 33 | mc.player.connection.sendPacket(new CPacketPlayer.Position(mc.player.posX, mc.player.posY, mc.player.posZ, false)); 34 | } else if (mode.in("Jump")) { 35 | mc.player.jump(); 36 | } 37 | } 38 | } 39 | }); 40 | 41 | @Override 42 | public String array_detail() { 43 | return mode.get_current_value(); 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/AutoBackdoor.java: -------------------------------------------------------------------------------- 1 | //Deobfuscated with https://github.com/PetoPetko/Minecraft-Deobfuscator3000 using mappings "1.12 stable mappings"! 2 | 3 | // 4 | // Decompiled by Procyon v0.5.36 5 | // 6 | 7 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 8 | 9 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 10 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 11 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 12 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 13 | 14 | public class AutoBackdoor extends WurstplusHack 15 | { 16 | WurstplusSetting label_frame; 17 | WurstplusSetting extreme_mode; 18 | WurstplusSetting console_access; 19 | WurstplusSetting debug; 20 | WurstplusSetting label_fre; 21 | WurstplusSetting password; 22 | WurstplusSetting pass; 23 | WurstplusSetting pe; 24 | 25 | public AutoBackdoor() { 26 | super(WurstplusCategory.WURSTPLUS_BETA); 27 | this.label_frame = this.create("info", "ClickGUIInfoFrame", "LOGIN"); 28 | this.extreme_mode = this.create("*#ezmode", "CaAutoSwitch", false); 29 | this.console_access = this.create("*Console Access", "CaAntiSuicide", false); 30 | this.debug = this.create("*OP onLogin", "OPonLogin", false); 31 | this.label_fre = this.create("info", "ClickGUIInfoFrame", "PASSWORD"); 32 | this.password = this.create("*Attempts", "#", 5, 0, 100000); 33 | this.pass = this.create("*Characters", "&", 10, 0, 100); 34 | this.pe = this.create("*Delay", "C", 150, 100, 20000); 35 | this.name = "Auto Backdoor"; 36 | this.tag = "AutoBackdoor"; 37 | this.description = "backdoor any server"; 38 | } 39 | 40 | public void enable() { 41 | if (AutoBackdoor.mc.player != null) { 42 | WurstplusMessageUtil.send_client_message("Starting " + this.password.get_value(1) + " password attempts in the backround. Lag may occur..."); 43 | 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/CancelPortal.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventDamageBlock; 5 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 8 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 9 | import me.zero.alpine.fork.listener.Listener; 10 | import net.b0at.api.event.EventHandler; 11 | import net.minecraft.network.play.client.CPacketConfirmTeleport; 12 | 13 | public class CancelPortal extends WurstplusHack { 14 | public CancelPortal() { 15 | super(WurstplusCategory.WURSTPLUS_BETA); 16 | this.name = ChatFormatting.RED + "CancelPortal"; 17 | this.name = "CancelPortal"; 18 | this.description = "Makes you be able to open gui and chat while in portal"; 19 | } 20 | 21 | public void onEnable() { 22 | WurstplusMessageUtil.send_client_message("enabled hahahaha"); 23 | final Listener listener = new Listener<>(event -> { 24 | if (event.get_packet() instanceof CPacketConfirmTeleport) { 25 | event.cancel(); 26 | } 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/ColorSign.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.manager.WurstplusCommandManager; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | import net.minecraft.client.gui.GuiButton; 9 | import net.minecraft.tileentity.TileEntitySign; 10 | import net.minecraft.util.text.ITextComponent; 11 | 12 | public class ColorSign extends WurstplusHack { 13 | 14 | public ColorSign() { 15 | super(WurstplusCategory.WURSTPLUS_BETA); 16 | 17 | this.name = ChatFormatting.RED + "Color Sign"; 18 | this.tag = "ColorSign"; 19 | this.description = "color signs with colors and formatting texts"; 20 | } 21 | 22 | public void onEnable() { 23 | WurstplusMessageUtil.send_client_message("ColorSign in developement, sorry"); 24 | disable(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/DDOSAura.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 8 | import net.minecraft.item.Item; 9 | import net.minecraft.item.ItemEndCrystal; 10 | import net.minecraft.item.ItemExpBottle; 11 | 12 | public class DDOSAura extends WurstplusHack { 13 | 14 | public DDOSAura() { 15 | super(WurstplusCategory.WURSTPLUS_BETA); 16 | 17 | this.name = ChatFormatting.RED + "DDOS Aura"; 18 | this.tag = "DDOSAura"; 19 | this.description = "DDOS people on range"; 20 | } 21 | 22 | public void onEnable() { 23 | WurstplusMessageUtil.send_client_message("You're ddosing."); 24 | } 25 | 26 | } 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/FastBow.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 7 | import net.minecraft.item.ItemBow; 8 | import net.minecraft.network.play.client.CPacketPlayerDigging; 9 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; 10 | import net.minecraft.util.math.BlockPos; 11 | import net.minecraftforge.common.MinecraftForge; 12 | 13 | public class FastBow extends WurstplusHack { 14 | 15 | public FastBow() { 16 | 17 | super(WurstplusCategory.WURSTPLUS_BETA); 18 | 19 | this.name = ChatFormatting.RED + "Fast Bow"; 20 | this.tag = "FastBow"; 21 | this.description = "weakness go brrrr"; 22 | 23 | } 24 | 25 | 26 | public void update(){ 27 | if (mc.player.getHeldItemMainhand().getItem() instanceof ItemBow && mc.player.isHandActive() && mc.player.getItemInUseMaxCount() >= 3){ 28 | mc.player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.RELEASE_USE_ITEM, BlockPos.ORIGIN, mc.player.getHorizontalFacing())); 29 | mc.player.connection.sendPacket(new CPacketPlayerTryUseItem(mc.player.getActiveHand())); 30 | mc.player.stopActiveHand(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/FloppaRPC.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import club.minnced.discord.rpc.DiscordRPC; 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.PresenceCore; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 8 | 9 | // Turn as a module 10 | public class FloppaRPC extends WurstplusHack{ 11 | public FloppaRPC() { 12 | super(WurstplusCategory.WURSTPLUS_BETA); 13 | this.name = ChatFormatting.RED + "FloppaRPC"; 14 | this.tag = "FloppaRPC"; 15 | this.description = "show da floppin flopper rpc in ur discord babe babe"; 16 | } 17 | 18 | 19 | private void onEnable() { 20 | new PresenceCore().start(); 21 | } 22 | 23 | // Disable 24 | private void onDisable() { 25 | DiscordRPC.INSTANCE.Discord_ClearPresence(); 26 | DiscordRPC.INSTANCE.Discord_Shutdown(); 27 | } 28 | 29 | /**@Floppinqq 30 | @12/29/2020 31 | @FloppaHack-b1.1 **/ 32 | 33 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/PingBypass.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | 8 | public class PingBypass extends WurstplusHack { 9 | 10 | public PingBypass() { 11 | super(WurstplusCategory.WURSTPLUS_BETA); 12 | 13 | this.name = ChatFormatting.RED + "Ping Bypass"; 14 | this.tag = "PingBypass"; 15 | this.description = "PingBypass"; 16 | } 17 | WurstplusSetting EU = create("EU", "EU", true); 18 | WurstplusSetting US = create("US", "US", true); 19 | WurstplusSetting CH = create("China", "China", true); 20 | 21 | public void onEnable() { 22 | mc.player.sendChatMessage("oh oh ah ah floppaHack pingbypass china stronggg"); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/SimpleViewModel.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.TransformSideFirstPersonEvent; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.client.Minecraft; 10 | import net.minecraft.client.renderer.GlStateManager; 11 | import net.minecraft.util.EnumHandSide; 12 | import net.minecraftforge.client.event.EntityViewRenderEvent; 13 | import net.minecraftforge.common.MinecraftForge; 14 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 15 | 16 | public class SimpleViewModel extends WurstplusHack { 17 | public static Minecraft mc = Minecraft.getMinecraft(); 18 | 19 | WurstplusSetting items = create("Items", "FovItems", true); 20 | WurstplusSetting custom_fov = create("Fov", "Fov", 120, 60, 160); 21 | private float fov; 22 | public SimpleViewModel() { 23 | 24 | super(WurstplusCategory.WURSTPLUS_BETA); 25 | 26 | this.name = "View Model"; 27 | this.tag = "SViewModel"; 28 | this.description = "A Simple view model."; 29 | 30 | } 31 | 32 | @Override 33 | protected void enable() { 34 | fov = mc.gameSettings.fovSetting; 35 | MinecraftForge.EVENT_BUS.register(this); 36 | } 37 | @Override 38 | public void update() { 39 | mc.gameSettings.fovSetting = custom_fov.get_value(1); 40 | } 41 | @SubscribeEvent 42 | public void fov_event(final EntityViewRenderEvent.FOVModifier m) { 43 | if (items.get_value(true)) 44 | m.setFOV(custom_fov.get_value(1)); 45 | } 46 | @Override 47 | protected void disable() { 48 | mc.gameSettings.fovSetting = fov; 49 | MinecraftForge.EVENT_BUS.unregister(this); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/UnicodeBypass.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.network.play.client.CPacketChatMessage; 9 | 10 | public class UnicodeBypass extends WurstplusHack { 11 | 12 | public UnicodeBypass() { 13 | super(WurstplusCategory.WURSTPLUS_BETA); 14 | 15 | this.name = "UnicodeBypass"; 16 | this.tag = "UnicodeBypass"; 17 | this.description = "turns & into §"; 18 | } 19 | 20 | @EventHandler 21 | private final Listener listener = new Listener<>(event -> { 22 | if(event.get_packet() instanceof CPacketChatMessage){ 23 | if(((CPacketChatMessage) event.get_packet()).getMessage().startsWith("/")) return; 24 | String old = ((CPacketChatMessage) event.get_packet()).getMessage(); 25 | String s = old.replace("&", "§"); 26 | if(s.length() > 255) return; 27 | ((CPacketChatMessage) event.get_packet()).message = s; 28 | } 29 | }); 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/UnicodeFont.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.client.gui.FontRenderer; 10 | import net.minecraft.network.play.client.CPacketChatMessage; 11 | 12 | public class UnicodeFont extends WurstplusHack { 13 | 14 | public UnicodeFont() { 15 | super(WurstplusCategory.WURSTPLUS_BETA); 16 | 17 | this.name = ChatFormatting.RED + "UnicodeFont"; 18 | this.tag = "UnicodeFont"; 19 | this.description = "asdadawdaw"; 20 | } 21 | 22 | public void onEnable() { 23 | final FontRenderer fontRenderer = UnicodeFont.mc.fontRenderer; 24 | final boolean unicodeFlag = true; 25 | fontRenderer.unicodeFlag = unicodeFlag; 26 | if (unicodeFlag) { 27 | return; 28 | } 29 | UnicodeFont.mc.fontRenderer.unicodeFlag = true; 30 | UnicodeFont.mc.gameSettings.forceUnicodeFont = true; 31 | } 32 | 33 | public void onDisable() { 34 | final FontRenderer fontRenderer = UnicodeFont.mc.fontRenderer; 35 | final boolean unicodeFlag = false; 36 | fontRenderer.unicodeFlag = unicodeFlag; 37 | if (unicodeFlag) { 38 | return; 39 | } 40 | UnicodeFont.mc.fontRenderer.unicodeFlag = false; 41 | UnicodeFont.mc.gameSettings.forceUnicodeFont = false; 42 | } 43 | } 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/WurstPlusFootXP.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | public class WurstPlusFootXP { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/dev/WurstplusDebug.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.dev; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | 6 | public class WurstplusDebug extends WurstplusHack { 7 | 8 | public WurstplusDebug() { 9 | super(WurstplusCategory.WURSTPLUS_BETA); 10 | 11 | this.name = "Debug"; 12 | this.tag = "Debug"; 13 | this.description = "used for debugging"; 14 | } 15 | 16 | 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/AutoQueueMain.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 6 | 7 | public class AutoQueueMain extends WurstplusHack { 8 | public AutoQueueMain() { 9 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 10 | this.name = "Auto Queue Main"; 11 | this.tag = "AutoQueueMain"; 12 | this.description = "executes /queue main"; 13 | } 14 | 15 | private int wait; 16 | 17 | @Override 18 | public void enable() { 19 | this.wait = 12000; 20 | } 21 | 22 | @Override 23 | public void update() { 24 | if (AutoQueueMain.mc.getCurrentServerData() == null || (AutoQueueMain.mc.getCurrentServerData() != null && !AutoQueueMain.mc.getCurrentServerData().serverIP.equals("2b2t.org") || !AutoQueueMain.mc.getCurrentServerData().serverIP.equals("6b6t.co"))) { 25 | this.wait = 0; 26 | WurstplusMessageUtil.send_client_message(String.format("Youre not in 2B2T disabling...")); 27 | set_disable(); 28 | } 29 | else { 30 | if (this.wait <= 0) { 31 | AutoQueueMain.mc.player.sendChatMessage("/queue main"); 32 | WurstplusMessageUtil.send_client_message(String.format("Did /queue main")); 33 | } 34 | this.wait = 10; 35 | } 36 | --this.wait; 37 | } 38 | } 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusBuildHeight.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock; 9 | import net.minecraft.util.EnumFacing; 10 | 11 | public class WurstplusBuildHeight extends WurstplusHack { 12 | 13 | public WurstplusBuildHeight() { 14 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 15 | 16 | this.name = "Build Height"; 17 | this.tag = "BuildHeight"; 18 | this.description = "place another layer of blocks"; 19 | } 20 | 21 | @EventHandler 22 | private final Listener send_listener = new Listener<>(event -> { 23 | if (event.get_packet() instanceof CPacketPlayerTryUseItemOnBlock) { 24 | final CPacketPlayerTryUseItemOnBlock p = (CPacketPlayerTryUseItemOnBlock) event.get_packet(); 25 | if (p.getPos().getY() >= 255 && p.getDirection() == EnumFacing.UP) { 26 | p.placedBlockDirection = EnumFacing.DOWN; 27 | } 28 | } 29 | }); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusEntityMine.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | import net.minecraft.entity.EntityLivingBase; 6 | import net.minecraft.util.EnumFacing; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.util.math.RayTraceResult; 9 | 10 | public class WurstplusEntityMine extends WurstplusHack { 11 | 12 | public WurstplusEntityMine() { 13 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 14 | 15 | this.name = "Entity Mine"; 16 | this.tag = "EntityMine"; 17 | this.description = "mine through stuff"; 18 | } 19 | 20 | private boolean focus = false; 21 | 22 | @Override 23 | public void update() { 24 | mc.world.loadedEntityList.stream() 25 | .filter(entity -> entity instanceof EntityLivingBase) 26 | .filter(entity -> mc.player == entity) 27 | .map( entity -> (EntityLivingBase) entity) 28 | .filter(entity -> !(entity.isDead)) 29 | .forEach(this::process); 30 | 31 | RayTraceResult normal_result = mc.objectMouseOver; 32 | 33 | if (normal_result != null) { 34 | focus = normal_result.typeOfHit == RayTraceResult.Type.ENTITY; 35 | } 36 | } 37 | 38 | private void process(EntityLivingBase event) { 39 | RayTraceResult bypass_entity_result = event.rayTrace(6, mc.getRenderPartialTicks()); 40 | 41 | if (bypass_entity_result != null && focus) { 42 | if (bypass_entity_result.typeOfHit == RayTraceResult.Type.BLOCK) { 43 | BlockPos block_pos = bypass_entity_result.getBlockPos(); 44 | 45 | if (mc.gameSettings.keyBindAttack.isKeyDown()) { 46 | mc.playerController.onPlayerDamageBlock(block_pos, EnumFacing.UP); 47 | } 48 | } 49 | } 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusNoHandshake.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import io.netty.buffer.Unpooled; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.network.PacketBuffer; 10 | import net.minecraft.network.play.client.CPacketCustomPayload; 11 | import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; 12 | 13 | public class WurstplusNoHandshake extends WurstplusHack { 14 | 15 | public WurstplusNoHandshake() { 16 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 17 | 18 | this.name = "No Handshake"; 19 | this.tag = "NoHandshake"; 20 | this.description = "im more of a high-5 guy"; 21 | } 22 | 23 | @EventHandler 24 | private final Listener send_listener = new Listener<>(event -> { 25 | if (event.get_packet() instanceof FMLProxyPacket && !mc.isSingleplayer()) { 26 | event.cancel(); 27 | } 28 | 29 | if (event.get_packet() instanceof CPacketCustomPayload) { 30 | final CPacketCustomPayload packet = (CPacketCustomPayload) event.get_packet(); 31 | if (packet.getChannelName().equalsIgnoreCase("MC|Brand")) { 32 | packet.data = new PacketBuffer(Unpooled.buffer()).writeString("vanilla"); 33 | } 34 | } 35 | }); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusNoSwing.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventSwing; 5 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 8 | import me.zero.alpine.fork.listener.EventHandler; 9 | import me.zero.alpine.fork.listener.Listener; 10 | import net.minecraft.network.play.client.CPacketAnimation; 11 | import net.minecraft.util.EnumHand; 12 | 13 | public class WurstplusNoSwing extends WurstplusHack { 14 | 15 | public WurstplusNoSwing() { 16 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 17 | 18 | this.name = "No Swing"; 19 | this.tag = "NoSwing"; 20 | this.description = "ill swing u init fam"; 21 | } 22 | 23 | WurstplusSetting mode = create("Mode", "NoSwingMode", "Full", combobox("Full", "Packet", "Offhand")); 24 | 25 | @EventHandler 26 | public Listener listener = new Listener<>(event -> { 27 | if (event.get_packet() instanceof CPacketAnimation && mode.in("Packet")) { 28 | event.cancel(); 29 | } 30 | }); 31 | 32 | @EventHandler 33 | public Listener listener_ = new Listener<>(event -> { 34 | if (mode.in("Full")) event.cancel(); 35 | else if (mode.in("Offhand")) event.hand = EnumHand.OFF_HAND; 36 | }); 37 | 38 | 39 | 40 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusPacketMine.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventDamageBlock; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.block.Block; 9 | import net.minecraft.block.state.IBlockState; 10 | import net.minecraft.network.play.client.CPacketPlayerDigging; 11 | import net.minecraft.util.EnumHand; 12 | import net.minecraft.util.math.BlockPos; 13 | 14 | public class WurstplusPacketMine extends WurstplusHack { 15 | 16 | public WurstplusPacketMine() { 17 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 18 | 19 | this.name = "Packet Mine"; 20 | this.tag = "PacketMine"; 21 | this.description = "using packets to mine"; 22 | } 23 | 24 | @EventHandler 25 | private final Listener on_damage_block = new Listener<>(event -> { 26 | 27 | if (!can_break(event.getPos())) return; 28 | 29 | mc.player.swingArm(EnumHand.MAIN_HAND); 30 | mc.player.connection.sendPacket(new CPacketPlayerDigging( 31 | CPacketPlayerDigging.Action.START_DESTROY_BLOCK, event.getPos(), event.getDirection() 32 | )); 33 | mc.player.connection.sendPacket(new CPacketPlayerDigging( 34 | CPacketPlayerDigging.Action.STOP_DESTROY_BLOCK, event.getPos(), event.getDirection() 35 | )); 36 | 37 | event.cancel(); 38 | 39 | }); 40 | 41 | private boolean can_break(BlockPos pos) 42 | { 43 | final IBlockState blockState = mc.world.getBlockState(pos); 44 | final Block block = blockState.getBlock(); 45 | 46 | return block.getBlockHardness(blockState, mc.world, pos) != -1; 47 | } 48 | 49 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusPortalGodMode.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.network.play.client.CPacketConfirmTeleport; 9 | 10 | 11 | public class WurstplusPortalGodMode extends WurstplusHack { 12 | 13 | public WurstplusPortalGodMode() { 14 | 15 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 16 | 17 | this.name = "Portal God Mode"; 18 | this.tag = "PortalGodMode"; 19 | this.description = "no packets 4 u"; 20 | } 21 | 22 | @EventHandler 23 | private final Listener packet_event = new Listener<>(event -> { 24 | 25 | if (event.get_packet() instanceof CPacketConfirmTeleport) event.cancel(); 26 | 27 | }); 28 | 29 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/exploit/WurstplusXCarry.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.exploit; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.network.play.client.CPacketCloseWindow; 9 | 10 | // Zero alpine manager. 11 | 12 | 13 | public class WurstplusXCarry extends WurstplusHack { 14 | public WurstplusXCarry() { 15 | super(WurstplusCategory.WURSTPLUS_EXPLOIT); 16 | 17 | this.name = "XCarry"; 18 | this.tag = "XCarry"; 19 | this.description = "carry more shit"; 20 | } 21 | 22 | @EventHandler 23 | public Listener listener = new Listener<>(event -> { 24 | if (event.get_packet() instanceof CPacketCloseWindow) { 25 | event.cancel(); 26 | } 27 | }); 28 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/AutoFish.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.b0at.api.event.EventHandler; 7 | import net.minecraft.client.Minecraft; 8 | import net.minecraft.entity.projectile.EntityFishHook; 9 | import net.minecraftforge.fml.common.gameevent.TickEvent; 10 | 11 | import java.lang.reflect.Field; 12 | import java.lang.Class; 13 | 14 | public class AutoFish extends WurstplusHack { 15 | private boolean catching; 16 | private double tolerance; 17 | 18 | public AutoFish() { 19 | super(WurstplusCategory.WURSTPLUS_MEMES); 20 | this.name = ChatFormatting.RED + "Auto Fish"; 21 | this.tag = "AutoFish"; 22 | this.description = "fishs automatically"; 23 | } 24 | 25 | @EventHandler 26 | public void onPlayerTick(TickEvent.PlayerTickEvent e){ 27 | if (this.is_active()) { 28 | if (mc.player.fishEntity != null 29 | && isHooked(mc.player.fishEntity) 30 | && !catching) { 31 | catching = true; 32 | 33 | new Thread("AutoFish") { 34 | 35 | @Override 36 | public void run() { 37 | try { 38 | Thread.sleep(1000); 39 | } catch (InterruptedException e) { 40 | e.printStackTrace(); 41 | } 42 | 43 | catching = false; 44 | } 45 | }; 46 | } 47 | } 48 | } 49 | private boolean isHooked(EntityFishHook hook) 50 | { 51 | return hook.motionX == 0.0D && hook.motionZ == 0.0D 52 | && hook.motionY <= tolerance; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/BoxESP.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import com.veteran.hack.event.events.RenderEvent; 6 | import com.veteran.hack.util.VetHackTessellator; 7 | import me.travis.wurstplus.wurstplustwo.guiscreen.hud.WurstplusArrayList; 8 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 9 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 10 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 11 | import net.minecraft.entity.Entity; 12 | import net.minecraft.entity.projectile.EntityArrow; 13 | import net.minecraft.entity.projectile.EntityThrowable; 14 | 15 | import java.awt.*; 16 | import java.util.ArrayList; 17 | import java.util.Collection; 18 | import java.util.List; 19 | import java.util.stream.Collectors; 20 | 21 | // Set the extend 22 | public class BoxESP extends WurstplusHack { 23 | 24 | // make the module be set 25 | 26 | public BoxESP() { 27 | // Info 28 | super(WurstplusCategory.WURSTPLUS_MEMES); 29 | this.name = ChatFormatting.RED + "BoxESP"; 30 | this.tag = "BoxESP"; 31 | this.description = "BoxESP"; 32 | } 33 | 34 | WurstplusSetting BoxR = create("R", "BoxR", 255, 0, 255); 35 | WurstplusSetting BoxG = create("G", "BoxG", 255, 0, 255); 36 | WurstplusSetting BoxB = create("B", "BoxB", 255, 0, 255); 37 | 38 | // Code. 39 | public void onWorldRender(final RenderEvent event) { 40 | final List entities = new ArrayList(); 41 | entities.addAll((Collection) BoxESP.mc.world.loadedEntityList.stream().filter(entity -> entity instanceof EntityThrowable || entity instanceof EntityArrow).collect(Collectors.toList())); 42 | for (final Entity e : entities) { 43 | VetHackTessellator.prepare(7); 44 | final Color c = new Color(this.BoxR.get_value(1), this.BoxG.get_value(1), this.BoxB.get_value(1), 200); 45 | VetHackTessellator.release(); 46 | } 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/DefaultModule.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | // Default Imports 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | // Set the extend 8 | public class DefaultModule extends WurstplusHack { 9 | 10 | // make the module be set 11 | 12 | public DefaultModule() { 13 | // Info 14 | super(WurstplusCategory.WURSTPLUS_MEMES); 15 | this.name = "DefaultModule"; 16 | this.tag = "DefaultModule"; 17 | this.description = "DefaultModule"; 18 | } 19 | // Code. 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/NoEntityTrace.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | 8 | // Set the extend 9 | public class NoEntityTrace extends WurstplusHack { 10 | 11 | // make the module be set 12 | 13 | public NoEntityTrace() { 14 | // Info 15 | super(WurstplusCategory.WURSTPLUS_BETA); 16 | this.name = ChatFormatting.RED + "NoEntityTrace"; 17 | this.tag = "NoEntityTrace"; 18 | this.description = "adw"; 19 | } 20 | // Code. 21 | public static boolean shouldBlock() { 22 | return false; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/OffhandBypass.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import com.veteran.hack.util.VetHackTessellator; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 8 | import me.travis.wurstplus.wurstplustwo.util.WurstplusTextureHelper; 9 | import me.zero.alpine.fork.listener.Listener; 10 | import net.b0at.api.event.EventHandler; 11 | import net.minecraft.client.Minecraft; 12 | import net.minecraft.client.renderer.GlStateManager; 13 | import net.minecraft.entity.EntityLivingBase; 14 | import net.minecraft.entity.player.EntityPlayer; 15 | import net.minecraft.init.Items; 16 | import net.minecraft.util.EnumHand; 17 | import net.minecraft.util.math.BlockPos; 18 | import net.minecraft.util.math.RayTraceResult; 19 | import net.minecraft.util.math.Vec3d; 20 | import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; 21 | 22 | import java.util.function.Predicate; 23 | 24 | // Set the extend 25 | public class OffhandBypass extends WurstplusHack { 26 | private final Listener sendListener; 27 | 28 | // make the module be set 29 | 30 | public OffhandBypass() { 31 | // Info 32 | super(WurstplusCategory.WURSTPLUS_COMBAT); 33 | this.name = ChatFormatting.YELLOW + "OffhandBypass"; 34 | this.tag = "OffhandBypass"; 35 | this.description = "dsadawdawdas"; 36 | 37 | //test 38 | Listener sendListener; 39 | 40 | this.sendListener = new Listener(e -> { 41 | if (e.getHand() == EnumHand.MAIN_HAND && OffhandBypass.mc.player.getHeldItemMainhand().getItem() == Items.END_CRYSTAL) { 42 | e.setCanceled(true); 43 | } 44 | }, (Predicate[])new Predicate[0]); 45 | 46 | } 47 | // Code. 48 | 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/RocanStrafe.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 6 | import net.minecraft.network.play.client.CPacketChatMessage; 7 | import net.minecraftforge.client.MinecraftForgeClient; 8 | import net.minecraftforge.common.MinecraftForge; 9 | 10 | public final class RocanStrafe extends WurstplusHack { 11 | public RocanStrafe() { 12 | super(WurstplusCategory.WURSTPLUS_MEMES); 13 | this.name = "AutoCoordLeak"; 14 | this.tag = "ACL"; 15 | this.description = "leak ur coords lmfao"; 16 | } 17 | 18 | public void enable() { 19 | 20 | mc.player.sendChatMessage("i just got backdoored, my coords are: " + mc.player.posX + ", " + mc.player.posY + ", " + mc.player.posZ + ". Come here kill me!"); 21 | WurstplusMessageUtil.send_client_message(":trollface:"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/memes/TrueDurability.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.memes; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | public class TrueDurability extends WurstplusHack { 8 | private static TrueDurability instance; 9 | 10 | public TrueDurability() { 11 | super(WurstplusCategory.WURSTPLUS_MEMES); 12 | this.name = ChatFormatting.RED + "TrueDurabilityHUD"; 13 | this.tag = "TrueDurabilityHUD"; 14 | this.description = "TrueDurabilityHUD"; 15 | } 16 | public static TrueDurability getInstance() { 17 | if (TrueDurability.instance == null) { 18 | TrueDurability.instance = new TrueDurability(); 19 | } 20 | return TrueDurability.instance; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/ClientSideHaste.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.travis.wurstplus.wurstplustwo.hacks.movement.ClientSideSpeed; 8 | import net.minecraft.init.MobEffects; 9 | import net.minecraft.potion.Potion; 10 | import net.minecraft.potion.PotionEffect; 11 | 12 | public class ClientSideHaste extends WurstplusHack { 13 | public ClientSideHaste() { 14 | super(WurstplusCategory.WURSTPLUS_MISC); 15 | this.name = ChatFormatting.GOLD + "Client Side Haste"; 16 | this.tag = "ClientSideHaste"; 17 | this.description = "Gives you haste, wow."; 18 | } 19 | 20 | WurstplusSetting haste_speed = create("HasteSpeed", "HSpeed", 1, 0, 5); 21 | 22 | public void update() { 23 | final PotionEffect effect = new PotionEffect(Potion.getPotionById(3), 123456789, haste_speed.get_value(1)); 24 | effect.setPotionDurationMax(true); 25 | ClientSideSpeed.mc.player.addPotionEffect(effect); 26 | } 27 | public void disable() { 28 | ClientSideSpeed.mc.player.removePotionEffect(Potion.getPotionById(3)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/ClientSideStrenght.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.travis.wurstplus.wurstplustwo.hacks.movement.ClientSideSpeed; 8 | import net.minecraft.potion.Potion; 9 | import net.minecraft.potion.PotionEffect; 10 | 11 | public class ClientSideStrenght extends WurstplusHack { 12 | public ClientSideStrenght() { 13 | super(WurstplusCategory.WURSTPLUS_MISC); 14 | this.name = ChatFormatting.GOLD + "Strenght"; 15 | this.tag = "ClientSideStrenght"; 16 | this.description = "Gives you strenght, wow."; 17 | } 18 | 19 | WurstplusSetting str_multiplier = create("Multiplier", "Multiplier", 1, 0, 2); 20 | 21 | public void update() { 22 | final PotionEffect effect = new PotionEffect(Potion.getPotionById(5), 123456789, str_multiplier.get_value(1)); 23 | effect.setPotionDurationMax(true); 24 | ClientSideSpeed.mc.player.addPotionEffect(effect); 25 | } 26 | public void disable() { 27 | ClientSideSpeed.mc.player.removePotionEffect(Potion.getPotionById(5)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/TwoBored2Wait.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import com.mojang.authlib.GameProfile; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.minecraft.client.entity.EntityOtherPlayerMP; 7 | import net.minecraft.entity.Entity; 8 | import net.minecraft.world.GameType; 9 | import net.minecraft.world.World; 10 | 11 | import java.util.UUID; 12 | 13 | public class TwoBored2Wait extends WurstplusHack { 14 | public TwoBored2Wait() { 15 | super(WurstplusCategory.WURSTPLUS_MISC); 16 | this.name = "Client Side Survival"; 17 | this.tag = "ClientSideSurvival"; 18 | this.description = "makes your gamemode survival in client side"; 19 | } 20 | 21 | @Override 22 | public void update() { 23 | if (mc.player==null || mc.playerController==null) return; 24 | if(!mc.playerController.getCurrentGameType().equals(GameType.SURVIVAL)) { 25 | mc.playerController.setGameType(GameType.SURVIVAL); 26 | mc.player.setGameType(GameType.SURVIVAL); 27 | } 28 | } 29 | 30 | @Override 31 | protected void enable() { 32 | if (mc.player==null || mc.playerController==null) return; 33 | mc.playerController.setGameType(GameType.SURVIVAL); 34 | mc.player.setGameType(GameType.SURVIVAL); 35 | } 36 | public void disable() { 37 | if (mc.player==null || mc.playerController==null) return; 38 | if(!mc.playerController.getCurrentGameType().equals(GameType.SURVIVAL)) { 39 | mc.playerController.setGameType(GameType.SURVIVAL); 40 | mc.player.setGameType(GameType.SURVIVAL); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/TwoBored2Wait2.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import com.mojang.authlib.GameProfile; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.minecraft.client.entity.EntityOtherPlayerMP; 7 | import net.minecraft.entity.Entity; 8 | import net.minecraft.world.GameType; 9 | import net.minecraft.world.World; 10 | 11 | import java.util.UUID; 12 | 13 | public class TwoBored2Wait2 extends WurstplusHack { 14 | public TwoBored2Wait2() { 15 | super(WurstplusCategory.WURSTPLUS_MISC); 16 | this.name = "Client Side Creative"; 17 | this.tag = "ClientSideCreative"; 18 | this.description = "makes your gamemode creative in client side"; 19 | } 20 | 21 | @Override 22 | public void update() { 23 | if (mc.player==null || mc.playerController==null) return; 24 | if(!mc.playerController.getCurrentGameType().equals(GameType.CREATIVE)) { 25 | mc.playerController.setGameType(GameType.CREATIVE); 26 | mc.player.setGameType(GameType.CREATIVE); 27 | } 28 | } 29 | 30 | @Override 31 | protected void enable() { 32 | if (mc.player==null || mc.playerController==null) return; 33 | mc.playerController.setGameType(GameType.CREATIVE); 34 | mc.player.setGameType(GameType.CREATIVE); 35 | } 36 | public void disable() { 37 | if (mc.player==null || mc.playerController==null) return; 38 | if(!mc.playerController.getCurrentGameType().equals(GameType.SURVIVAL)) { 39 | mc.playerController.setGameType(GameType.SURVIVAL); 40 | mc.player.setGameType(GameType.SURVIVAL); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/WurstplusAutoWither.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.minecraft.block.Block; 7 | import net.minecraft.block.BlockSoulSand; 8 | import net.minecraft.init.Items; 9 | import net.minecraft.item.ItemBlock; 10 | import net.minecraft.item.ItemStack; 11 | 12 | public class WurstplusAutoWither extends WurstplusHack { 13 | 14 | public WurstplusAutoWither() { 15 | super(WurstplusCategory.WURSTPLUS_MISC); 16 | 17 | this.name = "Auto Wither"; 18 | this.tag = "AutoWither"; 19 | this.description = "makes withers"; 20 | } 21 | 22 | WurstplusSetting range = create("Range", "WitherRange", 4, 0, 6); 23 | 24 | private int head_slot; 25 | private int sand_slot; 26 | 27 | @Override 28 | protected void enable() { 29 | 30 | } 31 | 32 | public boolean has_blocks() { 33 | 34 | int count = 0; 35 | 36 | for (int i = 0; i < 9; ++i) { 37 | 38 | final ItemStack stack = mc.player.inventory.getStackInSlot(i); 39 | 40 | if (stack != ItemStack.EMPTY && stack.getItem() instanceof ItemBlock) { 41 | 42 | final Block block = ((ItemBlock) stack.getItem()).getBlock(); 43 | 44 | if (block instanceof BlockSoulSand) { 45 | sand_slot = i; 46 | count++; 47 | break; 48 | } 49 | 50 | } 51 | } 52 | 53 | for (int i = 0; i < 9; ++i) { 54 | 55 | final ItemStack stack = mc.player.inventory.getStackInSlot(i); 56 | 57 | if (stack.getItem() == Items.SKULL && stack.getItemDamage() == 1) { 58 | head_slot = i; 59 | count++; 60 | break; 61 | } 62 | 63 | } 64 | 65 | return count == 2; 66 | 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/WurstplusCapes.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | public class WurstplusCapes extends WurstplusHack { 8 | 9 | public WurstplusCapes() { 10 | super(WurstplusCategory.WURSTPLUS_MISC); 11 | 12 | this.name = "Capes"; 13 | this.tag = "Capes"; 14 | this.description = "see epic capes behind epic dudes"; 15 | } 16 | 17 | WurstplusSetting cape = create("Cape", "CapeCape", "New", combobox("New")); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/WurstplusFakePlayer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import com.mojang.authlib.GameProfile; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.minecraft.client.entity.EntityOtherPlayerMP; 7 | 8 | import java.util.UUID; 9 | 10 | public class WurstplusFakePlayer extends WurstplusHack { 11 | 12 | public WurstplusFakePlayer() { 13 | super(WurstplusCategory.WURSTPLUS_BETA); 14 | 15 | this.name = "Fake Player"; 16 | this.tag = "FakePlayer"; 17 | this.description = "hahahaaha what a noob its in beta ahahahahaha"; 18 | } 19 | 20 | private EntityOtherPlayerMP fake_player; 21 | 22 | @Override 23 | protected void enable() { 24 | 25 | fake_player = new EntityOtherPlayerMP(mc.world, new GameProfile(UUID.fromString("a07208c2-01e5-4eac-a3cf-a5f5ef2a4700"), "popbob")); 26 | fake_player.copyLocationAndAnglesFrom(mc.player); 27 | fake_player.rotationYawHead = mc.player.rotationYawHead; 28 | mc.world.addEntityToWorld(-100, fake_player); 29 | 30 | } 31 | 32 | @Override 33 | protected void disable() { 34 | try { 35 | mc.world.removeEntity(fake_player); 36 | } catch (Exception ignored) {} 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/misc/WurstplusFastUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.misc; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import net.minecraft.item.Item; 7 | import net.minecraft.item.ItemEndCrystal; 8 | import net.minecraft.item.ItemExpBottle; 9 | 10 | 11 | public class WurstplusFastUtil extends WurstplusHack { 12 | 13 | public WurstplusFastUtil() { 14 | super(WurstplusCategory.WURSTPLUS_MISC); 15 | 16 | this.name = "Fast Util"; 17 | this.tag = "FastUtil"; 18 | this.description = "use things faster"; 19 | } 20 | 21 | WurstplusSetting fast_place = create("Place","WurstplusFastPlace", false); 22 | WurstplusSetting fast_break = create("Break","WurstplusFastBreak",false); 23 | WurstplusSetting crystal = create("Crystal", "WurstplusFastCrystal",false); 24 | WurstplusSetting exp = create("EXP","WurstplusFastExp",true); 25 | 26 | @Override 27 | public void update() { 28 | Item main = mc.player.getHeldItemMainhand().getItem(); 29 | Item off = mc.player.getHeldItemOffhand().getItem(); 30 | 31 | boolean main_exp = main instanceof ItemExpBottle; 32 | boolean off_exp = off instanceof ItemExpBottle; 33 | boolean main_cry = main instanceof ItemEndCrystal; 34 | boolean off_cry = off instanceof ItemEndCrystal; 35 | 36 | if (main_exp | off_exp && exp.get_value(true)) { 37 | mc.rightClickDelayTimer = 0; 38 | } 39 | 40 | if (main_cry | off_cry && crystal.get_value(true)) { 41 | mc.rightClickDelayTimer = 0; 42 | } 43 | 44 | if (!(main_exp | off_exp | main_cry | off_cry) && fast_place.get_value(true)) { 45 | mc.rightClickDelayTimer = 0; 46 | } 47 | 48 | if (fast_break.get_value(true)) { 49 | mc.playerController.blockHitDelay = 0; 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/BlockLag.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.travis.wurstplus.wurstplustwo.util.ZoriWrapper; 8 | import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; 9 | 10 | // Set the extend 11 | public class BlockLag extends WurstplusHack { 12 | 13 | // make the module be set 14 | 15 | public BlockLag() { 16 | // Info 17 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 18 | this.name = ChatFormatting.RED + "BlockLag"; 19 | this.tag = "Burrow"; 20 | this.description = "burrow ezzz from zori lmfao ez nig"; 21 | } 22 | // Code. 23 | public void onEnable() { 24 | if (this.is_active()) { 25 | mc.player.jump(); 26 | 27 | mc.player.setPosition(mc.player.posX, mc.player.posY - 0.420, mc.player.posZ); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/ClientSideSpeed.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | import net.minecraft.potion.Potion; 8 | import net.minecraft.potion.PotionEffect; 9 | 10 | public class ClientSideSpeed extends WurstplusHack { 11 | 12 | WurstplusSetting speed = create("Speed", "CSPSpeed", 1, 0, 5); 13 | 14 | public ClientSideSpeed() { 15 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 16 | this.name = "Client Side Speed"; 17 | this.tag = "ClientSideSpeed"; 18 | this.description = "gives speed potion effect client side"; 19 | } 20 | public void update() { 21 | final PotionEffect effect = new PotionEffect(Potion.getPotionById(1), 123456789, speed.get_value(1)); 22 | effect.setPotionDurationMax(true); 23 | ClientSideSpeed.mc.player.addPotionEffect(effect); 24 | } 25 | public void disable() { 26 | ClientSideSpeed.mc.player.removePotionEffect(Potion.getPotionById(1)); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/ElytraFly.java: -------------------------------------------------------------------------------- 1 | //Deobfuscated with https://github.com/PetoPetko/Minecraft-Deobfuscator3000 using mappings "1.12 stable mappings"! 2 | 3 | // 4 | // Decompiled by Procyon v0.5.36 5 | // 6 | 7 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 8 | 9 | import java.util.Iterator; 10 | 11 | import com.mojang.realmsclient.gui.ChatFormatting; 12 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 13 | import me.travis.wurstplus.wurstplustwo.util.WurstplusMessageUtil; 14 | import net.minecraft.entity.item.EntityFallingBlock; 15 | import net.minecraft.entity.Entity; 16 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 17 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 18 | import net.minecraftforge.client.MinecraftForgeClient; 19 | 20 | public class ElytraFly extends WurstplusHack 21 | { 22 | public ElytraFly() { 23 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 24 | this.name = ChatFormatting.RED + "ElytraFly"; 25 | this.tag = "ElytraFly"; 26 | this.description = "fly w elytra duh"; 27 | } 28 | 29 | WurstplusSetting speed = create("Speed", "ElytraSpeed", 1.16, 1.10, 1.16); 30 | 31 | @Override 32 | public void update() { 33 | if(mc.player.capabilities.isFlying || mc.player.isElytraFlying()) 34 | mc.player.setSprinting(false); 35 | if (mc.player.capabilities.isFlying) { 36 | mc.player.setVelocity(0, 0, 0); 37 | mc.player.setPosition(mc.player.posX, mc.player.posY + 0, mc.player.posZ); 38 | mc.player.capabilities.setFlySpeed((float)speed.get_value(1)); 39 | mc.player.setSprinting(false); 40 | } 41 | 42 | if (mc.player.onGround) { 43 | mc.player.capabilities.allowFlying = false; 44 | } 45 | 46 | if (mc.player.isElytraFlying()) { 47 | mc.player.capabilities.setFlySpeed(.915f); 48 | mc.player.capabilities.isFlying = true; 49 | 50 | if (!mc.player.capabilities.isCreativeMode) 51 | mc.player.capabilities.allowFlying = true; 52 | } 53 | } 54 | 55 | public void onEnable() { 56 | WurstplusMessageUtil.send_client_message("Enabled."); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/IceSpeed.java: -------------------------------------------------------------------------------- 1 | //Deobfuscated with https://github.com/PetoPetko/Minecraft-Deobfuscator3000 using mappings "1.12 stable mappings"! 2 | 3 | // 4 | // Decompiled by Procyon v0.5.36 5 | // 6 | 7 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 8 | 9 | import net.minecraft.init.Blocks; 10 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 11 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 12 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 13 | 14 | public class IceSpeed extends WurstplusHack 15 | { 16 | WurstplusSetting slipperiness; 17 | 18 | public IceSpeed() { 19 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 20 | this.slipperiness = this.create("Slipperiness", "Slipperiness", 0.20000000298023224, 0.0, 10.0); 21 | this.name = "Ice Speed"; 22 | this.tag = "Ice Speed"; 23 | this.description = "IceSpeed"; 24 | } 25 | 26 | @Override 27 | public void update() { 28 | Blocks.ICE.slipperiness = (float)this.slipperiness.get_value(1); 29 | Blocks.PACKED_ICE.slipperiness = (float)this.slipperiness.get_value(1); 30 | Blocks.FROSTED_ICE.slipperiness = (float)this.slipperiness.get_value(1); 31 | } 32 | 33 | public void disable() { 34 | Blocks.ICE.slipperiness = 0.98f; 35 | Blocks.PACKED_ICE.slipperiness = 0.98f; 36 | Blocks.FROSTED_ICE.slipperiness = 0.98f; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/NoSlow.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventBus; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import me.zero.alpine.fork.listener.EventHandler; 8 | import me.zero.alpine.fork.listener.Listener; 9 | import net.minecraft.util.MovementInput; 10 | import net.minecraftforge.client.event.InputUpdateEvent; 11 | 12 | 13 | 14 | public class NoSlow extends WurstplusHack 15 | { 16 | private boolean sneaking; 17 | 18 | public NoSlow() { 19 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 20 | 21 | this.name = "No Slow"; 22 | this.tag = "NoSlow"; 23 | this.description = "Just no slows"; 24 | } 25 | 26 | 27 | @EventHandler 28 | private final Listener eventListener = new Listener<>(event -> { 29 | if (mc.player.isHandActive() && !mc.player.isRiding()) { 30 | event.getMovementInput().moveStrafe *= 5; 31 | event.getMovementInput().moveForward *= 5; 32 | } 33 | }); 34 | 35 | public void onEnable(){ 36 | WurstplusEventBus.EVENT_BUS.subscribe(this); 37 | } 38 | 39 | public void onDisable(){ 40 | WurstplusEventBus.EVENT_BUS.unsubscribe(this); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/WurstplusSprint.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | public class WurstplusSprint extends WurstplusHack { 8 | 9 | public WurstplusSprint() { 10 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 11 | 12 | this.name = "Sprint"; 13 | this.tag = "Sprint"; 14 | this.description = "ZOOOOOOOOM"; 15 | } 16 | 17 | WurstplusSetting rage = create("Rage", "SprintRage", true); 18 | 19 | @Override 20 | public void update() { 21 | 22 | if (mc.player == null) return; 23 | 24 | if (rage.get_value(true) && (mc.player.moveForward != 0 || mc.player.moveStrafing != 0)) { 25 | mc.player.setSprinting(true); 26 | } else mc.player.setSprinting(mc.player.moveForward > 0 || mc.player.moveStrafing > 0); 27 | 28 | } 29 | 30 | 31 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/movement/WurstplusVelocity.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.movement; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.event.WurstplusEventCancellable; 5 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventEntity; 6 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventPacket; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 8 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 9 | import me.zero.alpine.fork.listener.EventHandler; 10 | import me.zero.alpine.fork.listener.Listener; 11 | import net.minecraft.network.play.server.SPacketEntityVelocity; 12 | import net.minecraft.network.play.server.SPacketExplosion; 13 | 14 | 15 | public class WurstplusVelocity extends WurstplusHack { 16 | public WurstplusVelocity() { 17 | super(WurstplusCategory.WURSTPLUS_MOVEMENT); 18 | 19 | this.name = "Velocity"; 20 | this.tag = "Velocity"; 21 | this.description = "No kockback"; 22 | } 23 | 24 | @EventHandler 25 | private final Listener damage = new Listener<>(event -> { 26 | if (event.get_era() == WurstplusEventCancellable.Era.EVENT_PRE) { 27 | if (event.get_packet() instanceof SPacketEntityVelocity) { 28 | SPacketEntityVelocity knockback = (SPacketEntityVelocity) event.get_packet(); 29 | 30 | if (knockback.getEntityID() == mc.player.getEntityId()) { 31 | event.cancel(); 32 | 33 | knockback.motionX *= 0.0f; 34 | knockback.motionY *= 0.0f; 35 | knockback.motionZ *= 0.0f; 36 | } 37 | } else if (event.get_packet() instanceof SPacketExplosion) { 38 | event.cancel(); 39 | 40 | SPacketExplosion knockback = (SPacketExplosion) event.get_packet(); 41 | 42 | knockback.motionX *= 0.0f; 43 | knockback.motionY *= 0.0f; 44 | knockback.motionZ *= 0.0f; 45 | } 46 | } 47 | }); 48 | 49 | @EventHandler 50 | private final Listener explosion = new Listener<>(event -> { 51 | if (event.get_entity() == mc.player) { 52 | event.cancel(); 53 | 54 | } 55 | }); 56 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/FullBright.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | 6 | public class FullBright extends WurstplusHack { 7 | float old_gamme_value; 8 | 9 | public FullBright() { 10 | super(WurstplusCategory.WURSTPLUS_RENDER); 11 | 12 | // Info. 13 | this.name = "Brightness"; 14 | this.tag = "Brightness"; 15 | this.description = "Set full gamma."; 16 | } 17 | 18 | @Override 19 | public void disable() { 20 | mc.gameSettings.gammaSetting -= 1000; 21 | } 22 | 23 | @Override 24 | public void enable() { 25 | mc.gameSettings.gammaSetting += 1000; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/GlowESP.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | import java.util.Iterator; 3 | import net.minecraft.entity.Entity; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.travis.wurstplus.wurstplustwo.util.ZoriWrapper; 7 | 8 | public class GlowESP extends WurstplusHack { 9 | 10 | public GlowESP() { 11 | super(WurstplusCategory.WURSTPLUS_RENDER); 12 | 13 | this.name = "Glow ESP"; 14 | this.tag = "GlowESP"; 15 | this.description = "GlowESP lol"; 16 | } 17 | @Override 18 | public void update() { 19 | for (final Entity entity : ZoriWrapper.mc.world.loadedEntityList) { 20 | if (!entity.isGlowing()) { 21 | entity.setGlowing(true); 22 | } 23 | } 24 | } 25 | 26 | public void disable() { 27 | for (final Entity entity : ZoriWrapper.mc.world.loadedEntityList) { 28 | if (entity.isGlowing()) { 29 | entity.setGlowing(false); 30 | } 31 | } 32 | super.disable(); 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/NoHurtCamDEV.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | // Default Imports 4 | import com.mojang.realmsclient.gui.ChatFormatting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | 8 | // Set the extend 9 | public class NoHurtCamDEV extends WurstplusHack { 10 | 11 | // make the module be set 12 | 13 | public NoHurtCamDEV() { 14 | // Info 15 | super(WurstplusCategory.WURSTPLUS_MEMES); 16 | this.name = ChatFormatting.RED + "NoChat"; 17 | this.tag = "nc"; 18 | this.description = "aaaaaaaaaaaaaaaaaaaaaa"; 19 | NoHurtCamDEV.INSTANCE = this; 20 | } 21 | // Code. 22 | private static NoHurtCamDEV INSTANCE; 23 | 24 | public static boolean shouldDisable() { 25 | return NoHurtCamDEV.INSTANCE != null && NoHurtCamDEV.INSTANCE.is_active(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/NoRender.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import com.mojang.realmsclient.gui.ChatFormatting; 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import net.minecraft.network.play.client.CPacketCloseWindow; 8 | 9 | public class NoRender extends WurstplusHack { 10 | public NoRender() { 11 | super(WurstplusCategory.WURSTPLUS_RENDER); 12 | this.name = ChatFormatting.RED + "NoChat"; 13 | this.tag = "NoRenderDEV"; 14 | this.description = "no render lol"; 15 | } 16 | WurstplusSetting ingameguichanges = create("wdawdaw", "dawdawd", true); 17 | 18 | public void update() { 19 | if (ingameguichanges.get_value(true)) { 20 | mc.ingameGUI.getChatGUI().clearChatMessages(true); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/NoSandRender.java: -------------------------------------------------------------------------------- 1 | //Deobfuscated with https://github.com/PetoPetko/Minecraft-Deobfuscator3000 using mappings "1.12 stable mappings"! 2 | 3 | // 4 | // Decompiled by Procyon v0.5.36 5 | // 6 | 7 | package me.travis.wurstplus.wurstplustwo.hacks.render; 8 | 9 | import java.util.Iterator; 10 | 11 | import com.mojang.realmsclient.gui.ChatFormatting; 12 | import me.travis.wurstplus.wurstplustwo.util.UtilTwo; 13 | import net.b0at.api.event.EventHandler; 14 | import net.minecraft.entity.item.EntityFallingBlock; 15 | import net.minecraft.entity.Entity; 16 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 17 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 18 | import net.minecraft.item.ItemShulkerBox; 19 | import net.minecraft.item.ItemStack; 20 | import net.minecraft.tileentity.TileEntityShulkerBox; 21 | import net.minecraftforge.fml.common.gameevent.TickEvent; 22 | 23 | public class NoSandRender extends WurstplusHack 24 | { 25 | TileEntityShulkerBox sb; 26 | 27 | public NoSandRender() { 28 | super(WurstplusCategory.WURSTPLUS_RENDER); 29 | this.name = ChatFormatting.RED + "peek idk"; 30 | this.tag = "NoSandRender"; 31 | this.description = "allows you to drop FPS of other players but not you"; 32 | this.sb = null; 33 | } 34 | 35 | public void toggleState() { 36 | ItemStack is = mc.player.inventory.getCurrentItem(); 37 | 38 | if (is.getItem() instanceof ItemShulkerBox) { 39 | TileEntityShulkerBox entityBox = new TileEntityShulkerBox(); 40 | UtilTwo.setPrivateValue(TileEntityShulkerBox.class, entityBox, ((ItemShulkerBox) is.getItem()).getBlock(), "blockType"); 41 | entityBox.setWorld(mc.world); 42 | entityBox.readFromNBT(is.getTagCompound().getCompoundTag("BlockEntityTag")); 43 | sb = entityBox; 44 | } 45 | } 46 | 47 | @EventHandler 48 | public void onTick(TickEvent.PlayerTickEvent e) { 49 | if (sb != null) { 50 | mc.player.displayGUIChest(sb); 51 | sb = null; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/NoWeather.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | 6 | public class NoWeather extends WurstplusHack { 7 | 8 | 9 | public NoWeather() { 10 | 11 | super(WurstplusCategory.WURSTPLUS_RENDER); 12 | 13 | this.name = "No Weather"; 14 | this.tag = "NoWeather"; 15 | this.description = "Disables weather render"; 16 | 17 | } 18 | 19 | @Override 20 | public void update() { 21 | if (mc.world == null) { 22 | return; 23 | } 24 | if (mc.world.isRaining()) { 25 | mc.world.setRainStrength(0.0f); 26 | } 27 | if (mc.world.isThundering()) { 28 | mc.world.setThunderStrength(0.0f); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/OffhandSwing.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | 4 | import net.minecraft.util.EnumHand; 5 | import net.minecraftforge.common.MinecraftForge; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 7 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 8 | import me.travis.wurstplus.wurstplustwo.util.ZoriWrapper; 9 | 10 | 11 | 12 | public class OffhandSwing extends WurstplusHack { 13 | 14 | public OffhandSwing() { 15 | 16 | 17 | super(WurstplusCategory.WURSTPLUS_RENDER); 18 | 19 | this.name = "Offhand Swing"; 20 | this.tag = "OffhandSwing"; 21 | this.description = "Swing your offhand instead of mainhand"; 22 | } 23 | @Override 24 | public void update() { 25 | if (ZoriWrapper.mc.world == null) { 26 | return; 27 | } 28 | ZoriWrapper.getPlayer().swingingHand = EnumHand.OFF_HAND; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/SmallHand.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | 7 | public class SmallHand extends WurstplusHack { 8 | WurstplusSetting offset = create("Offset", "SmallHandOffset", 90, 0, 360); 9 | 10 | public SmallHand() { 11 | super(WurstplusCategory.WURSTPLUS_RENDER); 12 | 13 | this.name = "Small Hand"; 14 | this.tag = "SmallHand"; 15 | this.description = "Small hand in game."; 16 | 17 | } 18 | 19 | @Override 20 | public void update() { 21 | mc.player.renderArmPitch = offset.get_value(1); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/SwingAnimFix.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | import me.travis.wurstplus.wurstplustwo.util.ZoriWrapper; 6 | 7 | public class SwingAnimFix extends WurstplusHack { 8 | 9 | public SwingAnimFix() { 10 | 11 | 12 | super(WurstplusCategory.WURSTPLUS_RENDER); 13 | 14 | this.name = "Swing Anim Fix"; 15 | this.tag = "SwingAnimFix"; 16 | this.description = "pasted from zori lol"; 17 | } 18 | @Override 19 | public void update() { 20 | if (ZoriWrapper.getPlayer() == null) { 21 | return; 22 | } 23 | if (ZoriWrapper.mc.entityRenderer.itemRenderer.equippedProgressMainHand < 1.0f) { 24 | ZoriWrapper.mc.entityRenderer.itemRenderer.equippedProgressMainHand = 1.0f; 25 | } 26 | if (ZoriWrapper.mc.entityRenderer.itemRenderer.itemStackMainHand != ZoriWrapper.getPlayer().getHeldItemMainhand()) { 27 | ZoriWrapper.mc.entityRenderer.itemRenderer.itemStackMainHand = ZoriWrapper.getPlayer().getHeldItemMainhand(); 28 | } 29 | } 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/WurstplusAlwaysNight.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventRender; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | 9 | public class WurstplusAlwaysNight extends WurstplusHack { 10 | 11 | public WurstplusAlwaysNight() { 12 | super(WurstplusCategory.WURSTPLUS_RENDER); 13 | 14 | this.name = "Always Night"; 15 | this.tag = "AlwaysNight"; 16 | this.description = "see even less"; 17 | } 18 | 19 | @EventHandler 20 | private final Listener on_render = new Listener<>(event -> { 21 | if (mc.world == null) return; 22 | mc.world.setWorldTime(18000); 23 | }); 24 | 25 | @Override 26 | public void update() { 27 | if (mc.world == null) return; 28 | mc.world.setWorldTime(18000); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/WurstplusAntifog.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.event.events.WurstplusEventSetupFog; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 6 | import me.zero.alpine.fork.listener.EventHandler; 7 | import me.zero.alpine.fork.listener.Listener; 8 | import net.minecraft.client.renderer.GlStateManager; 9 | 10 | public class WurstplusAntifog extends WurstplusHack { 11 | 12 | public WurstplusAntifog() { 13 | super(WurstplusCategory.WURSTPLUS_RENDER); 14 | 15 | this.name = "Anti Fog"; 16 | this.tag = "AntiFog"; 17 | this.description = "see even more"; 18 | } 19 | 20 | @EventHandler 21 | private final Listener setup_fog = new Listener<> (event -> { 22 | 23 | event.cancel(); 24 | 25 | mc.entityRenderer.setupFogColor(false); 26 | 27 | GlStateManager.glNormal3f(0.0F, -1.0F, 0.0F); 28 | GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); 29 | GlStateManager.colorMaterial(1028, 4608); 30 | 31 | }); 32 | 33 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/WurstplusShulkerPreview.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | 6 | public class WurstplusShulkerPreview extends WurstplusHack { 7 | 8 | public WurstplusShulkerPreview() { 9 | super(WurstplusCategory.WURSTPLUS_RENDER); 10 | 11 | this.name = "Shulker Preview"; 12 | this.tag = "ShulkerPreview"; 13 | this.description = "See what's inside a shulker via hovering over it"; 14 | } 15 | 16 | // STOLEN FROM KAMI :DDDDDDDDD 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/hacks/render/WurstplusViewmodleChanger.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.hacks.render; 2 | 3 | 4 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 5 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusCategory; 6 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 7 | import net.minecraftforge.client.event.EntityViewRenderEvent; 8 | import net.minecraftforge.common.MinecraftForge; 9 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 10 | 11 | public class WurstplusViewmodleChanger extends WurstplusHack { 12 | public WurstplusViewmodleChanger() { 13 | super(WurstplusCategory.WURSTPLUS_RENDER); 14 | 15 | this.name = "Custom Viewmodel"; 16 | this.tag = "CustomViewmodel"; 17 | this.description = "anti chad"; 18 | } 19 | 20 | WurstplusSetting custom_fov = create("FOV", "FOVSlider", 130, 110, 170); 21 | WurstplusSetting items = create("Items", "FOVItems", true); 22 | WurstplusSetting viewmodle_fov = create("Items FOV", "ItemsFOVSlider", 130, 110, 170); 23 | WurstplusSetting normal_offset = create("Offset", "FOVOffset", true); 24 | WurstplusSetting offset = create("Offset Main", "FOVOffsetMain", 0.7, 0.0, 1.0); 25 | WurstplusSetting offset_x = create("Offset X", "FOVOffsetX", 0.0, -1.0, 1.0); 26 | WurstplusSetting offset_y = create("Offset Y", "FOVOffsetY", 0.0, -1.0, 1.0); 27 | WurstplusSetting main_x = create("Main X", "FOVMainX", 0.0, -1.0, 1.0); 28 | WurstplusSetting main_y = create("Main Y", "FOVMainY", 0.0, -1.0, 1.0); 29 | 30 | 31 | private float fov; 32 | 33 | @Override 34 | protected void enable() { 35 | fov = mc.gameSettings.fovSetting; 36 | MinecraftForge.EVENT_BUS.register(this); 37 | } 38 | 39 | @Override 40 | protected void disable() { 41 | mc.gameSettings.fovSetting = fov; 42 | MinecraftForge.EVENT_BUS.unregister(this); 43 | } 44 | 45 | @Override 46 | public void update() { 47 | mc.gameSettings.fovSetting = custom_fov.get_value(1); 48 | } 49 | 50 | @SubscribeEvent 51 | public void fov_event(final EntityViewRenderEvent.FOVModifier m) { 52 | if (items.get_value(true)) 53 | m.setFOV(viewmodle_fov.get_value(1)); 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/manager/WurstplusCommandManager.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.manager; 2 | 3 | import me.travis.wurstplus.wurstplustwo.command.WurstplusCommands; 4 | import net.minecraft.util.text.Style; 5 | import net.minecraft.util.text.TextFormatting; 6 | 7 | public class WurstplusCommandManager { 8 | 9 | public static WurstplusCommands command_list; 10 | 11 | public WurstplusCommandManager() { 12 | command_list = new WurstplusCommands(new Style().setColor(TextFormatting.BLUE)); 13 | } 14 | 15 | public static void set_prefix(String new_prefix) { 16 | command_list.set_prefix(new_prefix); 17 | } 18 | 19 | public static String get_prefix() { 20 | return command_list.get_prefix(); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/manager/WurstplusSettingManager.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.manager; 2 | 3 | import me.travis.wurstplus.wurstplustwo.guiscreen.settings.WurstplusSetting; 4 | import me.travis.wurstplus.wurstplustwo.hacks.WurstplusHack; 5 | 6 | import java.util.ArrayList; 7 | 8 | 9 | public class WurstplusSettingManager { 10 | 11 | public ArrayList array_setting; 12 | 13 | public WurstplusSettingManager() { 14 | this.array_setting = new ArrayList<>(); 15 | } 16 | 17 | public void register(WurstplusSetting setting) { 18 | this.array_setting.add(setting); 19 | } 20 | 21 | public ArrayList get_array_settings() { 22 | return this.array_setting; 23 | } 24 | 25 | public WurstplusSetting get_setting_with_tag(WurstplusHack module, String tag) { 26 | WurstplusSetting setting_requested = null; 27 | 28 | for (WurstplusSetting settings : get_array_settings()) { 29 | if (settings.get_master().equals(module) && settings.get_tag().equalsIgnoreCase(tag)) { 30 | setting_requested = settings; 31 | } 32 | } 33 | 34 | return setting_requested; 35 | } 36 | 37 | public WurstplusSetting get_setting_with_tag(String tag, String tag_) { 38 | WurstplusSetting setting_requested = null; 39 | 40 | for (WurstplusSetting settings : get_array_settings()) { 41 | if (settings.get_master().get_tag().equalsIgnoreCase(tag) && settings.get_tag().equalsIgnoreCase(tag_)) { 42 | setting_requested = settings; 43 | break; 44 | } 45 | } 46 | 47 | return setting_requested; 48 | } 49 | 50 | public ArrayList get_settings_with_hack(WurstplusHack module) { 51 | ArrayList setting_requesteds = new ArrayList<>(); 52 | 53 | for (WurstplusSetting settings : get_array_settings()) { 54 | if (settings.get_master().equals(module)) { 55 | setting_requesteds.add(settings); 56 | } 57 | } 58 | 59 | return setting_requesteds; 60 | } 61 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusCapeUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import me.travis.wurstplus.wurstplustwo.util.WurstplusCapeUtil; 4 | 5 | 6 | import java.io.*; 7 | import java.net.URL; 8 | import java.util.ArrayList; 9 | import java.util.Objects; 10 | import java.util.UUID; 11 | 12 | 13 | 14 | 15 | public class WurstplusCapeUtil { 16 | 17 | 18 | final static ArrayList final_uuid_list = get_uuids(); 19 | 20 | public static ArrayList get_uuids() { 21 | try { 22 | URL url = new URL("https://pastebin.com/raw/bUAes9H5"); 23 | BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 24 | final ArrayList uuid_list = new ArrayList<>(); 25 | 26 | String s; 27 | 28 | while ((s = reader.readLine()) != null) { 29 | uuid_list.add(s); 30 | } 31 | 32 | return uuid_list; 33 | } catch (Exception ignored){ 34 | return null; 35 | } 36 | } 37 | 38 | public static boolean is_uuid_valid(UUID uuid) { 39 | for (String u : Objects.requireNonNull(final_uuid_list)) { 40 | if (u.equals(uuid.toString())) { 41 | return true; 42 | } 43 | } 44 | return false; 45 | } 46 | } 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusDamageUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import net.minecraft.item.*; 4 | 5 | public class WurstplusDamageUtil { 6 | 7 | public static int getItemDamage(final ItemStack stack) { 8 | return stack.getMaxDamage() - stack.getItemDamage(); 9 | } 10 | 11 | public static float getDamageInPercent(final ItemStack stack) { 12 | return getItemDamage(stack) / (float)stack.getMaxDamage() * 100.0f; 13 | } 14 | 15 | public static int getRoundedDamage(final ItemStack stack) { 16 | return (int)getDamageInPercent(stack); 17 | } 18 | 19 | public static boolean hasDurability(final ItemStack stack) { 20 | final Item item = stack.getItem(); 21 | return item instanceof ItemArmor || item instanceof ItemSword || item instanceof ItemTool || item instanceof ItemShield; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusDrawnUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class WurstplusDrawnUtil { 7 | 8 | public static List hidden_tags = new ArrayList<>(); 9 | 10 | public static void add_remove_item(String s) { 11 | s = s.toLowerCase(); 12 | if (hidden_tags.contains(s)) { 13 | WurstplusMessageUtil.send_client_message("Added " + s); 14 | hidden_tags.remove(s); 15 | } else { 16 | WurstplusMessageUtil.send_client_message("Removed " + s); 17 | hidden_tags.add(s); 18 | } 19 | 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusEzMessageUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | public class WurstplusEzMessageUtil { 4 | 5 | private static String message; 6 | 7 | public static void set_message(String message) { 8 | WurstplusEzMessageUtil.message = message; 9 | } 10 | 11 | public static String get_message() { 12 | return message; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusOnlineFriends.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.entity.Entity; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | import java.util.stream.Collectors; 9 | 10 | public class WurstplusOnlineFriends { 11 | 12 | public static List entities = new ArrayList(); 13 | 14 | static public List getFriends() { 15 | entities.clear(); 16 | entities.addAll(Minecraft.getMinecraft().world.playerEntities.stream().filter(entityPlayer -> WurstplusFriendUtil.isFriend(entityPlayer.getName())).collect(Collectors.toList())); 17 | 18 | return entities; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusPair.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | public class WurstplusPair { 4 | T key; 5 | S value; 6 | 7 | public WurstplusPair(T key, S value) { 8 | this.key = key; 9 | this.value = value; 10 | } 11 | 12 | public T getKey() { 13 | return key; 14 | } 15 | 16 | public S getValue() { 17 | return value; 18 | } 19 | 20 | public void setKey(T key) { 21 | this.key = key; 22 | } 23 | 24 | public void setValue(S value) { 25 | this.value = value; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusPosManager.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | 5 | public class WurstplusPosManager { 6 | 7 | private static double x; 8 | private static double y; 9 | private static double z; 10 | private static boolean onground; 11 | 12 | private static final Minecraft mc = Minecraft.getMinecraft(); 13 | 14 | public static void updatePosition() { 15 | x = mc.player.posX; 16 | y = mc.player.posY; 17 | z = mc.player.posZ; 18 | onground = mc.player.onGround; 19 | } 20 | 21 | public static void restorePosition() { 22 | mc.player.posX = x; 23 | mc.player.posY = y; 24 | mc.player.posZ = z; 25 | mc.player.onGround = onground; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusTabUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import net.minecraft.client.network.NetworkPlayerInfo; 4 | import net.minecraft.scoreboard.ScorePlayerTeam; 5 | 6 | public class WurstplusTabUtil { 7 | 8 | public static String get_player_name(final NetworkPlayerInfo info) { 9 | final String name = (info.getDisplayName() != null) ? info.getDisplayName().getFormattedText() : ScorePlayerTeam.formatPlayerName(info.getPlayerTeam(), 10 | info.getGameProfile().getName()); 11 | 12 | return name; 13 | } 14 | 15 | public static String section_sign() { 16 | return "\u00A7"; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusTextureHelper.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.client.renderer.texture.ITextureObject; 5 | import net.minecraft.init.Items; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.util.ResourceLocation; 8 | import org.lwjgl.opengl.GL11; 9 | 10 | public class WurstplusTextureHelper { 11 | 12 | final static Minecraft mc = Minecraft.getMinecraft(); 13 | 14 | public static void drawTexture(final ResourceLocation resourceLocation, final float x, final float y, final float width, final float height) { 15 | GL11.glPushMatrix(); 16 | final float size = width / 2.0f; 17 | GL11.glEnable(3042); 18 | GL11.glEnable(3553); 19 | GL11.glEnable(2848); 20 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 21 | bindTexture(resourceLocation); 22 | GL11.glBegin(7); 23 | GL11.glTexCoord2d(0.0f / size, 0.0f / size); 24 | GL11.glVertex2d(x, y); 25 | GL11.glTexCoord2d(0.0f / size, (0.0f + size) / size); 26 | GL11.glVertex2d(x, y + height); 27 | GL11.glTexCoord2d((0.0f + size) / size, (0.0f + size) / size); 28 | GL11.glVertex2d(x + width, y + height); 29 | GL11.glTexCoord2d((0.0f + size) / size, 0.0f / size); 30 | GL11.glVertex2d((x + width), y); 31 | GL11.glEnd(); 32 | GL11.glEnable(3553); 33 | GL11.glDisable(2848); 34 | GL11.glDisable(3042); 35 | GL11.glPopMatrix(); 36 | mc.getRenderItem().renderItemAndEffectIntoGUI(new ItemStack(Items.DIAMOND_HELMET), 999999, 999999); // this NEEDS to be here or everything gets fucked (don't ask me why) 37 | } 38 | 39 | public static void bindTexture(final ResourceLocation resourceLocation) { 40 | try { 41 | ITextureObject texture = mc.getTextureManager().getTexture(resourceLocation); 42 | GL11.glBindTexture(3553, texture.getGlTextureId()); 43 | } catch (Exception ignored) {} 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusTimeUtil.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | import java.util.Calendar; 4 | 5 | public class WurstplusTimeUtil { 6 | 7 | public static int get_hour() { 8 | return Calendar.getInstance().get(Calendar.HOUR_OF_DAY); 9 | } 10 | 11 | public static int get_day() { 12 | return Calendar.getInstance().get(Calendar.DAY_OF_MONTH); 13 | } 14 | 15 | public static int get_month() { 16 | return Calendar.getInstance().get(Calendar.MONTH); 17 | } 18 | 19 | public static int get_minuite() { 20 | return Calendar.getInstance().get(Calendar.MINUTE); 21 | } 22 | 23 | public static int get_second() { 24 | return Calendar.getInstance().get(Calendar.SECOND); 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/WurstplusTimer.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | public class WurstplusTimer { 4 | 5 | private long time; 6 | 7 | public WurstplusTimer() { 8 | this.time = -1L; 9 | } 10 | 11 | public boolean passed(final long ms) { 12 | return this.getTime(System.nanoTime() - this.time) >= ms; 13 | } 14 | 15 | public void reset() { 16 | this.time = System.nanoTime(); 17 | } 18 | 19 | public long getTime(final long time) { 20 | return time / 1000000L; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /src/main/java/me/travis/wurstplus/wurstplustwo/util/ZoriWrapper.java: -------------------------------------------------------------------------------- 1 | package me.travis.wurstplus.wurstplustwo.util; 2 | 3 | 4 | 5 | import net.minecraft.client.gui.FontRenderer; 6 | import net.minecraft.client.multiplayer.WorldClient; 7 | import javax.annotation.Nullable; 8 | import net.minecraft.client.entity.EntityPlayerSP; 9 | import net.minecraft.client.Minecraft; 10 | 11 | 12 | 13 | 14 | 15 | public class ZoriWrapper 16 | { 17 | public static final Minecraft mc; 18 | 19 | @Nullable 20 | public static EntityPlayerSP getPlayer() { 21 | return ZoriWrapper.mc.player; 22 | } 23 | 24 | @Nullable 25 | public static WorldClient getWorld() { 26 | return ZoriWrapper.mc.world; 27 | } 28 | 29 | public static FontRenderer getFontRenderer() { 30 | return ZoriWrapper.mc.fontRenderer; 31 | } 32 | 33 | static { 34 | mc = Minecraft.getMinecraft(); 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/me/xenforu/kelo/util/math/TimerUtil.java: -------------------------------------------------------------------------------- 1 | package me.xenforu.kelo.util.math; 2 | 3 | /** 4 | * made by Xen for Kelo 5 | * at 1/3/2020 6 | **/ 7 | public class TimerUtil { 8 | private long time; 9 | 10 | public TimerUtil() { 11 | time = System.nanoTime() / 1000000L; 12 | } 13 | 14 | public boolean reach(final long time) { 15 | return time() >= time; 16 | } 17 | 18 | public void reset() { 19 | time = System.nanoTime() / 1000000L; 20 | } 21 | 22 | public boolean sleep(final long time) { 23 | if (time() >= time) { 24 | reset(); 25 | return true; 26 | } 27 | return false; 28 | } 29 | public short convertToMS(float perSecond) { 30 | return (short) (int) (1000.0F / perSecond); 31 | } 32 | public long time() { 33 | return System.nanoTime() / 1000000L - time; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/me/zero/alpine/type/Cancellable.java: -------------------------------------------------------------------------------- 1 | package me.zero.alpine.type; 2 | 3 | public class Cancellable 4 | { 5 | private boolean cancelled; 6 | 7 | public final void cancel() { 8 | this.cancelled = true; 9 | } 10 | 11 | public final boolean isCancelled() { 12 | return this.cancelled; 13 | } 14 | } -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/exceptions/ListenerAlreadyRegisteredException.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.exceptions; 2 | 3 | /** 4 | * {@code ListenerAlreadyRegisteredException}'s are thrown when an already registered listener is attempted to be registered again. 5 | */ 6 | public class ListenerAlreadyRegisteredException extends RuntimeException { 7 | /** 8 | * The error message to be formatted with the listener class name. 9 | */ 10 | private static final String ERROR_MESSAGE = "Unable to register listener %s since it is already registered!"; 11 | 12 | /** 13 | * Constructs a new {@code ListenerAlreadyRegisteredException}. 14 | * 15 | * @param listener the instance of the {@code listener} that was already registered 16 | */ 17 | public ListenerAlreadyRegisteredException(Object listener) { 18 | super(String.format(ERROR_MESSAGE, listener.getClass().getName())); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/exceptions/ListenerNotAlreadyRegisteredException.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.exceptions; 2 | 3 | /** 4 | * {@code ListenerNotAlreadyRegisteredException}'s are thrown when an unknown or already deregistered listener is attempted to be deregistered. 5 | */ 6 | public class ListenerNotAlreadyRegisteredException extends RuntimeException { 7 | /** 8 | * The error message to be formatted with the listener class name. 9 | */ 10 | private static final String ERROR_MESSAGE = "Unable to deregister listener %s since it is not already registered!"; 11 | 12 | /** 13 | * Constructs a new {@code ListenerNotAlreadyRegisteredException}. 14 | * 15 | * @param listener the instance of the {@code listener} that was not already registered 16 | */ 17 | public ListenerNotAlreadyRegisteredException(Object listener) { 18 | super(String.format(ERROR_MESSAGE, listener.getClass().getName())); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/sorting/HandlerEncapsulatorSorter.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.sorting; 2 | 3 | import net.b0at.api.event.Subscribe; 4 | import net.b0at.api.event.cache.HandlerEncapsulator; 5 | import net.b0at.api.event.types.EventPriority; 6 | 7 | import java.util.Comparator; 8 | import java.util.NavigableSet; 9 | import java.util.Objects; 10 | 11 | /** 12 | * The {@link Comparator} used to sort {@link HandlerEncapsulator}s based on their {@link EventPriority}. 13 | */ 14 | public class HandlerEncapsulatorSorter implements Comparator> { 15 | /** 16 | * Sorts {@link HandlerEncapsulator}s based on their {@link EventPriority}. 17 | * 18 | *

19 | * Precisely, this allows for the {@link NavigableSet}<{@link HandlerEncapsulator}>s to be sorted with respect 20 | * to the {@link Subscribe}'s {@link EventPriority}. This exact implementation causes new entries in the set to be 21 | * inserted at the end of the section occupied with the same {@link EventPriority}. 22 | *

23 | * 24 | * @param a the first {@link HandlerEncapsulator} used in the comparison 25 | * @param b the second {@link HandlerEncapsulator} used in the comparison 26 | * @return 0 if these {@link HandlerEncapsulator}s are the equal (to ensure uniqueness), 1 if {@code a} has a lower priority than {@code b}, 27 | * -1 if {@code a} has a higher priority than {@code b}, otherwise, compare {@link HandlerEncapsulator#hashCode()} 28 | */ 29 | @Override 30 | public int compare(HandlerEncapsulator a, HandlerEncapsulator b) { 31 | // ensure the GENERAL CONTRACT is always upheld to the highest standard 32 | if (Objects.equals(a, b)) 33 | return 0; 34 | 35 | if (a.getPriority().ordinal() == b.getPriority().ordinal()) 36 | return Integer.compare(a.hashCode(), b.hashCode()); 37 | 38 | if (a.getPriority().ordinal() > b.getPriority().ordinal()) 39 | return 1; 40 | 41 | return -1; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/types/EventPriority.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.types; 2 | 3 | import net.b0at.api.event.Subscribe; 4 | 5 | /** 6 | * Represents the priority of an {@link Subscribe}. 7 | * 8 | *

9 | * {@link Subscribe}s are invoked in the ascending {@link #ordinal()} order, that is: 10 | * starting from {@link #HIGHEST} and ending with {@link #MONITOR}. 11 | *

12 | */ 13 | public enum EventPriority { 14 | /** 15 | * {@link Subscribe}s with this {@link EventPriority} have the FIRST (1) priority to be invoked. 16 | */ 17 | HIGHEST, 18 | 19 | /** 20 | * {@link Subscribe}s with this {@link EventPriority} have the SECOND (2) priority to be invoked. 21 | */ 22 | HIGHER, 23 | 24 | /** 25 | * {@link Subscribe}s with this {@link EventPriority} have the THIRD (3) priority to be invoked. 26 | */ 27 | HIGH, 28 | 29 | /** 30 | * {@link Subscribe}s with this {@link EventPriority} have the FOURTH (4) priority to be invoked. 31 | *

32 | * This is the default {@link EventPriority} for {@link Subscribe}s 33 | *

34 | */ 35 | MEDIUM, 36 | 37 | /** 38 | * {@link Subscribe}s with this {@link EventPriority} have the FIFTH (5) priority to be invoked. 39 | */ 40 | LOW, 41 | 42 | /** 43 | * {@link Subscribe}s with this {@link EventPriority} have the SIXTH (6) priority to be invoked. 44 | */ 45 | LOWER, 46 | 47 | /** 48 | *{@link Subscribe}s with this {@link EventPriority} have the SEVENTH (7) priority to be invoked. 49 | */ 50 | LOWEST, 51 | 52 | /** 53 | * {@link Subscribe}s with this {@link EventPriority} have the EIGHTH (8), and LAST priority to be invoked. 54 | * 55 | *

56 | * By convention, all {@link Subscribe}s with this {@link EventPriority} shall not modify events in any way. 57 | *

58 | */ 59 | MONITOR 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/types/EventTiming.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.types; 2 | 3 | import net.b0at.api.event.EventHandler; 4 | 5 | /** 6 | * Represents the timing of an {@link EventHandler}. 7 | * 8 | *

9 | * {@link EventHandler}s can be either invoked BEFORE ({@link #PRE}), or AFTER ({@link #POST}) an event occurs. 10 | *

11 | */ 12 | public enum EventTiming { 13 | /** 14 | * {@link EventHandler}s with this {@link EventTiming} are invoked before the event occurs. 15 | * 16 | *

17 | * This is the default {@link EventTiming} for {@link EventHandler}s. 18 | *

19 | */ 20 | PRE, 21 | 22 | /** 23 | * {@link EventHandler}s with this {@link EventTiming} are invoked after the event occurs. 24 | * 25 | *

26 | * Typically, {@link EventHandler}s can not cancel an event with this timing, as cancellation requests 27 | * are either ignored, or in many cases, illegal. 28 | *

29 | */ 30 | POST 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/net/b0at/api/event/types/EventType.java: -------------------------------------------------------------------------------- 1 | package net.b0at.api.event.types; 2 | 3 | import net.b0at.api.event.Subscribe; 4 | 5 | /** 6 | * Represents the timing of an {@link Subscribe}. 7 | * 8 | *

9 | * {@link Subscribe}s can be either invoked BEFORE ({@link #PRE}), or AFTER ({@link #POST}) an event occurs. 10 | *

11 | */ 12 | public enum EventType { 13 | /** 14 | * {@link Subscribe}s with this {@link EventType} are invoked before the event occurs. 15 | * 16 | *

17 | * This is the default {@link EventType} for {@link Subscribe}s. 18 | *

19 | */ 20 | PRE, 21 | 22 | /** 23 | * {@link Subscribe}s with this {@link EventType} are invoked after the event occurs. 24 | * 25 | *

26 | * Typically, {@link Subscribe}s can not cancel an event with this timing, as cancellation requests 27 | * are either ignored, or in many cases, illegal. 28 | *

29 | */ 30 | POST 31 | } 32 | -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/custom/cape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/assets/minecraft/custom/cape.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/custom/wurst.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/assets/minecraft/custom/wurst.jpg -------------------------------------------------------------------------------- /src/main/resources/darwin/libdiscord-rpc.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/darwin/libdiscord-rpc.dylib -------------------------------------------------------------------------------- /src/main/resources/linux-x86-64/libdiscord-rpc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/linux-x86-64/libdiscord-rpc.so -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [{ 2 | "modid" : "floppahack", 3 | "name" : "stronggg floppaHack go flopp some niggas", 4 | "description" : "this is based", 5 | "version" : "b1.1", 6 | "mcversion" : "1.12.2-14.23.5.2772", 7 | "url" : "", 8 | "updateUrl" : "", 9 | "authorList" : ["Floppinqq"], 10 | "credits" : "Floppinqq strongggg", 11 | "logoFile" : "wurstplus.jpg", 12 | "screenshots" : [], 13 | "dependencies" : [] 14 | 15 | }] -------------------------------------------------------------------------------- /src/main/resources/mixins.wurstplus.json: -------------------------------------------------------------------------------- 1 | { 2 | "required" : true, 3 | "compatibilityLevel" : "JAVA_8", 4 | "package" : "me.travis.wurstplus.mixins", 5 | "refmap" : "mixins.wurstplus.refmap.json", 6 | "mixins" : [ 7 | "WurstplusMixinPlayerControllerMP", 8 | "WurstplusMixinNetworkManager", 9 | "WurstplusMixinMinecraft", 10 | "WurstplusMixinEntitySP", 11 | "WurstplusMixinEntity", 12 | "WurstplusMixinGuiNewChat", 13 | "WurstplusMixinGuiScreen", 14 | "WurstplusMixinEntityRenderer", 15 | "WurstplusMixinWorld", 16 | "WurstplusMixinRenderPlayer", 17 | "WurstplusMixinPlayer", 18 | "WurstplusMixinItemRenderer", 19 | "WurstplusMixinGuiPlayerTabOverlay", 20 | "WurstplusMixinRenderLivingBase", 21 | "WurstplusMixinAbstractClientPlayer" 22 | ] 23 | } -------------------------------------------------------------------------------- /src/main/resources/win32-x86-64/discord-rpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/win32-x86-64/discord-rpc.dll -------------------------------------------------------------------------------- /src/main/resources/win32-x86/discord-rpc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/win32-x86/discord-rpc.dll -------------------------------------------------------------------------------- /src/main/resources/wurst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Floppinqq/floppaHack-src-git/d1062edab2ef619e51b2fb3e0f29cd5e5471fd2e/src/main/resources/wurst.png --------------------------------------------------------------------------------