├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── config.yml
│ └── suggestion.yml
├── builds
│ ├── package-lock.json
│ ├── package.json
│ ├── get_number.js
│ └── mc_version.js
├── moderation
│ └── package.json
├── pull_request_template.md
└── workflows
│ ├── pull-request.yml
│ └── issue-moderator.yml
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── src
└── main
│ ├── resources
│ ├── assets
│ │ └── meteor-client
│ │ │ ├── icon.png
│ │ │ ├── lang
│ │ │ ├── zh_cn.json
│ │ │ ├── hi_in.json
│ │ │ ├── vi_vn.json
│ │ │ ├── pt_br.json
│ │ │ ├── en_gb.json
│ │ │ └── en_us.json
│ │ │ ├── textures
│ │ │ ├── blank.png
│ │ │ ├── chams.jpg
│ │ │ ├── steve.png
│ │ │ ├── meteor.png
│ │ │ ├── container.png
│ │ │ ├── icons
│ │ │ │ ├── gui
│ │ │ │ │ ├── copy.png
│ │ │ │ │ ├── edit.png
│ │ │ │ │ ├── paste.png
│ │ │ │ │ ├── reset.png
│ │ │ │ │ ├── circle.png
│ │ │ │ │ ├── triangle.png
│ │ │ │ │ ├── favorite_no.png
│ │ │ │ │ └── favorite_yes.png
│ │ │ │ ├── chat
│ │ │ │ │ ├── meteor.png
│ │ │ │ │ └── baritone.png
│ │ │ │ └── waypoints
│ │ │ │ │ ├── star.png
│ │ │ │ │ ├── circle.png
│ │ │ │ │ ├── skull.png
│ │ │ │ │ ├── square.png
│ │ │ │ │ ├── diamond.png
│ │ │ │ │ └── triangle.png
│ │ │ └── container-transparent.png
│ │ │ ├── fonts
│ │ │ ├── Comfortaa.ttf
│ │ │ ├── Pixelation.ttf
│ │ │ ├── Tw Cen MT.ttf
│ │ │ └── JetBrains Mono.ttf
│ │ │ └── shaders
│ │ │ ├── pos_color.frag
│ │ │ ├── passthrough.frag
│ │ │ ├── blur.vert
│ │ │ ├── passthrough.vert
│ │ │ ├── pos_tex_color.frag
│ │ │ ├── text.frag
│ │ │ ├── pos_color.vert
│ │ │ ├── post-process
│ │ │ ├── base.vert
│ │ │ └── image.frag
│ │ │ ├── text.vert
│ │ │ ├── pos_tex_color.vert
│ │ │ ├── blur_down.frag
│ │ │ └── blur_up.frag
│ ├── meteor-client-indigo.mixins.json
│ ├── meteor-client-baritone.mixins.json
│ ├── meteor-client-viafabricplus.mixins.json
│ ├── meteor-client-lithium.mixins.json
│ └── meteor-client-sodium.mixins.json
│ └── java
│ └── meteordevelopment
│ └── meteorclient
│ ├── gui
│ ├── widgets
│ │ ├── WRoot.java
│ │ ├── WVerticalSeparator.java
│ │ ├── pressable
│ │ │ ├── WTriangle.java
│ │ │ ├── WMinus.java
│ │ │ ├── WPlus.java
│ │ │ ├── WCheckbox.java
│ │ │ └── WConfirmedMinus.java
│ │ ├── WQuad.java
│ │ └── WHorizontalSeparator.java
│ ├── utils
│ │ ├── AlignmentX.java
│ │ ├── AlignmentY.java
│ │ ├── BaseWidget.java
│ │ └── CharFilter.java
│ ├── GuiKeyEvents.java
│ ├── renderer
│ │ ├── packer
│ │ │ └── TextureRegion.java
│ │ ├── GuiRenderOperation.java
│ │ └── operations
│ │ │ └── TextOperation.java
│ ├── themes
│ │ └── meteor
│ │ │ └── widgets
│ │ │ ├── WMeteorQuad.java
│ │ │ ├── pressable
│ │ │ ├── WMeteorFavorite.java
│ │ │ ├── WMeteorTriangle.java
│ │ │ └── WMeteorMinus.java
│ │ │ ├── WMeteorTooltip.java
│ │ │ ├── WMeteorTopBar.java
│ │ │ ├── WMeteorView.java
│ │ │ ├── WMeteorLabel.java
│ │ │ └── WMeteorAccount.java
│ └── tabs
│ │ ├── TabScreen.java
│ │ ├── Tab.java
│ │ ├── builtin
│ │ └── ModulesTab.java
│ │ └── WindowTabScreen.java
│ ├── systems
│ ├── hud
│ │ ├── HudGroup.java
│ │ ├── XAnchor.java
│ │ ├── YAnchor.java
│ │ └── Alignment.java
│ ├── accounts
│ │ ├── TokenAccount.java
│ │ ├── AccountType.java
│ │ ├── TexturesJson.java
│ │ └── UuidToProfileResponse.java
│ ├── modules
│ │ ├── movement
│ │ │ ├── speed
│ │ │ │ └── SpeedModes.java
│ │ │ └── elytrafly
│ │ │ │ ├── ElytraFlightModes.java
│ │ │ │ └── modes
│ │ │ │ └── Vanilla.java
│ │ ├── player
│ │ │ ├── Portals.java
│ │ │ └── LiquidInteract.java
│ │ └── misc
│ │ │ └── BetterBeacons.java
│ ├── waypoints
│ │ └── events
│ │ │ ├── WaypointAddedEvent.java
│ │ │ └── WaypointRemovedEvent.java
│ └── proxies
│ │ └── ProxyType.java
│ ├── utils
│ ├── misc
│ │ ├── IGetter.java
│ │ ├── NbtException.java
│ │ ├── IChangeable.java
│ │ ├── ICopyable.java
│ │ ├── ISerializable.java
│ │ ├── text
│ │ │ ├── ColoredText.java
│ │ │ └── RunnableClickEvent.java
│ │ ├── EmptyIterator.java
│ │ ├── input
│ │ │ └── KeyAction.java
│ │ ├── MissHitResult.java
│ │ └── CursorStyle.java
│ ├── player
│ │ └── Safety.java
│ ├── render
│ │ ├── AlignmentX.java
│ │ ├── AlignmentY.java
│ │ ├── IVertexConsumerProvider.java
│ │ ├── NoopOutlineVertexConsumerProvider.java
│ │ └── NoopImmediateVertexConsumerProvider.java
│ ├── entity
│ │ └── Target.java
│ ├── tooltip
│ │ ├── MeteorTooltipData.java
│ │ └── TextTooltipComponent.java
│ ├── world
│ │ ├── Dimension.java
│ │ └── CardinalDirection.java
│ ├── PostInit.java
│ ├── PreInit.java
│ ├── notebot
│ │ ├── instrumentdetect
│ │ │ ├── InstrumentDetectFunction.java
│ │ │ └── InstrumentDetectMode.java
│ │ └── decoder
│ │ │ └── SongDecoder.java
│ ├── network
│ │ └── OnlinePlayers.java
│ └── other
│ │ └── JsonDateDeserializer.java
│ ├── settings
│ ├── IVisible.java
│ ├── IGeneric.java
│ ├── IBlockData.java
│ └── PotionSetting.java
│ ├── mixininterface
│ ├── IText.java
│ ├── ICamera.java
│ ├── ISimpleOption.java
│ ├── ISlot.java
│ ├── IClientPlayerInteractionManager.java
│ ├── IChatHud.java
│ ├── ICapabilityTracker.java
│ ├── IPlayerMoveC2SPacket.java
│ ├── IRenderPipeline.java
│ ├── IChatHudLineVisible.java
│ ├── IAbstractFurnaceScreenHandler.java
│ ├── IMinecraftClient.java
│ ├── IExplosionS2CPacket.java
│ ├── IWorldRenderer.java
│ ├── IChatHudLine.java
│ ├── IPlayerInteractEntityC2SPacket.java
│ ├── IRaycastContext.java
│ ├── IBox.java
│ ├── IMessageHandler.java
│ ├── IVec3d.java
│ └── IGpuDevice.java
│ ├── renderer
│ ├── text
│ │ ├── FontFace.java
│ │ ├── BuiltinFontFace.java
│ │ └── SystemFontFace.java
│ ├── ShapeMode.java
│ └── MeteorVertexFormatElements.java
│ ├── events
│ ├── game
│ │ ├── GameLeftEvent.java
│ │ ├── GameJoinedEvent.java
│ │ ├── ResolutionChangedEvent.java
│ │ ├── ResourcePacksReloadedEvent.java
│ │ ├── SendMessageEvent.java
│ │ ├── OpenScreenEvent.java
│ │ └── ChangePerspectiveEvent.java
│ ├── render
│ │ ├── RenderAfterWorldEvent.java
│ │ ├── GetFovEvent.java
│ │ ├── ArmRenderEvent.java
│ │ ├── TooltipDataEvent.java
│ │ ├── HeldItemRendererEvent.java
│ │ ├── RenderBlockEntityEvent.java
│ │ ├── ApplyTransformationEvent.java
│ │ └── Render2DEvent.java
│ ├── meteor
│ │ ├── ActiveModulesChangedEvent.java
│ │ ├── CustomFontChangedEvent.java
│ │ ├── CharTypedEvent.java
│ │ ├── ModuleBindChangedEvent.java
│ │ ├── MouseScrollEvent.java
│ │ └── KeyEvent.java
│ ├── world
│ │ ├── AmbientOcclusionEvent.java
│ │ ├── ChunkDataEvent.java
│ │ ├── ChunkOcclusionEvent.java
│ │ ├── BlockActivateEvent.java
│ │ ├── ServerConnectEndEvent.java
│ │ ├── TickEvent.java
│ │ ├── PlaySoundEvent.java
│ │ ├── ParticleEvent.java
│ │ ├── ServerConnectBeginEvent.java
│ │ └── BlockUpdateEvent.java
│ ├── entity
│ │ ├── EntityAddedEvent.java
│ │ ├── EntityDestroyEvent.java
│ │ ├── EntityRemovedEvent.java
│ │ ├── player
│ │ │ ├── PlayerTickMovementEvent.java
│ │ │ ├── JumpVelocityMultiplierEvent.java
│ │ │ ├── BlockBreakingCooldownEvent.java
│ │ │ ├── FinishUsingItemEvent.java
│ │ │ ├── StoppedUsingItemEvent.java
│ │ │ ├── ItemUseCrosshairTargetEvent.java
│ │ │ ├── PickItemsEvent.java
│ │ │ ├── SendMovementPacketsEvent.java
│ │ │ ├── InteractItemEvent.java
│ │ │ ├── AttackEntityEvent.java
│ │ │ ├── BreakBlockEvent.java
│ │ │ ├── PlayerMoveEvent.java
│ │ │ ├── InteractEntityEvent.java
│ │ │ ├── DoItemUseEvent.java
│ │ │ ├── PlaceBlockEvent.java
│ │ │ ├── InteractBlockEvent.java
│ │ │ ├── ClipAtLedgeEvent.java
│ │ │ └── StartBreakingBlockEvent.java
│ │ ├── BoatMoveEvent.java
│ │ ├── EntityMoveEvent.java
│ │ └── DropItemsEvent.java
│ ├── Cancellable.java
│ └── packets
│ │ ├── InventoryEvent.java
│ │ ├── PlaySoundPacketEvent.java
│ │ └── ContainerSlotUpdateEvent.java
│ ├── mixin
│ ├── TextMixin.java
│ ├── EntityAccessor.java
│ ├── AbstractBlockAccessor.java
│ ├── TextHandlerAccessor.java
│ ├── ReloadStateAccessor.java
│ ├── FishingBobberEntityAccessor.java
│ ├── ClientChunkManagerAccessor.java
│ ├── StatusEffectInstanceAccessor.java
│ ├── ClientConnectionAccessor.java
│ ├── PlayerSkinProviderAccessor.java
│ ├── ProjectileInGroundAccessor.java
│ ├── DirectionAccessor.java
│ ├── FileCacheAccessor.java
│ ├── RenderLayerAccessor.java
│ ├── EntityBucketItemAccessor.java
│ ├── HandledScreenAccessor.java
│ ├── MountScreenHandlerAccessor.java
│ ├── ResourceReloadLoggerAccessor.java
│ ├── PlayerEntityAccessor.java
│ ├── ClientPlayerEntityAccessor.java
│ ├── MinecraftServerAccessor.java
│ ├── ProjectionMatrix2Accessor.java
│ ├── WorldAccessor.java
│ ├── ShulkerBoxScreenHandlerAccessor.java
│ ├── AbstractSignEditScreenAccessor.java
│ ├── CrossbowItemAccessor.java
│ ├── LayerRenderStateAccessor.java
│ ├── EntityTrackingSectionAccessor.java
│ ├── ItemRenderStateAccessor.java
│ ├── BlockEntityRenderManagerAccessor.java
│ ├── BlockHitResultAccessor.java
│ ├── ChunkAccessor.java
│ ├── ContainerComponentAccessor.java
│ ├── AbstractClientPlayerEntityAccessor.java
│ ├── CreativeInventoryScreenAccessor.java
│ ├── DrawContextAccessor.java
│ ├── ItemGroupsAccessor.java
│ ├── ClientChunkMapAccessor.java
│ ├── SimpleEntityLookupAccessor.java
│ ├── WorldRendererAccessor.java
│ ├── ChatHudAccessor.java
│ ├── MapTextureManagerAccessor.java
│ ├── EntityVelocityUpdateS2CPacketAccessor.java
│ ├── PlayerMoveC2SPacketAccessor.java
│ ├── MutableTextMixin.java
│ ├── PlayerMoveC2SPacketMixin.java
│ ├── SlotMixin.java
│ ├── RenderPipelineMixin.java
│ ├── ClientPlayerInteractionManagerAccessor.java
│ ├── CreativeSlotMixin.java
│ ├── MobEntityMixin.java
│ ├── ItemGroupsMixin.java
│ ├── AbstractFurnaceScreenHandlerMixin.java
│ ├── CapabilityTrackerMixin.java
│ ├── LivingEntityAccessor.java
│ ├── HungerManagerMixin.java
│ ├── YggdrasilMinecraftSessionServiceAccessor.java
│ ├── SectionedEntityCacheAccessor.java
│ ├── ShaderLoaderMixin.java
│ ├── RegistriesMixin.java
│ ├── KeyBindingAccessor.java
│ ├── ServerResourcePackLoaderMixin.java
│ └── AbstractSignBlockEntityRendererMixin.java
│ ├── pathing
│ └── BaritoneUtils.java
│ ├── ModMenuIntegration.java
│ └── commands
│ ├── arguments
│ └── DirectionArgumentType.java
│ └── commands
│ └── GamemodeCommand.java
├── gradle.properties
├── .editorconfig
├── .idea
├── copyright
│ ├── profiles_settings.xml
│ └── Meteor.xml
└── scopes
│ └── Meteor_Copyright_Notice.xml
├── .gitignore
├── launch
└── build.gradle.kts
└── settings.gradle.kts
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: ['https://meteorclient.com/donate']
2 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/icon.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/zh_cn.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "打开GUI",
3 | "key.meteor-client.open-commands": "输入命令"
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/hi_in.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "GUI खोलें",
3 | "key.meteor-client.open-commands": "कमांड खोलें"
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/vi_vn.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "Mở giao diện",
3 | "key.meteor-client.open-commands": "Mở lệnh"
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/pt_br.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "Abrir Menu",
3 | "key.meteor-client.open-commands": "Abrir Comandos"
4 | }
5 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/blank.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/chams.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/chams.jpg
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/steve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/steve.png
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx2G
2 | org.gradle.configuration-cache=false
3 |
4 | # Mod Properties
5 | maven_group=meteordevelopment
6 | archives_base_name=meteor-client
7 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/fonts/Comfortaa.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/fonts/Comfortaa.ttf
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/fonts/Pixelation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/fonts/Pixelation.ttf
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/fonts/Tw Cen MT.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/fonts/Tw Cen MT.ttf
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/meteor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/meteor.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/container.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/container.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/fonts/JetBrains Mono.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/fonts/JetBrains Mono.ttf
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/pos_color.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | out vec4 color;
4 |
5 | in vec4 v_Color;
6 |
7 | void main() {
8 | color = v_Color;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/copy.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/edit.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/paste.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/reset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/reset.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/chat/meteor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/chat/meteor.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/circle.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/chat/baritone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/chat/baritone.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/triangle.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/star.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/container-transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/container-transparent.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/favorite_no.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/favorite_no.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/gui/favorite_yes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/gui/favorite_yes.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/circle.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/skull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/skull.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/square.png
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Discord
4 | url: https://meteorclient.com/discord
5 | about: Join our discord for faster support on smaller issues.
6 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/diamond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/diamond.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/textures/icons/waypoints/triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MeteorDevelopment/meteor-client/HEAD/src/main/resources/assets/meteor-client/textures/icons/waypoints/triangle.png
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/en_gb.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "Open GUI",
3 | "key.meteor-client.open-commands": "Open Commands",
4 | "key.category.meteor-client.meteor-client": "Meteor Client"
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/lang/en_us.json:
--------------------------------------------------------------------------------
1 | {
2 | "key.meteor-client.open-gui": "Open GUI",
3 | "key.meteor-client.open-commands": "Open Commands",
4 | "key.category.meteor-client.meteor-client": "Meteor Client"
5 | }
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | charset = utf-8
3 | indent_style = space
4 | insert_final_newline = true
5 | trim_trailing_whitespace = true
6 | indent_size = 4
7 |
8 | [*.{json,yml}]
9 | indent_size = 2
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/passthrough.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | precision lowp float;
4 |
5 | in vec2 uv;
6 | out vec4 color;
7 |
8 | uniform sampler2D u_Texture;
9 |
10 | void main() {
11 | color = texture(u_Texture, uv);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/blur.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | precision lowp float;
4 |
5 | layout (location = 0) in vec2 pos;
6 | out vec2 uv;
7 |
8 | void main() {
9 | gl_Position = vec4(pos, 0, 1);
10 | uv = pos * .5 + .5;
11 | }
12 |
--------------------------------------------------------------------------------
/.idea/scopes/Meteor_Copyright_Notice.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/passthrough.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | precision lowp float;
4 |
5 | layout (location = 0) in vec2 pos;
6 | out vec2 uv;
7 |
8 | void main() {
9 | gl_Position = vec4(pos, 0, 1);
10 | uv = pos * .5 + .5;
11 | }
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
2 | .gradle
3 | .settings
4 | .project
5 | .classpath
6 | build
7 | out
8 | run
9 | bin
10 | logs
11 | .github/builds/node_modules
12 | .github/moderation/node_modules
13 | *.iws
14 | *.ipr
15 | *.iml
16 | .idea/*
17 | !.idea/copyright/*
18 | !.idea/scopes/*
19 |
--------------------------------------------------------------------------------
/.github/builds/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "devbuilds",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "devbuilds",
9 | "version": "1.0.0",
10 | "license": "MIT"
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/pos_tex_color.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | out vec4 color;
4 |
5 | uniform sampler2D u_Texture;
6 |
7 | in vec2 v_TexCoord;
8 | in vec4 v_Color;
9 |
10 | void main() {
11 | color = texture(u_Texture, v_TexCoord) * v_Color;
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/text.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | out vec4 color;
4 |
5 | uniform sampler2D u_Texture;
6 |
7 | in vec2 v_TexCoord;
8 | in vec4 v_Color;
9 |
10 | void main() {
11 | color = vec4(1.0, 1.0, 1.0, texture(u_Texture, v_TexCoord).r) * v_Color;
12 | }
13 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/launch/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java")
3 | }
4 |
5 | group = "meteordevelopment"
6 | version = "0.1.0"
7 |
8 | tasks {
9 | withType {
10 | options.release = 8
11 | options.compilerArgs.add("-Xlint:-options") // Suppress Java 8 deprecation warnings
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/.github/builds/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "devbuilds",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "author": "MineGame159",
7 | "license": "MIT",
8 | "type": "module",
9 | "scripts": {
10 | "get_number": "node get_number.js",
11 | "webhook": "node index.js"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/resources/meteor-client-indigo.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": false,
3 | "package": "meteordevelopment.meteorclient.mixin.indigo",
4 | "compatibilityLevel": "JAVA_21",
5 | "plugin": "meteordevelopment.meteorclient.MixinPlugin",
6 | "client": [],
7 | "injectors": {
8 | "defaultRequire": 1
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/WRoot.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 meteordevelopment.meteorclient.gui.widgets;
7 |
8 | public interface WRoot {
9 | }
10 |
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | maven {
4 | name = "Fabric"
5 | url = uri("https://maven.fabricmc.net/")
6 | }
7 | mavenCentral()
8 | gradlePluginPortal()
9 | }
10 | }
11 |
12 | rootProject.name = "meteor-client"
13 |
14 | include("launch")
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/hud/HudGroup.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 meteordevelopment.meteorclient.systems.hud;
7 |
8 | public record HudGroup(String title) {
9 | }
10 |
--------------------------------------------------------------------------------
/.github/moderation/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "moderator",
3 | "version": "1.0.0",
4 | "author": "MachieCodes",
5 | "license": "MIT",
6 | "type": "module",
7 | "scripts": {
8 | "banned_terms": "node banned_terms.js"
9 | },
10 | "dependencies": {
11 | "@actions/core": "^1.11.1",
12 | "@actions/github": "^6.0.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/IGetter.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | public interface IGetter {
9 | T get();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/utils/AlignmentX.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 meteordevelopment.meteorclient.gui.utils;
7 |
8 | public enum AlignmentX {
9 | Left, Center, Right
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/utils/AlignmentY.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 meteordevelopment.meteorclient.gui.utils;
7 |
8 | public enum AlignmentY {
9 | Top, Center, Bottom
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/settings/IVisible.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 meteordevelopment.meteorclient.settings;
7 |
8 | public interface IVisible {
9 | boolean isVisible();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/player/Safety.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 meteordevelopment.meteorclient.utils.player;
7 |
8 | public enum Safety {
9 | Safe,
10 | Suicide
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/NbtException.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | public class NbtException extends RuntimeException {
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/render/AlignmentX.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 meteordevelopment.meteorclient.utils.render;
7 |
8 | public enum AlignmentX {
9 | Left, Center, Right
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/render/AlignmentY.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 meteordevelopment.meteorclient.utils.render;
7 |
8 | public enum AlignmentY {
9 | Top, Center, Bottom
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/resources/meteor-client-baritone.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "package": "meteordevelopment.meteorclient.mixin.baritone",
4 | "compatibilityLevel": "JAVA_21",
5 | "plugin": "meteordevelopment.meteorclient.MixinPlugin",
6 | "client": [
7 | "ComeCommandMixin"
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/IChangeable.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | public interface IChangeable {
9 | boolean isChanged();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IText.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IText {
9 | void meteor$invalidateCache();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/hud/XAnchor.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 meteordevelopment.meteorclient.systems.hud;
7 |
8 | public enum XAnchor {
9 | Left,
10 | Center,
11 | Right
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/hud/YAnchor.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 meteordevelopment.meteorclient.systems.hud;
7 |
8 | public enum YAnchor {
9 | Top,
10 | Center,
11 | Bottom
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/entity/Target.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 meteordevelopment.meteorclient.utils.entity;
7 |
8 | public enum Target {
9 | Head,
10 | Body,
11 | Feet
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/meteor-client-viafabricplus.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": false,
3 | "package": "meteordevelopment.meteorclient.mixin.viafabricplus",
4 | "compatibilityLevel": "JAVA_21",
5 | "plugin": "meteordevelopment.meteorclient.MixinPlugin",
6 | "client": [
7 | "GeneralSettingsMixin"
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/accounts/TokenAccount.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 meteordevelopment.meteorclient.systems.accounts;
7 |
8 | public interface TokenAccount {
9 | String getToken();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/ICamera.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface ICamera {
9 | void meteor$setRot(double yaw, double pitch);
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/ISimpleOption.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface ISimpleOption {
9 | void meteor$set(Object value);
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/hud/Alignment.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 meteordevelopment.meteorclient.systems.hud;
7 |
8 | public enum Alignment {
9 | Auto,
10 | Left,
11 | Center,
12 | Right
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/ISlot.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface ISlot {
9 | int meteor$getId();
10 |
11 | int meteor$getIndex();
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/accounts/AccountType.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 meteordevelopment.meteorclient.systems.accounts;
7 |
8 | public enum AccountType {
9 | Cracked,
10 | Microsoft,
11 | TheAltening
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/pos_color.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec4 pos;
4 | layout (location = 1) in vec4 color;
5 |
6 | layout (std140) uniform MeshData {
7 | mat4 u_Proj;
8 | mat4 u_ModelView;
9 | };
10 |
11 | out vec4 v_Color;
12 |
13 | void main() {
14 | gl_Position = u_Proj * u_ModelView * pos;
15 |
16 | v_Color = color;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/speed/SpeedModes.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 meteordevelopment.meteorclient.systems.modules.movement.speed;
7 |
8 | public enum SpeedModes {
9 | Strafe,
10 | Vanilla
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/ICopyable.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | public interface ICopyable> {
9 | T set(T value);
10 |
11 | T copy();
12 | }
13 |
--------------------------------------------------------------------------------
/.idea/copyright/Meteor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/GuiKeyEvents.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 meteordevelopment.meteorclient.gui;
7 |
8 | public class GuiKeyEvents {
9 | public static boolean canUseKeys = true;
10 |
11 | private GuiKeyEvents() {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IClientPlayerInteractionManager.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IClientPlayerInteractionManager {
9 | void meteor$syncSelected();
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/post-process/base.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec4 pos;
4 |
5 | layout (std140) uniform PostData {
6 | vec2 u_Size;
7 | float u_Time;
8 | };
9 |
10 | out vec2 v_TexCoord;
11 | out vec2 v_OneTexel;
12 |
13 | void main() {
14 | gl_Position = pos;
15 |
16 | v_TexCoord = (pos.xy + 1.0) / 2.0;
17 | v_OneTexel = 1.0 / u_Size;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/resources/meteor-client-lithium.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": false,
3 | "package": "meteordevelopment.meteorclient.mixin.lithium",
4 | "compatibilityLevel": "JAVA_21",
5 | "plugin": "meteordevelopment.meteorclient.MixinPlugin",
6 | "client": [
7 | "ChunkAwareBlockCollisionSweeperMixin",
8 | "LithiumEntityCollisionsMixin"
9 | ],
10 | "injectors": {
11 | "defaultRequire": 1
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/utils/BaseWidget.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 meteordevelopment.meteorclient.gui.utils;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 |
10 | public interface BaseWidget {
11 | GuiTheme getTheme();
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IChatHud.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.text.Text;
9 |
10 | public interface IChatHud {
11 | void meteor$add(Text message, int id);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/ICapabilityTracker.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface ICapabilityTracker {
9 | boolean meteor$get();
10 |
11 | void meteor$set(boolean state);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IPlayerMoveC2SPacket.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IPlayerMoveC2SPacket {
9 | int meteor$getTag();
10 |
11 | void meteor$setTag(int tag);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IRenderPipeline.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IRenderPipeline {
9 | void meteor$setLineSmooth(boolean lineSmooth);
10 |
11 | boolean meteor$getLineSmooth();
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFlightModes.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 meteordevelopment.meteorclient.systems.modules.movement.elytrafly;
7 |
8 | public enum ElytraFlightModes {
9 | Vanilla,
10 | Packet,
11 | Pitch40,
12 | Bounce
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/ISerializable.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | import net.minecraft.nbt.NbtCompound;
9 |
10 | public interface ISerializable {
11 | NbtCompound toTag();
12 |
13 | T fromTag(NbtCompound tag);
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/post-process/image.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | in vec2 v_TexCoord;
4 | in vec2 v_OneTexel;
5 |
6 | uniform sampler2D u_Texture;
7 | uniform sampler2D u_TextureI;
8 |
9 | layout (std140) uniform ImageData {
10 | vec4 u_Color;
11 | };
12 |
13 | out vec4 color;
14 |
15 | void main() {
16 | if (texture(u_Texture, v_TexCoord).a == 0.0) discard;
17 | color = texture(u_TextureI, v_TexCoord) * u_Color;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/waypoints/events/WaypointAddedEvent.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 meteordevelopment.meteorclient.systems.waypoints.events;
7 |
8 | import meteordevelopment.meteorclient.systems.waypoints.Waypoint;
9 |
10 | public record WaypointAddedEvent(Waypoint waypoint) {
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IChatHudLineVisible.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IChatHudLineVisible extends IChatHudLine {
9 | boolean meteor$isStartOfEntry();
10 | void meteor$setStartOfEntry(boolean start);
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/waypoints/events/WaypointRemovedEvent.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 meteordevelopment.meteorclient.systems.waypoints.events;
7 |
8 | import meteordevelopment.meteorclient.systems.waypoints.Waypoint;
9 |
10 | public record WaypointRemovedEvent(Waypoint waypoint) {
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IAbstractFurnaceScreenHandler.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.item.ItemStack;
9 |
10 | public interface IAbstractFurnaceScreenHandler {
11 | boolean meteor$isItemSmeltable(ItemStack itemStack);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/utils/CharFilter.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 meteordevelopment.meteorclient.gui.utils;
7 |
8 | public interface CharFilter {
9 | boolean filter(String text, char c);
10 |
11 | default boolean filter(String text, int i) {
12 | return filter(text, (char) i);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/renderer/text/FontFace.java:
--------------------------------------------------------------------------------
1 | package meteordevelopment.meteorclient.renderer.text;
2 |
3 | import java.io.InputStream;
4 |
5 | public abstract class FontFace {
6 | public final FontInfo info;
7 |
8 | protected FontFace(FontInfo info) {
9 | this.info = info;
10 | }
11 |
12 | public abstract InputStream toStream();
13 |
14 | @Override
15 | public String toString() {
16 | return info.toString();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/WVerticalSeparator.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 meteordevelopment.meteorclient.gui.widgets;
7 |
8 | public class WVerticalSeparator extends WWidget {
9 | @Override
10 | protected void onCalculateSize() {
11 | width = theme.scale(3);
12 | height = 1;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/text.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec4 pos;
4 | layout (location = 1) in vec2 texCoords;
5 | layout (location = 2) in vec4 color;
6 |
7 | layout (std140) uniform MeshData {
8 | mat4 u_Proj;
9 | mat4 u_ModelView;
10 | };
11 |
12 | out vec2 v_TexCoord;
13 | out vec4 v_Color;
14 |
15 | void main() {
16 | gl_Position = u_Proj * u_ModelView * pos;
17 |
18 | v_TexCoord = texCoords;
19 | v_Color = color;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/GameLeftEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | public class GameLeftEvent {
9 | private static final GameLeftEvent INSTANCE = new GameLeftEvent();
10 |
11 | public static GameLeftEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IMinecraftClient.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.client.gl.Framebuffer;
9 |
10 | public interface IMinecraftClient {
11 | void meteor$rightClick();
12 |
13 | void meteor$setFramebuffer(Framebuffer framebuffer);
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/pos_tex_color.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec4 pos;
4 | layout (location = 1) in vec2 texCoords;
5 | layout (location = 2) in vec4 color;
6 |
7 | layout (std140) uniform MeshData {
8 | mat4 u_Proj;
9 | mat4 u_ModelView;
10 | };
11 |
12 | out vec2 v_TexCoord;
13 | out vec4 v_Color;
14 |
15 | void main() {
16 | gl_Position = u_Proj * u_ModelView * pos;
17 |
18 | v_TexCoord = texCoords;
19 | v_Color = color;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/GameJoinedEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | public class GameJoinedEvent {
9 | private static final GameJoinedEvent INSTANCE = new GameJoinedEvent();
10 |
11 | public static GameJoinedEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IExplosionS2CPacket.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | public interface IExplosionS2CPacket {
9 | void meteor$setVelocityX(float velocity);
10 |
11 | void meteor$setVelocityY(float velocity);
12 |
13 | void meteor$setVelocityZ(float velocity);
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/render/IVertexConsumerProvider.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 meteordevelopment.meteorclient.utils.render;
7 |
8 | import net.minecraft.client.render.VertexConsumerProvider;
9 |
10 | public interface IVertexConsumerProvider extends VertexConsumerProvider {
11 | void setOffset(int offsetX, int offsetY, int offsetZ);
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MeteorTooltipData.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 meteordevelopment.meteorclient.utils.tooltip;
7 |
8 | import net.minecraft.client.gui.tooltip.TooltipComponent;
9 | import net.minecraft.item.tooltip.TooltipData;
10 |
11 | public interface MeteorTooltipData extends TooltipData {
12 | TooltipComponent getComponent();
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IWorldRenderer.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.client.gl.Framebuffer;
9 |
10 | public interface IWorldRenderer {
11 | void meteor$pushEntityOutlineFramebuffer(Framebuffer framebuffer);
12 |
13 | void meteor$popEntityOutlineFramebuffer();
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/text/ColoredText.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 meteordevelopment.meteorclient.utils.misc.text;
7 |
8 | import meteordevelopment.meteorclient.utils.render.color.Color;
9 |
10 | /**
11 | * Encapsulates a string and the color it should have. See {@link TextUtils}
12 | */
13 | public record ColoredText(String text, Color color) {
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/ResolutionChangedEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | public class ResolutionChangedEvent {
9 | private static final ResolutionChangedEvent INSTANCE = new ResolutionChangedEvent();
10 |
11 | public static ResolutionChangedEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/RenderAfterWorldEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | public class RenderAfterWorldEvent {
9 | private static final RenderAfterWorldEvent INSTANCE = new RenderAfterWorldEvent();
10 |
11 | public static RenderAfterWorldEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/accounts/TexturesJson.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 meteordevelopment.meteorclient.systems.accounts;
7 |
8 | public class TexturesJson {
9 | public Textures textures;
10 |
11 | public static class Textures {
12 | public Texture SKIN;
13 | }
14 |
15 | public static class Texture {
16 | public String url;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/ResourcePacksReloadedEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | public class ResourcePacksReloadedEvent {
9 | private static final ResourcePacksReloadedEvent INSTANCE = new ResourcePacksReloadedEvent();
10 |
11 | public static ResourcePacksReloadedEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/ActiveModulesChangedEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | public class ActiveModulesChangedEvent {
9 | private static final ActiveModulesChangedEvent INSTANCE = new ActiveModulesChangedEvent();
10 |
11 | public static ActiveModulesChangedEvent get() {
12 | return INSTANCE;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/GetFovEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | public class GetFovEvent {
9 | private static final GetFovEvent INSTANCE = new GetFovEvent();
10 |
11 | public float fov;
12 |
13 | public static GetFovEvent get(float fov) {
14 | INSTANCE.fov = fov;
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/renderer/ShapeMode.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 meteordevelopment.meteorclient.renderer;
7 |
8 | public enum ShapeMode {
9 | Lines,
10 | Sides,
11 | Both;
12 |
13 | public boolean lines() {
14 | return this == Lines || this == Both;
15 | }
16 |
17 | public boolean sides() {
18 | return this == Sides ||this == Both;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/EmptyIterator.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | import java.util.Iterator;
9 |
10 | public class EmptyIterator implements Iterator {
11 | @Override
12 | public boolean hasNext() {
13 | return false;
14 | }
15 |
16 | @Override
17 | public T next() {
18 | return null;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/TextMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.IText;
9 | import net.minecraft.text.Text;
10 | import org.spongepowered.asm.mixin.Mixin;
11 |
12 | @Mixin(Text.class)
13 | public interface TextMixin extends IText {
14 | @Override
15 | default void meteor$invalidateCache() {}
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/pressable/WTriangle.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 meteordevelopment.meteorclient.gui.widgets.pressable;
7 |
8 | public abstract class WTriangle extends WPressable {
9 | public double rotation;
10 |
11 | @Override
12 | protected void onCalculateSize() {
13 | double s = theme.textHeight();
14 |
15 | width = s;
16 | height = s;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/renderer/packer/TextureRegion.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 meteordevelopment.meteorclient.gui.renderer.packer;
7 |
8 | public class TextureRegion {
9 | public double x1, y1;
10 | public double x2, y2;
11 |
12 | public double diagonal;
13 |
14 | public TextureRegion(double width, double height) {
15 | diagonal = Math.sqrt(width * width + height * height);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/pressable/WMinus.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 meteordevelopment.meteorclient.gui.widgets.pressable;
7 |
8 | public abstract class WMinus extends WPressable {
9 | @Override
10 | protected void onCalculateSize() {
11 | double pad = pad();
12 | double s = theme.textHeight();
13 |
14 | width = pad + s + pad;
15 | height = pad + s + pad;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/pressable/WPlus.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 meteordevelopment.meteorclient.gui.widgets.pressable;
7 |
8 | public abstract class WPlus extends WPressable {
9 | @Override
10 | protected void onCalculateSize() {
11 | double pad = pad();
12 | double s = theme.textHeight();
13 |
14 | width = pad + s + pad;
15 | height = pad + s + pad;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/EntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.Entity;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(Entity.class)
13 | public interface EntityAccessor {
14 | @Accessor("touchingWater")
15 | void meteor$setInWater(boolean touchingWater);
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/AbstractBlockAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.block.AbstractBlock;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(AbstractBlock.class)
13 | public interface AbstractBlockAccessor {
14 | @Accessor("collidable")
15 | boolean meteor$isCollidable();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/CustomFontChangedEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | @SuppressWarnings("InstantiationOfUtilityClass")
9 | public class CustomFontChangedEvent {
10 | private static final CustomFontChangedEvent INSTANCE = new CustomFontChangedEvent();
11 |
12 | public static CustomFontChangedEvent get() {
13 | return INSTANCE;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/world/Dimension.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 meteordevelopment.meteorclient.utils.world;
7 |
8 | public enum Dimension {
9 | Overworld,
10 | Nether,
11 | End;
12 |
13 | public Dimension opposite() {
14 | return switch (this) {
15 | case Overworld -> Nether;
16 | case Nether -> Overworld;
17 | default -> this;
18 | };
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IChatHudLine.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import com.mojang.authlib.GameProfile;
9 |
10 | public interface IChatHudLine {
11 | String meteor$getText();
12 |
13 | int meteor$getId();
14 |
15 | void meteor$setId(int id);
16 |
17 | GameProfile meteor$getSender();
18 |
19 | void meteor$setSender(GameProfile profile);
20 | }
21 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Type of change
2 |
3 | - [ ] Bug fix
4 | - [ ] New feature
5 |
6 | ## Description
7 |
8 | A summary of the changes along with the reasoning behind the changes.
9 |
10 | ## Related issues
11 |
12 | Mention any issues that this pr relates to.
13 |
14 | # How Has This Been Tested?
15 |
16 | Videos or screenshots of the changes if applicable.
17 |
18 | # Checklist:
19 |
20 | - [ ] My code follows the style guidelines of this project.
21 | - [ ] I have added comments to my code in more complex areas.
22 | - [ ] I have tested the code in both development and production environments.
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IPlayerInteractEntityC2SPacket.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.entity.Entity;
9 | import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket;
10 |
11 | public interface IPlayerInteractEntityC2SPacket {
12 | PlayerInteractEntityC2SPacket.InteractType meteor$getType();
13 |
14 | Entity meteor$getEntity();
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/resources/meteor-client-sodium.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": false,
3 | "package": "meteordevelopment.meteorclient.mixin.sodium",
4 | "compatibilityLevel": "JAVA_21",
5 | "plugin": "meteordevelopment.meteorclient.MixinPlugin",
6 | "client": [
7 | "MeshVertexConsumerMixin",
8 | "SodiumBlockOcclusionCacheMixin",
9 | "SodiumBlockRendererMixin",
10 | "SodiumFluidRendererImplDefaultRenderContextMixin",
11 | "SodiumFluidRendererImplMixin",
12 | "SodiumLightDataAccessMixin",
13 | "SodiumWorldRendererMixin"
14 | ],
15 | "injectors": {
16 | "defaultRequire": 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/AmbientOcclusionEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | public class AmbientOcclusionEvent {
9 | private static final AmbientOcclusionEvent INSTANCE = new AmbientOcclusionEvent();
10 |
11 | public float lightLevel = -1;
12 |
13 | public static AmbientOcclusionEvent get() {
14 | INSTANCE.lightLevel = -1;
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/TextHandlerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.font.TextHandler;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(TextHandler.class)
13 | public interface TextHandlerAccessor {
14 | @Accessor("widthRetriever")
15 | TextHandler.WidthRetriever meteor$getWidthRetriever();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/PostInit.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 meteordevelopment.meteorclient.utils;
7 |
8 | import java.lang.annotation.ElementType;
9 | import java.lang.annotation.Retention;
10 | import java.lang.annotation.RetentionPolicy;
11 | import java.lang.annotation.Target;
12 |
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Target(ElementType.METHOD)
15 | public @interface PostInit {
16 | Class>[] dependencies() default { };
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/PreInit.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 meteordevelopment.meteorclient.utils;
7 |
8 | import java.lang.annotation.ElementType;
9 | import java.lang.annotation.Retention;
10 | import java.lang.annotation.RetentionPolicy;
11 | import java.lang.annotation.Target;
12 |
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Target(ElementType.METHOD)
15 | public @interface PreInit {
16 | Class>[] dependencies() default { };
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/ChunkDataEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import net.minecraft.world.chunk.WorldChunk;
9 |
10 | /**
11 | * @implNote Shouldn't be put in a {@link meteordevelopment.meteorclient.utils.misc.Pool} to avoid a race-condition, or in a {@link ThreadLocal} as it is shared between threads.
12 | * @author Crosby
13 | */
14 | public record ChunkDataEvent(WorldChunk chunk) {}
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ReloadStateAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.resource.ResourceReloadLogger;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(ResourceReloadLogger.ReloadState.class)
13 | public interface ReloadStateAccessor {
14 | @Accessor("finished")
15 | boolean meteor$isFinished();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IRaycastContext.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.entity.Entity;
9 | import net.minecraft.util.math.Vec3d;
10 | import net.minecraft.world.RaycastContext;
11 |
12 | public interface IRaycastContext {
13 | void meteor$set(Vec3d start, Vec3d end, RaycastContext.ShapeType shapeType, RaycastContext.FluidHandling fluidHandling, Entity entity);
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.projectile.FishingBobberEntity;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(FishingBobberEntity.class)
13 | public interface FishingBobberEntityAccessor {
14 | @Accessor("caughtFish")
15 | boolean meteor$hasCaughtFish();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ClientChunkManagerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.world.ClientChunkManager;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(ClientChunkManager.class)
13 | public interface ClientChunkManagerAccessor {
14 | @Accessor("chunks")
15 | ClientChunkManager.ClientChunkMap meteor$getChunks();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/StatusEffectInstanceAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.effect.StatusEffectInstance;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(StatusEffectInstance.class)
13 | public interface StatusEffectInstanceAccessor {
14 | @Accessor("duration")
15 | void meteor$setDuration(int duration);
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ClientConnectionAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import io.netty.channel.Channel;
9 | import net.minecraft.network.ClientConnection;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(ClientConnection.class)
14 | public interface ClientConnectionAccessor {
15 | @Accessor("channel")
16 | Channel meteor$getChannel();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/PlayerSkinProviderAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.texture.PlayerSkinProvider;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(PlayerSkinProvider.class)
13 | public interface PlayerSkinProviderAccessor {
14 | @Accessor("skinCache")
15 | PlayerSkinProvider.FileCache meteor$getSkinCache();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ProjectileInGroundAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.projectile.PersistentProjectileEntity;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Invoker;
11 |
12 | @Mixin(PersistentProjectileEntity.class)
13 | public interface ProjectileInGroundAccessor {
14 | @Invoker("isInGround")
15 | boolean meteor$invokeIsInGround();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Portals.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 meteordevelopment.meteorclient.systems.modules.player;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Categories;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 |
11 | public class Portals extends Module {
12 | public Portals() {
13 | super(Categories.Player, "portals", "Allows you to use GUIs normally while in a Nether Portal.");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/EntityAddedEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import net.minecraft.entity.Entity;
9 |
10 | public class EntityAddedEvent {
11 | private static final EntityAddedEvent INSTANCE = new EntityAddedEvent();
12 |
13 | public Entity entity;
14 |
15 | public static EntityAddedEvent get(Entity entity) {
16 | INSTANCE.entity = entity;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/DirectionAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.util.math.Direction;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(Direction.class)
13 | public interface DirectionAccessor {
14 | @Accessor("HORIZONTAL")
15 | static Direction[] meteor$getHorizontal() {
16 | throw new AssertionError();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/FileCacheAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.texture.PlayerSkinProvider;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | import java.nio.file.Path;
13 |
14 | @Mixin(PlayerSkinProvider.FileCache.class)
15 | public interface FileCacheAccessor {
16 | @Accessor("directory")
17 | Path meteor$getDirectory();
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/RenderLayerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.render.RenderLayer;
9 | import net.minecraft.client.render.RenderSetup;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(RenderLayer.class)
14 | public interface RenderLayerAccessor {
15 | @Accessor("renderSetup")
16 | RenderSetup getRenderSetup();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterBeacons.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 meteordevelopment.meteorclient.systems.modules.misc;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Categories;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 |
11 | public class BetterBeacons extends Module {
12 | public BetterBeacons() {
13 | super(Categories.Misc, "better-beacons", "Select effects unaffected by beacon level.");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/player/LiquidInteract.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 meteordevelopment.meteorclient.systems.modules.player;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Categories;
9 | import meteordevelopment.meteorclient.systems.modules.Module;
10 |
11 | public class LiquidInteract extends Module {
12 | public LiquidInteract() {
13 | super(Categories.Player, "liquid-interact", "Allows you to interact with liquids.");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/EntityDestroyEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import net.minecraft.entity.Entity;
9 |
10 | public class EntityDestroyEvent {
11 | private static final EntityDestroyEvent INSTANCE = new EntityDestroyEvent();
12 |
13 | public Entity entity;
14 |
15 | public static EntityDestroyEvent get(Entity entity) {
16 | INSTANCE.entity = entity;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/EntityRemovedEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import net.minecraft.entity.Entity;
9 |
10 | public class EntityRemovedEvent {
11 | private static final EntityRemovedEvent INSTANCE = new EntityRemovedEvent();
12 |
13 | public Entity entity;
14 |
15 | public static EntityRemovedEvent get(Entity entity) {
16 | INSTANCE.entity = entity;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/PlayerTickMovementEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | /**
9 | * @see net.minecraft.client.network.ClientPlayerEntity#tickMovement()
10 | */
11 | public class PlayerTickMovementEvent {
12 | private static final PlayerTickMovementEvent INSTANCE = new PlayerTickMovementEvent();
13 |
14 | public static PlayerTickMovementEvent get() {
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/ChunkOcclusionEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 |
10 | public class ChunkOcclusionEvent extends Cancellable {
11 | private static final ChunkOcclusionEvent INSTANCE = new ChunkOcclusionEvent();
12 |
13 | public static ChunkOcclusionEvent get() {
14 | INSTANCE.setCancelled(false);
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/EntityBucketItemAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.EntityType;
9 | import net.minecraft.item.EntityBucketItem;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(EntityBucketItem.class)
14 | public interface EntityBucketItemAccessor {
15 | @Accessor("entityType")
16 | EntityType> meteor$getEntityType();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.gui.screen.ingame.HandledScreen;
9 | import net.minecraft.screen.slot.Slot;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(HandledScreen.class)
14 | public interface HandledScreenAccessor {
15 | @Accessor("focusedSlot")
16 | Slot meteor$getFocusedSlot();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/MountScreenHandlerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.LivingEntity;
9 | import net.minecraft.screen.MountScreenHandler;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(MountScreenHandler.class)
14 | public interface MountScreenHandlerAccessor {
15 | @Accessor("mount")
16 | LivingEntity meteor$getMount();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ResourceReloadLoggerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.resource.ResourceReloadLogger;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(ResourceReloadLogger.class)
13 | public interface ResourceReloadLoggerAccessor {
14 | @Accessor("reloadState")
15 | ResourceReloadLogger.ReloadState meteor$getReloadState();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/JumpVelocityMultiplierEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | public class JumpVelocityMultiplierEvent {
9 | private static final JumpVelocityMultiplierEvent INSTANCE = new JumpVelocityMultiplierEvent();
10 |
11 | public float multiplier = 1;
12 |
13 | public static JumpVelocityMultiplierEvent get() {
14 | INSTANCE.multiplier = 1;
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/BlockBreakingCooldownEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | public class BlockBreakingCooldownEvent {
9 | private static final BlockBreakingCooldownEvent INSTANCE = new BlockBreakingCooldownEvent();
10 |
11 | public int cooldown;
12 |
13 | public static BlockBreakingCooldownEvent get(int cooldown) {
14 | INSTANCE.cooldown = cooldown;
15 | return INSTANCE;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.EntityPose;
9 | import net.minecraft.entity.player.PlayerEntity;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Invoker;
12 |
13 | @Mixin(PlayerEntity.class)
14 | public interface PlayerEntityAccessor {
15 | @Invoker("canChangeIntoPose")
16 | boolean meteor$canChangeIntoPose(EntityPose pose);
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneUtils.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 meteordevelopment.meteorclient.pathing;
7 |
8 | import baritone.api.BaritoneAPI;
9 |
10 | public class BaritoneUtils {
11 | public static boolean IS_AVAILABLE = false;
12 |
13 | private BaritoneUtils() {
14 | }
15 |
16 | public static String getPrefix() {
17 | if (IS_AVAILABLE) {
18 | return BaritoneAPI.getSettings().prefix.value;
19 | }
20 |
21 | return "";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/Cancellable.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 meteordevelopment.meteorclient.events;
7 |
8 | import meteordevelopment.orbit.ICancellable;
9 |
10 | public class Cancellable implements ICancellable {
11 | private boolean cancelled = false;
12 |
13 | @Override
14 | public void setCancelled(boolean cancelled) {
15 | this.cancelled = cancelled;
16 | }
17 |
18 | @Override
19 | public boolean isCancelled() {
20 | return cancelled;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/BoatMoveEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import net.minecraft.entity.vehicle.AbstractBoatEntity;
9 |
10 | public class BoatMoveEvent {
11 | private static final BoatMoveEvent INSTANCE = new BoatMoveEvent();
12 |
13 | public AbstractBoatEntity boat;
14 |
15 | public static BoatMoveEvent get(AbstractBoatEntity entity) {
16 | INSTANCE.boat = entity;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerEntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.network.ClientPlayerEntity;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(ClientPlayerEntity.class)
13 | public interface ClientPlayerEntityAccessor {
14 | @Accessor("ticksSinceLastPositionPacketSent")
15 | void meteor$setTicksSinceLastPositionPacketSent(int ticks);
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftServerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.server.MinecraftServer;
9 | import net.minecraft.world.level.storage.LevelStorage;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(MinecraftServer.class)
14 | public interface MinecraftServerAccessor {
15 | @Accessor("session")
16 | LevelStorage.Session meteor$getSession();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ProjectionMatrix2Accessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.render.ProjectionMatrix2;
9 | import org.joml.Matrix4f;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Invoker;
12 |
13 | @Mixin(ProjectionMatrix2.class)
14 | public interface ProjectionMatrix2Accessor {
15 | @Invoker("getMatrix")
16 | Matrix4f meteor$callGetMatrix(float width, float height);
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/WorldAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.Entity;
9 | import net.minecraft.world.World;
10 | import net.minecraft.world.entity.EntityLookup;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Invoker;
13 |
14 | @Mixin(World.class)
15 | public interface WorldAccessor {
16 | @Invoker("getEntityLookup")
17 | EntityLookup meteor$getEntityLookup();
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyAction.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 meteordevelopment.meteorclient.utils.misc.input;
7 |
8 | import org.lwjgl.glfw.GLFW;
9 |
10 | public enum KeyAction {
11 | Press,
12 | Repeat,
13 | Release;
14 |
15 | public static KeyAction get(int action) {
16 | return switch (action) {
17 | case GLFW.GLFW_PRESS -> Press;
18 | case GLFW.GLFW_RELEASE -> Release;
19 | default -> Repeat;
20 | };
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/BlockActivateEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import net.minecraft.block.BlockState;
9 |
10 | public class BlockActivateEvent {
11 | private static final BlockActivateEvent INSTANCE = new BlockActivateEvent();
12 |
13 | public BlockState blockState;
14 |
15 | public static BlockActivateEvent get(BlockState blockState) {
16 | INSTANCE.blockState = blockState;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ShulkerBoxScreenHandlerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.inventory.Inventory;
9 | import net.minecraft.screen.ShulkerBoxScreenHandler;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(ShulkerBoxScreenHandler.class)
14 | public interface ShulkerBoxScreenHandlerAccessor {
15 | @Accessor("inventory")
16 | Inventory meteor$getInventory();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IBox.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.util.math.BlockPos;
9 |
10 | public interface IBox {
11 | void meteor$expand(double v);
12 |
13 | void meteor$set(double x1, double y1, double z1, double x2, double y2, double z2);
14 |
15 | default void meteor$set(BlockPos pos) {
16 | meteor$set(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/modes/Vanilla.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 meteordevelopment.meteorclient.systems.modules.movement.elytrafly.modes;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.movement.elytrafly.ElytraFlightMode;
9 | import meteordevelopment.meteorclient.systems.modules.movement.elytrafly.ElytraFlightModes;
10 |
11 | public class Vanilla extends ElytraFlightMode {
12 | public Vanilla() {
13 | super(ElytraFlightModes.Vanilla);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/packets/InventoryEvent.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 meteordevelopment.meteorclient.events.packets;
7 |
8 | import net.minecraft.network.packet.s2c.play.InventoryS2CPacket;
9 |
10 | public class InventoryEvent {
11 | private static final InventoryEvent INSTANCE = new InventoryEvent();
12 |
13 | public InventoryS2CPacket packet;
14 |
15 | public static InventoryEvent get(InventoryS2CPacket packet) {
16 | INSTANCE.packet = packet;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/ServerConnectEndEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import java.net.InetSocketAddress;
9 |
10 | public class ServerConnectEndEvent {
11 | private static final ServerConnectEndEvent INSTANCE = new ServerConnectEndEvent();
12 | public InetSocketAddress address;
13 |
14 | public static ServerConnectEndEvent get(InetSocketAddress address) {
15 | INSTANCE.address = address;
16 | return INSTANCE;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/text/RunnableClickEvent.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 meteordevelopment.meteorclient.utils.misc.text;
7 |
8 | /**
9 | * Allows arbitrary code execution in a click event
10 | */
11 | public class RunnableClickEvent extends MeteorClickEvent {
12 | public final Runnable runnable;
13 |
14 | public RunnableClickEvent(Runnable runnable) {
15 | super(null); // Should ensure no vanilla code is triggered, and only we handle it
16 | this.runnable = runnable;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/CharTypedEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 |
10 | public class CharTypedEvent extends Cancellable {
11 | private static final CharTypedEvent INSTANCE = new CharTypedEvent();
12 |
13 | public char c;
14 |
15 | public static CharTypedEvent get(char c) {
16 | INSTANCE.setCancelled(false);
17 | INSTANCE.c = c;
18 | return INSTANCE;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/FinishUsingItemEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.item.ItemStack;
9 |
10 | public class FinishUsingItemEvent {
11 | private static final FinishUsingItemEvent INSTANCE = new FinishUsingItemEvent();
12 |
13 | public ItemStack itemStack;
14 |
15 | public static FinishUsingItemEvent get(ItemStack itemStack) {
16 | INSTANCE.itemStack = itemStack;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/ModuleBindChangedEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Module;
9 |
10 | public class ModuleBindChangedEvent {
11 | private static final ModuleBindChangedEvent INSTANCE = new ModuleBindChangedEvent();
12 |
13 | public Module module;
14 |
15 | public static ModuleBindChangedEvent get(Module module) {
16 | INSTANCE.module = module;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/WQuad.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 meteordevelopment.meteorclient.gui.widgets;
7 |
8 | import meteordevelopment.meteorclient.utils.render.color.Color;
9 |
10 | public abstract class WQuad extends WWidget {
11 | public Color color;
12 |
13 | public WQuad(Color color) {
14 | this.color = color;
15 | }
16 |
17 | @Override
18 | protected void onCalculateSize() {
19 | double s = theme.scale(32);
20 |
21 | width = s;
22 | height = s;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/proxies/ProxyType.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 meteordevelopment.meteorclient.systems.proxies;
7 |
8 | import org.jetbrains.annotations.Nullable;
9 |
10 | public enum ProxyType {
11 | Socks4,
12 | Socks5;
13 |
14 | @Nullable
15 | public static ProxyType parse(String group) {
16 | for (ProxyType type : values()) {
17 | if (type.name().equalsIgnoreCase(group)) {
18 | return type;
19 | }
20 | }
21 | return null;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/MissHitResult.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | import net.minecraft.util.hit.HitResult;
9 | import net.minecraft.util.math.Vec3d;
10 |
11 | public class MissHitResult extends HitResult {
12 | public static final MissHitResult INSTANCE = new MissHitResult();
13 |
14 | private MissHitResult() {
15 | super(new Vec3d(0, 0, 0));
16 | }
17 |
18 | @Override
19 | public Type getType() {
20 | return Type.MISS;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/StoppedUsingItemEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.item.ItemStack;
9 |
10 | public class StoppedUsingItemEvent {
11 | private static final StoppedUsingItemEvent INSTANCE = new StoppedUsingItemEvent();
12 |
13 | public ItemStack itemStack;
14 |
15 | public static StoppedUsingItemEvent get(ItemStack itemStack) {
16 | INSTANCE.itemStack = itemStack;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/AbstractSignEditScreenAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.block.entity.SignBlockEntity;
9 | import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(AbstractSignEditScreen.class)
14 | public interface AbstractSignEditScreenAccessor {
15 | @Accessor("blockEntity")
16 | SignBlockEntity meteor$getSign();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/CrossbowItemAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.component.type.ChargedProjectilesComponent;
9 | import net.minecraft.item.CrossbowItem;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Invoker;
12 |
13 | @Mixin(CrossbowItem.class)
14 | public interface CrossbowItemAccessor {
15 | @Invoker("getSpeed")
16 | static float meteor$getSpeed(ChargedProjectilesComponent itemStack) { return 0; }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/LayerRenderStateAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.render.item.ItemRenderState;
9 | import net.minecraft.client.render.model.json.Transformation;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(ItemRenderState.LayerRenderState.class)
14 | public interface LayerRenderStateAccessor {
15 | @Accessor("transform")
16 | Transformation meteor$getTransform();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/EntityTrackingSectionAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.util.collection.TypeFilterableList;
9 | import net.minecraft.world.entity.EntityTrackingSection;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(EntityTrackingSection.class)
14 | public interface EntityTrackingSectionAccessor {
15 | @Accessor("collection")
16 | TypeFilterableList meteor$getCollection();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ItemRenderStateAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.render.item.ItemRenderState;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.gen.Accessor;
11 |
12 | @Mixin(ItemRenderState.class)
13 | public interface ItemRenderStateAccessor {
14 | @Accessor("layerCount")
15 | int meteor$getLayerCount();
16 |
17 | @Accessor("layers")
18 | ItemRenderState.LayerRenderState[] meteor$getLayers();
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/settings/IGeneric.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 meteordevelopment.meteorclient.settings;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import meteordevelopment.meteorclient.gui.WidgetScreen;
10 | import meteordevelopment.meteorclient.utils.misc.ICopyable;
11 | import meteordevelopment.meteorclient.utils.misc.ISerializable;
12 |
13 | public interface IGeneric> extends ICopyable, ISerializable {
14 | WidgetScreen createScreen(GuiTheme theme, GenericSetting setting);
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.render.block.entity.BlockEntityRenderManager;
9 | import net.minecraft.client.texture.SpriteHolder;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(BlockEntityRenderManager.class)
14 | public interface BlockEntityRenderManagerAccessor {
15 | @Accessor("spriteHolder")
16 | SpriteHolder getSpriteHolder();
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/BlockHitResultAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.util.hit.BlockHitResult;
9 | import net.minecraft.util.math.Direction;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.Mutable;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | @Mixin(BlockHitResult.class)
15 | public interface BlockHitResultAccessor {
16 | @Mutable
17 | @Accessor("side")
18 | void meteor$setSide(Direction direction);
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ChunkAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.block.entity.BlockEntity;
9 | import net.minecraft.util.math.BlockPos;
10 | import net.minecraft.world.chunk.Chunk;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | import java.util.Map;
15 |
16 | @Mixin(Chunk.class)
17 | public interface ChunkAccessor {
18 | @Accessor("blockEntities")
19 | Map getBlockEntities();
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/ItemUseCrosshairTargetEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.util.hit.HitResult;
9 |
10 | public class ItemUseCrosshairTargetEvent {
11 | private static final ItemUseCrosshairTargetEvent INSTANCE = new ItemUseCrosshairTargetEvent();
12 |
13 | public HitResult target;
14 |
15 | public static ItemUseCrosshairTargetEvent get(HitResult target) {
16 | INSTANCE.target = target;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseScrollEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 |
10 | public class MouseScrollEvent extends Cancellable {
11 | private static final MouseScrollEvent INSTANCE = new MouseScrollEvent();
12 |
13 | public double value;
14 |
15 | public static MouseScrollEvent get(double value) {
16 | INSTANCE.setCancelled(false);
17 | INSTANCE.value = value;
18 | return INSTANCE;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/packets/PlaySoundPacketEvent.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 meteordevelopment.meteorclient.events.packets;
7 |
8 | import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket;
9 |
10 | public class PlaySoundPacketEvent {
11 |
12 | private static final PlaySoundPacketEvent INSTANCE = new PlaySoundPacketEvent();
13 |
14 | public PlaySoundS2CPacket packet;
15 |
16 | public static PlaySoundPacketEvent get(PlaySoundS2CPacket packet) {
17 | INSTANCE.packet = packet;
18 | return INSTANCE;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ContainerComponentAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.component.type.ContainerComponent;
9 | import net.minecraft.item.ItemStack;
10 | import net.minecraft.util.collection.DefaultedList;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | @Mixin(ContainerComponent.class)
15 | public interface ContainerComponentAccessor {
16 | @Accessor("stacks")
17 | DefaultedList meteor$getStacks();
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IMessageHandler.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import com.mojang.authlib.GameProfile;
9 | import net.minecraft.client.gui.hud.MessageIndicator;
10 | import net.minecraft.network.message.MessageSignatureData;
11 | import net.minecraft.text.Text;
12 |
13 | public interface IMessageHandler {
14 | /** Only valid inside of {@link net.minecraft.client.gui.hud.ChatHud#addMessage(Text, MessageSignatureData, MessageIndicator)} call */
15 | GameProfile meteor$getSender();
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/blur_down.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | precision lowp float;
4 |
5 | in vec2 uv;
6 | out vec4 color;
7 |
8 | uniform sampler2D u_Texture;
9 |
10 | layout (std140) uniform BlurData {
11 | vec2 u_HalfTexelSize;
12 | float u_Offset;
13 | };
14 |
15 | void main() {
16 | color = (
17 | texture(u_Texture, uv) * 4 +
18 | texture(u_Texture, uv - u_HalfTexelSize * u_Offset) +
19 | texture(u_Texture, uv + u_HalfTexelSize * u_Offset) +
20 | texture(u_Texture, uv + vec2(u_HalfTexelSize.x, -u_HalfTexelSize.y) * u_Offset) +
21 | texture(u_Texture, uv - vec2(u_HalfTexelSize.x, -u_HalfTexelSize.y) * u_Offset)
22 | ) / 8;
23 | color.a = 1;
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/AbstractClientPlayerEntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.network.AbstractClientPlayerEntity;
9 | import net.minecraft.client.network.PlayerListEntry;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(AbstractClientPlayerEntity.class)
14 | public interface AbstractClientPlayerEntityAccessor {
15 | @Accessor("playerListEntry")
16 | void meteor$setPlayerListEntry(PlayerListEntry entry);
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/CreativeInventoryScreenAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
9 | import net.minecraft.item.ItemGroup;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(CreativeInventoryScreen.class)
14 | public interface CreativeInventoryScreenAccessor {
15 | @Accessor("selectedTab")
16 | static ItemGroup meteor$getSelectedTab() {
17 | return null;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/DrawContextAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.gui.DrawContext;
9 | import net.minecraft.client.gui.render.state.GuiRenderState;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(DrawContext.class)
14 | public interface DrawContextAccessor {
15 | @Accessor("state")
16 | GuiRenderState getState();
17 |
18 | @Accessor("scissorStack")
19 | DrawContext.ScissorStack getScissorStack();
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ItemGroupsAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.item.ItemGroup;
9 | import net.minecraft.item.ItemGroups;
10 | import net.minecraft.registry.RegistryKey;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | @Mixin(ItemGroups.class)
15 | public interface ItemGroupsAccessor {
16 | @Accessor("INVENTORY")
17 | static RegistryKey meteor$getInventory() {
18 | throw new AssertionError();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/PickItemsEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.item.ItemStack;
9 |
10 | public class PickItemsEvent {
11 | private static final PickItemsEvent INSTANCE = new PickItemsEvent();
12 |
13 | public ItemStack itemStack;
14 | public int count;
15 |
16 | public static PickItemsEvent get(ItemStack itemStack, int count) {
17 | INSTANCE.itemStack = itemStack;
18 | INSTANCE.count = count;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/SendMessageEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 |
10 | public class SendMessageEvent extends Cancellable {
11 | private static final SendMessageEvent INSTANCE = new SendMessageEvent();
12 |
13 | public String message;
14 |
15 | public static SendMessageEvent get(String message) {
16 | INSTANCE.setCancelled(false);
17 | INSTANCE.message = message;
18 | return INSTANCE;
19 | }
20 | }
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/ModMenuIntegration.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 meteordevelopment.meteorclient;
7 |
8 | import com.terraformersmc.modmenu.api.ConfigScreenFactory;
9 | import com.terraformersmc.modmenu.api.ModMenuApi;
10 | import meteordevelopment.meteorclient.gui.GuiThemes;
11 | import meteordevelopment.meteorclient.gui.screens.ModulesScreen;
12 |
13 | public class ModMenuIntegration implements ModMenuApi {
14 | @Override
15 | public ConfigScreenFactory> getModConfigScreenFactory() {
16 | return screen -> new ModulesScreen(GuiThemes.get());
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/systems/accounts/UuidToProfileResponse.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 meteordevelopment.meteorclient.systems.accounts;
7 |
8 | public class UuidToProfileResponse {
9 | public Property[] properties;
10 |
11 | public String getPropertyValue(String name) {
12 | for (Property property : properties) {
13 | if (property.name.equals(name)) return property.value;
14 | }
15 |
16 | return null;
17 | }
18 |
19 | public static class Property {
20 | public String name;
21 | public String value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ClientChunkMapAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.world.ClientChunkManager;
9 | import net.minecraft.world.chunk.WorldChunk;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | import java.util.concurrent.atomic.AtomicReferenceArray;
14 |
15 | @Mixin(ClientChunkManager.ClientChunkMap.class)
16 | public interface ClientChunkMapAccessor {
17 | @Accessor("chunks")
18 | AtomicReferenceArray meteor$getChunks();
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/SimpleEntityLookupAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.world.entity.EntityLike;
9 | import net.minecraft.world.entity.SectionedEntityCache;
10 | import net.minecraft.world.entity.SimpleEntityLookup;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | @Mixin(SimpleEntityLookup.class)
15 | public interface SimpleEntityLookupAccessor {
16 | @Accessor("cache")
17 | SectionedEntityCache meteor$getCache();
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
9 |
10 | import net.minecraft.client.render.WorldRenderer;
11 | import net.minecraft.entity.player.BlockBreakingInfo;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.gen.Accessor;
14 |
15 | @Mixin(WorldRenderer.class)
16 | public interface WorldRendererAccessor {
17 | @Accessor("blockBreakingInfos")
18 | Int2ObjectMap meteor$getBlockBreakingInfos();
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/TickEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | public class TickEvent {
9 | public static class Pre extends TickEvent {
10 | private static final Pre INSTANCE = new Pre();
11 |
12 | public static Pre get() {
13 | return INSTANCE;
14 | }
15 | }
16 |
17 | public static class Post extends TickEvent {
18 | private static final Post INSTANCE = new Post();
19 |
20 | public static Post get() {
21 | return INSTANCE;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.github/builds/get_number.js:
--------------------------------------------------------------------------------
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 | import { getMcVersion } from "./mc_version.js"
7 |
8 | const mcVersion = await getMcVersion();
9 |
10 | fetch("https://meteorclient.com/api/stats")
11 | .then(async res => {
12 | let stats = await res.json()
13 | let build = 0
14 |
15 | if (mcVersion in stats.builds) {
16 | build = parseInt(stats.builds[mcVersion])
17 | }
18 |
19 | console.log("number=" + (build + 1))
20 | })
21 | .catch(err => {
22 | console.log("Failed to fetch stats:")
23 | console.log(err)
24 | process.exit(1)
25 | })
26 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/EntityMoveEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import net.minecraft.entity.Entity;
9 | import net.minecraft.util.math.Vec3d;
10 |
11 | public class EntityMoveEvent {
12 | private static final EntityMoveEvent INSTANCE = new EntityMoveEvent();
13 |
14 | public Entity entity;
15 | public Vec3d movement;
16 |
17 | public static EntityMoveEvent get(Entity entity, Vec3d movement) {
18 | INSTANCE.entity = entity;
19 | INSTANCE.movement = movement;
20 | return INSTANCE;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/SendMovementPacketsEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | public class SendMovementPacketsEvent {
9 | public static class Pre {
10 | private static final Pre INSTANCE = new Pre();
11 |
12 | public static Pre get() {
13 | return INSTANCE;
14 | }
15 | }
16 |
17 | public static class Post {
18 | private static final Post INSTANCE = new Post();
19 |
20 | public static Post get() {
21 | return INSTANCE;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/OpenScreenEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.client.gui.screen.Screen;
10 |
11 | public class OpenScreenEvent extends Cancellable {
12 | private static final OpenScreenEvent INSTANCE = new OpenScreenEvent();
13 |
14 | public Screen screen;
15 |
16 | public static OpenScreenEvent get(Screen screen) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.screen = screen;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/DropItemsEvent.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 meteordevelopment.meteorclient.events.entity;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.item.ItemStack;
10 |
11 | public class DropItemsEvent extends Cancellable {
12 | private static final DropItemsEvent INSTANCE = new DropItemsEvent();
13 |
14 | public ItemStack itemStack;
15 |
16 | public static DropItemsEvent get(ItemStack itemStack) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.itemStack = itemStack;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/InteractItemEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.util.ActionResult;
9 | import net.minecraft.util.Hand;
10 |
11 | public class InteractItemEvent {
12 | private static final InteractItemEvent INSTANCE = new InteractItemEvent();
13 |
14 | public Hand hand;
15 | public ActionResult toReturn;
16 |
17 | public static InteractItemEvent get(Hand hand) {
18 | INSTANCE.hand = hand;
19 | INSTANCE.toReturn = null;
20 |
21 | return INSTANCE;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/ArmRenderEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 |
9 | import net.minecraft.client.util.math.MatrixStack;
10 | import net.minecraft.util.Hand;
11 |
12 | public class ArmRenderEvent {
13 | public static ArmRenderEvent INSTANCE = new ArmRenderEvent();
14 |
15 | public MatrixStack matrix;
16 | public Hand hand;
17 |
18 | public static ArmRenderEvent get(Hand hand, MatrixStack matrices) {
19 | INSTANCE.matrix = matrices;
20 | INSTANCE.hand = hand;
21 |
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/WHorizontalSeparator.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 meteordevelopment.meteorclient.gui.widgets;
7 |
8 | public abstract class WHorizontalSeparator extends WWidget {
9 | protected String text;
10 | protected double textWidth;
11 |
12 | public WHorizontalSeparator(String text) {
13 | this.text = text;
14 | }
15 |
16 | @Override
17 | protected void onCalculateSize() {
18 | if (text != null) textWidth = theme.textWidth(text);
19 |
20 | width = 1;
21 | height = text != null ? theme.textHeight() : theme.scale(3);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ChatHudAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.gui.hud.ChatHud;
9 | import net.minecraft.client.gui.hud.ChatHudLine;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | import java.util.List;
14 |
15 | @Mixin(ChatHud.class)
16 | public interface ChatHudAccessor {
17 | @Accessor("visibleMessages")
18 | List meteor$getVisibleMessages();
19 |
20 | @Accessor("messages")
21 | List meteor$getMessages();
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/MapTextureManagerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.texture.MapTextureManager;
9 | import net.minecraft.component.type.MapIdComponent;
10 | import net.minecraft.item.map.MapState;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Invoker;
13 |
14 | @Mixin(MapTextureManager.class)
15 | public interface MapTextureManagerAccessor {
16 | @Invoker("getMapTexture")
17 | MapTextureManager.MapTexture meteor$invokeGetMapTexture(MapIdComponent id, MapState state);
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/packets/ContainerSlotUpdateEvent.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 meteordevelopment.meteorclient.events.packets;
7 |
8 | import net.minecraft.network.packet.s2c.play.ScreenHandlerSlotUpdateS2CPacket;
9 |
10 | public class ContainerSlotUpdateEvent {
11 | private static final ContainerSlotUpdateEvent INSTANCE = new ContainerSlotUpdateEvent();
12 |
13 | public ScreenHandlerSlotUpdateS2CPacket packet;
14 |
15 | public static ContainerSlotUpdateEvent get(ScreenHandlerSlotUpdateS2CPacket packet) {
16 | INSTANCE.packet = packet;
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/PlaySoundEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.client.sound.SoundInstance;
10 |
11 | public class PlaySoundEvent extends Cancellable {
12 | private static final PlaySoundEvent INSTANCE = new PlaySoundEvent();
13 |
14 | public SoundInstance sound;
15 |
16 | public static PlaySoundEvent get(SoundInstance sound) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.sound = sound;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.github/workflows/pull-request.yml:
--------------------------------------------------------------------------------
1 | name: Build Pull Request
2 |
3 | on: [ pull_request ]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | steps:
10 | - name: Checkout Repository
11 | uses: actions/checkout@v4
12 | with:
13 | persist-credentials: false
14 |
15 | - name: Set up Gradle
16 | uses: gradle/actions/setup-gradle@v4
17 |
18 | - name: Set up Java
19 | uses: actions/setup-java@v4
20 | with:
21 | distribution: 'temurin'
22 | java-version: '21'
23 |
24 | - name: Build
25 | run: ./gradlew build
26 |
27 | - name: Upload Artifact
28 | uses: actions/upload-artifact@v4
29 | with:
30 | name: pull-request-build
31 | path: build/libs/
32 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/AttackEntityEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.entity.Entity;
10 |
11 | public class AttackEntityEvent extends Cancellable {
12 | private static final AttackEntityEvent INSTANCE = new AttackEntityEvent();
13 |
14 | public Entity entity;
15 |
16 | public static AttackEntityEvent get(Entity entity) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.entity = entity;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/ParticleEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.particle.ParticleEffect;
10 |
11 | public class ParticleEvent extends Cancellable {
12 | private static final ParticleEvent INSTANCE = new ParticleEvent();
13 |
14 | public ParticleEffect particle;
15 |
16 | public static ParticleEvent get(ParticleEffect particle) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.particle = particle;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IVec3d.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import net.minecraft.util.math.Vec3i;
9 | import org.joml.Vector3d;
10 |
11 | public interface IVec3d {
12 | void meteor$set(double x, double y, double z);
13 |
14 | default void meteor$set(Vec3i vec) {
15 | meteor$set(vec.getX(), vec.getY(), vec.getZ());
16 | }
17 |
18 | default void meteor$set(Vector3d vec) {
19 | meteor$set(vec.x, vec.y, vec.z);
20 | }
21 |
22 | void meteor$setXZ(double x, double z);
23 |
24 | void meteor$setY(double y);
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket;
9 | import net.minecraft.util.math.Vec3d;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.Mutable;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 |
14 | @Mixin(EntityVelocityUpdateS2CPacket.class)
15 | public interface EntityVelocityUpdateS2CPacketAccessor {
16 | @Mutable
17 | @Accessor("velocity")
18 | void meteor$setVelocity(Vec3d velocity);
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/PlayerMoveC2SPacketAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.Mutable;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(PlayerMoveC2SPacket.class)
14 | public interface PlayerMoveC2SPacketAccessor {
15 | @Mutable
16 | @Accessor("y")
17 | void meteor$setY(double y);
18 |
19 | @Mutable
20 | @Accessor("onGround")
21 | void meteor$setOnGround(boolean onGround);
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/BreakBlockEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.util.math.BlockPos;
10 |
11 | public class BreakBlockEvent extends Cancellable {
12 | private static final BreakBlockEvent INSTANCE = new BreakBlockEvent();
13 |
14 | public BlockPos blockPos;
15 |
16 | public static BreakBlockEvent get(BlockPos blockPos) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.blockPos = blockPos;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/PlayerMoveEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import net.minecraft.entity.MovementType;
9 | import net.minecraft.util.math.Vec3d;
10 |
11 | public class PlayerMoveEvent {
12 | private static final PlayerMoveEvent INSTANCE = new PlayerMoveEvent();
13 |
14 | public MovementType type;
15 | public Vec3d movement;
16 |
17 | public static PlayerMoveEvent get(MovementType type, Vec3d movement) {
18 | INSTANCE.type = type;
19 | INSTANCE.movement = movement;
20 | return INSTANCE;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/TooltipDataEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | import net.minecraft.item.tooltip.TooltipData;
9 | import net.minecraft.item.ItemStack;
10 |
11 |
12 | public class TooltipDataEvent {
13 | private static final TooltipDataEvent INSTANCE = new TooltipDataEvent();
14 |
15 | public TooltipData tooltipData;
16 | public ItemStack itemStack;
17 |
18 | public static TooltipDataEvent get(ItemStack itemStack) {
19 | INSTANCE.tooltipData = null;
20 | INSTANCE.itemStack = itemStack;
21 | return INSTANCE;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/HeldItemRendererEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | import net.minecraft.client.util.math.MatrixStack;
9 | import net.minecraft.util.Hand;
10 |
11 | public class HeldItemRendererEvent {
12 | private static final HeldItemRendererEvent INSTANCE = new HeldItemRendererEvent();
13 |
14 | public Hand hand;
15 | public MatrixStack matrix;
16 |
17 | public static HeldItemRendererEvent get(Hand hand, MatrixStack matrices) {
18 | INSTANCE.hand = hand;
19 | INSTANCE.matrix = matrices;
20 | return INSTANCE;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/commands/arguments/DirectionArgumentType.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 meteordevelopment.meteorclient.commands.arguments;
7 |
8 | import net.minecraft.command.argument.EnumArgumentType;
9 | import net.minecraft.util.math.Direction;
10 |
11 | public class DirectionArgumentType extends EnumArgumentType {
12 | private static final DirectionArgumentType INSTANCE = new DirectionArgumentType();
13 |
14 | private DirectionArgumentType() {
15 | super(Direction.CODEC, Direction::values);
16 | }
17 |
18 | public static DirectionArgumentType create() {
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixininterface/IGpuDevice.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 meteordevelopment.meteorclient.mixininterface;
7 |
8 | import com.mojang.blaze3d.systems.RenderPass;
9 |
10 | public interface IGpuDevice {
11 | /**
12 | * Currently there can only be a single scissor pushed at once.
13 | */
14 | void meteor$pushScissor(int x, int y, int width, int height);
15 |
16 | void meteor$popScissor();
17 |
18 | /**
19 | * This is an *INTERNAL* method, it shouldn't be called.
20 | */
21 | @Deprecated
22 | @SuppressWarnings("DeprecatedIsStillUsed")
23 | void meteor$onCreateRenderPass(RenderPass pass);
24 | }
25 |
--------------------------------------------------------------------------------
/.github/workflows/issue-moderator.yml:
--------------------------------------------------------------------------------
1 | name: Issue Automatic Actions
2 |
3 | on:
4 | issues:
5 | types: [ opened ]
6 |
7 | jobs:
8 | issue-moderator:
9 | runs-on: ubuntu-latest
10 |
11 | permissions:
12 | issues: write
13 | contents: read
14 |
15 | steps:
16 | - name: Checkout Repository
17 | uses: actions/checkout@v4
18 | with:
19 | persist-credentials: false
20 |
21 | - name: Set Up Node.js
22 | uses: actions/setup-node@v4
23 | with:
24 | node-version: 22
25 |
26 | - name: Install Dependencies
27 | working-directory: .github/moderation
28 | run: npm ci
29 |
30 | - name: Check Banned Terms
31 | run: node .github/moderation/banned_terms.js
32 | env:
33 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/game/ChangePerspectiveEvent.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 meteordevelopment.meteorclient.events.game;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.client.option.Perspective;
10 |
11 | public class ChangePerspectiveEvent extends Cancellable {
12 | private static final ChangePerspectiveEvent INSTANCE = new ChangePerspectiveEvent();
13 |
14 | public Perspective perspective;
15 |
16 | public static ChangePerspectiveEvent get(Perspective perspective) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.perspective = perspective;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorQuad.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.widgets.WQuad;
10 | import meteordevelopment.meteorclient.utils.render.color.Color;
11 |
12 | public class WMeteorQuad extends WQuad {
13 | public WMeteorQuad(Color color) {
14 | super(color);
15 | }
16 |
17 | @Override
18 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
19 | renderer.quad(x, y, width, height, color);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/renderer/text/BuiltinFontFace.java:
--------------------------------------------------------------------------------
1 | package meteordevelopment.meteorclient.renderer.text;
2 |
3 | import meteordevelopment.meteorclient.utils.render.FontUtils;
4 |
5 | import java.io.InputStream;
6 |
7 | public class BuiltinFontFace extends FontFace {
8 | private final String name;
9 |
10 | public BuiltinFontFace(FontInfo info, String name) {
11 | super(info);
12 |
13 | this.name = name;
14 | }
15 |
16 | @Override
17 | public InputStream toStream() {
18 | InputStream in = FontUtils.stream(name);
19 | if (in == null) throw new RuntimeException("Failed to load builtin font " + name + ".");
20 | return in;
21 | }
22 |
23 | @Override
24 | public String toString() {
25 | return super.toString() + " (builtin)";
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/ServerConnectBeginEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import net.minecraft.client.network.ServerAddress;
9 | import net.minecraft.client.network.ServerInfo;
10 |
11 | public class ServerConnectBeginEvent {
12 | private static final ServerConnectBeginEvent INSTANCE = new ServerConnectBeginEvent();
13 | public ServerAddress address;
14 | public ServerInfo info;
15 |
16 | public static ServerConnectBeginEvent get(ServerAddress address, ServerInfo info) {
17 | INSTANCE.address = address;
18 | INSTANCE.info = info;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/settings/IBlockData.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 meteordevelopment.meteorclient.settings;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import meteordevelopment.meteorclient.gui.WidgetScreen;
10 | import meteordevelopment.meteorclient.utils.misc.IChangeable;
11 | import meteordevelopment.meteorclient.utils.misc.ICopyable;
12 | import meteordevelopment.meteorclient.utils.misc.ISerializable;
13 | import net.minecraft.block.Block;
14 |
15 | public interface IBlockData & ISerializable & IChangeable & IBlockData> {
16 | WidgetScreen createScreen(GuiTheme theme, Block block, BlockDataSetting setting);
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/pressable/WCheckbox.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 meteordevelopment.meteorclient.gui.widgets.pressable;
7 |
8 | public abstract class WCheckbox extends WPressable {
9 | public boolean checked;
10 |
11 | public WCheckbox(boolean checked) {
12 | this.checked = checked;
13 | }
14 |
15 | @Override
16 | protected void onCalculateSize() {
17 | double pad = pad();
18 | double s = theme.textHeight();
19 |
20 | width = pad + s + pad;
21 | height = pad + s + pad;
22 | }
23 |
24 | @Override
25 | protected void onPressed(int button) {
26 | checked = !checked;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/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 meteordevelopment.meteorclient.utils.notebot.instrumentdetect;
7 |
8 | import net.minecraft.block.BlockState;
9 | import net.minecraft.block.enums.NoteBlockInstrument;
10 | import net.minecraft.util.math.BlockPos;
11 |
12 | public interface InstrumentDetectFunction {
13 | /**
14 | * Detects an instrument for noteblock
15 | *
16 | * @param noteBlock Noteblock state
17 | * @param blockPos Noteblock position
18 | * @return Detected instrument
19 | */
20 | NoteBlockInstrument detectInstrument(BlockState noteBlock, BlockPos blockPos);
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/pressable/WMeteorFavorite.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets.pressable;
7 |
8 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
9 | import meteordevelopment.meteorclient.gui.widgets.pressable.WFavorite;
10 | import meteordevelopment.meteorclient.utils.render.color.Color;
11 |
12 | public class WMeteorFavorite extends WFavorite implements MeteorWidget {
13 | public WMeteorFavorite(boolean checked) {
14 | super(checked);
15 | }
16 |
17 | @Override
18 | protected Color getColor() {
19 | return theme().favoriteColor.get();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/MutableTextMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.IText;
9 | import net.minecraft.text.MutableText;
10 | import net.minecraft.util.Language;
11 | import org.jetbrains.annotations.Nullable;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.Shadow;
14 |
15 | @Mixin(MutableText.class)
16 | public abstract class MutableTextMixin implements IText {
17 | @Shadow
18 | private @Nullable Language language;
19 |
20 | @Override
21 | public void meteor$invalidateCache() {
22 | this.language = null;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/world/BlockUpdateEvent.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 meteordevelopment.meteorclient.events.world;
7 |
8 | import net.minecraft.block.BlockState;
9 | import net.minecraft.util.math.BlockPos;
10 |
11 | public class BlockUpdateEvent {
12 | private static final BlockUpdateEvent INSTANCE = new BlockUpdateEvent();
13 |
14 | public BlockPos pos;
15 | public BlockState oldState, newState;
16 |
17 | public static BlockUpdateEvent get(BlockPos pos, BlockState oldState, BlockState newState) {
18 | INSTANCE.pos = pos;
19 | INSTANCE.oldState = oldState;
20 | INSTANCE.newState = newState;
21 |
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/suggestion.yml:
--------------------------------------------------------------------------------
1 | name: Suggestion
2 | description: Suggest a new feature or change for Meteor.
3 | labels: [ enhancement ]
4 | body:
5 | - type: textarea
6 | id: description
7 | attributes:
8 | label: Describe the feature
9 | description: A clear and concise description of what the feature/change is.
10 | validations:
11 | required: true
12 | - type: checkboxes
13 | id: prerequisites
14 | attributes:
15 | label: Before submitting a suggestion
16 | options:
17 | - label: |
18 | This feature doesn't already exist in the client. (I have checked every module and their settings on the **latest dev build**)
19 | required: true
20 | - label: |
21 | This wasn't already suggested. (I have searched suggestions on GitHub and read the FAQ)
22 | required: true
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/PlayerMoveC2SPacketMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.IPlayerMoveC2SPacket;
9 | import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.Unique;
12 |
13 | @Mixin(PlayerMoveC2SPacket.class)
14 | public abstract class PlayerMoveC2SPacketMixin implements IPlayerMoveC2SPacket {
15 | @Unique private int tag;
16 |
17 | @Override
18 | public void meteor$setTag(int tag) { this.tag = tag; }
19 |
20 | @Override
21 | public int meteor$getTag() { return this.tag; }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/tabs/TabScreen.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 meteordevelopment.meteorclient.gui.tabs;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import meteordevelopment.meteorclient.gui.WidgetScreen;
10 | import meteordevelopment.meteorclient.gui.utils.Cell;
11 | import meteordevelopment.meteorclient.gui.widgets.WWidget;
12 |
13 | public abstract class TabScreen extends WidgetScreen {
14 | public final Tab tab;
15 |
16 | public TabScreen(GuiTheme theme, Tab tab) {
17 | super(theme, tab.name);
18 |
19 | this.tab = tab;
20 | }
21 |
22 | public Cell addDirect(T widget) {
23 | return super.add(widget);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/SlotMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.ISlot;
9 | import net.minecraft.screen.slot.Slot;
10 | import org.spongepowered.asm.mixin.Final;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.Shadow;
13 |
14 | @Mixin(Slot.class)
15 | public abstract class SlotMixin implements ISlot {
16 | @Shadow public int id;
17 | @Shadow @Final private int index;
18 |
19 | @Override
20 | public int meteor$getId() {
21 | return id;
22 | }
23 |
24 | @Override
25 | public int meteor$getIndex() {
26 | return index;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorTooltip.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.WTooltip;
11 |
12 | public class WMeteorTooltip extends WTooltip implements MeteorWidget {
13 | public WMeteorTooltip(String text) {
14 | super(text);
15 | }
16 |
17 | @Override
18 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
19 | renderer.quad(this, theme().backgroundColor.get());
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/misc/CursorStyle.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 meteordevelopment.meteorclient.utils.misc;
7 |
8 | import org.lwjgl.glfw.GLFW;
9 |
10 | public enum CursorStyle {
11 | Default,
12 | Click,
13 | Type;
14 |
15 | private boolean created;
16 | private long cursor;
17 |
18 | public long getGlfwCursor() {
19 | if (!created) {
20 | switch (this) {
21 | case Click -> cursor = GLFW.glfwCreateStandardCursor(GLFW.GLFW_HAND_CURSOR);
22 | case Type -> cursor = GLFW.glfwCreateStandardCursor(GLFW.GLFW_IBEAM_CURSOR);
23 | }
24 |
25 | created = true;
26 | }
27 |
28 | return cursor;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/.github/builds/mc_version.js:
--------------------------------------------------------------------------------
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 | import * as fs from "fs"
7 | import * as path from "path"
8 | import {fileURLToPath} from "url"
9 |
10 | const __dirname = path.dirname(fileURLToPath(import.meta.url))
11 |
12 | export async function getMcVersion() {
13 | const filePath = path.resolve(__dirname, "../../gradle/libs.versions.toml")
14 |
15 | if (!fs.existsSync(filePath)) {
16 | throw new Error(`File not found: ${filePath}`)
17 | }
18 |
19 | const content = await fs.promises.readFile(filePath, "utf-8")
20 |
21 | const match = content.match(/^\s*minecraft\s*=\s*["']([^"']+)["']\s*$/m)
22 | if (match) return match[1].trim()
23 |
24 | throw new Error(`Failed to find minecraft version in ${filePath}`)
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorTopBar.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
9 | import meteordevelopment.meteorclient.gui.widgets.WTopBar;
10 | import meteordevelopment.meteorclient.utils.render.color.Color;
11 |
12 | public class WMeteorTopBar extends WTopBar implements MeteorWidget {
13 | @Override
14 | protected Color getButtonColor(boolean pressed, boolean hovered) {
15 | return theme().backgroundColor.get(pressed, hovered);
16 | }
17 |
18 | @Override
19 | protected Color getNameColor() {
20 | return theme().textColor.get();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/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 meteordevelopment.meteorclient.utils.notebot.decoder;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Modules;
9 | import meteordevelopment.meteorclient.systems.modules.misc.Notebot;
10 | import meteordevelopment.meteorclient.utils.notebot.song.Song;
11 |
12 | import java.io.File;
13 |
14 | public abstract class SongDecoder {
15 | protected Notebot notebot = Modules.get().get(Notebot.class);
16 |
17 | /**
18 | * Parse file to a {@link Song} object
19 | *
20 | * @param file Song file
21 | * @return A {@link Song} object
22 | */
23 | public abstract Song parse(File file) throws Exception;
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/InteractEntityEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.entity.Entity;
10 | import net.minecraft.util.Hand;
11 |
12 | public class InteractEntityEvent extends Cancellable {
13 | private static final InteractEntityEvent INSTANCE = new InteractEntityEvent();
14 |
15 | public Entity entity;
16 | public Hand hand;
17 |
18 | public static InteractEntityEvent get(Entity entity, Hand hand) {
19 | INSTANCE.setCancelled(false);
20 | INSTANCE.entity = entity;
21 | INSTANCE.hand = hand;
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/pressable/WMeteorTriangle.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets.pressable;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.pressable.WTriangle;
11 |
12 | public class WMeteorTriangle extends WTriangle implements MeteorWidget {
13 | @Override
14 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
15 | renderer.rotatedQuad(x, y, width, height, rotation, GuiRenderer.TRIANGLE, theme().backgroundColor.get(pressed, mouseOver));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/DoItemUseEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 |
10 | /**
11 | * Some of our other injections coming from {@link net.minecraft.client.MinecraftClient#doItemUse()}
12 | * (e.g. InteractItemEvent) are called twice because the method loops over the Mainhand and the Offhand. This event is
13 | * only called once, before any interaction logic is called.
14 | */
15 | public class DoItemUseEvent extends Cancellable {
16 | private static final DoItemUseEvent INSTANCE = new DoItemUseEvent();
17 |
18 | public static DoItemUseEvent get() {
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/PlaceBlockEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.block.Block;
10 | import net.minecraft.util.math.BlockPos;
11 |
12 | public class PlaceBlockEvent extends Cancellable {
13 | private static final PlaceBlockEvent INSTANCE = new PlaceBlockEvent();
14 |
15 | public BlockPos blockPos;
16 | public Block block;
17 |
18 | public static PlaceBlockEvent get(BlockPos blockPos, Block block) {
19 | INSTANCE.setCancelled(false);
20 | INSTANCE.blockPos = blockPos;
21 | INSTANCE.block = block;
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.client.render.block.entity.state.BlockEntityRenderState;
10 |
11 | public class RenderBlockEntityEvent extends Cancellable {
12 | private static final RenderBlockEntityEvent INSTANCE = new RenderBlockEntityEvent();
13 |
14 | public BlockEntityRenderState blockEntityState;
15 |
16 | public static RenderBlockEntityEvent get(BlockEntityRenderState blockEntityState) {
17 | INSTANCE.setCancelled(false);
18 | INSTANCE.blockEntityState = blockEntityState;
19 | return INSTANCE;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/InteractBlockEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.util.Hand;
10 | import net.minecraft.util.hit.BlockHitResult;
11 |
12 | public class InteractBlockEvent extends Cancellable {
13 | private static final InteractBlockEvent INSTANCE = new InteractBlockEvent();
14 |
15 | public Hand hand;
16 | public BlockHitResult result;
17 |
18 | public static InteractBlockEvent get(Hand hand, BlockHitResult result) {
19 | INSTANCE.setCancelled(false);
20 | INSTANCE.hand = hand;
21 | INSTANCE.result = result;
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/ClipAtLedgeEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | public class ClipAtLedgeEvent {
9 | private static final ClipAtLedgeEvent INSTANCE = new ClipAtLedgeEvent();
10 |
11 | private boolean set, clip;
12 |
13 | public void reset() {
14 | set = false;
15 | }
16 |
17 | public void setClip(boolean clip) {
18 | set = true;
19 | this.clip = clip;
20 | }
21 |
22 | public boolean isSet() {
23 | return set;
24 | }
25 | public boolean isClip() {
26 | return clip;
27 | }
28 |
29 | public static ClipAtLedgeEvent get() {
30 | INSTANCE.reset();
31 | return INSTANCE;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/renderer/GuiRenderOperation.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 meteordevelopment.meteorclient.gui.renderer;
7 |
8 | import meteordevelopment.meteorclient.utils.misc.Pool;
9 | import meteordevelopment.meteorclient.utils.render.color.Color;
10 |
11 | public abstract class GuiRenderOperation> {
12 | protected double x, y;
13 | protected Color color;
14 |
15 | public void set(double x, double y, Color color) {
16 | this.x = x;
17 | this.y = y;
18 | this.color = color;
19 | }
20 |
21 | @SuppressWarnings("unchecked")
22 | public void run(Pool pool) {
23 | onRun();
24 | pool.free((T) this);
25 | }
26 |
27 | protected abstract void onRun();
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/RenderPipelineMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.mojang.blaze3d.pipeline.RenderPipeline;
9 | import meteordevelopment.meteorclient.mixininterface.IRenderPipeline;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.Unique;
12 |
13 | @Mixin(RenderPipeline.class)
14 | public abstract class RenderPipelineMixin implements IRenderPipeline {
15 | @Unique
16 | private boolean lineSmooth;
17 |
18 | @Override
19 | public void meteor$setLineSmooth(boolean lineSmooth) {
20 | this.lineSmooth = lineSmooth;
21 | }
22 |
23 | @Override
24 | public boolean meteor$getLineSmooth() {
25 | return lineSmooth;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorView.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.containers.WView;
11 |
12 | public class WMeteorView extends WView implements MeteorWidget {
13 | @Override
14 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
15 | if (canScroll && hasScrollBar) {
16 | renderer.quad(handleX(), handleY(), handleWidth(), handleHeight(), theme().scrollbarColor.get(handlePressed, handleMouseOver));
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/tooltip/TextTooltipComponent.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 meteordevelopment.meteorclient.utils.tooltip;
7 |
8 | import net.minecraft.client.gui.tooltip.OrderedTextTooltipComponent;
9 | import net.minecraft.client.gui.tooltip.TooltipComponent;
10 | import net.minecraft.text.OrderedText;
11 | import net.minecraft.text.Text;
12 |
13 | public class TextTooltipComponent extends OrderedTextTooltipComponent implements MeteorTooltipData {
14 | public TextTooltipComponent(OrderedText text) {
15 | super(text);
16 | }
17 |
18 | public TextTooltipComponent(Text text) {
19 | this(text.asOrderedText());
20 | }
21 |
22 | @Override
23 | public TooltipComponent getComponent() {
24 | return this;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerInteractionManagerAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.network.ClientPlayerInteractionManager;
9 | import net.minecraft.util.math.BlockPos;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 |
13 | @Mixin(ClientPlayerInteractionManager.class)
14 | public interface ClientPlayerInteractionManagerAccessor {
15 | @Accessor("currentBreakingProgress")
16 | float meteor$getBreakingProgress();
17 |
18 | @Accessor("currentBreakingProgress")
19 | void meteor$setCurrentBreakingProgress(float progress);
20 |
21 | @Accessor("currentBreakingPos")
22 | BlockPos meteor$getCurrentBreakingBlockPos();
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/CreativeSlotMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.ISlot;
9 | import net.minecraft.screen.slot.Slot;
10 | import org.spongepowered.asm.mixin.Final;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.Shadow;
13 |
14 | @Mixin(targets = "net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen$CreativeSlot")
15 | public abstract class CreativeSlotMixin implements ISlot {
16 | @Shadow @Final Slot slot;
17 |
18 | @Override
19 | public int meteor$getId() {
20 | return slot.id;
21 | }
22 |
23 | @Override
24 | public int meteor$getIndex() {
25 | return slot.getIndex();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/MobEntityMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.llamalad7.mixinextras.injector.ModifyReturnValue;
9 | import meteordevelopment.meteorclient.systems.modules.Modules;
10 | import meteordevelopment.meteorclient.systems.modules.movement.EntityControl;
11 | import net.minecraft.entity.mob.MobEntity;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.injection.At;
14 |
15 | @Mixin(MobEntity.class)
16 | public abstract class MobEntityMixin {
17 | @ModifyReturnValue(method = "hasSaddleEquipped", at = @At("RETURN"))
18 | private boolean hasSaddleEquipped(boolean original) {
19 | return Modules.get().get(EntityControl.class).spoofSaddle() || original;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/network/OnlinePlayers.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 meteordevelopment.meteorclient.utils.network;
7 |
8 | public class OnlinePlayers {
9 | private static long lastPingTime;
10 |
11 | private OnlinePlayers() {
12 | }
13 |
14 | public static void update() {
15 | long time = System.currentTimeMillis();
16 |
17 | if (time - lastPingTime > 5 * 60 * 1000) {
18 | MeteorExecutor.execute(() -> Http.post("https://meteorclient.com/api/online/ping").ignoreExceptions().send());
19 |
20 | lastPingTime = time;
21 | }
22 | }
23 |
24 | public static void leave() {
25 | MeteorExecutor.execute(() -> Http.post("https://meteorclient.com/api/online/leave").ignoreExceptions().send());
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ItemGroupsMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.llamalad7.mixinextras.injector.ModifyReturnValue;
9 | import meteordevelopment.meteorclient.systems.modules.Modules;
10 | import meteordevelopment.meteorclient.systems.modules.render.BetterTooltips;
11 | import net.minecraft.item.ItemGroups;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.injection.At;
14 |
15 | @Mixin(ItemGroups.class)
16 | public abstract class ItemGroupsMixin {
17 | @ModifyReturnValue(method = "updateDisplayContext", at = @At("RETURN"))
18 | private static boolean modifyReturn(boolean original) {
19 | return original || Modules.get().get(BetterTooltips.class).updateTooltips();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/tabs/Tab.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 meteordevelopment.meteorclient.gui.tabs;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import net.minecraft.client.gui.screen.Screen;
10 |
11 | import static meteordevelopment.meteorclient.MeteorClient.mc;
12 |
13 | public abstract class Tab {
14 | public final String name;
15 |
16 | public Tab(String name) {
17 | this.name = name;
18 | }
19 |
20 | public void openScreen(GuiTheme theme) {
21 | TabScreen screen = this.createScreen(theme);
22 | screen.addDirect(theme.topBar()).top().centerX();
23 | mc.setScreen(screen);
24 | }
25 |
26 | public abstract TabScreen createScreen(GuiTheme theme);
27 |
28 | public abstract boolean isScreen(Screen screen);
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/widgets/pressable/WConfirmedMinus.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 meteordevelopment.meteorclient.gui.widgets.pressable;
7 |
8 | import net.minecraft.client.gui.Click;
9 |
10 | public class WConfirmedMinus extends WMinus {
11 | protected boolean pressedOnce = false;
12 |
13 | @Override
14 | public boolean onMouseClicked(Click click, boolean doubled) {
15 | boolean pressed = super.onMouseClicked(click, doubled);
16 | if (!pressed) {
17 | pressedOnce = false;
18 | }
19 | return pressed;
20 | }
21 |
22 | @Override
23 | public boolean onMouseReleased(Click click) {
24 | if (pressed && pressedOnce) super.onMouseReleased(click);
25 | pressedOnce = pressed;
26 | return pressed = false;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/AbstractFurnaceScreenHandlerMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.mixininterface.IAbstractFurnaceScreenHandler;
9 | import net.minecraft.item.ItemStack;
10 | import net.minecraft.screen.AbstractFurnaceScreenHandler;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.Shadow;
13 |
14 | @Mixin(AbstractFurnaceScreenHandler.class)
15 | public abstract class AbstractFurnaceScreenHandlerMixin implements IAbstractFurnaceScreenHandler {
16 | @Shadow
17 | protected abstract boolean isSmeltable(ItemStack itemStack);
18 |
19 | @Override
20 | public boolean meteor$isItemSmeltable(ItemStack itemStack) {
21 | return isSmeltable(itemStack);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/entity/player/StartBreakingBlockEvent.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 meteordevelopment.meteorclient.events.entity.player;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.util.math.BlockPos;
10 | import net.minecraft.util.math.Direction;
11 |
12 | public class StartBreakingBlockEvent extends Cancellable {
13 | private static final StartBreakingBlockEvent INSTANCE = new StartBreakingBlockEvent();
14 |
15 | public BlockPos blockPos;
16 | public Direction direction;
17 |
18 | public static StartBreakingBlockEvent get(BlockPos blockPos, Direction direction) {
19 | INSTANCE.setCancelled(false);
20 | INSTANCE.blockPos = blockPos;
21 | INSTANCE.direction = direction;
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/tabs/builtin/ModulesTab.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 meteordevelopment.meteorclient.gui.tabs.builtin;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import meteordevelopment.meteorclient.gui.GuiThemes;
10 | import meteordevelopment.meteorclient.gui.tabs.Tab;
11 | import meteordevelopment.meteorclient.gui.tabs.TabScreen;
12 | import net.minecraft.client.gui.screen.Screen;
13 |
14 | public class ModulesTab extends Tab {
15 | public ModulesTab() {
16 | super("Modules");
17 | }
18 |
19 | @Override
20 | public TabScreen createScreen(GuiTheme theme) {
21 | return theme.modulesScreen();
22 | }
23 |
24 | @Override
25 | public boolean isScreen(Screen screen) {
26 | return GuiThemes.get().isModulesScreen(screen);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/render/NoopOutlineVertexConsumerProvider.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 meteordevelopment.meteorclient.utils.render;
7 |
8 | import net.minecraft.client.render.OutlineVertexConsumerProvider;
9 | import net.minecraft.client.render.RenderLayer;
10 | import net.minecraft.client.render.VertexConsumer;
11 |
12 | public class NoopOutlineVertexConsumerProvider extends OutlineVertexConsumerProvider {
13 | public static final NoopOutlineVertexConsumerProvider INSTANCE = new NoopOutlineVertexConsumerProvider();
14 |
15 | private NoopOutlineVertexConsumerProvider() {
16 | }
17 |
18 | @Override
19 | public VertexConsumer getBuffer(RenderLayer layer) {
20 | return NoopVertexConsumer.INSTANCE;
21 | }
22 |
23 | @Override
24 | public void draw() {
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/CapabilityTrackerMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.mojang.blaze3d.opengl.GlStateManager;
9 | import meteordevelopment.meteorclient.mixininterface.ICapabilityTracker;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.Shadow;
12 |
13 | @Mixin(GlStateManager.CapabilityTracker.class)
14 | public abstract class CapabilityTrackerMixin implements ICapabilityTracker {
15 | @Shadow
16 | private boolean state;
17 |
18 | @Shadow
19 | public abstract void setState(boolean state);
20 |
21 | @Override
22 | public boolean meteor$get() {
23 | return state;
24 | }
25 |
26 | @Override
27 | public void meteor$set(boolean state) {
28 | setState(state);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.entity.LivingEntity;
9 | import net.minecraft.fluid.Fluid;
10 | import net.minecraft.registry.tag.TagKey;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Accessor;
13 | import org.spongepowered.asm.mixin.gen.Invoker;
14 |
15 | @Mixin(LivingEntity.class)
16 | public interface LivingEntityAccessor {
17 | @Invoker("swimUpward")
18 | void meteor$swimUpwards(TagKey fluid);
19 |
20 | @Accessor("jumping")
21 | boolean meteor$isJumping();
22 |
23 | @Accessor("jumpingCooldown")
24 | int meteor$getJumpCooldown();
25 |
26 | @Accessor("jumpingCooldown")
27 | void meteor$setJumpCooldown(int cooldown);
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/ApplyTransformationEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import net.minecraft.client.render.model.json.Transformation;
10 |
11 | public class ApplyTransformationEvent extends Cancellable {
12 | private static final ApplyTransformationEvent INSTANCE = new ApplyTransformationEvent();
13 |
14 | public Transformation transformation;
15 | public boolean leftHanded;
16 |
17 | public static ApplyTransformationEvent get(Transformation transformation, boolean leftHanded) {
18 | INSTANCE.setCancelled(false);
19 |
20 | INSTANCE.transformation = transformation;
21 | INSTANCE.leftHanded = leftHanded;
22 |
23 | return INSTANCE;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/renderer/operations/TextOperation.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 meteordevelopment.meteorclient.gui.renderer.operations;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderOperation;
9 | import meteordevelopment.meteorclient.renderer.text.TextRenderer;
10 |
11 | public class TextOperation extends GuiRenderOperation {
12 | private String text;
13 | private TextRenderer renderer;
14 |
15 | public boolean title;
16 |
17 | public TextOperation set(String text, TextRenderer renderer, boolean title) {
18 | this.text = text;
19 | this.renderer = renderer;
20 | this.title = title;
21 |
22 | return this;
23 | }
24 |
25 | @Override
26 | protected void onRun() {
27 | renderer.render(text, x, y, color);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/HungerManagerMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
9 | import meteordevelopment.meteorclient.systems.modules.Modules;
10 | import meteordevelopment.meteorclient.systems.modules.movement.NoSlow;
11 | import net.minecraft.entity.player.HungerManager;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.injection.At;
14 |
15 | @Mixin(HungerManager.class)
16 | public class HungerManagerMixin {
17 | @ModifyExpressionValue(method = "canSprint()Z", at = @At(value = "CONSTANT", args = "floatValue=6.0f"))
18 | private float onHunger(float constant) {
19 | if (Modules.get().get(NoSlow.class).hunger()) return -1;
20 | return constant;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/YggdrasilMinecraftSessionServiceAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.mojang.authlib.Environment;
9 | import com.mojang.authlib.yggdrasil.ServicesKeySet;
10 | import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.gen.Invoker;
13 |
14 | import java.net.Proxy;
15 |
16 | @Mixin(YggdrasilMinecraftSessionService.class)
17 | public interface YggdrasilMinecraftSessionServiceAccessor {
18 | @Invoker("")
19 | static YggdrasilMinecraftSessionService meteor$createYggdrasilMinecraftSessionService(final ServicesKeySet servicesKeySet, final Proxy proxy, final Environment env) {
20 | throw new UnsupportedOperationException();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/pressable/WMeteorMinus.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets.pressable;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.pressable.WMinus;
11 |
12 | public class WMeteorMinus extends WMinus implements MeteorWidget {
13 | @Override
14 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
15 | double pad = pad();
16 | double s = theme.scale(3);
17 |
18 | renderBackground(renderer, this, pressed, mouseOver);
19 | renderer.quad(x + pad, y + height / 2 - s / 2, width - pad * 2, s, theme().minusColor.get());
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/SectionedEntityCacheAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
9 | import it.unimi.dsi.fastutil.longs.LongSortedSet;
10 | import net.minecraft.world.entity.EntityLike;
11 | import net.minecraft.world.entity.EntityTrackingSection;
12 | import net.minecraft.world.entity.SectionedEntityCache;
13 | import org.spongepowered.asm.mixin.Mixin;
14 | import org.spongepowered.asm.mixin.gen.Accessor;
15 |
16 | @Mixin(SectionedEntityCache.class)
17 | public interface SectionedEntityCacheAccessor {
18 | @Accessor("trackedPositions")
19 | LongSortedSet meteor$getTrackedPositions();
20 |
21 | @Accessor("trackingSections")
22 | Long2ObjectMap> meteor$getTrackingSections();
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorLabel.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.renderer.GuiRenderer;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.WLabel;
11 |
12 | public class WMeteorLabel extends WLabel implements MeteorWidget {
13 | public WMeteorLabel(String text, boolean title) {
14 | super(text, title);
15 | }
16 |
17 | @Override
18 | protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
19 | if (!text.isEmpty()) {
20 | renderer.text(text, x, y, color != null ? color : (title ? theme().titleTextColor.get() : theme().textColor.get()), title);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ShaderLoaderMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.renderer.MeteorRenderPipelines;
9 | import net.minecraft.client.gl.ShaderLoader;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.injection.At;
12 | import org.spongepowered.asm.mixin.injection.Inject;
13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14 |
15 | @Mixin(ShaderLoader.class)
16 | public abstract class ShaderLoaderMixin {
17 | @Inject(method = "apply(Lnet/minecraft/client/gl/ShaderLoader$Definitions;Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/util/profiler/Profiler;)V", at = @At("TAIL"))
18 | private void meteor$reloadPipelines(CallbackInfo info) {
19 | MeteorRenderPipelines.precompile();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/resources/assets/meteor-client/shaders/blur_up.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | precision lowp float;
4 |
5 | in vec2 uv;
6 | out vec4 color;
7 |
8 | uniform sampler2D u_Texture;
9 |
10 | layout (std140) uniform BlurData {
11 | vec2 u_HalfTexelSize;
12 | float u_Offset;
13 | };
14 |
15 | void main() {
16 | color = (
17 | texture(u_Texture, uv + vec2(- u_HalfTexelSize.x * 2, 0) * u_Offset) +
18 | texture(u_Texture, uv + vec2(- u_HalfTexelSize.x, u_HalfTexelSize.y) * u_Offset) * 2 +
19 | texture(u_Texture, uv + vec2(0, u_HalfTexelSize.y * 2) * u_Offset) +
20 | texture(u_Texture, uv + u_HalfTexelSize * u_Offset) * 2 +
21 | texture(u_Texture, uv + vec2(u_HalfTexelSize.x * 2, 0) * u_Offset) +
22 | texture(u_Texture, uv + vec2(u_HalfTexelSize.x, -u_HalfTexelSize.y) * u_Offset) * 2 +
23 | texture(u_Texture, uv + vec2(0, -u_HalfTexelSize.y * 2) * u_Offset) +
24 | texture(u_Texture, uv - u_HalfTexelSize * u_Offset) * 2
25 | ) / 12;
26 | color.a = 1;
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/RegistriesMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.registry.Registries;
9 | import org.spongepowered.asm.mixin.Mixin;
10 | import org.spongepowered.asm.mixin.injection.At;
11 | import org.spongepowered.asm.mixin.injection.Redirect;
12 |
13 | import java.util.function.Supplier;
14 |
15 | @Mixin(Registries.class)
16 | public abstract class RegistriesMixin {
17 | @Redirect(method = "create(Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/registry/MutableRegistry;Lnet/minecraft/registry/Registries$Initializer;)Lnet/minecraft/registry/MutableRegistry;", at = @At(value = "INVOKE", target = "Lnet/minecraft/Bootstrap;ensureBootstrapped(Ljava/util/function/Supplier;)V"))
18 | private static void ignoreBootstrap(Supplier callerGetter) {
19 | // nothing
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/renderer/text/SystemFontFace.java:
--------------------------------------------------------------------------------
1 | package meteordevelopment.meteorclient.renderer.text;
2 |
3 | import meteordevelopment.meteorclient.utils.render.FontUtils;
4 |
5 | import java.io.InputStream;
6 | import java.nio.file.Path;
7 |
8 | public class SystemFontFace extends FontFace {
9 | private final Path path;
10 |
11 | public SystemFontFace(FontInfo info, Path path) {
12 | super(info);
13 |
14 | this.path = path;
15 | }
16 |
17 | @Override
18 | public InputStream toStream() {
19 | if (!path.toFile().exists()) {
20 | throw new RuntimeException("Tried to load font that no longer exists.");
21 | }
22 |
23 | InputStream in = FontUtils.stream(path.toFile());
24 | if (in == null) throw new RuntimeException("Failed to load font from " + path + ".");
25 | return in;
26 | }
27 |
28 | @Override
29 | public String toString() {
30 | return super.toString() + " (" + path.toString() + ")";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/settings/PotionSetting.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 meteordevelopment.meteorclient.settings;
7 |
8 | import meteordevelopment.meteorclient.utils.misc.MyPotion;
9 |
10 | import java.util.function.Consumer;
11 |
12 | public class PotionSetting extends EnumSetting {
13 | public PotionSetting(String name, String description, MyPotion defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible) {
14 | super(name, description, defaultValue, onChanged, onModuleActivated, visible);
15 | }
16 |
17 | public static class Builder extends EnumSetting.Builder {
18 | @Override
19 | public EnumSetting build() {
20 | return new PotionSetting(name, description, defaultValue, onChanged, onModuleActivated, visible);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/other/JsonDateDeserializer.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 meteordevelopment.meteorclient.utils.other;
7 |
8 | import com.google.gson.JsonDeserializationContext;
9 | import com.google.gson.JsonDeserializer;
10 | import com.google.gson.JsonElement;
11 | import com.google.gson.JsonParseException;
12 |
13 | import java.lang.reflect.Type;
14 | import java.time.Instant;
15 | import java.util.Date;
16 |
17 | public class JsonDateDeserializer implements JsonDeserializer {
18 | @Override
19 | public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
20 | try {
21 | return Date.from(Instant.parse(jsonElement.getAsString()));
22 | }
23 | catch (Exception ignored) {
24 | return null;
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/renderer/MeteorVertexFormatElements.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 meteordevelopment.meteorclient.renderer;
7 |
8 | import com.mojang.blaze3d.vertex.VertexFormatElement;
9 |
10 | public abstract class MeteorVertexFormatElements {
11 | public static final VertexFormatElement POS2 = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.POSITION, 2);
12 |
13 | private MeteorVertexFormatElements() {}
14 |
15 | private static int getNextVertexFormatElementId() {
16 | int id = 0;
17 |
18 | while (VertexFormatElement.byId(id) != null) {
19 | id++;
20 |
21 | if (id >= 32) {
22 | throw new RuntimeException("Too many mods registering VertexFormatElements");
23 | }
24 | }
25 |
26 | return id;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/tabs/WindowTabScreen.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 meteordevelopment.meteorclient.gui.tabs;
7 |
8 | import meteordevelopment.meteorclient.gui.GuiTheme;
9 | import meteordevelopment.meteorclient.gui.utils.Cell;
10 | import meteordevelopment.meteorclient.gui.widgets.WWidget;
11 | import meteordevelopment.meteorclient.gui.widgets.containers.WWindow;
12 |
13 | public abstract class WindowTabScreen extends TabScreen {
14 | protected final WWindow window;
15 |
16 | public WindowTabScreen(GuiTheme theme, Tab tab) {
17 | super(theme, tab);
18 |
19 | window = super.add(theme.window(tab.name)).center().widget();
20 | }
21 |
22 | @Override
23 | public Cell add(W widget) {
24 | return window.add(widget);
25 | }
26 |
27 | @Override
28 | public void clear() {
29 | window.clear();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingAccessor.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import net.minecraft.client.option.KeyBinding;
9 | import net.minecraft.client.util.InputUtil;
10 | import org.spongepowered.asm.mixin.Mixin;
11 | import org.spongepowered.asm.mixin.gen.Accessor;
12 | import org.spongepowered.asm.mixin.gen.Invoker;
13 |
14 | import java.util.Map;
15 |
16 | @Mixin(KeyBinding.class)
17 | public interface KeyBindingAccessor {
18 | @Accessor("KEYS_BY_ID")
19 | static Map getKeysById() { return null; }
20 |
21 | @Accessor("boundKey")
22 | InputUtil.Key meteor$getKey();
23 |
24 | @Accessor("timesPressed")
25 | int meteor$getTimesPressed();
26 |
27 | @Accessor("timesPressed")
28 | void meteor$setTimesPressed(int timesPressed);
29 |
30 | @Invoker("reset")
31 | void meteor$invokeReset();
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/ServerResourcePackLoaderMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import meteordevelopment.meteorclient.systems.modules.Modules;
9 | import meteordevelopment.meteorclient.systems.modules.misc.ServerSpoof;
10 | import net.minecraft.client.resource.server.ServerResourcePackLoader;
11 | import org.spongepowered.asm.mixin.Mixin;
12 | import org.spongepowered.asm.mixin.injection.At;
13 | import org.spongepowered.asm.mixin.injection.Inject;
14 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
15 |
16 | @Mixin(ServerResourcePackLoader.class)
17 | public abstract class ServerResourcePackLoaderMixin {
18 | @Inject(method = "onReloadSuccess", at = @At("TAIL"))
19 | private void removeInactivePacksTail(CallbackInfo ci) {
20 | Modules.get().get(ServerSpoof.class).silentAcceptResourcePack = false;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/notebot/instrumentdetect/InstrumentDetectMode.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 meteordevelopment.meteorclient.utils.notebot.instrumentdetect;
7 |
8 | import net.minecraft.block.NoteBlock;
9 | import net.minecraft.client.MinecraftClient;
10 |
11 | public enum InstrumentDetectMode {
12 | BlockState(((noteBlock, blockPos) -> noteBlock.get(NoteBlock.INSTRUMENT))),
13 | BelowBlock(((noteBlock, blockPos) -> MinecraftClient.getInstance().world.getBlockState(blockPos.down()).getInstrument()));
14 |
15 | private final InstrumentDetectFunction instrumentDetectFunction;
16 |
17 | InstrumentDetectMode(InstrumentDetectFunction instrumentDetectFunction) {
18 | this.instrumentDetectFunction = instrumentDetectFunction;
19 | }
20 |
21 | public InstrumentDetectFunction getInstrumentDetectFunction() {
22 | return instrumentDetectFunction;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/world/CardinalDirection.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 meteordevelopment.meteorclient.utils.world;
7 |
8 | import net.minecraft.util.math.Direction;
9 |
10 | public enum CardinalDirection {
11 | North,
12 | East,
13 | South,
14 | West;
15 |
16 | public Direction toDirection() {
17 | return switch (this) {
18 | case North -> Direction.NORTH;
19 | case East -> Direction.EAST;
20 | case South -> Direction.SOUTH;
21 | case West -> Direction.WEST;
22 | };
23 | }
24 |
25 | public static CardinalDirection fromDirection(Direction direction) {
26 | return switch (direction) {
27 | case NORTH -> North;
28 | case SOUTH -> South;
29 | case WEST -> East;
30 | case EAST -> West;
31 | case DOWN, UP -> null;
32 | };
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.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 meteordevelopment.meteorclient.events.meteor;
7 |
8 | import meteordevelopment.meteorclient.events.Cancellable;
9 | import meteordevelopment.meteorclient.utils.misc.input.KeyAction;
10 | import net.minecraft.client.input.KeyInput;
11 |
12 | public class KeyEvent extends Cancellable {
13 | private static final KeyEvent INSTANCE = new KeyEvent();
14 |
15 | public KeyInput input;
16 | public KeyAction action;
17 |
18 | public static KeyEvent get(KeyInput input, KeyAction action) {
19 | INSTANCE.setCancelled(false);
20 | INSTANCE.input = input;
21 | INSTANCE.action = action;
22 | return INSTANCE;
23 | }
24 |
25 | public int key() {
26 | return INSTANCE.input.key();
27 | }
28 |
29 | public int modifiers() {
30 | return INSTANCE.input.modifiers();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/events/render/Render2DEvent.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 meteordevelopment.meteorclient.events.render;
7 |
8 | import meteordevelopment.meteorclient.utils.Utils;
9 | import net.minecraft.client.gui.DrawContext;
10 |
11 | public class Render2DEvent {
12 | private static final Render2DEvent INSTANCE = new Render2DEvent();
13 |
14 | public DrawContext drawContext;
15 | public int screenWidth, screenHeight;
16 | public double frameTime;
17 | public float tickDelta;
18 |
19 | public static Render2DEvent get(DrawContext drawContext, int screenWidth, int screenHeight, float tickDelta) {
20 | INSTANCE.drawContext = drawContext;
21 | INSTANCE.screenWidth = screenWidth;
22 | INSTANCE.screenHeight = screenHeight;
23 | INSTANCE.frameTime = Utils.frameTime;
24 | INSTANCE.tickDelta = tickDelta;
25 | return INSTANCE;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/commands/commands/GamemodeCommand.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 meteordevelopment.meteorclient.commands.commands;
7 |
8 | import com.mojang.brigadier.builder.LiteralArgumentBuilder;
9 | import meteordevelopment.meteorclient.commands.Command;
10 | import net.minecraft.command.CommandSource;
11 | import net.minecraft.world.GameMode;
12 |
13 | public class GamemodeCommand extends Command {
14 | public GamemodeCommand() {
15 | super("gamemode", "Changes your gamemode client-side.", "gm");
16 | }
17 |
18 | @Override
19 | public void build(LiteralArgumentBuilder builder) {
20 | for (GameMode gameMode : GameMode.values()) {
21 | builder.then(literal(gameMode.getId()).executes(context -> {
22 | mc.interactionManager.setGameMode(gameMode);
23 | return SINGLE_SUCCESS;
24 | }));
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/mixin/AbstractSignBlockEntityRendererMixin.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 meteordevelopment.meteorclient.mixin;
7 |
8 | import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
9 | import meteordevelopment.meteorclient.systems.modules.Modules;
10 | import meteordevelopment.meteorclient.systems.modules.render.NoRender;
11 | import net.minecraft.client.render.block.entity.AbstractSignBlockEntityRenderer;
12 | import org.spongepowered.asm.mixin.Mixin;
13 | import org.spongepowered.asm.mixin.injection.At;
14 |
15 | @Mixin(AbstractSignBlockEntityRenderer.class)
16 | public abstract class AbstractSignBlockEntityRendererMixin {
17 | @ModifyExpressionValue(method = "renderText", at = @At(value = "CONSTANT", args = {"intValue=4", "ordinal=1"}))
18 | private int loopTextLengthProxy(int i) {
19 | if (Modules.get().get(NoRender.class).noSignText()) return 0;
20 | return i;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/utils/render/NoopImmediateVertexConsumerProvider.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 meteordevelopment.meteorclient.utils.render;
7 |
8 | import net.minecraft.client.render.RenderLayer;
9 | import net.minecraft.client.render.VertexConsumer;
10 | import net.minecraft.client.render.VertexConsumerProvider;
11 |
12 | public class NoopImmediateVertexConsumerProvider extends VertexConsumerProvider.Immediate {
13 | public static final NoopImmediateVertexConsumerProvider INSTANCE = new NoopImmediateVertexConsumerProvider();
14 |
15 | private NoopImmediateVertexConsumerProvider() {
16 | super(null, null);
17 | }
18 |
19 | @Override
20 | public VertexConsumer getBuffer(RenderLayer layer) {
21 | return NoopVertexConsumer.INSTANCE;
22 | }
23 |
24 | @Override
25 | public void draw() {
26 | }
27 |
28 | @Override
29 | public void draw(RenderLayer layer) {
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorAccount.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 meteordevelopment.meteorclient.gui.themes.meteor.widgets;
7 |
8 | import meteordevelopment.meteorclient.gui.WidgetScreen;
9 | import meteordevelopment.meteorclient.gui.themes.meteor.MeteorWidget;
10 | import meteordevelopment.meteorclient.gui.widgets.WAccount;
11 | import meteordevelopment.meteorclient.systems.accounts.Account;
12 | import meteordevelopment.meteorclient.utils.render.color.Color;
13 |
14 | public class WMeteorAccount extends WAccount implements MeteorWidget {
15 | public WMeteorAccount(WidgetScreen screen, Account> account) {
16 | super(screen, account);
17 | }
18 |
19 | @Override
20 | protected Color loggedInColor() {
21 | return theme().loggedInColor.get();
22 | }
23 |
24 | @Override
25 | protected Color accountTypeColor() {
26 | return theme().textSecondaryColor.get();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------