├── .coderabbit.yaml ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── suggestion.yml ├── pull_request_template.md └── workflows │ ├── gradle.yml │ └── stale.yml ├── .gitignore ├── .run └── Raven-XD [build].run.xml ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── build.gradle ├── dependencies.txt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libraries ├── discord-rpc.jar ├── fastutil-core-8.5.14.jar └── json-20220924.jar ├── logo ├── logo.png ├── logo.psd └── logo_small.png ├── src └── main │ ├── java │ └── keystrokesmod │ │ ├── Raven.java │ │ ├── clickgui │ │ ├── ClickGui.java │ │ └── components │ │ │ ├── Component.java │ │ │ ├── IComponent.java │ │ │ └── impl │ │ │ ├── BindComponent.java │ │ │ ├── ButtonComponent.java │ │ │ ├── CategoryComponent.java │ │ │ ├── DescriptionComponent.java │ │ │ ├── ModeComponent.java │ │ │ ├── ModeValueComponent.java │ │ │ ├── ModuleComponent.java │ │ │ └── SliderComponent.java │ │ ├── dynamic │ │ └── Dynamic.java │ │ ├── event │ │ ├── BlockAABBEvent.java │ │ ├── BlockPlaceEvent.java │ │ ├── BlockWebEvent.java │ │ ├── ClickEvent.java │ │ ├── ClientBrandEvent.java │ │ ├── EyeHeightEvent.java │ │ ├── FOVUpdateEvent.java │ │ ├── JumpEvent.java │ │ ├── MoveEvent.java │ │ ├── MoveInputEvent.java │ │ ├── PostMotionEvent.java │ │ ├── PostPlayerInputEvent.java │ │ ├── PostUpdateEvent.java │ │ ├── PostVelocityEvent.java │ │ ├── PreConnectEvent.java │ │ ├── PreMotionEvent.java │ │ ├── PreMoveEvent.java │ │ ├── PreOrientCameraEvent.java │ │ ├── PrePlayerInputEvent.java │ │ ├── PreTickEvent.java │ │ ├── PreUpdateEvent.java │ │ ├── PreVelocityEvent.java │ │ ├── PushOutOfBlockEvent.java │ │ ├── ReceivePacketEvent.java │ │ ├── RenderContainerEvent.java │ │ ├── RenderItemEvent.java │ │ ├── RightClickEvent.java │ │ ├── RotationEvent.java │ │ ├── SafeWalkEvent.java │ │ ├── ScaffoldPlaceEvent.java │ │ ├── SendPacketEvent.java │ │ ├── SprintEvent.java │ │ ├── StepEvent.java │ │ ├── SwingAnimationEvent.java │ │ └── WorldChangeEvent.java │ │ ├── keystroke │ │ ├── KeySrokeRenderer.java │ │ ├── KeyStroke.java │ │ ├── KeyStrokeConfigGui.java │ │ ├── KeyStrokeKeyRenderer.java │ │ ├── KeyStrokeMouse.java │ │ └── keystrokeCommand.java │ │ ├── mixins │ │ ├── MixinLoader.java │ │ └── impl │ │ │ ├── client │ │ │ ├── GuiConnectingAccessor.java │ │ │ ├── GuiScreenAccessor.java │ │ │ ├── KeyBindingAccessor.java │ │ │ ├── MinecraftAccessor.java │ │ │ ├── MixinEntityRenderer.java │ │ │ ├── MixinInventoryPlayer.java │ │ │ ├── MixinMinecraft.java │ │ │ ├── MixinMovementInputFromOptions.java │ │ │ ├── MixinPlayerControllerMP.java │ │ │ └── PlayerControllerMPAccessor.java │ │ │ ├── entity │ │ │ ├── EntityAccessor.java │ │ │ ├── EntityLivingBaseAccessor.java │ │ │ ├── EntityPlayerAccessor.java │ │ │ ├── EntityPlayerSPAccessor.java │ │ │ ├── MixinEntity.java │ │ │ ├── MixinEntityLivingBase.java │ │ │ ├── MixinEntityPlayer.java │ │ │ └── MixinEntityPlayerSP.java │ │ │ ├── event │ │ │ └── MixinEventBus.java │ │ │ ├── gui │ │ │ ├── MixinGuiButton.java │ │ │ ├── MixinGuiChat.java │ │ │ ├── MixinGuiConnecting.java │ │ │ ├── MixinGuiContainer.java │ │ │ ├── MixinGuiDownloadTerrain.java │ │ │ ├── MixinGuiMainMenu.java │ │ │ ├── MixinGuiMultiplayer.java │ │ │ ├── MixinGuiScreen.java │ │ │ ├── MixinGuiSlot.java │ │ │ ├── MixinSplashProgress.java │ │ │ └── MixinSplashProgressThread.java │ │ │ ├── network │ │ │ ├── C02PacketUseEntityAccessor.java │ │ │ ├── C03PacketPlayerAccessor.java │ │ │ ├── C07PacketPlayerDiggingAccessor.java │ │ │ ├── C08PacketPlayerBlockPlacementAccessor.java │ │ │ ├── C0FPacketConfirmTransactionAccessor.java │ │ │ ├── C17PacketCustomPayloadAccessor.java │ │ │ ├── MixinFMLCommonHandler.java │ │ │ ├── MixinModList.java │ │ │ ├── MixinNetHandlerPlayClient.java │ │ │ ├── MixinNetworkManager.java │ │ │ ├── S08PacketPlayerPosLookAccessor.java │ │ │ ├── S14PacketEntityAccessor.java │ │ │ └── S27PacketExplosionAccessor.java │ │ │ ├── render │ │ │ ├── ItemRendererAccessor.java │ │ │ ├── MixinBlockRendererDispatcher.java │ │ │ ├── MixinEntityRenderer.java │ │ │ ├── MixinFontRenderer.java │ │ │ ├── MixinItemRenderer.java │ │ │ ├── MixinLayerCape.java │ │ │ ├── MixinLocale.java │ │ │ ├── MixinModelBiped.java │ │ │ ├── MixinRendererLivingEntity.java │ │ │ └── RenderManagerAccessor.java │ │ │ └── world │ │ │ ├── BlockNoteAccessor.java │ │ │ ├── MixinBlock.java │ │ │ ├── MixinBlockLadder.java │ │ │ ├── MixinBlockWeb.java │ │ │ └── ScoreAccessor.java │ │ ├── module │ │ ├── Module.java │ │ ├── ModuleManager.java │ │ ├── impl │ │ │ ├── client │ │ │ │ ├── CommandChat.java │ │ │ │ ├── CommandLine.java │ │ │ │ ├── DiscordRpc.java │ │ │ │ ├── DynamicManager.java │ │ │ │ ├── Gui.java │ │ │ │ ├── Language.java │ │ │ │ ├── MiddleClick.java │ │ │ │ ├── Notifications.java │ │ │ │ ├── Settings.java │ │ │ │ ├── discordrpc │ │ │ │ │ ├── AugustusRPC.java │ │ │ │ │ ├── BadlionRPC.java │ │ │ │ │ ├── LunarClientRPC.java │ │ │ │ │ └── RavenXdRPC.java │ │ │ │ └── notification │ │ │ │ │ ├── DefaultNotification.java │ │ │ │ │ └── INotification.java │ │ │ ├── combat │ │ │ │ ├── AimAssist.java │ │ │ │ ├── AutoClicker.java │ │ │ │ ├── AutoGapple.java │ │ │ │ ├── AutoRod.java │ │ │ │ ├── BlockHit.java │ │ │ │ ├── BurstClicker.java │ │ │ │ ├── ClickAssist.java │ │ │ │ ├── Criticals.java │ │ │ │ ├── HitBox.java │ │ │ │ ├── HitSelect.java │ │ │ │ ├── KillAura.java │ │ │ │ ├── LagRange.java │ │ │ │ ├── MoreKB.java │ │ │ │ ├── ProjectileAimBot.java │ │ │ │ ├── RageBot.java │ │ │ │ ├── Reach.java │ │ │ │ ├── RightClicker.java │ │ │ │ ├── RodAimbot.java │ │ │ │ ├── TimerRange.java │ │ │ │ ├── Velocity.java │ │ │ │ ├── aimassist │ │ │ │ │ ├── NormalAimAssist.java │ │ │ │ │ └── TejasAssist.java │ │ │ │ ├── autoclicker │ │ │ │ │ ├── DragClickAutoClicker.java │ │ │ │ │ ├── IAutoClicker.java │ │ │ │ │ ├── LowCPSAutoClicker.java │ │ │ │ │ ├── NormalAutoClicker.java │ │ │ │ │ └── RecordAutoClicker.java │ │ │ │ ├── criticals │ │ │ │ │ ├── AirStuckCriticals.java │ │ │ │ │ ├── JumpCriticals.java │ │ │ │ │ ├── LagCriticals.java │ │ │ │ │ ├── NoGroundCriticals.java │ │ │ │ │ └── TimerCriticals.java │ │ │ │ ├── morekb │ │ │ │ │ ├── IMoreKB.java │ │ │ │ │ └── SimpleSprintReset.java │ │ │ │ ├── ragebot │ │ │ │ │ ├── IRageBotFeature.java │ │ │ │ │ ├── nospread │ │ │ │ │ │ ├── LegitNoSpread.java │ │ │ │ │ │ └── SwitchNoSpread.java │ │ │ │ │ └── rapidfire │ │ │ │ │ │ ├── IRapidFire.java │ │ │ │ │ │ ├── LegitRapidFire.java │ │ │ │ │ │ ├── PacketRapidFire.java │ │ │ │ │ │ ├── StoreRapidFire.java │ │ │ │ │ │ └── TimerRapidFire.java │ │ │ │ └── velocity │ │ │ │ │ ├── GrimACVelocity.java │ │ │ │ │ ├── HypixelVelocity.java │ │ │ │ │ ├── IntaveVelocity.java │ │ │ │ │ ├── KarhuVelocity.java │ │ │ │ │ ├── LegitVelocity.java │ │ │ │ │ ├── MatrixVelocity.java │ │ │ │ │ ├── NormalVelocity.java │ │ │ │ │ ├── TickVelocity.java │ │ │ │ │ ├── ZipVelocity.java │ │ │ │ │ └── grimac │ │ │ │ │ ├── GrimACAdvancedVelocity.java │ │ │ │ │ └── GrimACSimpleVelocity.java │ │ │ ├── exploit │ │ │ │ ├── AntiFalseFlag.java │ │ │ │ ├── ClientSpoofer.java │ │ │ │ ├── Disabler.java │ │ │ │ ├── ExploitFixer.java │ │ │ │ ├── GhostBlock.java │ │ │ │ ├── InfiniteAura.java │ │ │ │ ├── ModSpoofer.java │ │ │ │ ├── PingSpoof.java │ │ │ │ ├── Regen.java │ │ │ │ ├── RemoteShop.java │ │ │ │ ├── ViaVersionFix.java │ │ │ │ ├── antifalseflag │ │ │ │ │ └── HypixelAntiFalseFlag.java │ │ │ │ ├── disabler │ │ │ │ │ ├── BlocksMCDisabler.java │ │ │ │ │ ├── CustomDisabler.java │ │ │ │ │ ├── GrimSpecDisabler.java │ │ │ │ │ ├── HypixelDisabler.java │ │ │ │ │ ├── KKCraftDisabler.java │ │ │ │ │ ├── MinelandDisabler.java │ │ │ │ │ └── hypixel │ │ │ │ │ │ └── HypixelMotionDisabler.java │ │ │ │ ├── remoteshop │ │ │ │ │ ├── HypixelRemoteShop.java │ │ │ │ │ ├── IRemoteShop.java │ │ │ │ │ └── NormalRemoteShop.java │ │ │ │ └── viaversionfix │ │ │ │ │ ├── QuickMacroViaVersionFix.java │ │ │ │ │ └── ViaVersionFixHelper.java │ │ │ ├── fun │ │ │ │ ├── AbilitiesBedWars.java │ │ │ │ ├── AntiAim.java │ │ │ │ ├── BlockOut.java │ │ │ │ ├── ExtraBobbing.java │ │ │ │ ├── FlameTrail.java │ │ │ │ ├── HitLog.java │ │ │ │ ├── NoteBot.java │ │ │ │ ├── SlyPort.java │ │ │ │ ├── Yeet.java │ │ │ │ └── antiaim │ │ │ │ │ ├── BackwardAntiAim.java │ │ │ │ │ ├── SnapAntiAim.java │ │ │ │ │ └── SpinAntiAim.java │ │ │ ├── minigames │ │ │ │ ├── AutoWho.java │ │ │ │ ├── BedWars.java │ │ │ │ ├── BridgeInfo.java │ │ │ │ ├── DuelsStats.java │ │ │ │ ├── MurderMystery.java │ │ │ │ └── SumoFences.java │ │ │ ├── movement │ │ │ │ ├── AirStuck.java │ │ │ │ ├── Fly.java │ │ │ │ ├── InvMove.java │ │ │ │ ├── Jesus.java │ │ │ │ ├── KeepSprint.java │ │ │ │ ├── LongJump.java │ │ │ │ ├── MotionModifier.java │ │ │ │ ├── NoSlow.java │ │ │ │ ├── NoWeb.java │ │ │ │ ├── Phase.java │ │ │ │ ├── SaveMoveKeys.java │ │ │ │ ├── Speed.java │ │ │ │ ├── Sprint.java │ │ │ │ ├── Step.java │ │ │ │ ├── StopMotion.java │ │ │ │ ├── TargetStrafe.java │ │ │ │ ├── Teleport.java │ │ │ │ ├── VClip.java │ │ │ │ ├── WallClimb.java │ │ │ │ ├── fly │ │ │ │ │ ├── AirPlaceFly.java │ │ │ │ │ ├── AirWalkFly.java │ │ │ │ │ ├── CustomFly.java │ │ │ │ │ ├── FakeFly.java │ │ │ │ │ ├── GrimACFly.java │ │ │ │ │ ├── HypixelTestFly.java │ │ │ │ │ ├── MatrixBowFly.java │ │ │ │ │ ├── MatrixFly.java │ │ │ │ │ ├── MatrixTNTFly.java │ │ │ │ │ ├── NCPClipFly.java │ │ │ │ │ ├── Vanilla1Fly.java │ │ │ │ │ ├── Vanilla2Fly.java │ │ │ │ │ └── VulcanFly.java │ │ │ │ ├── jesus │ │ │ │ │ ├── HypixelJesus.java │ │ │ │ │ ├── KarhuJesus.java │ │ │ │ │ ├── OldNCPJesus.java │ │ │ │ │ └── VulcanJesus.java │ │ │ │ ├── longjump │ │ │ │ │ ├── GrimBoatLongJump.java │ │ │ │ │ ├── GrimVelocityLongJump.java │ │ │ │ │ ├── HypixelBowLongJump.java │ │ │ │ │ ├── HypixelFireballLongJump.java │ │ │ │ │ ├── HypixelLongJump.java │ │ │ │ │ ├── VulcanLongJump.java │ │ │ │ │ └── hypixelfireball │ │ │ │ │ │ └── NormalHypixelFireballLongJump.java │ │ │ │ ├── motionmodifier │ │ │ │ │ └── SimpleMotionModifier.java │ │ │ │ ├── noslow │ │ │ │ │ ├── CustomNoSlow.java │ │ │ │ │ ├── GrimACNoSlow.java │ │ │ │ │ ├── HypixelNoSlow.java │ │ │ │ │ ├── INoSlow.java │ │ │ │ │ ├── IntaveNoSlow.java │ │ │ │ │ ├── NCPNoSlow.java │ │ │ │ │ ├── OldGrimNoSlow.java │ │ │ │ │ ├── OldIntaveNoSlow.java │ │ │ │ │ ├── VanillaNoSlow.java │ │ │ │ │ └── customnoslow │ │ │ │ │ │ └── SimpleCustomNoSlow.java │ │ │ │ ├── noweb │ │ │ │ │ ├── IgnoreNoWeb.java │ │ │ │ │ ├── IntaveNoWeb.java │ │ │ │ │ ├── PingNoWeb.java │ │ │ │ │ └── VulcanNoWeb.java │ │ │ │ ├── phase │ │ │ │ │ ├── GrimACPhase.java │ │ │ │ │ ├── VanillaPhase.java │ │ │ │ │ ├── VulcanPhase.java │ │ │ │ │ ├── WatchdogAutoPhase.java │ │ │ │ │ └── WatchdogPhase.java │ │ │ │ ├── speed │ │ │ │ │ ├── BlocksMCSpeed.java │ │ │ │ │ ├── GrimACSpeed.java │ │ │ │ │ ├── HypixelSpeed.java │ │ │ │ │ ├── LegitSpeed.java │ │ │ │ │ ├── StrafeSpeed.java │ │ │ │ │ ├── VanillaSpeed.java │ │ │ │ │ ├── VulcanSpeed.java │ │ │ │ │ └── hypixel │ │ │ │ │ │ ├── GroundStrafeSpeed.java │ │ │ │ │ │ ├── HypixelGroundSpeed.java │ │ │ │ │ │ ├── HypixelLowHopSpeed.java │ │ │ │ │ │ └── lowhop │ │ │ │ │ │ ├── HypixelLowHopMotionSpeed.java │ │ │ │ │ │ └── HypixelLowHopPredictSpeed.java │ │ │ │ ├── step │ │ │ │ │ ├── Hypixel15Step.java │ │ │ │ │ ├── HypixelStep.java │ │ │ │ │ └── SemiLegitStep.java │ │ │ │ ├── teleport │ │ │ │ │ └── HypixelTeleport.java │ │ │ │ └── wallclimb │ │ │ │ │ ├── IntaveWallClimb.java │ │ │ │ │ ├── TestWallClimb.java │ │ │ │ │ └── VulcanWallClimb.java │ │ │ ├── other │ │ │ │ ├── Anticheat.java │ │ │ │ ├── AutoPlay.java │ │ │ │ ├── AutoRegister.java │ │ │ │ ├── AutoRespawn.java │ │ │ │ ├── BedProximityAlert.java │ │ │ │ ├── ChatAI.java │ │ │ │ ├── ClickRecorder.java │ │ │ │ ├── FakeChat.java │ │ │ │ ├── FlagDetector.java │ │ │ │ ├── KillMessage.java │ │ │ │ ├── LatencyAlerts.java │ │ │ │ ├── NameHider.java │ │ │ │ ├── Panic.java │ │ │ │ ├── RecordClick.java │ │ │ │ ├── RotationHandler.java │ │ │ │ ├── ScreenshotHelper.java │ │ │ │ ├── SlotHandler.java │ │ │ │ ├── StaffDetector.java │ │ │ │ ├── Test.java │ │ │ │ ├── ViewPackets.java │ │ │ │ ├── anticheats │ │ │ │ │ ├── Check.java │ │ │ │ │ ├── CheckManager.java │ │ │ │ │ ├── PlayerManager.java │ │ │ │ │ ├── TRPlayer.java │ │ │ │ │ ├── TRSelf.java │ │ │ │ │ ├── checks │ │ │ │ │ │ ├── combat │ │ │ │ │ │ │ ├── AutoBlockA.java │ │ │ │ │ │ │ ├── AutoClickerA.java │ │ │ │ │ │ │ ├── NoSlowA.java │ │ │ │ │ │ │ └── ReachA.java │ │ │ │ │ │ ├── movement │ │ │ │ │ │ │ ├── BlinkA.java │ │ │ │ │ │ │ ├── FlyA.java │ │ │ │ │ │ │ ├── GroundSpoofA.java │ │ │ │ │ │ │ ├── GroundSpoofB.java │ │ │ │ │ │ │ ├── MotionA.java │ │ │ │ │ │ │ ├── NoFallA.java │ │ │ │ │ │ │ ├── SpeedA.java │ │ │ │ │ │ │ ├── SpeedB.java │ │ │ │ │ │ │ └── SpeedC.java │ │ │ │ │ │ ├── scaffolding │ │ │ │ │ │ │ ├── ScaffoldA.java │ │ │ │ │ │ │ ├── ScaffoldB.java │ │ │ │ │ │ │ └── ScaffoldC.java │ │ │ │ │ │ └── simulation │ │ │ │ │ │ │ └── Simulation.java │ │ │ │ │ ├── config │ │ │ │ │ │ └── AdvancedConfig.java │ │ │ │ │ └── utils │ │ │ │ │ │ ├── alert │ │ │ │ │ │ └── LogUtils.java │ │ │ │ │ │ ├── phys │ │ │ │ │ │ ├── PredictEngine.java │ │ │ │ │ │ └── Vec2.java │ │ │ │ │ │ └── world │ │ │ │ │ │ ├── BlockUtils.java │ │ │ │ │ │ ├── EntityUtils.java │ │ │ │ │ │ ├── LevelUtils.java │ │ │ │ │ │ ├── PlayerMove.java │ │ │ │ │ │ └── PlayerRotation.java │ │ │ │ └── chatai │ │ │ │ │ ├── ChatGPTChatAI.java │ │ │ │ │ └── IChatAI.java │ │ │ ├── player │ │ │ │ ├── AntiAFK.java │ │ │ │ ├── AntiFireball.java │ │ │ │ ├── AntiVoid.java │ │ │ │ ├── AutoChest.java │ │ │ │ ├── AutoHeal.java │ │ │ │ ├── AutoJump.java │ │ │ │ ├── AutoPot.java │ │ │ │ ├── AutoSwap.java │ │ │ │ ├── AutoWeb.java │ │ │ │ ├── Backtrack.java │ │ │ │ ├── Blink.java │ │ │ │ ├── ChestAura.java │ │ │ │ ├── ChestStealer.java │ │ │ │ ├── FakeLag.java │ │ │ │ ├── FakePotion.java │ │ │ │ ├── InvManager.java │ │ │ │ ├── NoFall.java │ │ │ │ ├── NoJumpDelay.java │ │ │ │ ├── NoRotate.java │ │ │ │ ├── Timer.java │ │ │ │ ├── antivoid │ │ │ │ │ ├── AirStuckAntiVoid.java │ │ │ │ │ ├── BacktrackAntiVoid.java │ │ │ │ │ ├── GrimACAntiVoid.java │ │ │ │ │ ├── HypixelAntiVoid.java │ │ │ │ │ ├── NCPAntiVoid.java │ │ │ │ │ └── VulcanAntiVoid.java │ │ │ │ ├── blink │ │ │ │ │ ├── FakeLagBlink.java │ │ │ │ │ └── NormalBlink.java │ │ │ │ ├── fakelag │ │ │ │ │ ├── DynamicFakeLag.java │ │ │ │ │ └── LatencyFakeLag.java │ │ │ │ ├── nofall │ │ │ │ │ ├── HypixelBlinkNoFall.java │ │ │ │ │ ├── HypixelPacketNoFall.java │ │ │ │ │ ├── LegitNoFall.java │ │ │ │ │ ├── NoGroundNoFall.java │ │ │ │ │ ├── OnGround1NoFall.java │ │ │ │ │ ├── OnGround2NoFall.java │ │ │ │ │ └── VulcanNoFall.java │ │ │ │ └── timer │ │ │ │ │ ├── BalanceTimer.java │ │ │ │ │ ├── HypixelTimer.java │ │ │ │ │ └── NormalTimer.java │ │ │ ├── render │ │ │ │ ├── Ambience.java │ │ │ │ ├── Animations.java │ │ │ │ ├── AntiShuffle.java │ │ │ │ ├── ArrayList.java │ │ │ │ ├── BedESP.java │ │ │ │ ├── BedPlates.java │ │ │ │ ├── BreakProgress.java │ │ │ │ ├── Chams.java │ │ │ │ ├── ChestESP.java │ │ │ │ ├── ClientTheme.java │ │ │ │ ├── CustomCape.java │ │ │ │ ├── CustomFOV.java │ │ │ │ ├── CustomName.java │ │ │ │ ├── Explosions.java │ │ │ │ ├── FreeLook.java │ │ │ │ ├── Freecam.java │ │ │ │ ├── FullBright.java │ │ │ │ ├── HUD.java │ │ │ │ ├── Indicators.java │ │ │ │ ├── ItemESP.java │ │ │ │ ├── MobESP.java │ │ │ │ ├── MotionCamera.java │ │ │ │ ├── Nametags.java │ │ │ │ ├── NoBackground.java │ │ │ │ ├── NoCameraClip.java │ │ │ │ ├── NoHurtCam.java │ │ │ │ ├── Particles.java │ │ │ │ ├── PlayerESP.java │ │ │ │ ├── Potions.java │ │ │ │ ├── Radar.java │ │ │ │ ├── Shaders.java │ │ │ │ ├── TargetESP.java │ │ │ │ ├── TargetHUD.java │ │ │ │ ├── Tracers.java │ │ │ │ ├── Trajectories.java │ │ │ │ ├── Watermark.java │ │ │ │ ├── Xray.java │ │ │ │ ├── arraylist │ │ │ │ │ └── ArrayListModule.java │ │ │ │ └── targetvisual │ │ │ │ │ ├── ITargetVisual.java │ │ │ │ │ ├── targetesp │ │ │ │ │ ├── JelloTargetESP.java │ │ │ │ │ ├── RavenTargetESP.java │ │ │ │ │ └── VapeTargetESP.java │ │ │ │ │ └── targethud │ │ │ │ │ ├── ExhibitionTargetHUD.java │ │ │ │ │ ├── MyauTargetHUD.java │ │ │ │ │ ├── RavenNewTargetHUD.java │ │ │ │ │ ├── RavenTargetHUD.java │ │ │ │ │ ├── TestTargetHUD.java │ │ │ │ │ └── WurstTargetHUD.java │ │ │ └── world │ │ │ │ ├── AntiBot.java │ │ │ │ ├── AutoPlace.java │ │ │ │ ├── AutoTool.java │ │ │ │ ├── AutoWeapon.java │ │ │ │ ├── BedAura.java │ │ │ │ ├── BedDefender.java │ │ │ │ ├── BlockIn.java │ │ │ │ ├── BridgeAssist.java │ │ │ │ ├── Clutch.java │ │ │ │ ├── FastMine.java │ │ │ │ ├── FastPlace.java │ │ │ │ ├── LegitScaffold.java │ │ │ │ ├── SafeWalk.java │ │ │ │ ├── Scaffold.java │ │ │ │ ├── Tower.java │ │ │ │ ├── scaffold │ │ │ │ ├── IScaffoldRotation.java │ │ │ │ ├── IScaffoldSchedule.java │ │ │ │ ├── IScaffoldSprint.java │ │ │ │ ├── rotation │ │ │ │ │ ├── BackwardsRotation.java │ │ │ │ │ ├── ConstantRotation.java │ │ │ │ │ ├── NoneRotation.java │ │ │ │ │ ├── PreciseRotation.java │ │ │ │ │ └── StrictRotation.java │ │ │ │ ├── schedule │ │ │ │ │ ├── NormalSchedule.java │ │ │ │ │ ├── SimpleTellySchedule.java │ │ │ │ │ └── TellySchedule.java │ │ │ │ └── sprint │ │ │ │ │ ├── DisabledSprint.java │ │ │ │ │ ├── EdgeSprint.java │ │ │ │ │ ├── HypixelJump2Sprint.java │ │ │ │ │ ├── HypixelJump3Sprint.java │ │ │ │ │ ├── HypixelJumpSprint.java │ │ │ │ │ ├── HypixelSprint.java │ │ │ │ │ ├── JumpSprint.java │ │ │ │ │ ├── LegitSprint.java │ │ │ │ │ ├── OldIntaveSprint.java │ │ │ │ │ ├── SneakSprint.java │ │ │ │ │ └── VanillaSprint.java │ │ │ │ └── tower │ │ │ │ ├── BlocksMCTower.java │ │ │ │ ├── ConstantMotionTower.java │ │ │ │ ├── HypixelTower.java │ │ │ │ ├── JumpSprintTower.java │ │ │ │ ├── VanillaTower.java │ │ │ │ └── VulcanTower.java │ │ └── setting │ │ │ ├── Setting.java │ │ │ ├── impl │ │ │ ├── ButtonSetting.java │ │ │ ├── DescriptionSetting.java │ │ │ ├── LiteralSubMode.java │ │ │ ├── ModeSetting.java │ │ │ ├── ModeValue.java │ │ │ ├── SliderSetting.java │ │ │ └── SubMode.java │ │ │ ├── interfaces │ │ │ └── InputSetting.java │ │ │ └── utils │ │ │ └── ModeOnly.java │ │ ├── script │ │ ├── ClassObject.java │ │ ├── Diagnostic.java │ │ ├── Manager.java │ │ ├── Script.java │ │ ├── ScriptDefaults.java │ │ ├── ScriptEvents.java │ │ ├── ScriptManager.java │ │ ├── classes │ │ │ ├── Block.java │ │ │ ├── Bridge.java │ │ │ ├── Entity.java │ │ │ ├── ItemStack.java │ │ │ ├── Json.java │ │ │ ├── NetworkPlayer.java │ │ │ ├── PlayerState.java │ │ │ ├── Request.java │ │ │ ├── Response.java │ │ │ ├── TileEntity.java │ │ │ ├── Vec3.java │ │ │ └── World.java │ │ └── packets │ │ │ ├── clientbound │ │ │ ├── S12.java │ │ │ ├── S27.java │ │ │ ├── S3E.java │ │ │ └── SPacket.java │ │ │ └── serverbound │ │ │ ├── C01.java │ │ │ ├── C02.java │ │ │ ├── C03.java │ │ │ ├── C07.java │ │ │ ├── C08.java │ │ │ ├── C09.java │ │ │ ├── C0A.java │ │ │ ├── C0B.java │ │ │ ├── C0E.java │ │ │ ├── C0F.java │ │ │ ├── C10.java │ │ │ ├── CPacket.java │ │ │ └── PacketHandler.java │ │ └── utility │ │ ├── AutoUpdate.java │ │ ├── BadPacketsHandler.java │ │ ├── BlockUtils.java │ │ ├── Commands.java │ │ ├── ContainerUtils.java │ │ ├── CoolDown.java │ │ ├── DebugInfoRenderer.java │ │ ├── GuiConnectingMsg.java │ │ ├── MoveUtil.java │ │ ├── PacketUtils.java │ │ ├── Ping.java │ │ ├── PlayerData.java │ │ ├── ProfileUtils.java │ │ ├── RageBotUtils.java │ │ ├── RandomUtils.java │ │ ├── Reflection.java │ │ ├── RotationUtils.java │ │ ├── ShaderUtils.java │ │ ├── Theme.java │ │ ├── Timer.java │ │ ├── TimerUtil.java │ │ ├── URLUtils.java │ │ ├── Utils.java │ │ ├── ai │ │ └── chatgpt │ │ │ ├── ChatGPTClient.java │ │ │ ├── ConversationContext.java │ │ │ └── GPTModel.java │ │ ├── aim │ │ ├── AimSimulator.java │ │ └── RotationData.java │ │ ├── backtrack │ │ ├── Cold.java │ │ └── TimedPacket.java │ │ ├── clicks │ │ ├── CPSCalculator.java │ │ └── Pattern.java │ │ ├── font │ │ ├── CenterMode.java │ │ ├── FontManager.java │ │ ├── IFont.java │ │ └── impl │ │ │ ├── CharRenderer.java │ │ │ ├── FontRenderer.java │ │ │ ├── FontUtil.java │ │ │ └── MinecraftFontRenderer.java │ │ ├── i18n │ │ ├── I18nManager.java │ │ ├── I18nModule.java │ │ └── settings │ │ │ ├── I18nButtonSetting.java │ │ │ ├── I18nDescriptionSetting.java │ │ │ ├── I18nModeSetting.java │ │ │ ├── I18nSetting.java │ │ │ └── I18nSliderSetting.java │ │ ├── interact │ │ └── moveable │ │ │ ├── Moveable.java │ │ │ └── MoveableManager.java │ │ ├── movement │ │ ├── Direction.java │ │ ├── Move.java │ │ └── MoveCorrect.java │ │ ├── notebot │ │ ├── NotebotUtils.java │ │ ├── decoder │ │ │ ├── NBSSongDecoder.java │ │ │ ├── SongDecoder.java │ │ │ ├── SongDecoders.java │ │ │ └── TextSongDecoder.java │ │ ├── instrumentdetect │ │ │ ├── InstrumentDetectFunction.java │ │ │ └── InstrumentDetectMode.java │ │ └── song │ │ │ ├── Note.java │ │ │ └── Song.java │ │ ├── packet │ │ └── OutgoingPackets.java │ │ ├── profile │ │ ├── Manager.java │ │ ├── Profile.java │ │ ├── ProfileManager.java │ │ └── ProfileModule.java │ │ └── render │ │ ├── Animation.java │ │ ├── AnimationUtils.java │ │ ├── BackgroundUtils.java │ │ ├── ColorUtils.java │ │ ├── Easing.java │ │ ├── GLUtil.java │ │ ├── GradientBlur.java │ │ ├── RRectUtils.java │ │ ├── RenderUtils.java │ │ ├── blur │ │ ├── GaussianBlur.java │ │ ├── ShaderUtil.java │ │ └── StencilUtil.java │ │ ├── progress │ │ ├── Progress.java │ │ └── ProgressManager.java │ │ └── shader │ │ ├── AbstractBufferedImageOp.java │ │ ├── ConvolveFilter.java │ │ ├── GaussianFilter.java │ │ ├── ImageMath.java │ │ ├── Shader.java │ │ └── impl │ │ ├── ShaderBackGround.java │ │ ├── ShaderRoundedRect.java │ │ └── ShaderScissor.java │ └── resources │ ├── assets │ └── keystrokesmod │ │ ├── fonts │ │ ├── MAPLESTORY_OTF_BOLD.OTF │ │ ├── icon.ttf │ │ ├── product_sans_light.ttf │ │ ├── product_sans_medium.ttf │ │ ├── product_sans_regular.ttf │ │ ├── regular.ttf │ │ └── tenacity.ttf │ │ ├── i18n │ │ ├── Deutsch.json │ │ ├── Español.json │ │ ├── French.json │ │ ├── UwU.json │ │ └── 简体中文.json │ │ ├── icon.png │ │ ├── images │ │ ├── Bed.png │ │ ├── End Stone.png │ │ ├── Obsidian.png │ │ ├── Stained Clay.png │ │ ├── Stained Glass.png │ │ ├── Water.png │ │ ├── Wooden Planks.png │ │ └── Wool.png │ │ ├── shaders │ │ ├── gaussian.frag │ │ ├── rrect.frag │ │ ├── rrectGradient.frag │ │ ├── rrectOutline.frag │ │ └── vertex.vsh │ │ ├── sounds.json │ │ ├── sounds │ │ ├── alarm.ogg │ │ ├── click │ │ │ ├── alan.ogg │ │ │ ├── double.ogg │ │ │ └── standard.ogg │ │ ├── toggle │ │ │ ├── quickmacro │ │ │ │ ├── disable.ogg │ │ │ │ └── enable.ogg │ │ │ ├── rise │ │ │ │ ├── disable.ogg │ │ │ │ └── enable.ogg │ │ │ └── sigma │ │ │ │ ├── disable.ogg │ │ │ │ └── enable.ogg │ │ └── yeet.ogg │ │ ├── stafflists │ │ ├── BedwarsPractice.txt │ │ ├── BlocksMC.txt │ │ ├── Gamster.txt │ │ ├── GommeHD.txt │ │ ├── Heypixel.txt │ │ ├── HylexMC.txt │ │ ├── Hypixel.txt │ │ ├── Jartex.txt │ │ ├── Mineland.txt │ │ ├── MinemenClub.txt │ │ ├── MushMC.txt │ │ ├── Pika.txt │ │ ├── QuickMacro.txt │ │ ├── Stardix.txt │ │ ├── Syuu.txt │ │ └── Twerion.txt │ │ └── textures │ │ ├── backgrounds │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── ravenxd.png │ │ ├── capes │ │ ├── astolfo.png │ │ ├── cherry.png │ │ ├── die.png │ │ ├── ravenanime.png │ │ ├── ravenaqua.png │ │ ├── ravengreen.png │ │ ├── ravenpurple.png │ │ ├── ravenred.png │ │ ├── ravenwhite.png │ │ └── ravenyellow.png │ │ └── watermarks │ │ ├── default.png │ │ └── enders.png │ ├── mcmod.info │ └── mixins.raven.json └── website ├── css ├── 1.css └── 2.css ├── html ├── PC.html └── PE.html ├── index.html └── png ├── 1 (1).png ├── 1 (2).png ├── 1 (3).png ├── 1.png ├── 2.png ├── AA.png ├── logo.ico └── logo2.jpg /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | > What have you added and what does it do? (Alternatively, what have you fixed and how does it work?) 5 | 6 | ## Testing 7 | > How have you tested your changes? Any testing tips for the reviewer? 8 | 9 | ## References 10 | > List any related issues, forum posts, videos and such here. 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .coderabbitai.yaml 2 | # Compiled class file 3 | *.class 4 | 5 | # Log file 6 | *.log 7 | .vscode 8 | # BlueJ files 9 | *.ctxt 10 | bin 11 | # Mobile Tools for Java (J2ME) 12 | .mtj.tmp/ 13 | 14 | # Package Files # 15 | *.jar 16 | *.war 17 | *.nar 18 | *.ear 19 | *.zip 20 | *.tar.gz 21 | *.rar 22 | 23 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 24 | hs_err_pid* 25 | 26 | # IntelliJ 27 | .idea/ 28 | out/ 29 | *.ipr 30 | *.iml 31 | *.iws 32 | 33 | # Gradle 34 | .gradle/ 35 | build/ 36 | 37 | # Deobf 38 | remapped deobf/ 39 | 40 | # Minecraft folder 41 | run/ 42 | -------------------------------------------------------------------------------- /.run/Raven-XD [build].run.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 16 | 18 | true 19 | true 20 | false 21 | false 22 | 23 | 24 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "githubPullRequests.ignoredPullRequestBranches": [ 3 | "master" 4 | ] 5 | } -------------------------------------------------------------------------------- /dependencies.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/dependencies.txt -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /libraries/discord-rpc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/libraries/discord-rpc.jar -------------------------------------------------------------------------------- /libraries/fastutil-core-8.5.14.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/libraries/fastutil-core-8.5.14.jar -------------------------------------------------------------------------------- /libraries/json-20220924.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/libraries/json-20220924.jar -------------------------------------------------------------------------------- /logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/logo/logo.png -------------------------------------------------------------------------------- /logo/logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/logo/logo.psd -------------------------------------------------------------------------------- /logo/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/logo/logo_small.png -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/clickgui/components/IComponent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.clickgui.components; 2 | 3 | import keystrokesmod.clickgui.ClickGui; 4 | import keystrokesmod.clickgui.components.impl.ModuleComponent; 5 | import keystrokesmod.module.setting.Setting; 6 | import keystrokesmod.utility.font.IFont; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | import javax.annotation.Nullable; 10 | 11 | public interface IComponent { 12 | @Nullable 13 | default Setting getSetting() { 14 | return null; 15 | } 16 | 17 | default void render() { 18 | } 19 | 20 | @NotNull 21 | ModuleComponent getParent(); 22 | 23 | @NotNull 24 | default IFont getFont() { 25 | return ClickGui.getFont(); 26 | } 27 | 28 | default void onDrawScreen(int x, int y) { 29 | } 30 | 31 | default void onClick(int x, int y, int b) { 32 | } 33 | 34 | default void mouseReleased(int x, int y, int m) { 35 | } 36 | 37 | default void keyTyped(char t, int k) { 38 | } 39 | 40 | default void so(int n) { 41 | } 42 | 43 | default int gh() { 44 | return 0; 45 | } 46 | 47 | default void onGuiClosed() { 48 | } 49 | 50 | default void drawScreen(int x, int y) { 51 | onDrawScreen(x, y); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/dynamic/Dynamic.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.dynamic; 2 | 3 | public interface Dynamic { 4 | void init(); 5 | 6 | void exit(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/BlockPlaceEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class BlockPlaceEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/BlockWebEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import net.minecraft.block.state.IBlockState; 7 | import net.minecraft.util.BlockPos; 8 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 9 | import net.minecraftforge.fml.common.eventhandler.Event; 10 | 11 | @Getter 12 | @Cancelable 13 | @AllArgsConstructor 14 | public class BlockWebEvent extends Event { 15 | private final BlockPos blockPos; 16 | private final IBlockState blockState; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/ClickEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class ClickEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/ClientBrandEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import net.minecraftforge.fml.common.eventhandler.Event; 7 | 8 | @EqualsAndHashCode(callSuper = true) 9 | @Data 10 | @AllArgsConstructor 11 | public class ClientBrandEvent extends Event { 12 | private String brand; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/EyeHeightEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import keystrokesmod.utility.Utils; 4 | import lombok.*; 5 | import net.minecraftforge.fml.common.eventhandler.Event; 6 | 7 | import static keystrokesmod.Raven.mc; 8 | 9 | @Getter 10 | public class EyeHeightEvent extends Event { 11 | private double y; 12 | private boolean set; 13 | 14 | public EyeHeightEvent(double eyeHeight) { 15 | setEyeHeight(eyeHeight); 16 | } 17 | 18 | public double getEyeHeight() { 19 | return 1.62 - (mc.thePlayer.lastTickPosY + 20 | (((mc.thePlayer.posY - mc.thePlayer.lastTickPosY) * Utils.getTimer().renderPartialTicks)) - y); 21 | } 22 | 23 | public void setEyeHeight(double targetEyeHeight) { 24 | this.y = targetEyeHeight - 1.62 + mc.thePlayer.lastTickPosY + 25 | ((mc.thePlayer.posY - mc.thePlayer.lastTickPosY) * (double) Utils.getTimer().renderPartialTicks); 26 | } 27 | 28 | public void setY(double y) { 29 | this.y = y; 30 | this.set = true; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/FOVUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class FOVUpdateEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/JumpEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class JumpEvent extends Event { 8 | private float motionY, yaw; 9 | 10 | public JumpEvent(float motionY, float yaw) { 11 | this.motionY = motionY; 12 | this.yaw = yaw; 13 | } 14 | 15 | public float getMotionY() { 16 | return motionY; 17 | } 18 | 19 | public void setMotionY(float motionY) { 20 | this.motionY = motionY; 21 | } 22 | 23 | public float getYaw() { 24 | return yaw; 25 | } 26 | 27 | public void setYaw(float yaw) { 28 | this.yaw = yaw; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/MoveEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 7 | import net.minecraftforge.fml.common.eventhandler.Event; 8 | 9 | @Setter 10 | @Getter 11 | @Cancelable 12 | @AllArgsConstructor 13 | public class MoveEvent extends Event { 14 | private double x; 15 | private double y; 16 | private double z; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/MoveInputEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import net.minecraftforge.fml.common.eventhandler.Event; 6 | 7 | @Setter 8 | @Getter 9 | public class MoveInputEvent extends Event { 10 | private float forward, strafe; 11 | private boolean jump, sneak; 12 | private double sneakSlowDown; 13 | 14 | public MoveInputEvent(float forward, float strafe, boolean jump, boolean sneak, double sneakSlowDown) { 15 | this.forward = forward; 16 | this.strafe = strafe; 17 | this.jump = jump; 18 | this.sneak = sneak; 19 | this.sneakSlowDown = sneakSlowDown; 20 | } 21 | 22 | @Override 23 | public void setCanceled(boolean cancel) { 24 | if (cancel) { 25 | setForward(0); 26 | setStrafe(0); 27 | setJump(false); 28 | setSneak(false); 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PostMotionEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class PostMotionEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PostPlayerInputEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class PostPlayerInputEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PostUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class PostUpdateEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PostVelocityEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class PostVelocityEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreConnectEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import keystrokesmod.utility.GuiConnectingMsg; 4 | import net.minecraft.client.multiplayer.GuiConnecting; 5 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 6 | import net.minecraftforge.fml.common.eventhandler.Event; 7 | 8 | @Cancelable 9 | public class PreConnectEvent extends Event { 10 | private final GuiConnecting screen; 11 | private final String ip; 12 | private final int port; 13 | private final GuiConnectingMsg extraMessage = new GuiConnectingMsg(); 14 | 15 | public PreConnectEvent(GuiConnecting screen, String ip, int port) { 16 | this.screen = screen; 17 | this.ip = ip; 18 | this.port = port; 19 | } 20 | 21 | public GuiConnecting getScreen() { 22 | return screen; 23 | } 24 | 25 | public String getIp() { 26 | return ip; 27 | } 28 | 29 | public int getPort() { 30 | return port; 31 | } 32 | 33 | public GuiConnectingMsg getExtraMessage() { 34 | return extraMessage; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreMoveEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class PreMoveEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreOrientCameraEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import net.minecraftforge.fml.common.eventhandler.Event; 7 | 8 | @EqualsAndHashCode(callSuper = true) 9 | @AllArgsConstructor 10 | @Data 11 | public class PreOrientCameraEvent extends Event { 12 | private float smooth; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreTickEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class PreTickEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class PreUpdateEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PreVelocityEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 7 | import net.minecraftforge.fml.common.eventhandler.Event; 8 | 9 | @Getter 10 | @Setter 11 | @Cancelable 12 | @AllArgsConstructor 13 | public class PreVelocityEvent extends Event { 14 | private int motionX; 15 | private int motionY; 16 | private int motionZ; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/PushOutOfBlockEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import keystrokesmod.utility.movement.Direction; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 8 | import net.minecraftforge.fml.common.eventhandler.Event; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | @Getter 12 | @Setter 13 | @Cancelable 14 | @AllArgsConstructor 15 | public class PushOutOfBlockEvent extends Event { 16 | private @NotNull Direction direction; 17 | private float pushMotion; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/ReceivePacketEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.Getter; 4 | import net.minecraft.network.Packet; 5 | import net.minecraft.network.play.INetHandlerPlayClient; 6 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 7 | import net.minecraftforge.fml.common.eventhandler.Event; 8 | 9 | @Getter 10 | @Cancelable 11 | public class ReceivePacketEvent extends Event { 12 | private final Packet packet; 13 | 14 | public ReceivePacketEvent(Packet packet) { 15 | try { 16 | this.packet = (Packet) packet; 17 | } catch (ClassCastException e) { 18 | throw new RuntimeException("Invalid packet received!"); 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/RenderContainerEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class RenderContainerEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/RightClickEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | 6 | @Cancelable 7 | public class RightClickEvent extends Event { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/RotationEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import keystrokesmod.module.impl.other.RotationHandler; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import net.minecraftforge.fml.common.eventhandler.Event; 7 | 8 | public class RotationEvent extends Event { 9 | @Getter 10 | private float yaw; 11 | @Getter 12 | private float pitch; 13 | @Setter 14 | @Getter 15 | private RotationHandler.MoveFix moveFix; 16 | @Getter 17 | private boolean smoothBack = true; 18 | private boolean isSet; 19 | 20 | public RotationEvent(float yaw, float pitch, RotationHandler.MoveFix moveFix) { 21 | this.yaw = yaw; 22 | this.pitch = pitch; 23 | this.moveFix = moveFix; 24 | } 25 | 26 | public void setYaw(float yaw) { 27 | this.yaw = yaw; 28 | isSet = true; 29 | } 30 | 31 | public void setPitch(float pitch) { 32 | this.pitch = pitch; 33 | isSet = true; 34 | } 35 | 36 | public boolean isSet() { 37 | return isSet; 38 | } 39 | 40 | public void noSmoothBack() { 41 | smoothBack = false; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/SafeWalkEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | import net.minecraftforge.fml.common.eventhandler.Event; 8 | 9 | @Getter 10 | @Setter 11 | @AllArgsConstructor 12 | public class SafeWalkEvent extends Event { 13 | private boolean safeWalk; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/ScaffoldPlaceEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraft.util.MovingObjectPosition; 4 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 5 | import net.minecraftforge.fml.common.eventhandler.Event; 6 | 7 | @Cancelable 8 | public class ScaffoldPlaceEvent extends Event { 9 | private MovingObjectPosition hitResult; 10 | private boolean extra; 11 | 12 | public ScaffoldPlaceEvent(MovingObjectPosition hitResult, boolean extra) { 13 | this.hitResult = hitResult; 14 | this.extra = extra; 15 | } 16 | 17 | public MovingObjectPosition getHitResult() { 18 | return hitResult; 19 | } 20 | 21 | public void setHitResult(MovingObjectPosition hitResult) { 22 | this.hitResult = hitResult; 23 | } 24 | 25 | public boolean isExtra() { 26 | return extra; 27 | } 28 | 29 | public void setExtra(boolean extra) { 30 | this.extra = extra; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/SendPacketEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import net.minecraft.network.Packet; 7 | import net.minecraftforge.fml.common.eventhandler.Cancelable; 8 | import net.minecraftforge.fml.common.eventhandler.Event; 9 | 10 | @Setter 11 | @Getter 12 | @Cancelable 13 | @AllArgsConstructor 14 | public class SendPacketEvent extends Event { 15 | private Packet packet; 16 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/SprintEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import net.minecraftforge.fml.common.eventhandler.Event; 7 | 8 | @Getter 9 | @Setter 10 | @AllArgsConstructor 11 | public class SprintEvent extends Event { 12 | private boolean sprint; 13 | private boolean omni; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/StepEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class StepEvent extends Event { 6 | private final double height; 7 | 8 | public StepEvent(double height) { 9 | this.height = height; 10 | } 11 | 12 | public double getHeight() { 13 | return height; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/SwingAnimationEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public final class SwingAnimationEvent extends Event { 6 | private int animationEnd; 7 | 8 | public SwingAnimationEvent(int animationEnd) { 9 | this.animationEnd = animationEnd; 10 | } 11 | 12 | public int getAnimationEnd() { 13 | return animationEnd; 14 | } 15 | 16 | public void setAnimationEnd(int animationEnd) { 17 | this.animationEnd = animationEnd; 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/event/WorldChangeEvent.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.event; 2 | 3 | import net.minecraftforge.fml.common.eventhandler.Event; 4 | 5 | public class WorldChangeEvent extends Event { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/keystroke/KeyStroke.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.keystroke; 2 | 3 | public class KeyStroke { 4 | public static int x; 5 | public static int y; 6 | public static int currentColorNumber; 7 | public static boolean d; 8 | public static boolean e; 9 | public static boolean f; 10 | 11 | public KeyStroke() { 12 | x = 0; 13 | y = 0; 14 | currentColorNumber = 0; 15 | d = false; 16 | e = true; 17 | f = false; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/keystroke/keystrokeCommand.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.keystroke; 2 | 3 | import keystrokesmod.Raven; 4 | import net.minecraft.command.CommandBase; 5 | import net.minecraft.command.ICommandSender; 6 | 7 | public class keystrokeCommand extends CommandBase { 8 | public String getCommandName() { 9 | return "keystrokesmod"; 10 | } 11 | 12 | public void processCommand(ICommandSender sender, String[] args) { 13 | Raven.toggleKeyStrokeConfigGui(); 14 | } 15 | 16 | public String getCommandUsage(ICommandSender sender) { 17 | return "/keystrokesmod"; 18 | } 19 | 20 | public int getRequiredPermissionLevel() { 21 | return 0; 22 | } 23 | 24 | public boolean canCommandSenderUseCommand(ICommandSender sender) { 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/MixinLoader.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins; 2 | 3 | import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; 4 | import org.jetbrains.annotations.NotNull; 5 | import org.jetbrains.annotations.Nullable; 6 | import org.spongepowered.asm.launch.MixinBootstrap; 7 | import org.spongepowered.asm.mixin.MixinEnvironment; 8 | import org.spongepowered.asm.mixin.Mixins; 9 | 10 | import java.util.Map; 11 | 12 | @IFMLLoadingPlugin.MCVersion("1.8.9") 13 | public class MixinLoader implements IFMLLoadingPlugin { 14 | public MixinLoader() { 15 | MixinBootstrap.init(); 16 | Mixins.addConfiguration("mixins.raven.json"); 17 | MixinEnvironment.getDefaultEnvironment().setSide(MixinEnvironment.Side.CLIENT); 18 | } 19 | 20 | @NotNull 21 | @Override 22 | public String[] getASMTransformerClass() { 23 | return new String[0]; 24 | } 25 | 26 | @Nullable 27 | @Override 28 | public String getModContainerClass() { 29 | return null; 30 | } 31 | 32 | @Nullable 33 | @Override 34 | public String getSetupClass() { 35 | return null; 36 | } 37 | 38 | @Override 39 | public void injectData(Map data) { 40 | 41 | } 42 | 43 | @Nullable 44 | @Override 45 | public String getAccessTransformerClass() { 46 | return null; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/GuiConnectingAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | import net.minecraft.client.gui.GuiScreen; 4 | import net.minecraft.client.multiplayer.GuiConnecting; 5 | import net.minecraft.network.NetworkManager; 6 | import org.apache.logging.log4j.Logger; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.gen.Accessor; 9 | 10 | @Mixin(GuiConnecting.class) 11 | public interface GuiConnectingAccessor { 12 | @Accessor("networkManager") 13 | NetworkManager getNetworkManager(); 14 | 15 | @Accessor("networkManager") 16 | void setNetworkManager(NetworkManager networkManager); 17 | 18 | @Accessor("cancel") 19 | boolean isCancel(); 20 | 21 | @Accessor("logger") 22 | Logger getLogger(); 23 | 24 | @Accessor("previousGuiScreen") 25 | GuiScreen getPreviousGuiScreen(); 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/GuiScreenAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | 4 | import net.minecraft.client.gui.GuiScreen; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Invoker; 7 | 8 | @Mixin(GuiScreen.class) 9 | public interface GuiScreenAccessor { 10 | 11 | @Invoker("mouseClicked") 12 | void mouseClicked(int x, int y, int mouse); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/KeyBindingAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | import net.minecraft.client.settings.KeyBinding; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(KeyBinding.class) 8 | public interface KeyBindingAccessor { 9 | @Accessor 10 | void setPressed(boolean pressed); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/MinecraftAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(Minecraft.class) 8 | public interface MinecraftAccessor { 9 | 10 | @Accessor("leftClickCounter") 11 | void setLeftClickCounter(int leftClickCounter); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/MixinInventoryPlayer.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | 4 | import keystrokesmod.Raven; 5 | import keystrokesmod.module.impl.other.SlotHandler; 6 | import keystrokesmod.utility.Utils; 7 | import net.minecraft.entity.player.EntityPlayer; 8 | import net.minecraft.entity.player.InventoryPlayer; 9 | import net.minecraft.item.ItemStack; 10 | import org.jetbrains.annotations.NotNull; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.Shadow; 13 | import org.spongepowered.asm.mixin.injection.At; 14 | import org.spongepowered.asm.mixin.injection.Inject; 15 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 16 | 17 | @Mixin(InventoryPlayer.class) 18 | public abstract class MixinInventoryPlayer { 19 | 20 | @Shadow public EntityPlayer player; 21 | 22 | @Inject(method = "getCurrentItem", at = @At("HEAD"), cancellable = true) 23 | public void getCurrentItem(@NotNull CallbackInfoReturnable cir) { 24 | if (Utils.nullCheck() && this.player == Raven.mc.thePlayer) { 25 | cir.setReturnValue(SlotHandler.getHeldItem()); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/client/PlayerControllerMPAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.client; 2 | 3 | import net.minecraft.client.multiplayer.PlayerControllerMP; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(PlayerControllerMP.class) 8 | public interface PlayerControllerMPAccessor { 9 | 10 | @Accessor("isHittingBlock") 11 | boolean isHittingBlock(); 12 | 13 | @Accessor("curBlockDamageMP") 14 | void setCurBlockDamageMP(float curBlockDamageMP); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/entity/EntityAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.entity; 2 | 3 | import net.minecraft.entity.Entity; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(Entity.class) 8 | public interface EntityAccessor { 9 | 10 | @Accessor("isInWeb") 11 | boolean isInWeb(); 12 | 13 | @Accessor("fire") 14 | int getFire(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/entity/EntityLivingBaseAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.entity; 2 | 3 | import net.minecraft.entity.EntityLivingBase; 4 | import net.minecraft.potion.PotionEffect; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | import java.util.Map; 9 | 10 | @Mixin(EntityLivingBase.class) 11 | public interface EntityLivingBaseAccessor { 12 | 13 | @Accessor("newPosX") 14 | double getNewPosX(); 15 | 16 | @Accessor("newPosY") 17 | double getNewPosY(); 18 | 19 | @Accessor("newPosZ") 20 | double getNewPosZ(); 21 | 22 | @Accessor("newRotationYaw") 23 | double getNewRotationYaw(); 24 | 25 | @Accessor("newRotationPitch") 26 | double getNewRotationPitch(); 27 | 28 | @Accessor("newPosRotationIncrements") 29 | int getNewPosRotationIncrements(); 30 | 31 | @Accessor("activePotionsMap") 32 | Map getActivePotionsMap(); 33 | 34 | @Accessor("activePotionsMap") 35 | void setActivePotionsMap(Map map); 36 | 37 | @Accessor("dead") 38 | boolean isDead(); 39 | 40 | @Accessor("jumpTicks") 41 | void setJumpTicks(int ticks); 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/entity/EntityPlayerAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.entity; 2 | 3 | 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(EntityPlayer.class) 9 | public interface EntityPlayerAccessor { 10 | 11 | @Accessor("itemInUseCount") 12 | void setItemInUseCount(int count); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/entity/EntityPlayerSPAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.entity; 2 | 3 | 4 | import net.minecraft.client.entity.EntityPlayerSP; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(EntityPlayerSP.class) 9 | public interface EntityPlayerSPAccessor { 10 | 11 | @Accessor("serverSprintState") 12 | boolean isServerSprint(); 13 | 14 | @Accessor("serverSprintState") 15 | void setServerSprint(boolean serverSprint); 16 | 17 | @Accessor("lastReportedYaw") 18 | float getLastReportedYaw(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/event/MixinEventBus.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.event; 2 | 3 | 4 | import net.minecraftforge.fml.common.eventhandler.Event; 5 | import net.minecraftforge.fml.common.eventhandler.EventBus; 6 | import org.jetbrains.annotations.NotNull; 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.CallbackInfoReturnable; 11 | 12 | @Mixin(value = EventBus.class, remap = false) 13 | public abstract class MixinEventBus { 14 | 15 | @Inject(method = "post", at = @At(value = "INVOKE", target = "Lcom/google/common/base/Throwables;propagate(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;"), cancellable = true) 16 | public void onPostHandleException(Event event, @NotNull CallbackInfoReturnable cir) { 17 | cir.setReturnValue(false); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinGuiChat.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | 4 | import keystrokesmod.utility.interact.moveable.MoveableManager; 5 | import net.minecraft.client.gui.GuiChat; 6 | import net.minecraft.client.gui.GuiScreen; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | 9 | @Mixin(GuiChat.class) 10 | public abstract class MixinGuiChat extends GuiScreen { 11 | 12 | @Override 13 | protected void mouseClickMove(int x, int y, int p_mouseClickMove_3_, long p_mouseClickMove_4_) { 14 | super.mouseClickMove(x, y, p_mouseClickMove_3_, p_mouseClickMove_4_); 15 | if (p_mouseClickMove_3_ == 0) 16 | MoveableManager.onMouseDrag(x, y); 17 | } 18 | 19 | @Override 20 | protected void mouseReleased(int x, int y, int p_mouseReleased_3_) { 21 | super.mouseReleased(x, y, p_mouseReleased_3_); 22 | MoveableManager.onMouseRelease(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinGuiContainer.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | import keystrokesmod.event.RenderContainerEvent; 4 | import net.minecraft.client.gui.inventory.GuiContainer; 5 | import net.minecraftforge.common.MinecraftForge; 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 | @Mixin(GuiContainer.class) 12 | public abstract class MixinGuiContainer { 13 | 14 | @Inject(method = "drawScreen", at = @At("HEAD"), cancellable = true) 15 | public void onDrawScreen(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) { 16 | RenderContainerEvent event = new RenderContainerEvent(); 17 | MinecraftForge.EVENT_BUS.post(event); 18 | if (event.isCanceled()) 19 | ci.cancel(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinGuiDownloadTerrain.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | 4 | import net.minecraft.client.gui.GuiDownloadTerrain; 5 | import net.minecraft.client.gui.GuiScreen; 6 | import org.lwjgl.input.Keyboard; 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(GuiDownloadTerrain.class) 13 | public class MixinGuiDownloadTerrain extends GuiScreen { 14 | 15 | @Inject(method = "keyTyped", at = @At("HEAD")) 16 | public void onKeyTyped(char typedChar, int keyCode, CallbackInfo ci) { 17 | if (keyCode == Keyboard.KEY_RETURN) { 18 | mc.displayGuiScreen(null); 19 | 20 | if (mc.currentScreen == null) { 21 | mc.setIngameFocus(); 22 | } 23 | } 24 | } 25 | 26 | @Inject(method = "drawScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiScreen;drawScreen(IIF)V")) 27 | public void onDrawScreen(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) { 28 | this.drawCenteredString(this.fontRendererObj, "Press RETURN to force yourself into the server.", this.width / 2, this.height / 2 - 25, 16777215); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinGuiMultiplayer.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | 4 | import net.minecraft.client.gui.GuiMultiplayer; 5 | import net.minecraft.client.gui.GuiScreen; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @Mixin(GuiMultiplayer.class) 11 | public class MixinGuiMultiplayer extends GuiScreen { 12 | 13 | @Redirect(method = "drawScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiMultiplayer;drawDefaultBackground()V")) 14 | public void onDrawDefaultBackground(GuiMultiplayer instance) { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinGuiSlot.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | 4 | import keystrokesmod.module.ModuleManager; 5 | import keystrokesmod.utility.render.BackgroundUtils; 6 | import net.minecraft.client.gui.GuiSlot; 7 | import net.minecraft.client.renderer.Tessellator; 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 | @Mixin(GuiSlot.class) 14 | public class MixinGuiSlot { 15 | 16 | @Inject(method = "drawContainerBackground", at = @At("HEAD"), cancellable = true, remap = false) 17 | public void onDrawContainerBackground(Tessellator p_drawContainerBackground_1_, CallbackInfo ci) { 18 | if (!ModuleManager.clientTheme.isEnabled() || !ModuleManager.clientTheme.background.isToggled()) 19 | return; 20 | 21 | BackgroundUtils.renderBackground((GuiSlot) (Object) this); 22 | 23 | ci.cancel(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/gui/MixinSplashProgress.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.gui; 2 | 3 | 4 | import net.minecraftforge.fml.client.SplashProgress; 5 | import org.jetbrains.annotations.NotNull; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | 11 | @Mixin(value = SplashProgress.class, remap = false) 12 | public abstract class MixinSplashProgress { 13 | 14 | @Inject(method = "getString", at = @At("HEAD"), cancellable = true) 15 | private static void onGetString(@NotNull String name, String def, CallbackInfoReturnable cir) { 16 | if (name.equals("logoTexture") && def.equals("textures/gui/title/mojang.png")) { 17 | cir.setReturnValue("keystrokesmod:textures/backgrounds/ravenxd.png"); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C02PacketUseEntityAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.client.C02PacketUseEntity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(C02PacketUseEntity.class) 9 | public interface C02PacketUseEntityAccessor { 10 | 11 | @Accessor("entityId") 12 | int getEntityId(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C03PacketPlayerAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.client.C03PacketPlayer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(C03PacketPlayer.class) 9 | public interface C03PacketPlayerAccessor { 10 | 11 | @Accessor("pitch") 12 | void setPitch(float pitch); 13 | 14 | @Accessor("rotating") 15 | boolean isRotating(); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C07PacketPlayerDiggingAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | import net.minecraft.network.play.client.C07PacketPlayerDigging; 4 | import net.minecraft.util.BlockPos; 5 | import net.minecraft.util.EnumFacing; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.gen.Accessor; 8 | 9 | @Mixin(C07PacketPlayerDigging.class) 10 | public interface C07PacketPlayerDiggingAccessor { 11 | 12 | @Accessor("facing") 13 | void setFacing(EnumFacing facing); 14 | 15 | @Accessor("position") 16 | void setPosition(BlockPos facing); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C08PacketPlayerBlockPlacementAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(C08PacketPlayerBlockPlacement.class) 9 | public interface C08PacketPlayerBlockPlacementAccessor { 10 | 11 | @Accessor("facingX") 12 | void setFacingX(float facingX); 13 | 14 | @Accessor("facingY") 15 | void setFacingY(float facingY); 16 | 17 | @Accessor("facingZ") 18 | void setFacingZ(float facingZ); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C0FPacketConfirmTransactionAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | import net.minecraft.network.play.client.C0FPacketConfirmTransaction; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(C0FPacketConfirmTransaction.class) 8 | public interface C0FPacketConfirmTransactionAccessor { 9 | 10 | @Accessor("uid") 11 | void setUid(short uid); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/C17PacketCustomPayloadAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | import net.minecraft.network.PacketBuffer; 4 | import net.minecraft.network.play.client.C17PacketCustomPayload; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | 9 | @Mixin(C17PacketCustomPayload.class) 10 | public interface C17PacketCustomPayloadAccessor { 11 | 12 | @Accessor("data") 13 | void setData(PacketBuffer data); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/MixinFMLCommonHandler.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | import keystrokesmod.event.ClientBrandEvent; 4 | import net.minecraftforge.common.MinecraftForge; 5 | import net.minecraftforge.fml.common.FMLCommonHandler; 6 | import org.jetbrains.annotations.NotNull; 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.CallbackInfoReturnable; 11 | 12 | @Mixin(FMLCommonHandler.class) 13 | public abstract class MixinFMLCommonHandler { 14 | 15 | @Inject(method = "getModName", at = @At("RETURN"), remap = false, cancellable = true) 16 | private void getModName(@NotNull CallbackInfoReturnable cir) { 17 | ClientBrandEvent event = new ClientBrandEvent(cir.getReturnValue()); 18 | MinecraftForge.EVENT_BUS.post(event); 19 | cir.setReturnValue(event.getBrand()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/S08PacketPlayerPosLookAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.server.S08PacketPlayerPosLook; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(S08PacketPlayerPosLook.class) 9 | public interface S08PacketPlayerPosLookAccessor { 10 | 11 | @Accessor("yaw") 12 | void setYaw(float yaw); 13 | 14 | @Accessor("pitch") 15 | void setPitch(float pitch); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/S14PacketEntityAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.server.S14PacketEntity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(S14PacketEntity.class) 9 | public interface S14PacketEntityAccessor { 10 | 11 | @Accessor("entityId") 12 | int getEntityId(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/network/S27PacketExplosionAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.network; 2 | 3 | 4 | import net.minecraft.network.play.server.S27PacketExplosion; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(S27PacketExplosion.class) 9 | public interface S27PacketExplosionAccessor { 10 | 11 | @Accessor("field_149152_f") 12 | void setMotionX(float motionX); 13 | 14 | @Accessor("field_149153_g") 15 | void setMotionY(float motionY); 16 | 17 | @Accessor("field_149159_h") 18 | void setMotionZ(float motionZ); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/render/ItemRendererAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.render; 2 | 3 | import net.minecraft.client.renderer.ItemRenderer; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Invoker; 6 | 7 | @Mixin(ItemRenderer.class) 8 | public interface ItemRendererAccessor { 9 | 10 | @Invoker("transformFirstPersonItem") 11 | void transformFirstPersonItem(float animationProgression, float swingProgress); 12 | 13 | @Invoker("func_178103_d") 14 | void blockTransformation(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/render/MixinFontRenderer.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.render; 2 | 3 | import keystrokesmod.utility.Utils; 4 | import net.minecraft.client.gui.FontRenderer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.ModifyVariable; 8 | 9 | @Mixin(FontRenderer.class) 10 | public abstract class MixinFontRenderer { 11 | @ModifyVariable(method = "renderString", at = @At("HEAD"), require = 1, ordinal = 0, argsOnly = true) 12 | private String renderString(String string) { 13 | return Utils.replace(string); 14 | } 15 | 16 | @ModifyVariable(method = "getStringWidth", at = @At("HEAD"), require = 1, ordinal = 0, argsOnly = true) 17 | private String getStringWidth(String string) { 18 | return Utils.replace(string); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/render/MixinLocale.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.render; 2 | 3 | 4 | import net.minecraft.client.resources.Locale; 5 | import org.jetbrains.annotations.NotNull; 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 | @Mixin(value = Locale.class, priority = 999) 12 | public abstract class MixinLocale { 13 | 14 | @Inject(method = "checkUnicode", at = @At(value = "FIELD", target = "Lnet/minecraft/client/resources/Locale;unicode:Z", shift = At.Shift.AFTER), cancellable = true) 15 | private void onCheckUnicode(@NotNull CallbackInfo ci) { 16 | ci.cancel(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/render/RenderManagerAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.render; 2 | 3 | 4 | import net.minecraft.client.renderer.entity.RenderManager; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(RenderManager.class) 9 | public interface RenderManagerAccessor { 10 | @Accessor("renderPosX") 11 | double getRenderPosX(); 12 | 13 | @Accessor("renderPosY") 14 | double getRenderPosY(); 15 | 16 | @Accessor("renderPosY") 17 | void setRenderPosY(double renderPosY); 18 | 19 | @Accessor("renderPosZ") 20 | double getRenderPosZ(); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/world/BlockNoteAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.world; 2 | 3 | 4 | import net.minecraft.block.BlockNote; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | import org.spongepowered.asm.mixin.gen.Invoker; 8 | 9 | import java.util.List; 10 | 11 | @Mixin(BlockNote.class) 12 | public interface BlockNoteAccessor { 13 | 14 | @Invoker("getInstrument") 15 | String getInstrument(int type); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/world/MixinBlockWeb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.world; 2 | 3 | 4 | import keystrokesmod.Raven; 5 | import keystrokesmod.event.BlockWebEvent; 6 | import keystrokesmod.utility.Utils; 7 | import net.minecraft.block.BlockWeb; 8 | import net.minecraft.block.state.IBlockState; 9 | import net.minecraft.entity.Entity; 10 | import net.minecraft.util.BlockPos; 11 | import net.minecraft.world.World; 12 | import net.minecraftforge.common.MinecraftForge; 13 | import org.spongepowered.asm.mixin.Mixin; 14 | import org.spongepowered.asm.mixin.injection.At; 15 | import org.spongepowered.asm.mixin.injection.Inject; 16 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 17 | 18 | @Mixin(BlockWeb.class) 19 | public class MixinBlockWeb { 20 | 21 | @Inject(method = "onEntityCollidedWithBlock", at = @At("HEAD"), cancellable = true) 22 | public void onEntityCollidedWithBlock(World world, BlockPos blockPos, IBlockState state, Entity entity, CallbackInfo ci) { 23 | if (Utils.nullCheck() && entity == Raven.mc.thePlayer) { 24 | BlockWebEvent event = new BlockWebEvent(blockPos, state); 25 | MinecraftForge.EVENT_BUS.post(event); 26 | 27 | if (event.isCanceled()) 28 | ci.cancel(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/mixins/impl/world/ScoreAccessor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.mixins.impl.world; 2 | 3 | 4 | import net.minecraft.scoreboard.Score; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(Score.class) 9 | public interface ScoreAccessor { 10 | 11 | @Accessor("scorePlayerName") 12 | void setScorePlayerName(String playerName); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/client/CommandLine.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.client; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.ButtonSetting; 5 | import keystrokesmod.utility.Commands; 6 | import keystrokesmod.utility.Timer; 7 | 8 | public class CommandLine extends Module { 9 | public static boolean a = false; 10 | public static boolean b = false; 11 | public static Timer an; 12 | public static ButtonSetting animate; 13 | 14 | public CommandLine() { 15 | super("Command line", Module.category.client, 0); 16 | this.registerSetting(animate = new ButtonSetting("Animate", true)); 17 | } 18 | 19 | public void onEnable() { 20 | Commands.setccs(); 21 | a = true; 22 | b = false; 23 | (an = new Timer(500.0F)).start(); 24 | } 25 | 26 | public void onDisable() { 27 | b = true; 28 | if (an != null) { 29 | an.start(); 30 | } 31 | 32 | Commands.od(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/client/DiscordRpc.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.client; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.client.discordrpc.AugustusRPC; 5 | import keystrokesmod.module.impl.client.discordrpc.BadlionRPC; 6 | import keystrokesmod.module.impl.client.discordrpc.LunarClientRPC; 7 | import keystrokesmod.module.impl.client.discordrpc.RavenXdRPC; 8 | import keystrokesmod.module.setting.impl.ModeValue; 9 | 10 | public class DiscordRpc extends Module { 11 | private final ModeValue mode; 12 | 13 | public DiscordRpc() { 14 | super("DiscordRPC", category.client); 15 | this.registerSetting(mode = new ModeValue("Mode", this) 16 | .add(new RavenXdRPC("RavenXD", this)) 17 | .add(new LunarClientRPC("Lunar Client", this)) 18 | .add(new AugustusRPC("Augustus", this)) 19 | .add(new BadlionRPC("Badlion Client", this)) 20 | .setDefaultValue("RavenXD")); 21 | } 22 | 23 | public void onEnable() { 24 | mode.enable(); 25 | } 26 | 27 | public void onDisable() { 28 | mode.disable(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/client/notification/INotification.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.client.notification; 2 | 3 | import keystrokesmod.module.impl.client.Notifications; 4 | 5 | public interface INotification { 6 | 7 | void render(Notifications.Notification notification); 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/AimAssist.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat; 2 | 3 | 4 | import keystrokesmod.module.Module; 5 | import keystrokesmod.module.impl.combat.aimassist.NormalAimAssist; 6 | import keystrokesmod.module.impl.combat.aimassist.TejasAssist; 7 | import keystrokesmod.module.setting.impl.ModeValue; 8 | 9 | public class AimAssist extends Module { 10 | private final ModeValue mode; 11 | 12 | public AimAssist() { 13 | super("AimAssist", category.combat, "Smoothly aims to closet valid target"); 14 | this.registerSetting(mode = new ModeValue("Mode", this) 15 | .add(new NormalAimAssist("Normal", this)) 16 | .add(new TejasAssist("Tejas", this)) 17 | .setDefaultValue("Original")); 18 | } 19 | 20 | public void onEnable() { 21 | mode.enable(); 22 | } 23 | 24 | public void onDisable() { 25 | mode.disable(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/Criticals.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.combat.criticals.*; 5 | import keystrokesmod.module.setting.impl.ModeValue; 6 | 7 | public class Criticals extends Module { 8 | private final ModeValue mode; 9 | 10 | public Criticals() { 11 | super("Criticals", category.combat, "Makes you get a critical hit every time you attack."); 12 | this.registerSetting(mode = new ModeValue("Mode", this) 13 | .add(new NoGroundCriticals("NoGround", this)) 14 | .add(new TimerCriticals("Timer", this)) 15 | .add(new JumpCriticals("Jump", this)) 16 | .add(new LagCriticals("Lag", this)) 17 | .add(new AirStuckCriticals("AirStuck", this)) 18 | ); 19 | } 20 | 21 | @Override 22 | public void onEnable() { 23 | mode.enable(); 24 | } 25 | 26 | @Override 27 | public void onDisable() { 28 | mode.disable(); 29 | } 30 | 31 | @Override 32 | public String getInfo() { 33 | return mode.getSelected().getPrettyInfo(); 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/autoclicker/IAutoClicker.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.autoclicker; 2 | 3 | import keystrokesmod.module.Module; 4 | 5 | public abstract class IAutoClicker extends Module { 6 | 7 | public IAutoClicker(String name, category moduleCategory) { 8 | super(name, moduleCategory); 9 | } 10 | 11 | public IAutoClicker(String name, category moduleCategory, String toolTip) { 12 | super(name, moduleCategory, toolTip); 13 | } 14 | 15 | public abstract boolean click(); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/autoclicker/RecordAutoClicker.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.autoclicker; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.other.RecordClick; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 7 | import org.jetbrains.annotations.NotNull; 8 | import org.lwjgl.input.Mouse; 9 | 10 | public class RecordAutoClicker extends SubMode { 11 | private final boolean left; 12 | private final boolean always; 13 | 14 | public RecordAutoClicker(String name, @NotNull IAutoClicker parent, boolean left, boolean always) { 15 | super(name, parent); 16 | this.left = left; 17 | this.always = always; 18 | } 19 | 20 | @SubscribeEvent 21 | public void onPreMotion(PreMotionEvent event) { 22 | if (!always && (left ? !Mouse.isButtonDown(0) : !Mouse.isButtonDown(1))) 23 | return; 24 | if (System.currentTimeMillis() < RecordClick.getNextClickTime()) 25 | return; 26 | 27 | if (parent.click()) 28 | RecordClick.click(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/criticals/JumpCriticals.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.criticals; 2 | 3 | import keystrokesmod.module.impl.combat.Criticals; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import net.minecraft.entity.EntityLivingBase; 6 | import net.minecraftforge.event.entity.player.AttackEntityEvent; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class JumpCriticals extends SubMode { 11 | public JumpCriticals(String name, @NotNull Criticals parent) { 12 | super(name, parent); 13 | } 14 | 15 | @SubscribeEvent 16 | public void onAttack(@NotNull AttackEntityEvent event) { 17 | if (event.target instanceof EntityLivingBase && mc.thePlayer.onGround) 18 | mc.thePlayer.jump(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/criticals/NoGroundCriticals.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.criticals; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.combat.Criticals; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.Utils; 7 | import net.minecraftforge.fml.common.eventhandler.EventPriority; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class NoGroundCriticals extends SubMode { 12 | public NoGroundCriticals(String name, @NotNull Criticals parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent(priority = EventPriority.HIGH) 17 | public void onPreMotion(PreMotionEvent event) { 18 | if (Utils.isTargetNearby()) { 19 | event.setOnGround(false); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/morekb/IMoreKB.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.morekb; 2 | 3 | import keystrokesmod.module.Module; 4 | 5 | public abstract class IMoreKB extends Module { 6 | private boolean canSprint = true; 7 | 8 | public IMoreKB(String name, category moduleCategory) { 9 | super(name, moduleCategory); 10 | } 11 | 12 | public void stopSprint() { 13 | canSprint = false; 14 | } 15 | 16 | public void reSprint() { 17 | canSprint = true; 18 | } 19 | 20 | protected boolean noSprint() { 21 | return !canSprint; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/ragebot/IRageBotFeature.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.ragebot; 2 | 3 | import keystrokesmod.module.impl.combat.RageBot; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class IRageBotFeature extends SubMode { 8 | public IRageBotFeature(String name, @NotNull RageBot parent) { 9 | super(name, parent); 10 | } 11 | 12 | public void onFire() { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/ragebot/nospread/LegitNoSpread.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.ragebot.nospread; 2 | 3 | import keystrokesmod.event.PreTickEvent; 4 | import keystrokesmod.module.impl.combat.RageBot; 5 | import keystrokesmod.module.impl.combat.ragebot.IRageBotFeature; 6 | import keystrokesmod.module.impl.other.SlotHandler; 7 | import keystrokesmod.utility.Utils; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class LegitNoSpread extends IRageBotFeature { 12 | private boolean shouldSwitch = false; 13 | private boolean fire; 14 | 15 | public LegitNoSpread(String name, @NotNull RageBot parent) { 16 | super(name, parent); 17 | } 18 | 19 | @Override 20 | public void onFire() { 21 | fire = true; 22 | } 23 | 24 | @SubscribeEvent 25 | public void onPreTick(PreTickEvent event) { 26 | if (shouldSwitch) { 27 | int curSlot = SlotHandler.getCurrentSlot(); 28 | int nextSlot = Utils.randomizeInt(0, 8); 29 | if (nextSlot == curSlot) 30 | nextSlot = nextSlot % 8 + 1; 31 | SlotHandler.setCurrentSlot(nextSlot); 32 | shouldSwitch = false; 33 | } else if (fire) { 34 | shouldSwitch = true; 35 | fire = false; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/ragebot/nospread/SwitchNoSpread.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.ragebot.nospread; 2 | 3 | import keystrokesmod.module.impl.combat.RageBot; 4 | import keystrokesmod.module.impl.combat.ragebot.IRageBotFeature; 5 | import keystrokesmod.module.impl.other.SlotHandler; 6 | import keystrokesmod.utility.PacketUtils; 7 | import net.minecraft.network.play.client.C09PacketHeldItemChange; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class SwitchNoSpread extends IRageBotFeature { 11 | public SwitchNoSpread(String name, @NotNull RageBot parent) { 12 | super(name, parent); 13 | } 14 | 15 | @Override 16 | public void onFire() { 17 | PacketUtils.sendPacket(new C09PacketHeldItemChange(SlotHandler.getCurrentSlot() % 8 + 1)); 18 | PacketUtils.sendPacket(new C09PacketHeldItemChange(SlotHandler.getCurrentSlot())); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/ragebot/rapidfire/IRapidFire.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.ragebot.rapidfire; 2 | 3 | import keystrokesmod.module.impl.combat.RageBot; 4 | import keystrokesmod.module.impl.combat.ragebot.IRageBotFeature; 5 | import keystrokesmod.utility.RageBotUtils; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import java.util.Collections; 9 | import java.util.Set; 10 | 11 | public class IRapidFire extends IRageBotFeature { 12 | public IRapidFire(String name, @NotNull RageBot parent) { 13 | super(name, parent); 14 | } 15 | 16 | public int getBestArm() { 17 | return getBestArm(Collections.emptySet()); 18 | } 19 | 20 | public int getBestArm(Set ignoreSlots) { 21 | int arm; 22 | 23 | switch ((int) parent.weaponMode.getInput()) { 24 | default: 25 | case 0: 26 | arm = RageBotUtils.getArmHypixelBedWars(ignoreSlots); 27 | break; 28 | case 1: 29 | arm = RageBotUtils.getArmHypixelZombie(ignoreSlots); 30 | break; 31 | case 2: 32 | arm = RageBotUtils.getArmCubeCraft(ignoreSlots); 33 | break; 34 | case 3: 35 | arm = RageBotUtils.getArmCSGO(ignoreSlots); 36 | break; 37 | } 38 | 39 | return arm; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/combat/ragebot/rapidfire/PacketRapidFire.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.combat.ragebot.rapidfire; 2 | 3 | import keystrokesmod.module.impl.combat.RageBot; 4 | import keystrokesmod.module.impl.other.SlotHandler; 5 | import keystrokesmod.module.setting.impl.SliderSetting; 6 | import keystrokesmod.utility.Utils; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class PacketRapidFire extends LegitRapidFire { 10 | private final SliderSetting amount; 11 | 12 | public PacketRapidFire(String name, @NotNull RageBot parent) { 13 | super(name, parent); 14 | this.registerSetting(amount = new SliderSetting("Amount", 5, 1, 10, 1)); 15 | } 16 | 17 | @Override 18 | public void onFire() { 19 | for (int i = 0; i < (int) amount.getInput(); i++) { 20 | int bestArm = getBestArm(); 21 | SlotHandler.setCurrentSlot(bestArm); 22 | Utils.sendClick(1, true); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/Disabler.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.exploit.disabler.*; 5 | import keystrokesmod.module.setting.impl.ModeValue; 6 | 7 | public class Disabler extends Module { 8 | public final ModeValue mode; 9 | 10 | public Disabler() { 11 | super("Disabler", category.exploit); 12 | this.registerSetting(mode = new ModeValue("Mode", this) 13 | .add(new CustomDisabler("Custom", this)) 14 | .add(new MinelandDisabler("Mineland", this)) 15 | .add(new GrimSpecDisabler("GrimSpec", this)) 16 | .add(new HypixelDisabler("Hypixel", this)) 17 | .add(new KKCraftDisabler("KKCraftTest", this)) 18 | .add(new BlocksMCDisabler("BlocksMC", this)) 19 | ); 20 | } 21 | 22 | @Override 23 | public void onEnable() { 24 | mode.enable(); 25 | } 26 | 27 | @Override 28 | public void onDisable() { 29 | mode.disable(); 30 | } 31 | 32 | @Override 33 | public String getInfo() { 34 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/ViaVersionFix.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.exploit.viaversionfix.QuickMacroViaVersionFix; 5 | import keystrokesmod.module.setting.impl.ModeValue; 6 | 7 | public class ViaVersionFix extends Module { 8 | public final ModeValue mode; 9 | 10 | public ViaVersionFix() { 11 | super("ViaVersionFix", category.exploit); 12 | this.registerSetting(mode = new ModeValue("Mode", this) 13 | .add(new QuickMacroViaVersionFix("QuickMacro", this)) 14 | ); 15 | } 16 | 17 | @Override 18 | public void onEnable() throws Throwable { 19 | mode.enable(); 20 | } 21 | 22 | @Override 23 | public void onDisable() throws Throwable { 24 | mode.disable(); 25 | } 26 | 27 | @Override 28 | public String getInfo() { 29 | return mode.getSelected().getPrettyName(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/disabler/MinelandDisabler.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit.disabler; 2 | 3 | import keystrokesmod.event.SendPacketEvent; 4 | import keystrokesmod.module.impl.exploit.Disabler; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraft.network.play.client.C03PacketPlayer; 7 | import net.minecraft.network.play.client.C0FPacketConfirmTransaction; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class MinelandDisabler extends SubMode { 12 | public MinelandDisabler(String name, @NotNull Disabler parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onSendPacket(@NotNull SendPacketEvent event) { 18 | if (event.getPacket() instanceof C0FPacketConfirmTransaction) 19 | event.setCanceled(true); 20 | else if (event.getPacket() instanceof C03PacketPlayer 21 | && !(event.getPacket() instanceof C03PacketPlayer.C04PacketPlayerPosition) 22 | && !(event.getPacket() instanceof C03PacketPlayer.C05PacketPlayerLook) 23 | && !(event.getPacket() instanceof C03PacketPlayer.C06PacketPlayerPosLook) 24 | ) 25 | event.setCanceled(true); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/remoteshop/IRemoteShop.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit.remoteshop; 2 | 3 | import keystrokesmod.module.impl.client.Notifications; 4 | import keystrokesmod.module.impl.exploit.RemoteShop; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraft.client.gui.inventory.GuiChest; 7 | import org.jetbrains.annotations.NotNull; 8 | import org.jetbrains.annotations.Nullable; 9 | 10 | public abstract class IRemoteShop extends SubMode { 11 | protected @Nullable GuiChest cacheShop = null; 12 | 13 | public IRemoteShop(String name, @NotNull RemoteShop parent) { 14 | super(name, parent); 15 | } 16 | 17 | public void openContainer() { 18 | if (mc.currentScreen instanceof GuiChest) { 19 | cacheShop = (GuiChest) mc.currentScreen; 20 | } else { 21 | cacheShop = null; 22 | } 23 | } 24 | 25 | public void remoteShop() { 26 | if (cacheShop == null) { 27 | Notifications.sendNotification(Notifications.NotificationTypes.INFO, "No valid shop cached."); 28 | return; 29 | } 30 | 31 | mc.displayGuiScreen(cacheShop); 32 | } 33 | 34 | public void forceClose() { 35 | cacheShop = null; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/remoteshop/NormalRemoteShop.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit.remoteshop; 2 | 3 | import keystrokesmod.module.impl.exploit.RemoteShop; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public class NormalRemoteShop extends IRemoteShop { 7 | public NormalRemoteShop(String name, @NotNull RemoteShop parent) { 8 | super(name, parent); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/exploit/viaversionfix/ViaVersionFixHelper.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.exploit.viaversionfix; 2 | 3 | import keystrokesmod.module.ModuleManager; 4 | 5 | public abstract class ViaVersionFixHelper { 6 | public static boolean isViaVersionFixEnabled() { 7 | return ModuleManager.viaVersionFix != null && ModuleManager.viaVersionFix.isEnabled(); 8 | } 9 | 10 | public static boolean is122() { 11 | return isViaVersionFixEnabled() && ModuleManager.viaVersionFix.mode.getSelected() instanceof QuickMacroViaVersionFix; 12 | } 13 | 14 | public static boolean isFixLadderMotion() { 15 | return is122(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/fun/ExtraBobbing.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.fun; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.SliderSetting; 5 | import net.minecraft.client.entity.EntityPlayerSP; 6 | 7 | public class ExtraBobbing extends Module { 8 | public SliderSetting level; 9 | private boolean b; 10 | 11 | public ExtraBobbing() { 12 | super("Extra Bobbing", Module.category.fun, 0); 13 | this.registerSetting(level = new SliderSetting("Level", 1.0D, 0.0D, 8.0D, 0.1D)); 14 | } 15 | 16 | public void onEnable() { 17 | this.b = mc.gameSettings.viewBobbing; 18 | if (!this.b) { 19 | mc.gameSettings.viewBobbing = true; 20 | } 21 | 22 | } 23 | 24 | public void onDisable() { 25 | mc.gameSettings.viewBobbing = this.b; 26 | } 27 | 28 | public void onUpdate() { 29 | if (!mc.gameSettings.viewBobbing) { 30 | mc.gameSettings.viewBobbing = true; 31 | } 32 | 33 | if (mc.thePlayer.movementInput.moveForward != 0.0F || mc.thePlayer.movementInput.moveStrafe != 0.0F) { 34 | EntityPlayerSP var10000 = mc.thePlayer; 35 | var10000.cameraYaw = (float) ((double) var10000.cameraYaw + level.getInput() / 2.0D); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/fun/FlameTrail.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.fun; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.SliderSetting; 5 | import net.minecraft.util.EnumParticleTypes; 6 | import net.minecraft.util.Vec3; 7 | 8 | public class FlameTrail extends Module { 9 | public SliderSetting a; 10 | 11 | public FlameTrail() { 12 | super("Flame Trail", Module.category.fun, 0); 13 | } 14 | 15 | public void onUpdate() { 16 | Vec3 vec = mc.thePlayer.getLookVec(); 17 | double x = mc.thePlayer.posX - vec.xCoord * 2.0D; 18 | double y = mc.thePlayer.posY + ((double) mc.thePlayer.getEyeHeight() - 0.2D); 19 | double z = mc.thePlayer.posZ - vec.zCoord * 2.0D; 20 | mc.thePlayer.worldObj.spawnParticle(EnumParticleTypes.FLAME, x, y, z, 0.0D, 0.0D, 0.0D, 0); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/fun/Yeet.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.fun; 2 | 3 | import keystrokesmod.Raven; 4 | import keystrokesmod.module.Module; 5 | import net.minecraft.crash.CrashReport; 6 | 7 | 8 | public class Yeet extends Module { 9 | private int enableTicks = 0; 10 | 11 | public Yeet() { 12 | super("Yeet", category.fun, "Yeet!"); 13 | } 14 | 15 | @Override 16 | public void onEnable() { 17 | enableTicks = 0; 18 | Raven.mc.thePlayer.playSound("keystrokesmod:yeet", 1, 1); 19 | mc.ingameGUI.displayTitle("还是PVP大佬", "", 10, 10, 10); 20 | } 21 | 22 | @Override 23 | public void onUpdate() { 24 | enableTicks++; 25 | 26 | if (enableTicks == 20) { 27 | this.disable(); 28 | for (int i = 0; i < 10; i++) { 29 | mc.crashed(new CrashReport("Yeet!", new YeetException())); 30 | } 31 | } 32 | } 33 | 34 | public static class YeetException extends RuntimeException { 35 | public YeetException() { 36 | super("Yeet!"); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/Jesus.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.movement.jesus.HypixelJesus; 5 | import keystrokesmod.module.impl.movement.jesus.KarhuJesus; 6 | import keystrokesmod.module.impl.movement.jesus.OldNCPJesus; 7 | import keystrokesmod.module.impl.movement.jesus.VulcanJesus; 8 | import keystrokesmod.module.setting.impl.ModeValue; 9 | 10 | public class Jesus extends Module { 11 | private final ModeValue mode; 12 | 13 | public Jesus() { 14 | super("Jesus", category.movement); 15 | this.registerSetting(mode = new ModeValue("Mode", this) 16 | .add(new KarhuJesus("Karhu", this)) 17 | .add(new OldNCPJesus("Old NCP", this)) 18 | .add(new VulcanJesus("Vulcan", this)) 19 | .add(new HypixelJesus("Hypixel", this)) 20 | ); 21 | } 22 | 23 | @Override 24 | public void onEnable() { 25 | mode.enable(); 26 | } 27 | 28 | @Override 29 | public void onDisable() { 30 | mode.disable(); 31 | } 32 | 33 | @Override 34 | public String getInfo() { 35 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/NoWeb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.movement.noweb.IgnoreNoWeb; 5 | import keystrokesmod.module.impl.movement.noweb.IntaveNoWeb; 6 | import keystrokesmod.module.impl.movement.noweb.PingNoWeb; 7 | import keystrokesmod.module.impl.movement.noweb.VulcanNoWeb; 8 | import keystrokesmod.module.setting.impl.ModeValue; 9 | 10 | public class NoWeb extends Module { 11 | private final ModeValue mode; 12 | 13 | public NoWeb() { 14 | super("NoWeb", category.movement); 15 | this.registerSetting(mode = new ModeValue("Mode", this) 16 | .add(new IgnoreNoWeb("Ignore", this)) 17 | .add(new PingNoWeb("Ping", this)) 18 | .add(new IntaveNoWeb("Intave", this)) 19 | .add(new VulcanNoWeb("Vulcan", this)) 20 | ); 21 | } 22 | 23 | @Override 24 | public void onEnable() { 25 | mode.enable(); 26 | } 27 | 28 | @Override 29 | public void onDisable() { 30 | mode.disable(); 31 | } 32 | 33 | @Override 34 | public String getInfo() { 35 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/Step.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.movement.step.Hypixel15Step; 5 | import keystrokesmod.module.impl.movement.step.HypixelStep; 6 | import keystrokesmod.module.impl.movement.step.SemiLegitStep; 7 | import keystrokesmod.module.setting.impl.ModeValue; 8 | 9 | public class Step extends Module { 10 | private final ModeValue mode; 11 | 12 | public Step() { 13 | super("Step", category.movement); 14 | this.registerSetting(mode = new ModeValue("Mode", this) 15 | .add(new Hypixel15Step("Hypixel 1.5", this)) 16 | .add(new SemiLegitStep("Semi-Legit", this)) 17 | .add(new HypixelStep("Hypixel", this)) 18 | ); 19 | } 20 | 21 | @Override 22 | public void onEnable() { 23 | mode.enable(); 24 | } 25 | 26 | @Override 27 | public void onDisable() { 28 | mode.disable(); 29 | } 30 | 31 | @Override 32 | public String getInfo() { 33 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/StopMotion.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.ButtonSetting; 5 | 6 | public class StopMotion extends Module { 7 | public static ButtonSetting a; 8 | public static ButtonSetting b; 9 | public static ButtonSetting c; 10 | 11 | public StopMotion() { 12 | super("Stop Motion", Module.category.movement, 0); 13 | this.registerSetting(a = new ButtonSetting("Stop X", true)); 14 | this.registerSetting(b = new ButtonSetting("Stop Y", true)); 15 | this.registerSetting(c = new ButtonSetting("Stop Z", true)); 16 | } 17 | 18 | public void onEnable() { 19 | if (a.isToggled()) { 20 | mc.thePlayer.motionX = 0.0D; 21 | } 22 | 23 | if (b.isToggled()) { 24 | mc.thePlayer.motionY = 0.0D; 25 | } 26 | 27 | if (c.isToggled()) { 28 | mc.thePlayer.motionZ = 0.0D; 29 | } 30 | 31 | this.disable(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/Teleport.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.movement.teleport.HypixelTeleport; 5 | import keystrokesmod.module.setting.impl.ModeValue; 6 | 7 | public class Teleport extends Module { 8 | private final ModeValue mode; 9 | 10 | public Teleport() { 11 | super("Teleport", category.movement); 12 | this.registerSetting(mode = new ModeValue("Mode", this) 13 | .add(new HypixelTeleport("Hypixel", this)) 14 | ); 15 | } 16 | 17 | @Override 18 | public void onEnable() throws Exception { 19 | mode.enable(); 20 | } 21 | 22 | @Override 23 | public void onDisable() throws Exception { 24 | mode.disable(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/WallClimb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.movement.wallclimb.IntaveWallClimb; 5 | import keystrokesmod.module.impl.movement.wallclimb.TestWallClimb; 6 | import keystrokesmod.module.impl.movement.wallclimb.VulcanWallClimb; 7 | import keystrokesmod.module.setting.impl.ModeValue; 8 | 9 | public class WallClimb extends Module { 10 | private final ModeValue mode; 11 | 12 | public WallClimb() { 13 | super("WallClimb", category.movement); 14 | this.registerSetting(mode = new ModeValue("Mode", this) 15 | .add(new IntaveWallClimb("Intave", this)) 16 | .add(new VulcanWallClimb("Vulcan", this)) 17 | .add(new TestWallClimb("Test", this)) 18 | ); 19 | } 20 | 21 | @Override 22 | public void onEnable() { 23 | mode.enable(); 24 | } 25 | 26 | @Override 27 | public void onDisable() { 28 | mode.disable(); 29 | } 30 | 31 | @Override 32 | public String getInfo() { 33 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/fly/AirWalkFly.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.fly; 2 | 3 | import keystrokesmod.event.BlockAABBEvent; 4 | import keystrokesmod.module.impl.movement.Fly; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.BlockUtils; 7 | import net.minecraft.util.AxisAlignedBB; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class AirWalkFly extends SubMode { 12 | public AirWalkFly(String name, @NotNull Fly parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onBlockAABB(@NotNull BlockAABBEvent event) { 18 | if (BlockUtils.replaceable(event.getBlockPos())) { 19 | final double x = event.getBlockPos().getX(), y = event.getBlockPos().getY(), z = event.getBlockPos().getZ(); 20 | 21 | if (y < mc.thePlayer.posY) { 22 | event.setBoundingBox(AxisAlignedBB.fromBounds(-15, -1, -15, 15, 1, 15).offset(x, y, z)); 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/fly/GrimACFly.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.fly; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.movement.Fly; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.EventPriority; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class GrimACFly extends SubMode { 11 | private double lastY; 12 | 13 | public GrimACFly(String name, @NotNull Fly parent) { 14 | super(name, parent); 15 | } 16 | 17 | @SubscribeEvent(priority = EventPriority.LOW) 18 | public void onPreMotion(@NotNull PreMotionEvent event) { 19 | lastY += 0.001; 20 | mc.thePlayer.setPosition(event.getPosX(), lastY, event.getPosZ()); 21 | event.setPosY(lastY); 22 | event.setOnGround(true); 23 | } 24 | 25 | @Override 26 | public void onEnable() throws Throwable { 27 | lastY = mc.thePlayer.posY; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noslow/INoSlow.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noslow; 2 | 3 | import keystrokesmod.module.impl.movement.NoSlow; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public abstract class INoSlow extends SubMode { 8 | public INoSlow(String name, @NotNull NoSlow parent) { 9 | super(name, parent); 10 | } 11 | 12 | public abstract float getSlowdown(); 13 | 14 | public float getStrafeSlowdown() { 15 | return getSlowdown(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noslow/NCPNoSlow.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noslow; 2 | 3 | import keystrokesmod.Raven; 4 | import keystrokesmod.module.impl.movement.NoSlow; 5 | import keystrokesmod.module.setting.impl.ButtonSetting; 6 | import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; 7 | import net.minecraft.util.BlockPos; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class NCPNoSlow extends INoSlow { 11 | private final ButtonSetting oldHypixel; 12 | 13 | public NCPNoSlow(String name, @NotNull NoSlow parent) { 14 | super(name, parent); 15 | this.registerSetting(oldHypixel = new ButtonSetting("Old Hypixel", false)); 16 | } 17 | 18 | @Override 19 | public void onUpdate() { 20 | if (!mc.thePlayer.isUsingItem()) return; 21 | if (mc.thePlayer.ticksExisted % 3 == 0 && !Raven.badPacketsHandler.C07) { 22 | mc.thePlayer.sendQueue.addToSendQueue(new C08PacketPlayerBlockPlacement(new BlockPos(-1, -1, -1), 1, null, 0, 0, 0)); 23 | } 24 | } 25 | 26 | @Override 27 | public float getSlowdown() { 28 | return oldHypixel.isToggled() ? .95f : 1; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noslow/OldGrimNoSlow.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noslow; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.movement.NoSlow; 5 | import keystrokesmod.utility.PacketUtils; 6 | import net.minecraft.network.play.client.C09PacketHeldItemChange; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class OldGrimNoSlow extends INoSlow { 11 | public OldGrimNoSlow(String name, @NotNull NoSlow parent) { 12 | super(name, parent); 13 | } 14 | 15 | @SubscribeEvent 16 | public void onPreMotion(PreMotionEvent event) { 17 | if (mc.thePlayer.isUsingItem()) { 18 | PacketUtils.sendPacket(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem % 8 + 1)); 19 | PacketUtils.sendPacket(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem % 7 + 2)); 20 | PacketUtils.sendPacket(new C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)); 21 | } 22 | } 23 | 24 | @Override 25 | public float getSlowdown() { 26 | return 1; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noslow/OldIntaveNoSlow.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noslow; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.movement.NoSlow; 5 | import keystrokesmod.module.impl.other.SlotHandler; 6 | import keystrokesmod.utility.PacketUtils; 7 | import net.minecraft.network.play.client.C09PacketHeldItemChange; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class OldIntaveNoSlow extends INoSlow { 12 | public OldIntaveNoSlow(String name, @NotNull NoSlow parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onPreMotion(PreMotionEvent event) { 18 | if (mc.thePlayer.isUsingItem()) { 19 | PacketUtils.sendPacket(new C09PacketHeldItemChange(SlotHandler.getCurrentSlot() % 8 + 1)); 20 | PacketUtils.sendPacket(new C09PacketHeldItemChange(SlotHandler.getCurrentSlot())); 21 | } 22 | } 23 | 24 | @Override 25 | public float getSlowdown() { 26 | return 1; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noslow/VanillaNoSlow.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noslow; 2 | 3 | import keystrokesmod.module.impl.movement.NoSlow; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public class VanillaNoSlow extends INoSlow { 7 | public VanillaNoSlow(String name, @NotNull NoSlow parent) { 8 | super(name, parent); 9 | } 10 | 11 | @Override 12 | public float getSlowdown() { 13 | return 1; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noweb/IgnoreNoWeb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noweb; 2 | 3 | import keystrokesmod.event.BlockWebEvent; 4 | import keystrokesmod.module.impl.movement.NoWeb; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class IgnoreNoWeb extends SubMode { 10 | public IgnoreNoWeb(String name, @NotNull NoWeb parent) { 11 | super(name, parent); 12 | } 13 | 14 | @SubscribeEvent 15 | public void onBlockWeb(@NotNull BlockWebEvent event) { 16 | event.setCanceled(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/noweb/VulcanNoWeb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.noweb; 2 | 3 | import keystrokesmod.event.BlockAABBEvent; 4 | import keystrokesmod.module.impl.movement.NoWeb; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraft.init.Blocks; 7 | import net.minecraft.util.AxisAlignedBB; 8 | import net.minecraft.util.BlockPos; 9 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | public class VulcanNoWeb extends SubMode { 13 | public VulcanNoWeb(String name, @NotNull NoWeb parent) { 14 | super(name, parent); 15 | } 16 | 17 | @SubscribeEvent 18 | public void onAABB(@NotNull BlockAABBEvent event) { 19 | if (event.getBlock() == Blocks.web) { 20 | BlockPos pos = event.getBlockPos(); 21 | event.setBoundingBox(new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1)); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/speed/BlocksMCSpeed.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.speed; 2 | 3 | import keystrokesmod.event.PreUpdateEvent; 4 | import keystrokesmod.module.impl.movement.Speed; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.MoveUtil; 7 | import keystrokesmod.utility.Utils; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class BlocksMCSpeed extends SubMode { 12 | public BlocksMCSpeed(String name, @NotNull Speed parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onPreUpdate(@NotNull PreUpdateEvent event) { 18 | if (parent.noAction() || !MoveUtil.isMoving()) return; 19 | 20 | if (mc.thePlayer.onGround) { 21 | MoveUtil.strafe(MoveUtil.getAllowedHorizontalDistance()); 22 | if (!Utils.jumpDown()) 23 | mc.thePlayer.jump(); 24 | } else { 25 | MoveUtil.strafe(); 26 | } 27 | 28 | if (parent.offGroundTicks == 5) { 29 | mc.thePlayer.motionY = MoveUtil.predictedMotion(mc.thePlayer.motionY, 2); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/speed/hypixel/GroundStrafeSpeed.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.speed.hypixel; 2 | 3 | import keystrokesmod.event.PrePlayerInputEvent; 4 | import keystrokesmod.module.impl.movement.speed.HypixelSpeed; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.MoveUtil; 7 | import keystrokesmod.utility.Utils; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class GroundStrafeSpeed extends SubMode { 12 | public GroundStrafeSpeed(String name, @NotNull HypixelSpeed parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onPrePlayerInput(PrePlayerInputEvent event) { 18 | if (parent.parent.noAction()) return; 19 | 20 | if (!Utils.jumpDown() && Utils.isMoving() && mc.currentScreen == null && mc.thePlayer.onGround) { 21 | MoveUtil.strafe(MoveUtil.getAllowedHorizontalDistance() - Math.random() / 100f); 22 | mc.thePlayer.jump(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/speed/hypixel/lowhop/HypixelLowHopPredictSpeed.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.speed.hypixel.lowhop; 2 | 3 | import keystrokesmod.event.PreUpdateEvent; 4 | import keystrokesmod.module.impl.movement.speed.hypixel.HypixelLowHopSpeed; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.MoveUtil; 7 | import keystrokesmod.utility.Utils; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class HypixelLowHopPredictSpeed extends SubMode { 12 | public HypixelLowHopPredictSpeed(String name, @NotNull HypixelLowHopSpeed parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onPreUpdate(PreUpdateEvent event) { 18 | if (!MoveUtil.isMoving() || parent.parent.parent.noAction()) return; 19 | if (parent.parent.parent.offGroundTicks == 0) { 20 | if (!Utils.jumpDown()) { 21 | MoveUtil.strafe(MoveUtil.getAllowedHorizontalDistance() - Math.random() / 100f); 22 | mc.thePlayer.jump(); 23 | } 24 | } else if (parent.parent.parent.offGroundTicks == 5 && !parent.noLowHop()) { 25 | mc.thePlayer.motionY = MoveUtil.predictedMotion(mc.thePlayer.motionY, 2); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/wallclimb/IntaveWallClimb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.wallclimb; 2 | 3 | import keystrokesmod.event.MoveEvent; 4 | import keystrokesmod.module.impl.movement.WallClimb; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class IntaveWallClimb extends SubMode { 10 | public IntaveWallClimb(String name, @NotNull WallClimb parent) { 11 | super(name, parent); 12 | } 13 | 14 | @SubscribeEvent 15 | public void onMove(MoveEvent event) { 16 | if (!mc.thePlayer.isCollidedHorizontally || mc.thePlayer.isOnLadder() || mc.thePlayer.isInWater() || mc.thePlayer.isInLava() || mc.thePlayer.isUsingItem()) 17 | return; 18 | 19 | event.setY(0.2); 20 | mc.thePlayer.motionY = 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/movement/wallclimb/VulcanWallClimb.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.movement.wallclimb; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.movement.WallClimb; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.MoveUtil; 7 | import net.minecraft.util.MathHelper; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class VulcanWallClimb extends SubMode { 12 | public VulcanWallClimb(String name, @NotNull WallClimb parent) { 13 | super(name, parent); 14 | } 15 | 16 | @SubscribeEvent 17 | public void onPreMotion(PreMotionEvent event) { 18 | if (mc.thePlayer.isCollidedHorizontally) { 19 | if (mc.thePlayer.ticksExisted % 2 == 0) { 20 | event.setOnGround(true); 21 | mc.thePlayer.motionY = MoveUtil.jumpMotion(); 22 | } 23 | 24 | final double yaw = MoveUtil.direction(); 25 | event.setPosX(event.getPosX() - -MathHelper.sin((float) yaw) * 0.1f); 26 | event.setPosZ(event.getPosZ() - MathHelper.cos((float) yaw) * 0.1f); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/FakeChat.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.DescriptionSetting; 5 | import keystrokesmod.utility.Utils; 6 | import net.minecraft.util.ChatComponentText; 7 | 8 | public class FakeChat extends Module { 9 | public static final String command = "fakechat"; 10 | public static final String c4 = "&cInvalid message."; 11 | public static DescriptionSetting a; 12 | public static String msg = "&eThis is a fake chat message."; 13 | 14 | public FakeChat() { 15 | super("Fake Chat", Module.category.other, 0); 16 | this.registerSetting(a = new DescriptionSetting(Utils.uf("command") + ": " + command + " [msg]")); 17 | } 18 | 19 | public void onEnable() { 20 | if (msg.contains("\\n")) { 21 | String[] split = msg.split("\\\\n"); 22 | 23 | for (String s : split) { 24 | this.sm(s); 25 | } 26 | } else { 27 | this.sm(msg); 28 | } 29 | 30 | this.disable(); 31 | } 32 | 33 | private void sm(String txt) { 34 | mc.thePlayer.addChatMessage(new ChatComponentText(Utils.formatColor(txt))); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/Panic.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other; 2 | 3 | import keystrokesmod.Raven; 4 | import keystrokesmod.module.Module; 5 | import keystrokesmod.module.setting.impl.DescriptionSetting; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | public class Panic extends Module { 11 | public Panic() { 12 | super("Panic", category.other); 13 | this.registerSetting(new DescriptionSetting("Disables all modules.")); 14 | } 15 | 16 | @Override 17 | public void onEnable() { 18 | List modulesToDisable = new ArrayList<>(); 19 | for (Module m : Raven.getModuleManager().getModules()) { 20 | if (m.isEnabled()) { 21 | modulesToDisable.add(m); 22 | } 23 | } 24 | for (Module m : modulesToDisable) { 25 | m.disable(); 26 | 27 | } 28 | this.disable(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/Test.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.utility.PacketUtils; 5 | import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; 6 | 7 | public class Test extends Module { 8 | public Test() { 9 | super("Test", category.experimental); 10 | } 11 | 12 | @Override 13 | public void onEnable() throws Throwable { 14 | PacketUtils.sendPacket(new C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.mainInventory[4])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/TRSelf.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats; 2 | 3 | import net.minecraft.client.entity.AbstractClientPlayer; 4 | import net.minecraft.client.entity.EntityPlayerSP; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | import java.util.concurrent.Executors; 8 | import java.util.concurrent.ScheduledExecutorService; 9 | 10 | public class TRSelf extends TRPlayer { 11 | private static TRSelf instance = null; 12 | public EntityPlayerSP fabricPlayer; 13 | public @NotNull ScheduledExecutorService timeTask = Executors.newScheduledThreadPool(8); 14 | public TRSelf(@NotNull EntityPlayerSP player) { 15 | super(player, true); 16 | this.fabricPlayer = player; 17 | instance = this; 18 | } 19 | 20 | public static TRSelf getInstance() { 21 | return instance; 22 | } 23 | 24 | public static void onDisconnect() { 25 | instance = null; 26 | } 27 | 28 | @Override 29 | public void update(AbstractClientPlayer player) { 30 | if (player instanceof EntityPlayerSP) { 31 | this.fabricPlayer = (EntityPlayerSP) player; 32 | } else throw new RuntimeException("Trying update TRSelf with non-local player!"); 33 | 34 | super.update(player); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/checks/movement/BlinkA.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.checks.movement; 2 | 3 | import keystrokesmod.module.impl.other.Anticheat; 4 | import keystrokesmod.module.impl.other.anticheats.Check; 5 | import keystrokesmod.module.impl.other.anticheats.TRPlayer; 6 | import keystrokesmod.module.impl.other.anticheats.config.AdvancedConfig; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | 10 | public class BlinkA extends Check { 11 | 12 | public BlinkA(@NotNull TRPlayer player) { 13 | super("BlinkA", player); 14 | } 15 | 16 | @Override 17 | public void _onTick() { 18 | if (player.lastPos == null || player.hasSetback) return; 19 | 20 | if (player.lastPos.distanceTo(player.currentPos) > ( 21 | AdvancedConfig.blinkMaxDistance * player.speedMul + player.fabricPlayer.fallDistance + Anticheat.getThreshold().getInput())) { 22 | flag(); 23 | } 24 | } 25 | 26 | @Override 27 | public int getAlertBuffer() { 28 | return AdvancedConfig.blinkAlertBuffer; 29 | } 30 | 31 | @Override 32 | public boolean isDisabled() { 33 | return !Anticheat.getMovementCheck().isToggled(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/checks/movement/FlyA.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.checks.movement; 2 | 3 | import keystrokesmod.module.impl.other.Anticheat; 4 | import keystrokesmod.module.impl.other.anticheats.Check; 5 | import keystrokesmod.module.impl.other.anticheats.TRPlayer; 6 | import keystrokesmod.module.impl.other.anticheats.config.AdvancedConfig; 7 | import keystrokesmod.module.impl.other.anticheats.utils.world.PlayerMove; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class FlyA extends Check { 11 | public FlyA(@NotNull TRPlayer player) { 12 | super("FlyA", player); 13 | } 14 | 15 | @Override 16 | public void _onTick() { 17 | if (PlayerMove.isInvalidMotion(player.currentMotion)) return; 18 | if (PlayerMove.isNoMove(player.currentMotion) || player.currentOnGround) return; 19 | 20 | if (player.lastMotion.y() == 0 && player.currentMotion.y() == 0) { 21 | flag(String.format("Invalid Y-motion: %.2f onGround=%s", player.currentMotion.y(), player.currentOnGround)); 22 | } 23 | } 24 | 25 | @Override 26 | public int getAlertBuffer() { 27 | return AdvancedConfig.flyAAlertBuffer; 28 | } 29 | 30 | @Override 31 | public boolean isDisabled() { 32 | return !Anticheat.getMovementCheck().isToggled(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/checks/movement/SpeedB.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.checks.movement; 2 | 3 | import keystrokesmod.module.impl.other.Anticheat; 4 | import keystrokesmod.module.impl.other.anticheats.Check; 5 | import keystrokesmod.module.impl.other.anticheats.TRPlayer; 6 | import keystrokesmod.module.impl.other.anticheats.config.AdvancedConfig; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class SpeedB extends Check { 10 | public SpeedB(@NotNull TRPlayer player) { 11 | super("SpeedB", player); 12 | } 13 | 14 | @Override 15 | public void _onTick() { 16 | if (player.fabricPlayer.isSprinting() && player.fabricPlayer.getFoodStats().getFoodLevel() <= 6) { 17 | flag(); 18 | } 19 | } 20 | 21 | @Override 22 | public int getAlertBuffer() { 23 | return AdvancedConfig.speedBAlertBuffer; 24 | } 25 | 26 | @Override 27 | public boolean isDisabled() { 28 | return !Anticheat.getMovementCheck().isToggled(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/checks/scaffolding/ScaffoldA.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.checks.scaffolding; 2 | 3 | import keystrokesmod.module.impl.other.Anticheat; 4 | import keystrokesmod.module.impl.other.anticheats.Check; 5 | import keystrokesmod.module.impl.other.anticheats.TRPlayer; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class ScaffoldA extends Check { 9 | public ScaffoldA(@NotNull TRPlayer player) { 10 | super("*ScaffoldA*", player); 11 | } 12 | 13 | @Override 14 | public void _onPlaceBlock() { 15 | if (!player.currentSwing) { 16 | flag("no valid swing."); 17 | } 18 | } 19 | 20 | @Override 21 | public int getAlertBuffer() { 22 | return 10; 23 | } 24 | 25 | @Override 26 | public boolean isDisabled() { 27 | return !Anticheat.getScaffoldingCheck().isToggled() || !Anticheat.getExperimentalMode().isToggled(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/checks/scaffolding/ScaffoldC.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.checks.scaffolding; 2 | 3 | import keystrokesmod.module.impl.other.Anticheat; 4 | import keystrokesmod.module.impl.other.anticheats.Check; 5 | import keystrokesmod.module.impl.other.anticheats.TRPlayer; 6 | 7 | public class ScaffoldC extends Check { 8 | public ScaffoldC(TRPlayer player) { 9 | super("ScaffoldC", player); 10 | } 11 | 12 | @Override 13 | public void _onPlaceBlock() { 14 | if (player.currentRot.x == 85.0) { 15 | flag("Backwards rotation."); 16 | } 17 | } 18 | 19 | @Override 20 | public int getAlertBuffer() { 21 | return 2; 22 | } 23 | 24 | @Override 25 | public boolean isDisabled() { 26 | return !Anticheat.getScaffoldingCheck().isToggled(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/anticheats/utils/world/BlockUtils.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.anticheats.utils.world; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.block.state.IBlockState; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class BlockUtils { 8 | public static boolean isFullBlock(@NotNull IBlockState blockState) { 9 | Block block = blockState.getBlock(); 10 | return block.isFullCube(); 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/other/chatai/IChatAI.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.other.chatai; 2 | 3 | import keystrokesmod.module.impl.other.ChatAI; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | import java.util.Collections; 8 | 9 | public abstract class IChatAI extends SubMode { 10 | public IChatAI(String name, @NotNull ChatAI parent) { 11 | super(name, parent); 12 | } 13 | 14 | public abstract void onChat(String message); 15 | 16 | public Iterable getHelpMessage() { 17 | return Collections.singleton(""); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/AntiVoid.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.player.antivoid.*; 5 | import keystrokesmod.module.setting.impl.ModeValue; 6 | 7 | public class AntiVoid extends Module { 8 | private final ModeValue mode; 9 | 10 | public AntiVoid() { 11 | super("AntiVoid", category.player); 12 | this.registerSetting(mode = new ModeValue("Mode", this) 13 | .add(new HypixelAntiVoid("Hypixel", this)) 14 | .add(new AirStuckAntiVoid("AirStuck", this)) 15 | .add(new VulcanAntiVoid("Vulcan", this)) 16 | .add(new GrimACAntiVoid("GrimAC", this)) 17 | .add(new BacktrackAntiVoid("Backtrack", this)) 18 | .add(new NCPAntiVoid("NCP", this)) 19 | ); 20 | } 21 | 22 | @Override 23 | public void onEnable() throws Throwable { 24 | mode.enable(); 25 | } 26 | 27 | @Override 28 | public void onDisable() throws Throwable { 29 | mode.disable(); 30 | } 31 | 32 | @Override 33 | public String getInfo() { 34 | return mode.getSelected().getPrettyName(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/FakeLag.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.impl.player.fakelag.DynamicFakeLag; 5 | import keystrokesmod.module.impl.player.fakelag.LatencyFakeLag; 6 | import keystrokesmod.module.setting.impl.ModeValue; 7 | 8 | public class FakeLag extends Module { 9 | private final ModeValue mode; 10 | 11 | public FakeLag() { 12 | super("Fake Lag", category.player); 13 | this.registerSetting(mode = new ModeValue("Mode", this) 14 | .add(new LatencyFakeLag("Latency", this)) 15 | .add(new DynamicFakeLag("Dynamic", this)) 16 | .setDefaultValue("Latency")); 17 | } 18 | 19 | public String getInfo() { 20 | return mode.getSubModeValues().get((int) mode.getInput()).getPrettyName(); 21 | } 22 | 23 | public void onEnable() { 24 | mode.enable(); 25 | } 26 | 27 | public void onDisable() { 28 | // TODO we need to let it disable for auto? 29 | mode.disable(); 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/NoJumpDelay.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player; 2 | 3 | import keystrokesmod.event.PreUpdateEvent; 4 | import keystrokesmod.mixins.impl.entity.EntityLivingBaseAccessor; 5 | import keystrokesmod.module.Module; 6 | import keystrokesmod.module.ModuleManager; 7 | import keystrokesmod.module.setting.impl.ButtonSetting; 8 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 9 | 10 | public class NoJumpDelay extends Module { 11 | private final ButtonSetting notWhileScaffold; 12 | 13 | public NoJumpDelay() { 14 | super("NoJumpDelay", category.player); 15 | this.registerSetting(notWhileScaffold = new ButtonSetting("Not while scaffold", false)); 16 | } 17 | 18 | @SubscribeEvent 19 | public void onPreUpdate(PreUpdateEvent event) { 20 | if (!notWhileScaffold.isToggled() || !ModuleManager.scaffold.isEnabled()) { 21 | ((EntityLivingBaseAccessor) mc.thePlayer).setJumpTicks(0); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/antivoid/AirStuckAntiVoid.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.antivoid; 2 | 3 | import keystrokesmod.module.impl.movement.AirStuck; 4 | import keystrokesmod.module.impl.player.AntiVoid; 5 | import keystrokesmod.module.setting.impl.SliderSetting; 6 | import keystrokesmod.module.setting.impl.SubMode; 7 | import keystrokesmod.utility.Utils; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class AirStuckAntiVoid extends SubMode { 11 | private final AirStuck airStuck = new AirStuck(); 12 | private final SliderSetting distance; 13 | 14 | public AirStuckAntiVoid(String name, @NotNull AntiVoid parent) { 15 | super(name, parent); 16 | this.registerSetting(airStuck.getSettings()); 17 | this.registerSetting(distance = new SliderSetting("Distance", 5, 0, 10, 1)); 18 | } 19 | 20 | @Override 21 | public void onUpdate() throws Throwable { 22 | if (mc.thePlayer.fallDistance > distance.getInput() && Utils.overVoid() && !mc.thePlayer.onGround) { 23 | airStuck.enable(); 24 | } else { 25 | airStuck.disable(); 26 | } 27 | } 28 | 29 | @Override 30 | public void onDisable() throws Throwable { 31 | airStuck.disable(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/antivoid/NCPAntiVoid.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.antivoid; 2 | 3 | import keystrokesmod.module.impl.player.AntiVoid; 4 | import keystrokesmod.module.setting.impl.SliderSetting; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.script.classes.Vec3; 7 | import keystrokesmod.utility.Utils; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class NCPAntiVoid extends SubMode { 11 | private final SliderSetting distance; 12 | 13 | private Vec3 lastOnGroundPos = Vec3.ZERO; 14 | 15 | public NCPAntiVoid(String name, @NotNull AntiVoid parent) { 16 | super(name, parent); 17 | this.registerSetting(distance = new SliderSetting("Distance", 5, 0, 10, 1)); 18 | } 19 | 20 | @Override 21 | public void onEnable() throws Throwable { 22 | lastOnGroundPos = new Vec3(mc.thePlayer); 23 | } 24 | 25 | @Override 26 | public void onUpdate() throws Throwable { 27 | if (mc.thePlayer.fallDistance > distance.getInput() && Utils.overVoid() && !mc.thePlayer.onGround) { 28 | mc.thePlayer.setPosition(lastOnGroundPos.x, lastOnGroundPos.y, lastOnGroundPos.z); 29 | } else if (mc.thePlayer.onGround) { 30 | lastOnGroundPos = new Vec3(mc.thePlayer); 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/nofall/NoGroundNoFall.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.nofall; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.player.NoFall; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.EventPriority; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class NoGroundNoFall extends SubMode { 11 | public NoGroundNoFall(String name, @NotNull NoFall parent) { 12 | super(name, parent); 13 | } 14 | 15 | @SubscribeEvent(priority = EventPriority.HIGH) 16 | public void onPreMotion(@NotNull PreMotionEvent event) { 17 | if (!parent.noAction()) 18 | event.setOnGround(false); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/nofall/OnGround1NoFall.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.nofall; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.player.NoFall; 5 | import keystrokesmod.module.setting.impl.SliderSetting; 6 | import keystrokesmod.module.setting.impl.SubMode; 7 | import keystrokesmod.utility.PacketUtils; 8 | import net.minecraft.network.play.client.C03PacketPlayer; 9 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | public class OnGround1NoFall extends SubMode { 13 | private final SliderSetting minFallDist; 14 | 15 | public OnGround1NoFall(String name, @NotNull NoFall parent) { 16 | super(name, parent); 17 | this.registerSetting(minFallDist = new SliderSetting("Min fall distance", 4, 1, 24, 1)); 18 | } 19 | 20 | @SubscribeEvent 21 | public void onPreMotion(PreMotionEvent event) { 22 | if (mc.thePlayer.fallDistance > minFallDist.getInput() && !parent.noAction()) { 23 | PacketUtils.sendPacket(new C03PacketPlayer(true)); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/nofall/OnGround2NoFall.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.nofall; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.player.NoFall; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import net.minecraftforge.fml.common.eventhandler.EventPriority; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class OnGround2NoFall extends SubMode { 11 | public OnGround2NoFall(String name, @NotNull NoFall parent) { 12 | super(name, parent); 13 | } 14 | 15 | @SubscribeEvent(priority = EventPriority.HIGH) 16 | public void onPreMotion(@NotNull PreMotionEvent event) { 17 | if (!parent.noAction() && mc.thePlayer.fallDistance > 3) 18 | event.setOnGround(true); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/player/timer/NormalTimer.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.player.timer; 2 | 3 | import keystrokesmod.module.impl.player.Timer; 4 | import keystrokesmod.module.setting.impl.SliderSetting; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.Utils; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class NormalTimer extends SubMode { 10 | private final SliderSetting speed; 11 | 12 | public NormalTimer(String name, @NotNull Timer parent) { 13 | super(name, parent); 14 | this.registerSetting(speed = new SliderSetting("Speed", 1, 0, 5, 0.001)); 15 | } 16 | 17 | @Override 18 | public void onUpdate() throws Throwable { 19 | if (parent.canTimer()) { 20 | Utils.getTimer().timerSpeed = (float) speed.getInput(); 21 | } else { 22 | Utils.resetTimer(); 23 | } 24 | } 25 | 26 | @Override 27 | public void onEnable() throws Throwable { 28 | Utils.resetTimer(); 29 | } 30 | 31 | @Override 32 | public void onDisable() throws Throwable { 33 | Utils.resetTimer(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/AntiShuffle.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.DescriptionSetting; 5 | 6 | public class AntiShuffle extends Module { 7 | public static DescriptionSetting a; 8 | private static final String c = "§k"; 9 | 10 | public AntiShuffle() { 11 | super("AntiShuffle", Module.category.render, 0); 12 | this.registerSetting(a = new DescriptionSetting("Removes obfuscation (" + c + "hey" + "§" + "r).")); 13 | } 14 | 15 | public static String removeObfuscation(String s) { 16 | return s.replace(c, ""); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/CustomName.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.ModuleManager; 5 | import keystrokesmod.module.setting.impl.ButtonSetting; 6 | import keystrokesmod.module.setting.impl.DescriptionSetting; 7 | 8 | public class CustomName extends Module { 9 | public final ButtonSetting info; 10 | 11 | public CustomName() { 12 | super("CustomName", category.render, "allow you change module's name."); 13 | this.registerSetting(info = new ButtonSetting("Info", false, setting -> ModuleManager.sort())); 14 | this.registerSetting(new DescriptionSetting("Command: rename [module] [name] ")); 15 | } 16 | 17 | @Override 18 | public void onEnable() { 19 | ModuleManager.sort(); 20 | } 21 | 22 | @Override 23 | public void onDisable() { 24 | ModuleManager.sort(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/NoBackground.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.ModuleManager; 5 | import keystrokesmod.module.setting.impl.ButtonSetting; 6 | import keystrokesmod.module.setting.impl.DescriptionSetting; 7 | import keystrokesmod.utility.ContainerUtils; 8 | 9 | public class NoBackground extends Module { 10 | private static ButtonSetting onlyChest = null; 11 | 12 | public NoBackground() { 13 | super("NoBackground", category.render); 14 | this.registerSetting(new DescriptionSetting("Remove default background.")); 15 | this.registerSetting(onlyChest = new ButtonSetting("Only chest", false)); 16 | } 17 | 18 | public static boolean noRender() { 19 | return ModuleManager.noBackground != null && ModuleManager.noBackground.isEnabled() 20 | && onlyChest != null && (!onlyChest.isToggled() || ContainerUtils.isChest(true)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/NoCameraClip.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render; 2 | 3 | import keystrokesmod.module.Module; 4 | 5 | public class NoCameraClip extends Module { 6 | public NoCameraClip() { 7 | super("NoCameraClip", category.render); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/Potions.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render; 2 | 3 | import keystrokesmod.module.Module; 4 | import keystrokesmod.module.setting.impl.ButtonSetting; 5 | 6 | public class Potions extends Module { 7 | public ButtonSetting removeBlindness; 8 | public ButtonSetting removeNausea; 9 | 10 | public Potions() { 11 | super("Potions", category.render); 12 | this.registerSetting(removeBlindness = new ButtonSetting("Remove blindness", true)); 13 | this.registerSetting(removeNausea = new ButtonSetting("Remove nausea", true)); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/targetvisual/ITargetVisual.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render.targetvisual; 2 | 3 | import net.minecraft.entity.EntityLivingBase; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public interface ITargetVisual { 7 | 8 | void render(@NotNull EntityLivingBase target); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/render/targetvisual/targetesp/RavenTargetESP.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.render.targetvisual.targetesp; 2 | 3 | import keystrokesmod.module.impl.render.TargetESP; 4 | import keystrokesmod.module.impl.render.targetvisual.ITargetVisual; 5 | import keystrokesmod.module.setting.impl.ModeSetting; 6 | import keystrokesmod.module.setting.impl.SubMode; 7 | import keystrokesmod.utility.Theme; 8 | import keystrokesmod.utility.render.RenderUtils; 9 | import net.minecraft.entity.EntityLivingBase; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | public class RavenTargetESP extends SubMode implements ITargetVisual { 13 | private final ModeSetting theme; 14 | 15 | public RavenTargetESP(String name, @NotNull TargetESP parent) { 16 | super(name, parent); 17 | this.registerSetting(theme = new ModeSetting("Theme", Theme.themes, 0)); 18 | } 19 | 20 | @Override 21 | public void render(@NotNull EntityLivingBase target) { 22 | RenderUtils.renderEntity(target, 2, 0.0, 0.0, Theme.getGradient((int) theme.getInput(), 0), target.hurtTime != 0); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/IScaffoldRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.setting.impl.SubMode; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public abstract class IScaffoldRotation extends SubMode { 10 | 11 | public IScaffoldRotation(String name, @NotNull Scaffold parent) { 12 | super(name, parent); 13 | } 14 | 15 | /** 16 | * The target rotation 17 | * 18 | * @param placeYaw block place yaw 19 | * @param placePitch block place pitch 20 | * @param event rotation event 21 | * @return the final rotation data 22 | */ 23 | public abstract @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/IScaffoldSchedule.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public abstract class IScaffoldSchedule extends SubMode { 8 | public IScaffoldSchedule(String name, @NotNull Scaffold parent) { 9 | super(name, parent); 10 | } 11 | 12 | /** 13 | * @return true means runs normally, false means stop scheduling. 14 | */ 15 | public abstract boolean noPlace(); 16 | 17 | public abstract boolean noRotation(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/IScaffoldSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.setting.impl.SubMode; 5 | import keystrokesmod.utility.aim.RotationData; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public abstract class IScaffoldSprint extends SubMode { 9 | public IScaffoldSprint(String name, @NotNull Scaffold parent) { 10 | super(name, parent); 11 | } 12 | 13 | /** 14 | * Should we sprint? 15 | */ 16 | public abstract boolean isSprint(); 17 | 18 | /** 19 | * Should we force keep-y? 20 | */ 21 | public boolean isKeepY() { 22 | return false; 23 | } 24 | 25 | /** 26 | * The final rotation data before set. 27 | * 28 | * @param data rotation data 29 | * @return the new rotation data 30 | */ 31 | public RotationData onFinalRotation(RotationData data) { 32 | return data; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/rotation/BackwardsRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.rotation; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldRotation; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class BackwardsRotation extends IScaffoldRotation { 10 | public BackwardsRotation(String name, @NotNull Scaffold parent) { 11 | super(name, parent); 12 | } 13 | 14 | @Override 15 | public @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event) { 16 | return new RotationData(parent.getYaw(), 85); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/rotation/ConstantRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.rotation; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldRotation; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import net.minecraft.util.MovingObjectPosition; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class ConstantRotation extends IScaffoldRotation { 11 | public ConstantRotation(String name, @NotNull Scaffold parent) { 12 | super(name, parent); 13 | } 14 | 15 | @Override 16 | public @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event) { 17 | final MovingObjectPosition rayCasted = parent.rayCasted; 18 | if (rayCasted == null) 19 | return new RotationData(placeYaw, placePitch); 20 | 21 | return new RotationData(parent.getYaw(), placePitch); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/rotation/NoneRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.rotation; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldRotation; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class NoneRotation extends IScaffoldRotation { 10 | public NoneRotation(String name, @NotNull Scaffold parent) { 11 | super(name, parent); 12 | } 13 | 14 | @Override 15 | public @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event) { 16 | return new RotationData(event.getYaw(), event.getPitch()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/rotation/PreciseRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.rotation; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldRotation; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class PreciseRotation extends IScaffoldRotation { 10 | public PreciseRotation(String name, @NotNull Scaffold parent) { 11 | super(name, parent); 12 | } 13 | 14 | @Override 15 | public @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event) { 16 | return new RotationData(placeYaw, placePitch); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/rotation/StrictRotation.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.rotation; 2 | 3 | import keystrokesmod.event.RotationEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldRotation; 6 | import keystrokesmod.utility.MoveUtil; 7 | import keystrokesmod.utility.aim.RotationData; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class StrictRotation extends IScaffoldRotation { 11 | public StrictRotation(String name, @NotNull Scaffold parent) { 12 | super(name, parent); 13 | } 14 | 15 | @Override 16 | public @NotNull RotationData onRotation(float placeYaw, float placePitch, boolean forceStrict, @NotNull RotationEvent event) { 17 | if (!forceStrict && MoveUtil.isMoving()) { 18 | return new RotationData(parent.getYaw(), 85); 19 | } 20 | return new RotationData(placeYaw, placePitch); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/schedule/NormalSchedule.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.schedule; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSchedule; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class NormalSchedule extends IScaffoldSchedule { 8 | public NormalSchedule(String name, @NotNull Scaffold parent) { 9 | super(name, parent); 10 | } 11 | 12 | @Override 13 | public boolean noPlace() { 14 | return false; 15 | } 16 | 17 | @Override 18 | public boolean noRotation() { 19 | return false; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/schedule/SimpleTellySchedule.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.schedule; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSchedule; 5 | import keystrokesmod.module.setting.impl.SliderSetting; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class SimpleTellySchedule extends IScaffoldSchedule { 9 | private final SliderSetting startTellyTick; 10 | private final SliderSetting stopTellyTick; 11 | 12 | public SimpleTellySchedule(String name, @NotNull Scaffold parent) { 13 | super(name, parent); 14 | this.registerSetting(startTellyTick = new SliderSetting("Start telly tick", 1, 1, 8, 1)); 15 | this.registerSetting(stopTellyTick = new SliderSetting("Stop telly tick", 6, 1, 8, 1)); 16 | } 17 | 18 | @Override 19 | public boolean noRotation() { 20 | return noPlace(); 21 | } 22 | 23 | @Override 24 | public boolean noPlace() { 25 | return parent.offGroundTicks >= startTellyTick.getInput() && parent.offGroundTicks < stopTellyTick.getInput(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/DisabledSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class DisabledSprint extends IScaffoldSprint { 8 | public DisabledSprint(String name, @NotNull Scaffold parent) { 9 | super(name, parent); 10 | } 11 | 12 | @Override 13 | public boolean isSprint() { 14 | return false; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/EdgeSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 5 | import keystrokesmod.utility.Utils; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class EdgeSprint extends IScaffoldSprint { 9 | public EdgeSprint(String name, @NotNull Scaffold parent) { 10 | super(name, parent); 11 | } 12 | 13 | @Override 14 | public boolean isSprint() { 15 | return Utils.onEdge() || Utils.overAir(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/HypixelJump3Sprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSchedule; 5 | import keystrokesmod.utility.Utils; 6 | import keystrokesmod.utility.aim.RotationData; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class HypixelJump3Sprint extends JumpSprint { 10 | private float pitch = (float) (85 + Utils.randomizeDouble(-5, 1)); 11 | 12 | public HypixelJump3Sprint(String name, @NotNull Scaffold parent) { 13 | super(name, parent); 14 | } 15 | 16 | @Override 17 | public RotationData onFinalRotation(RotationData data) { 18 | if (((IScaffoldSchedule) parent.schedule.getSelected()).noRotation()) { 19 | return new RotationData(parent.getYaw() + 80, pitch); 20 | } 21 | pitch = (float) (85 + Utils.randomizeDouble(-5, 1)); 22 | return data; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/JumpSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class JumpSprint extends IScaffoldSprint { 8 | public JumpSprint(String name, @NotNull Scaffold parent) { 9 | super(name, parent); 10 | } 11 | 12 | @Override 13 | public boolean isSprint() { 14 | return parent.keepYPosition() && parent.placeBlock != null; 15 | } 16 | 17 | @Override 18 | public boolean isKeepY() { 19 | return true; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/LegitSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.other.RotationHandler; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 6 | import net.minecraft.util.MathHelper; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class LegitSprint extends IScaffoldSprint { 10 | public LegitSprint(String name, @NotNull Scaffold parent) { 11 | super(name, parent); 12 | } 13 | 14 | @Override 15 | public boolean isSprint() { 16 | return Math.abs(MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw) - MathHelper.wrapAngleTo180_float(RotationHandler.getRotationYaw())) <= 90; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/OldIntaveSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.event.JumpEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 6 | import keystrokesmod.utility.MoveUtil; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class OldIntaveSprint extends IScaffoldSprint { 11 | public OldIntaveSprint(String name, @NotNull Scaffold parent) { 12 | super(name, parent); 13 | } 14 | 15 | @SubscribeEvent 16 | public void onJump(@NotNull JumpEvent event) { 17 | event.setCanceled(true); 18 | mc.thePlayer.motionY = MoveUtil.jumpMotion(); 19 | } 20 | 21 | @Override 22 | public boolean isSprint() { 23 | return !mc.thePlayer.onGround; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/SneakSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.event.MoveInputEvent; 4 | import keystrokesmod.module.impl.world.Scaffold; 5 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 6 | import keystrokesmod.module.setting.impl.SliderSetting; 7 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class SneakSprint extends IScaffoldSprint { 11 | private final SliderSetting slowDown; 12 | 13 | public SneakSprint(String name, @NotNull Scaffold parent) { 14 | super(name, parent); 15 | this.registerSetting(slowDown = new SliderSetting("SlowDown", 1, 0.2, 1, 0.01)); 16 | } 17 | 18 | @SubscribeEvent 19 | public void onMoveInput(@NotNull MoveInputEvent event) { 20 | event.setSneak(true); 21 | event.setSneakSlowDown(slowDown.getInput()); 22 | } 23 | 24 | @Override 25 | public boolean isSprint() { 26 | return mc.thePlayer.isSneaking(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/scaffold/sprint/VanillaSprint.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.scaffold.sprint; 2 | 3 | import keystrokesmod.module.impl.world.Scaffold; 4 | import keystrokesmod.module.impl.world.scaffold.IScaffoldSprint; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class VanillaSprint extends IScaffoldSprint { 8 | public VanillaSprint(String name, @NotNull Scaffold parent) { 9 | super(name, parent); 10 | } 11 | 12 | @Override 13 | public boolean isSprint() { 14 | return true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/impl/world/tower/ConstantMotionTower.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.impl.world.tower; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | import keystrokesmod.module.impl.world.Tower; 5 | import keystrokesmod.module.setting.impl.ButtonSetting; 6 | import keystrokesmod.module.setting.impl.SliderSetting; 7 | import keystrokesmod.module.setting.impl.SubMode; 8 | import keystrokesmod.utility.MoveUtil; 9 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | public class ConstantMotionTower extends SubMode { 13 | private final SliderSetting motion; 14 | private final ButtonSetting strafe; 15 | 16 | public ConstantMotionTower(String name, @NotNull Tower parent) { 17 | super(name, parent); 18 | this.registerSetting(motion = new SliderSetting("Motion", 0.42, 0.1, 1, 0.01)); 19 | this.registerSetting(strafe = new ButtonSetting("Strafe", false)); 20 | } 21 | 22 | @SubscribeEvent 23 | public void onPreMotion(PreMotionEvent event) { 24 | if (parent.canTower()) { 25 | mc.thePlayer.motionY = motion.getInput(); 26 | if (strafe.isToggled()) 27 | MoveUtil.strafe(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/setting/impl/LiteralSubMode.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.setting.impl; 2 | 3 | import keystrokesmod.module.Module; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public class LiteralSubMode extends SubMode { 7 | public LiteralSubMode(String name, @NotNull Module parent) { 8 | super(name, parent); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/setting/impl/SubMode.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.setting.impl; 2 | 3 | import keystrokesmod.Raven; 4 | import keystrokesmod.module.Module; 5 | import keystrokesmod.module.setting.Setting; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | /** 9 | * Represents a sub-mode within a module. 10 | * This class extends the Module class and provides additional functionality specific to sub-modes. 11 | * 12 | * @param the type of the parent module 13 | */ 14 | public abstract class SubMode extends Module { 15 | public final T parent; 16 | protected final String name; 17 | 18 | public SubMode(String name, @NotNull T parent) { 19 | super(parent.getName() + "$" + name, parent.moduleCategory()); 20 | this.name = name; 21 | this.parent = parent; 22 | } 23 | 24 | public void register() { 25 | Raven.getModuleManager().addModule(this); 26 | } 27 | 28 | @Override 29 | public String getInfo() { 30 | return getPrettyName(); 31 | } 32 | 33 | @Override 34 | public String getPrettyName() { 35 | return getRawPrettyName(); 36 | } 37 | 38 | @Override 39 | public String getRawPrettyName() { 40 | return name; 41 | } 42 | 43 | @Override 44 | public void registerSetting(Setting setting) { 45 | super.registerSetting(setting); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/module/setting/interfaces/InputSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.module.setting.interfaces; 2 | 3 | public interface InputSetting { 4 | double getInput(); 5 | 6 | void setValue(double value); 7 | 8 | double getMin(); 9 | 10 | double getMax(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/ClassObject.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script; 2 | 3 | import javax.tools.SimpleJavaFileObject; 4 | import java.net.URI; 5 | 6 | public class ClassObject extends SimpleJavaFileObject 7 | { 8 | private final String code; 9 | public final String name; 10 | public int extraLines; 11 | @Override 12 | public CharSequence getCharContent(boolean ignoreEncodingErrors) { 13 | return this.code; 14 | } 15 | 16 | public ClassObject(final String name, final String code, int extraLines) { 17 | super(URI.create("string:///" + name + ".java"), Kind.SOURCE); 18 | this.code = code; 19 | this.name = name; 20 | this.extraLines = extraLines; 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/classes/Block.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.classes; 2 | 3 | import keystrokesmod.utility.BlockUtils; 4 | 5 | public class Block { 6 | public String type; 7 | public String name; 8 | public boolean interactable; 9 | 10 | public Block(net.minecraft.block.Block block) { 11 | this.type = block.getClass().getSimpleName(); 12 | this.name = block.getUnlocalizedName().substring(5).replace(".name", ""); 13 | this.interactable = BlockUtils.isInteractable(block); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/classes/Bridge.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.classes; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class Bridge { 7 | private final Map map; 8 | 9 | public Bridge() { 10 | map = new HashMap<>(); 11 | } 12 | 13 | public void add(String key, Object value) { 14 | map.put(key, value); 15 | } 16 | 17 | public void add(String key) { 18 | map.put(key, null); 19 | } 20 | 21 | public void remove(String key) { 22 | map.remove(key); 23 | } 24 | 25 | public boolean containsKey(String key) { 26 | return map.containsKey(key); 27 | } 28 | 29 | public Object get(String key) { 30 | return map.get(key); 31 | } 32 | 33 | public void clear() { 34 | map.clear(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/classes/PlayerState.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.classes; 2 | 3 | import keystrokesmod.event.PreMotionEvent; 4 | 5 | public class PlayerState { 6 | public double x; 7 | public double y; 8 | public double z; 9 | public float yaw; 10 | public float pitch; 11 | public boolean onGround; 12 | public boolean isSprinting; 13 | public boolean isSneaking; 14 | 15 | public PlayerState(PreMotionEvent e) { 16 | this.x = e.getPosX(); 17 | this.y = e.getPosY(); 18 | this.z = e.getPosZ(); 19 | this.yaw = e.getYaw(); 20 | this.pitch = e.getPitch(); 21 | this.onGround = e.isOnGround(); 22 | this.isSprinting = e.isSprinting(); 23 | this.isSneaking = e.isSneaking(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/classes/Response.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.classes; 2 | 3 | import com.google.gson.JsonParser; 4 | import keystrokesmod.utility.URLUtils; 5 | 6 | import java.io.IOException; 7 | import java.net.HttpURLConnection; 8 | 9 | public class Response { 10 | private HttpURLConnection connection; 11 | 12 | protected Response(HttpURLConnection connection) { 13 | this.connection = connection; 14 | } 15 | 16 | public int code() { 17 | try { 18 | return this.connection.getResponseCode(); 19 | } 20 | catch (IOException e) { 21 | return 0; 22 | } 23 | } 24 | 25 | public String string() { 26 | return URLUtils.getTextFromConnection(this.connection); 27 | } 28 | 29 | public Json json() { 30 | return new Json((new JsonParser()).parse(URLUtils.getTextFromConnection(this.connection)).getAsJsonObject(), 0); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/classes/TileEntity.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.classes; 2 | public class TileEntity { 3 | private net.minecraft.tileentity.TileEntity tileEntity; 4 | private Vec3 position; 5 | protected TileEntity(net.minecraft.tileentity.TileEntity tileEntity) { 6 | this.position = new Vec3(tileEntity.getPos().getX(), tileEntity.getPos().getY(), tileEntity.getPos().getZ()); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/clientbound/S12.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.clientbound; 2 | 3 | import keystrokesmod.script.classes.Vec3; 4 | import net.minecraft.network.play.server.S12PacketEntityVelocity; 5 | 6 | public class S12 extends SPacket { 7 | public int entityId; 8 | public Vec3 motion; 9 | public S12(S12PacketEntityVelocity packet) { 10 | super(packet); 11 | this.entityId = packet.getEntityID(); 12 | this.motion = new Vec3(packet.getMotionX(), packet.getMotionY(), packet.getMotionZ()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/clientbound/S27.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.clientbound; 2 | 3 | import keystrokesmod.script.classes.Vec3; 4 | import net.minecraft.network.play.server.S27PacketExplosion; 5 | 6 | public class S27 extends SPacket { 7 | public float strength; 8 | public Vec3 pos; 9 | public Vec3 motion; 10 | 11 | public S27(S27PacketExplosion packet) { 12 | super(packet); 13 | this.strength = packet.getStrength(); 14 | this.pos = new Vec3(packet.getX(), packet.getY(), packet.getZ()); 15 | this.motion = new Vec3(packet.func_149149_c(), packet.func_149144_d(), packet.func_149147_e()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/clientbound/S3E.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.clientbound; 2 | 3 | import net.minecraft.network.play.server.S3EPacketTeams; 4 | 5 | import java.util.Collection; 6 | 7 | public class S3E extends SPacket { 8 | private String name; 9 | private String displayName; 10 | private String prefix; 11 | private String suffix; 12 | private String nametagVisibility; 13 | private Collection playerList; 14 | private int action; 15 | private int friendlyFlags; 16 | private int color; 17 | public S3E(S3EPacketTeams packet) { 18 | super(packet); 19 | this.name = packet.func_149312_c(); 20 | this.displayName = packet.func_149306_d(); 21 | this.prefix = packet.func_149311_e(); 22 | this.suffix = packet.func_149309_f(); 23 | this.nametagVisibility = packet.func_179814_i(); 24 | this.playerList = packet.func_149310_g(); 25 | this.action = packet.func_149307_h(); 26 | this.friendlyFlags = packet.func_149308_i(); 27 | this.color = packet.func_179813_h(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/clientbound/SPacket.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.clientbound; 2 | 3 | public class SPacket { 4 | public String name; 5 | protected net.minecraft.network.Packet packet; 6 | 7 | public SPacket(net.minecraft.network.Packet b) { 8 | this.packet = b; 9 | this.name = b.getClass().getSimpleName(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C01.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.network.play.client.C01PacketChatMessage; 4 | 5 | public class C01 extends CPacket { 6 | public String message; 7 | 8 | public C01(String message) { 9 | super(null); 10 | this.message = message; 11 | } 12 | public C01(C01PacketChatMessage packet) { 13 | super(packet); 14 | this.message = packet.getMessage(); 15 | } 16 | 17 | @Override 18 | public C01PacketChatMessage convert() { 19 | return new C01PacketChatMessage(this.message); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C09.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.network.play.client.C09PacketHeldItemChange; 4 | 5 | public class C09 extends CPacket { 6 | public int slot; 7 | 8 | public C09(int slot) { 9 | super(null); 10 | this.slot = slot; 11 | } 12 | 13 | protected C09(C09PacketHeldItemChange packet, boolean identifier) { 14 | super(packet); 15 | this.slot = packet.getSlotId(); 16 | } 17 | 18 | @Override 19 | public C09PacketHeldItemChange convert() { 20 | return new C09PacketHeldItemChange(this.slot); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C0A.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.network.play.client.C0APacketAnimation; 4 | 5 | public class C0A extends CPacket { 6 | protected C0A(C0APacketAnimation packet) { 7 | super(packet); 8 | } 9 | 10 | public C0A() { 11 | super(new C0APacketAnimation()); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C0B.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.network.Packet; 5 | import net.minecraft.network.play.client.C0BPacketEntityAction; 6 | 7 | public class C0B extends CPacket { 8 | public String action; 9 | public int horsePower; 10 | 11 | public C0B(String action, int horsePower) { 12 | super(null); 13 | this.action = action; 14 | this.horsePower = horsePower; 15 | } 16 | public C0B(C0BPacketEntityAction packet) { 17 | super(packet); 18 | this.action = packet.getAction().name(); 19 | this.horsePower = packet.getAuxData(); 20 | } 21 | 22 | @Override 23 | public C0BPacketEntityAction convert() { 24 | return new C0BPacketEntityAction(Minecraft.getMinecraft().thePlayer, getAction(), horsePower); 25 | } 26 | 27 | private C0BPacketEntityAction.Action getAction() { 28 | for (C0BPacketEntityAction.Action action : C0BPacketEntityAction.Action.values()) { 29 | if (action.name().equals(this.action)) { 30 | return action; 31 | } 32 | } 33 | return null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C0E.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import keystrokesmod.script.classes.ItemStack; 4 | import net.minecraft.network.play.client.C0EPacketClickWindow; 5 | 6 | public class C0E extends CPacket { 7 | public int windowId; 8 | public int slot; 9 | public int button; 10 | public int mode; 11 | public short action; 12 | public ItemStack itemStack; 13 | 14 | public C0E(int windowId, int slot, int button, int mode, ItemStack itemStack) { 15 | super(null); 16 | this.windowId = windowId; 17 | this.slot = slot; 18 | this.button = button; 19 | this.mode = mode; 20 | this.itemStack = itemStack; 21 | } 22 | 23 | public C0E(C0EPacketClickWindow packet) { 24 | super(packet); 25 | this.windowId = packet.getWindowId(); 26 | this.slot = packet.getSlotId(); 27 | this.button = packet.getUsedButton(); 28 | this.mode = packet.getMode(); 29 | this.action = packet.getActionNumber(); 30 | this.itemStack = new ItemStack(packet.getClickedItem()); 31 | } 32 | 33 | @Override 34 | public C0EPacketClickWindow convert() { 35 | return new C0EPacketClickWindow(this.windowId, this.slot, this.button, this.mode, this.itemStack.itemStack, this.action); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C0F.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.network.play.client.C0FPacketConfirmTransaction; 4 | 5 | public class C0F extends CPacket { 6 | public int windowId; 7 | public short uid; 8 | 9 | public C0F(int windowId, short uid) { 10 | super(null); 11 | this.windowId = windowId; 12 | this.uid = uid; 13 | } 14 | 15 | public C0F(C0FPacketConfirmTransaction packet) { 16 | super(packet); 17 | this.windowId = packet.getWindowId(); 18 | this.uid = packet.getUid(); 19 | } 20 | 21 | @Override 22 | public C0FPacketConfirmTransaction convert() { 23 | return new C0FPacketConfirmTransaction(this.windowId, this.uid, true); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/C10.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import keystrokesmod.script.classes.ItemStack; 4 | import net.minecraft.network.play.client.C10PacketCreativeInventoryAction; 5 | 6 | public class C10 extends CPacket { 7 | public int slot; 8 | public ItemStack itemStack; 9 | 10 | public C10(int slot, ItemStack itemStack) { 11 | super(null); 12 | this.slot = slot; 13 | this.itemStack = itemStack; 14 | } 15 | 16 | protected C10(C10PacketCreativeInventoryAction packet) { 17 | super(packet); 18 | this.slot = packet.getSlotId(); 19 | this.itemStack = ItemStack.convert(packet.getStack()); 20 | } 21 | 22 | @Override 23 | public C10PacketCreativeInventoryAction convert() { 24 | return new C10PacketCreativeInventoryAction(slot, itemStack.itemStack); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/script/packets/serverbound/CPacket.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.script.packets.serverbound; 2 | 3 | import net.minecraft.network.Packet; 4 | 5 | public class CPacket { 6 | public String name; 7 | public net.minecraft.network.Packet packet; 8 | 9 | public CPacket(net.minecraft.network.Packet packet) { 10 | if (packet == null) { 11 | return; 12 | } 13 | this.packet = packet; 14 | this.name = packet.getClass().getSimpleName(); 15 | } 16 | 17 | public Packet convert() { 18 | return packet; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/CoolDown.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility; 2 | 3 | public class CoolDown { 4 | private long start; 5 | private long lasts; 6 | 7 | public CoolDown(long lasts){ 8 | this.lasts = lasts; 9 | } 10 | 11 | public void start(){ 12 | this.start = System.currentTimeMillis(); 13 | //Utils.Player.sendMessageToSelf("Time started " + lasts/1000); 14 | } 15 | 16 | public boolean hasFinished(){ 17 | return System.currentTimeMillis() >= start + lasts; 18 | } 19 | 20 | public void finish() { 21 | start = 0; 22 | } 23 | 24 | public void setCooldown(long time){ 25 | //Utils.Player.sendMessageToSelf("Set cooldown to " + time); 26 | this.lasts = time; 27 | } 28 | 29 | public long getElapsedTime(){ 30 | return System.currentTimeMillis() - this.start; 31 | } 32 | 33 | public long getTimeLeft(){ 34 | return lasts - (System.currentTimeMillis() - start); 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/RandomUtils.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility; 2 | 3 | import java.security.NoSuchAlgorithmException; 4 | import java.security.SecureRandom; 5 | 6 | public class RandomUtils { 7 | private static SecureRandom secureRandom; 8 | 9 | static { 10 | try { 11 | secureRandom = SecureRandom.getInstance("SHA1PRNG"); 12 | } catch (NoSuchAlgorithmException e) { 13 | e.printStackTrace(); 14 | } 15 | } 16 | 17 | public static double getRandom(double multiplier) { 18 | if (multiplier == 0) { 19 | return 0; 20 | } 21 | byte[] bytes = new byte[512]; 22 | secureRandom.nextBytes(bytes); 23 | double firstRandom = secureRandom.nextDouble(); 24 | int seedByteCount = 10; 25 | byte[] seed = secureRandom.generateSeed(seedByteCount); 26 | secureRandom.setSeed(seed); 27 | return (secureRandom.nextDouble() - firstRandom) * multiplier; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/TimerUtil.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility; 2 | 3 | import net.minecraft.util.MathHelper; 4 | 5 | public class TimerUtil { 6 | 7 | public long lastMS = System.currentTimeMillis(); 8 | 9 | public long getCurrentMS() { 10 | return System.nanoTime() / 1000000L; 11 | } 12 | 13 | public void reset() { 14 | lastMS = System.currentTimeMillis(); 15 | } 16 | 17 | public boolean hasTimeElapsed(long time, boolean reset) { 18 | if (System.currentTimeMillis() - lastMS > time) { 19 | if (reset) reset(); 20 | return true; 21 | } 22 | 23 | return false; 24 | } 25 | 26 | public boolean delay(double milliseconds) { 27 | return MathHelper.clamp_float(getCurrentMS() - lastMS, 0, (float) milliseconds) >= milliseconds; 28 | } 29 | 30 | public boolean hasTimeElapsed(long time) { 31 | return System.currentTimeMillis() - lastMS > time; 32 | } 33 | 34 | public boolean hasTimeElapsed(double time) { 35 | return hasTimeElapsed((long) time); 36 | } 37 | 38 | public long getTime() { 39 | return System.currentTimeMillis() - lastMS; 40 | } 41 | 42 | public void setTime(long time) { 43 | lastMS = time; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/ai/chatgpt/ConversationContext.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.ai.chatgpt; 2 | 3 | import lombok.Getter; 4 | import org.json.JSONArray; 5 | 6 | @Getter 7 | public class ConversationContext { 8 | 9 | private final JSONArray messages; 10 | 11 | public ConversationContext() { 12 | this.messages = new JSONArray(); 13 | } 14 | 15 | public ConversationContext(JSONArray messages) { 16 | this.messages = messages; 17 | } 18 | 19 | public String getLatestResponse() { 20 | if (!messages.isEmpty()) { 21 | return messages.getJSONObject(messages.length() - 1).getString("content"); 22 | } 23 | return null; 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/ai/chatgpt/GPTModel.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.ai.chatgpt; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | import java.util.Arrays; 7 | 8 | @Getter 9 | @AllArgsConstructor 10 | public enum GPTModel { 11 | GPT_3_5_TURBO("GPT-3.5 Turbo","gpt-3.5-turbo"), 12 | GPT_3_MINI("GPT-3 mini","ada"), 13 | GPT_4("GPT-4","gpt-4"), 14 | GPT_4_32K("GPT-4 (32k)", "gpt-4-32k"); 15 | 16 | private final String prettyName; 17 | private final String apiName; 18 | 19 | public static final String[] MODELS = Arrays.stream(values()).map(GPTModel::getPrettyName).toArray(String[]::new); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/aim/RotationData.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.aim; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class RotationData { 7 | private final float yaw; 8 | private final float pitch; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/backtrack/TimedPacket.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.backtrack; 2 | 3 | import net.minecraft.network.Packet; 4 | 5 | public class TimedPacket { 6 | 7 | private final Packet packet; 8 | private final Cold time; 9 | private final long millis; 10 | 11 | public TimedPacket(Packet packet) { 12 | this.packet = packet; 13 | this.time = new Cold(); 14 | this.millis = System.currentTimeMillis(); 15 | } 16 | 17 | public TimedPacket(final Packet packet, final long millis) { 18 | this.packet = packet; 19 | this.millis = millis; 20 | this.time = new Cold(); 21 | } 22 | 23 | public Packet getPacket() { 24 | return packet; 25 | } 26 | 27 | public Cold getCold() { 28 | return getTime(); 29 | } 30 | 31 | public Cold getTime() { 32 | return time; 33 | } 34 | 35 | public long getMillis() { 36 | return millis; 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/font/CenterMode.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.font; 2 | 3 | public enum CenterMode { 4 | X, 5 | Y, 6 | XY, 7 | NONE 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/font/IFont.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.font; 2 | 3 | public interface IFont { 4 | 5 | void drawString(String text, double x, double y, int color, boolean dropShadow); 6 | 7 | void drawString(String text, double x, double y, int color); 8 | 9 | default void drawStringWithShadow(String text, double x, double y, int color) { 10 | drawString(text, x, y, color, true); 11 | } 12 | 13 | double width(String text); 14 | 15 | void drawCenteredString(String text, double x, double y, int color); 16 | 17 | default void drawRightString(String text, double x, double y, int color) { 18 | drawString(text, x - (int) width(text), y, color, false); 19 | } 20 | 21 | double height(); 22 | 23 | void drawString(String text, double x, double y, CenterMode centerMode, boolean dropShadow, int color); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/font/impl/FontUtil.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.font.impl; 2 | 3 | import keystrokesmod.Raven; 4 | import static keystrokesmod.Raven.mc; 5 | 6 | import keystrokesmod.utility.Utils; 7 | import net.minecraft.client.gui.ScaledResolution; 8 | import net.minecraft.client.resources.IResourceManager; 9 | import net.minecraft.util.ResourceLocation; 10 | 11 | import java.awt.*; 12 | import java.io.IOException; 13 | import java.io.InputStream; 14 | import java.util.Arrays; 15 | import java.util.Map; 16 | 17 | public class FontUtil { 18 | 19 | private static final IResourceManager RESOURCE_MANAGER = Raven.mc.getResourceManager(); 20 | 21 | public static Font getResource(String location, int size) { 22 | Font font; 23 | 24 | ScaledResolution sr = new ScaledResolution(mc); 25 | 26 | size = (int) (size * ((double) sr.getScaleFactor() / 2)); 27 | 28 | try { 29 | InputStream is = mc.getResourceManager().getResource(new ResourceLocation("keystrokesmod:fonts/" + location)).getInputStream(); 30 | font = Font.createFont(0, is).deriveFont(Font.PLAIN, size); 31 | } catch (Exception exception) { 32 | Utils.sendMessage(Arrays.toString(exception.getStackTrace())); 33 | font = new Font("default", Font.PLAIN, size); 34 | } 35 | return font; 36 | } 37 | } -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/I18nModule.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n; 2 | 3 | import keystrokesmod.module.setting.Setting; 4 | import keystrokesmod.utility.i18n.settings.I18nSetting; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import org.jetbrains.annotations.Nullable; 8 | 9 | import java.util.Map; 10 | 11 | @Getter 12 | @AllArgsConstructor 13 | public class I18nModule { 14 | private final String name; 15 | private final @Nullable String toolTip; 16 | private final Map settings; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/settings/I18nButtonSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n.settings; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class I18nButtonSetting extends I18nSetting { 7 | private final String name; 8 | 9 | public I18nButtonSetting(String toolTip, String name) { 10 | super(toolTip); 11 | this.name = name; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/settings/I18nDescriptionSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n.settings; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class I18nDescriptionSetting extends I18nSetting { 7 | private final String desc; 8 | 9 | public I18nDescriptionSetting(String toolTip, String desc) { 10 | super(toolTip); 11 | this.desc = desc; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/settings/I18nModeSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n.settings; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * Some modules (like RecordClick) will change the options dynamic, 7 | * so this I18n implement doesn't work for every modeSetting. 8 | *

9 | * TODO This is an unresolved problem. 10 | */ 11 | @Getter 12 | public class I18nModeSetting extends I18nSetting { 13 | private final String settingName; 14 | private final String[] options; 15 | 16 | public I18nModeSetting(String toolTip, String settingName, String[] options) { 17 | super(toolTip); 18 | this.settingName = settingName; 19 | this.options = options; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/settings/I18nSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n.settings; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class I18nSetting { 7 | private final String toolTip; 8 | 9 | public I18nSetting(String toolTip) { 10 | this.toolTip = toolTip; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/i18n/settings/I18nSliderSetting.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.i18n.settings; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class I18nSliderSetting extends I18nSetting { 7 | private final String settingName; 8 | private final String settingInfo; 9 | 10 | public I18nSliderSetting(String toolTip, String settingName, String settingInfo) { 11 | super(toolTip); 12 | this.settingName = settingName; 13 | this.settingInfo = settingInfo; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/interact/moveable/Moveable.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.interact.moveable; 2 | 3 | public interface Moveable { 4 | 5 | void render(); 6 | 7 | boolean isDisabled(); 8 | 9 | int getMinX(); 10 | 11 | int getMaxX(); 12 | 13 | int getMinY(); 14 | 15 | int getMaxY(); 16 | 17 | void moveX(int amount); 18 | 19 | void moveY(int amount); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/movement/Direction.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.movement; 2 | 3 | import net.minecraft.util.BlockPos; 4 | import org.jetbrains.annotations.Contract; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public enum Direction { 8 | POSITIVE_X, 9 | NEGATIVE_X, 10 | POSITIVE_Z, 11 | NEGATIVE_Z; 12 | 13 | @Contract("_ -> new") 14 | public @NotNull BlockPos offsetWith(@NotNull BlockPos blockPos) { 15 | switch (this) { 16 | case POSITIVE_X: 17 | return new BlockPos(blockPos.getX() + 1, blockPos.getY(), blockPos.getZ()); 18 | case NEGATIVE_X: 19 | return new BlockPos(blockPos.getX() - 1, blockPos.getY(), blockPos.getZ()); 20 | case POSITIVE_Z: 21 | return new BlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ() + 1); 22 | case NEGATIVE_Z: 23 | return new BlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ() - 1); 24 | default: 25 | throw new RuntimeException("Invalid direction."); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/notebot/decoder/SongDecoder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). 3 | * Copyright (c) Meteor Development. 4 | */ 5 | 6 | package keystrokesmod.utility.notebot.decoder; 7 | 8 | import keystrokesmod.module.impl.fun.NoteBot; 9 | import keystrokesmod.utility.notebot.song.Song; 10 | 11 | import java.io.File; 12 | 13 | public abstract class SongDecoder { 14 | protected NoteBot notebot = (NoteBot) NoteBot.getInstance(); 15 | 16 | /** 17 | * Parse file to a {@link Song} object 18 | * 19 | * @param file Song file 20 | * @return A {@link Song} object 21 | */ 22 | public abstract Song parse(File file) throws Exception; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/notebot/instrumentdetect/InstrumentDetectFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). 3 | * Copyright (c) Meteor Development. 4 | */ 5 | 6 | package keystrokesmod.utility.notebot.instrumentdetect; 7 | 8 | import net.minecraft.block.state.IBlockState; 9 | import net.minecraft.util.BlockPos; 10 | 11 | public interface InstrumentDetectFunction { 12 | /** 13 | * Detects an instrument for noteblock 14 | * 15 | * @param noteBlock Noteblock state 16 | * @param blockPos Noteblock position 17 | * @return Detected instrument 18 | */ 19 | String detectInstrument(IBlockState noteBlock, BlockPos blockPos); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/notebot/song/Note.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). 3 | * Copyright (c) Meteor Development. 4 | */ 5 | 6 | package keystrokesmod.utility.notebot.song; 7 | 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | import java.util.Objects; 12 | 13 | @Setter 14 | @Getter 15 | public class Note { 16 | 17 | private String instrument; 18 | private int noteLevel; 19 | 20 | public Note(String instrument, int noteLevel) { 21 | this.instrument = instrument; 22 | this.noteLevel = noteLevel; 23 | } 24 | 25 | @Override 26 | public boolean equals(Object o) { 27 | if (this == o) return true; 28 | if (o == null || getClass() != o.getClass()) return false; 29 | Note note = (Note) o; 30 | return Objects.equals(instrument, note.instrument) && noteLevel == note.noteLevel; 31 | } 32 | 33 | @Override 34 | public int hashCode() { 35 | return Objects.hash(instrument, noteLevel); 36 | } 37 | 38 | @Override 39 | public String toString() { 40 | return "Note{" + 41 | "instrument=" + getInstrument() + 42 | ", noteLevel=" + getNoteLevel() + 43 | '}'; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/profile/Profile.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.profile; 2 | 3 | import keystrokesmod.module.Module; 4 | 5 | public class Profile { 6 | private final Module module; 7 | private final int bind; 8 | private final String profileName; 9 | 10 | public Profile(String profileName, int bind) { 11 | this.profileName = profileName; 12 | this.bind = bind; 13 | this.module = new ProfileModule(this, profileName, bind); 14 | this.module.ignoreOnSave = true; 15 | } 16 | 17 | public Module getModule() { 18 | return module; 19 | } 20 | 21 | public int getBind() { 22 | return bind; 23 | } 24 | 25 | public String getName() { 26 | return profileName; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/render/progress/ProgressManager.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.render.progress; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 4 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 5 | import net.minecraftforge.fml.common.gameevent.TickEvent; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import java.util.Collections; 9 | import java.util.Set; 10 | 11 | public class ProgressManager { 12 | private static final Set progresses = Collections.synchronizedSet(new ObjectOpenHashSet<>()); 13 | 14 | public static void add(@NotNull Progress progress) { 15 | if (progresses.add(progress)) { 16 | progress.setPosY(progresses.size()); 17 | } 18 | } 19 | 20 | public static void remove(@NotNull Progress progress) { 21 | if (progresses.remove(progress)) { 22 | int posY = progress.getPosY(); 23 | progress.setPosY(0); 24 | 25 | for (Progress p : progresses) { 26 | if (p.getPosY() > posY) 27 | p.setPosY(p.getPosY() - 1); 28 | } 29 | } 30 | } 31 | 32 | @SubscribeEvent 33 | public void onRender(TickEvent.RenderTickEvent event) { 34 | synchronized (progresses) { 35 | progresses.forEach(Progress::render); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/keystrokesmod/utility/render/shader/impl/ShaderScissor.java: -------------------------------------------------------------------------------- 1 | package keystrokesmod.utility.render.shader.impl; 2 | 3 | import keystrokesmod.utility.render.shader.Shader; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | import java.awt.image.BufferedImage; 7 | 8 | public class ShaderScissor extends Shader { 9 | private final int x, y, width, height; 10 | private final BufferedImage in; 11 | 12 | public ShaderScissor(int x, int y, int width, int height, BufferedImage in, int level, boolean antiAlias, boolean multithreading) { 13 | super(level, antiAlias, multithreading); 14 | this.x = x * level; 15 | this.y = y * level; 16 | this.width = width * level; 17 | this.height = height * level; 18 | this.in = in; 19 | setWidth(in.getWidth()); 20 | setHeight(in.getHeight()); 21 | } 22 | 23 | @Override 24 | public int dispose(int relativeX, int relativeY, float screenWidth, float screenHeight) { 25 | return (relativeX > x && relativeY > y && relativeX < x + width && relativeY < y + height) ? 0 : in.getRGB(relativeX / level, relativeY / level); 26 | } 27 | 28 | @Override 29 | public @Nullable Object[] params() { 30 | return new Object[]{in, x, y, width, height, level, antiAlias}; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/MAPLESTORY_OTF_BOLD.OTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/MAPLESTORY_OTF_BOLD.OTF -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/icon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/icon.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/product_sans_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/product_sans_light.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/product_sans_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/product_sans_medium.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/product_sans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/product_sans_regular.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/regular.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/fonts/tenacity.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/fonts/tenacity.ttf -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/icon.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Bed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Bed.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/End Stone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/End Stone.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Obsidian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Obsidian.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Stained Clay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Stained Clay.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Stained Glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Stained Glass.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Water.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Wooden Planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Wooden Planks.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/images/Wool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/images/Wool.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/shaders/gaussian.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | uniform sampler2D textureIn; 4 | uniform vec2 texelSize, direction; 5 | uniform float radius; 6 | uniform float weights[64]; 7 | 8 | #define offset texelSize * direction 9 | 10 | void main() { 11 | vec3 color = texture2D(textureIn, gl_TexCoord[0].st).rgb * weights[0]; 12 | float totalWeight = weights[0]; 13 | 14 | for (float f = 1.0; f <= radius; f++) { 15 | color += texture2D(textureIn, gl_TexCoord[0].st + f * offset).rgb * (weights[int(abs(f))]); 16 | color += texture2D(textureIn, gl_TexCoord[0].st - f * offset).rgb * (weights[int(abs(f))]); 17 | 18 | totalWeight += (weights[int(abs(f))]) * 2.0; 19 | } 20 | 21 | gl_FragColor = vec4(color / totalWeight, 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/shaders/rrect.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | uniform vec2 location, rectSize; 4 | uniform vec4 color; 5 | uniform float radius; 6 | uniform bool blur; 7 | 8 | float roundSDF(vec2 p, vec2 b, float r) { 9 | return length(max(abs(p) - b, 0.0)) - r; 10 | } 11 | 12 | void main() { 13 | vec2 rectHalf = rectSize * .5; 14 | float smoothedAlpha = (1.0-smoothstep(0.0, 1.0, roundSDF(rectHalf - (gl_TexCoord[0].st * rectSize), rectHalf - radius - 1., radius))) * color.a; 15 | 16 | gl_FragColor = vec4(color.rgb, smoothedAlpha); 17 | } -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/shaders/rrectGradient.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | uniform vec2 location, rectSize; 4 | uniform vec4 color1, color2, color3, color4; 5 | uniform float radius; 6 | #define NOISE .5/255.0 7 | 8 | float roundSDF(vec2 p, vec2 b, float r) { 9 | return length(max(abs(p) - b , 0.0)) - r; 10 | } 11 | 12 | vec3 createGradient(vec2 coords, vec3 color1, vec3 color2, vec3 color3, vec3 color4){ 13 | vec3 color = mix(mix(color1.rgb, color2.rgb, coords.y), mix(color3.rgb, color4.rgb, coords.y), coords.x); 14 | color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898, 78.233))) * 43758.5453)); 15 | return color; 16 | } 17 | 18 | void main() { 19 | vec2 st = gl_TexCoord[0].st; 20 | vec2 halfSize = rectSize * .5; 21 | float smoothedAlpha = (1.0-smoothstep(0.0, 2., roundSDF(halfSize - (gl_TexCoord[0].st * rectSize), halfSize - radius - 1., radius))) * color1.a; 22 | 23 | gl_FragColor = vec4(createGradient(st, color1.rgb, color2.rgb, color3.rgb, color4.rgb), smoothedAlpha); 24 | } -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/shaders/rrectOutline.frag: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | uniform vec2 location, rectSize; 4 | uniform vec4 color, outlineColor; 5 | uniform float radius, outlineThickness; 6 | 7 | float roundedSDF(vec2 centerPos, vec2 size, float radius) { 8 | return length(max(abs(centerPos) - size + radius, 0.0)) - radius; 9 | } 10 | 11 | void main() { 12 | float distance = roundedSDF(gl_FragCoord.xy - location - (rectSize * .5), (rectSize * .5) + (outlineThickness *.5) - 1.0, radius); 13 | 14 | float blendAmount = smoothstep(0., 2., abs(distance) - (outlineThickness * .5)); 15 | 16 | vec4 insideColor = (distance < 0.) ? color : vec4(outlineColor.rgb, 0.0); 17 | gl_FragColor = mix(outlineColor, insideColor, blendAmount); 18 | 19 | } -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/shaders/vertex.vsh: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | void main() { 4 | gl_TexCoord[0] = gl_MultiTexCoord0; 5 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/alarm.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/alarm.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/click/alan.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/click/alan.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/click/double.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/click/double.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/click/standard.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/click/standard.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/quickmacro/disable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/quickmacro/disable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/quickmacro/enable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/quickmacro/enable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/rise/disable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/rise/disable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/rise/enable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/rise/enable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/sigma/disable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/sigma/disable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/toggle/sigma/enable.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/toggle/sigma/enable.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/sounds/yeet.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/sounds/yeet.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/BedwarsPractice.txt: -------------------------------------------------------------------------------- 1 | CowNecromancer 2 | Dmoha 3 | YungLOL 4 | TC6 5 | SeaLegend 6 | imconnorngl 7 | ambmt 8 | Engineous 9 | Gawkan 10 | _lightninq 11 | ObamaFootFungus 12 | RYgamer1 13 | Xitharis 14 | KZfr 15 | iiKoala 16 | luukeyy 17 | LeoIsGod_ 18 | rozzerbtw 19 | Queezz_ 20 | Tado 21 | Chazm -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Gamster.txt: -------------------------------------------------------------------------------- 1 | _ShadowXD 2 | mihaaiiii 3 | Liviu1010 4 | Zipette 5 | OsmiumRedox 6 | ItsB2_ 7 | Megasus 8 | Daniell214 9 | pintux 10 | Biee_MB 11 | ItsKRONX11 12 | EroinaMea 13 | Alex_Rosu 14 | Tini_Alina 15 | Raul7896 16 | Melanholyyy 17 | HerDreams 18 | JustMoon2330 19 | Space_turtle9 20 | qmarcu 21 | Suffocative 22 | Henriks9 23 | vxcus 24 | AutoClickerM5 25 | officialMex 26 | lennoxlotl 27 | iTz_Lucky 28 | MutFame 29 | vento 30 | Mariaxxaa 31 | miramausii 32 | Dark4ever 33 | Nacktbild 34 | Bazaraki 35 | DarkAndBlue 36 | totKing 37 | byHugZ 38 | Skarnyk 39 | kyssyou -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Heypixel.txt: -------------------------------------------------------------------------------- 1 | 绿豆乃SAMA 2 | nightbary 3 | 体贴的炼金术雀 4 | StarNO1 5 | 妖猫 6 | 小妖猫 7 | 妖猫的PC号 8 | 小H修bug 9 | xiaotufei 10 | 元宵 11 | CuteGirlQlQl 12 | 彩笔 13 | 布吉岛打工仔 14 | 元宵的测试号 15 | 抑郁的元宵 16 | 元宵睡不醒 17 | 抖音丶小匪 18 | 练书法的苦力怕 19 | KiKiAman 20 | 元宵睡不醒 21 | WS故 22 | 彩笔qwq 23 | 管理员-1 24 | 管理员-2 25 | 管理员-3 26 | 管理员-4 27 | 管理员-5 28 | 管理员-6 29 | 管理员-7 30 | 管理员-8 31 | 管理员-9 32 | 管理员-10 33 | 天使 34 | 艾米丽 35 | 可比不来嗯忑 36 | 鸡你太美 37 | 神伦子 38 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/HylexMC.txt: -------------------------------------------------------------------------------- 1 | xiKinGx 2 | SuperAnis_ 3 | Asemmm 4 | 1Deaa 5 | BIbekTheLegend 6 | LaserRobotAlpha 7 | rjgaming_ 8 | Arav123 9 | Naeisia_ 10 | Pratikbro99f 11 | USER0124816 12 | 6dq 13 | 5zan_ 14 | Unxliee 15 | Legend_Playz 16 | 6Tl_ 17 | WinStreakz 18 | GeneYI 19 | LondonBar 20 | aamrisuper -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Jartex.txt: -------------------------------------------------------------------------------- 1 | voodootje0 2 | Max 3 | Rodagave115 4 | JustThiemo 5 | Andeh 6 | Axteroid 7 | stupxd 8 | JstMental 9 | QuFox 10 | MrEpiko 11 | Flappix 12 | bene_e 13 | iFlyYT 14 | KeylessSeal 15 | UpperGround 16 | unlqvinly 17 | mila985 18 | Stxrs 19 | daviddaraban 20 | rexxmidle 21 | Zaki445566 22 | lylaistrue 23 | KHILVANSH6789 24 | MRxCOLD 25 | pirota222 26 | Frosty_Delta -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Mineland.txt: -------------------------------------------------------------------------------- 1 | 15crystalX 2 | Alternat1v4ik 3 | Alvess__ 4 | awilzy 5 | Blazephyr0 6 | CookieDragon32 7 | De_Mira 8 | DJMahirNationTV 9 | Droideka 10 | er0pp 11 | femalenegative 12 | Gerlon 13 | harryredcliffe 14 | iCherish 15 | iDebdkill__ 16 | injust1ce 17 | iRynx 18 | Mellow 19 | MiGatooo 20 | AlexRadievskiy 21 | Lars_Gaming 22 | Alvess 23 | Apotheoses 24 | 35Days 25 | PrincexHaze 26 | Reinim 27 | OptiF1ne 28 | MrTools__ -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/MinemenClub.txt: -------------------------------------------------------------------------------- 1 | TehNeon 2 | LeftBooob 3 | dwefs 4 | XenonServices 5 | Rowteh 6 | Goawaynotgg 7 | HiitSayZ 8 | Nyolu 9 | Originals 10 | Disteria 11 | Scraptonix 12 | skracker 13 | 6eboy9 14 | Intel_i7 15 | VapePale 16 | Xplo 17 | navrajfan 18 | Drecz 19 | ImVaes 20 | Lorrell 21 | Pokeys 22 | Kotahz 23 | Rezeid 24 | BAYSS 25 | aortas 26 | 7gtz 27 | Lowze 28 | DarkLegend22 29 | Skinnerr2 30 | Glospy 31 | undeafen 32 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/MushMC.txt: -------------------------------------------------------------------------------- 1 | Anjeel 2 | Feelipee 3 | FEIJAOO 4 | ISlowneR 5 | mariaum 6 | Nicoolass 7 | Start_ 8 | daarkl 9 | faasty 10 | gringo 11 | joaofest 12 | marquesy 13 | stystystystysty 14 | try01 15 | _neexty 16 | cesin 17 | kyznho 18 | LannaByron 19 | Ryafa 20 | saqyz 21 | SelfieBoy 22 | spawnlovestymrqs 23 | victwz 24 | WIEN0 25 | yPandinho 26 | ImWal 27 | snockey 28 | desenhos 29 | n1cxsz 30 | _Pepezin 31 | EuAdi 32 | IgorComicsTV 33 | Nobriel 34 | Pentaax 35 | rooides 36 | Satturnni 37 | FEIJAOO 38 | _neexty 39 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Pika.txt: -------------------------------------------------------------------------------- 1 | Max 2 | voodootjeo 3 | MrFrenco 4 | TryHardMarktin 5 | Axteroid 6 | JustThiemo 7 | MrEpiko 8 | Yanique1 9 | Andeh 10 | JstMental 11 | stupxd 12 | QuFox 13 | Botervrij 14 | zMqrcc 15 | TTHM 16 | Arrly 17 | shozu 18 | Aeqlian 19 | NxqL 20 | iFkiller 21 | xDeleted 22 | _Nikki99 23 | SgtBordem 24 | Sanified 25 | M7Games_HD 26 | DanielT_ 27 | Zxga 28 | Ungluecklicher 29 | zireb 30 | GAMBL3T 31 | RunYourShordie 32 | ScorchedX 33 | zSeann 34 | YouTubeMemes 35 | CreeperDxD 36 | Saifanx1942 37 | arham19 38 | prober90 39 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/QuickMacro.txt: -------------------------------------------------------------------------------- 1 | BACs 2 | YT_BACs 3 | 无年a 4 | BoogerTheCat 5 | 花雨庭审判骑士 6 | 血樱丶星梦 7 | Toxic_AslGy 8 | Cloudy_C 9 | 仙阁灬特色 10 | 小符xfu360 11 | 欲生北茶丿年糕 12 | 刀客塔 13 | CK_87 14 | kIkkl12 15 | Toxic_Yuuki 16 | 艾森啊 17 | -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Stardix.txt: -------------------------------------------------------------------------------- 1 | Weark 2 | peng1104 3 | pecin_ 4 | yjobs 5 | thamyzx 6 | IaG0D 7 | bielzinhu 8 | vanflex 9 | yanzinxz 10 | troid_ 11 | Anna_152 12 | mnszz 13 | Kold_ 14 | livw 15 | Galleton_ 16 | laraaz 17 | guswtvo 18 | nxcolaz 19 | RodolfinhoZ 20 | imnikmancha 21 | kahrevolution 22 | fafa285_yt 23 | dannzeiira 24 | mickael_212 25 | P3droowss 26 | Nascente 27 | V1ctory_ 28 | saturnofdskk 29 | theclancy_ 30 | swfado 31 | PatoVisionario 32 | kaapaxgames_ 33 | wellk_ 34 | yJaoo_ -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Syuu.txt: -------------------------------------------------------------------------------- 1 | libhalt 2 | Jin_xD 3 | Siph_ 4 | Depla 5 | miruzero 6 | Otsukisama 7 | Lotiny 8 | jinplus 9 | sH_Hs 10 | shantskku 11 | onudon -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/stafflists/Twerion.txt: -------------------------------------------------------------------------------- 1 | Hyronymos 2 | totKing 3 | TenoxYT 4 | Gamingcode 5 | xXBSEXx 6 | cyrixx18 7 | FortuneMidnight 8 | SoundFreak97 9 | iSixerp 10 | tripleairsign 11 | DeveledHACKS 12 | OhneMitleid 13 | Jan1598 14 | Nikos_0 15 | MircoDBZ 16 | XFRSH 17 | zSwaqz 18 | weinschrank 19 | xkibbl 20 | FreakyDj 21 | LeDxniel 22 | CraftlesssTV 23 | Adexeron 24 | Julian09x 25 | Achtstellig -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/1.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/2.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/3.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/4.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/5.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/backgrounds/ravenxd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/backgrounds/ravenxd.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/astolfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/astolfo.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/cherry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/cherry.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/die.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/die.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenanime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenanime.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenaqua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenaqua.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravengreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravengreen.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenpurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenpurple.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenred.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenwhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenwhite.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/capes/ravenyellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/capes/ravenyellow.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/watermarks/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/watermarks/default.png -------------------------------------------------------------------------------- /src/main/resources/assets/keystrokesmod/textures/watermarks/enders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/src/main/resources/assets/keystrokesmod/textures/watermarks/enders.png -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "modid": "keystrokes", 4 | "name": "KeystrokesMod", 5 | "description": "Shows your keystrokes ingame. | Updated and modified by spiderfrog | V5 by Yario & Extazz | Ported by OFP.", 6 | "version": "KMV5", 7 | "url": "https://www.youtube.com/ofpmedia", 8 | "updateUrl": "", 9 | "authorList": ["OFP", "Fyu", "spiderfrog", "Yario & Extazz"], 10 | "credits": "OFP, Fyu, spiderfrog, Yario & Extazz", 11 | "logoFile": "", 12 | "screenshots": [], 13 | "dependencies": [] 14 | } 15 | ] -------------------------------------------------------------------------------- /website/png/1 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/1 (1).png -------------------------------------------------------------------------------- /website/png/1 (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/1 (2).png -------------------------------------------------------------------------------- /website/png/1 (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/1 (3).png -------------------------------------------------------------------------------- /website/png/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/1.png -------------------------------------------------------------------------------- /website/png/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/2.png -------------------------------------------------------------------------------- /website/png/AA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/AA.png -------------------------------------------------------------------------------- /website/png/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/logo.ico -------------------------------------------------------------------------------- /website/png/logo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-XD/Raven-XD/23bc33333e1b80d371b46f7c28bbc4396865f99e/website/png/logo2.jpg --------------------------------------------------------------------------------