Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<!-- Fancy badges -->
<a href="https://anticope.ml/pages/MeteorAddons.html"><img src="https://img.shields.io/badge/Verified%20Addon-Yes-blueviolet" alt="Verified Addon"></a>
<a href="https://github.com/AntiCope/meteor-rejects/releases"><img src="https://img.shields.io/badge/Version-v0.1-orange" alt="Version"></a>
<img src="https://img.shields.io/badge/spaghetti%20code-yes-success?logo=java" alt="Spagetti code: yes">
<img src="https://img.shields.io/badge/Minecraft%20Version-1.20.6-blue" alt="Minecraft Version">
<img src="https://img.shields.io/badge/spaghetti%20code-yes-success?logo=java" alt="Spaghetti code: yes">
<img src="https://img.shields.io/badge/Minecraft%20Version-1.21.11-blue" alt="Minecraft Version">
<a href="https://github.com/AntiCope/meteor-rejects/commits/master"><img src="https://img.shields.io/github/last-commit/AntiCope/meteor-rejects?logo=git" alt="Last commit"></a>
<img src="https://img.shields.io/github/workflow/status/AntiCope/meteor-rejects/Java%20CI%20with%20Gradle?logo=github" alt="build status">
<img src="https://img.shields.io/github/languages/code-size/AntiCope/meteor-rejects" alt="Code Size">
Expand All @@ -27,7 +27,7 @@
- Download the latest [release](/../../releases) of the mod from the releases tab.
- Put it in your `.minecraft/mods` folder where you have installed Meteor.

*Note: It is recommended to use the [latest dev build](https://meteorclient.com/download?devBuild=latest) of meteor while using rejects*
*Note: It is recommended to use the [latest build](https://meteorclient.com/) of meteor while using rejects*

# Features
## Modules
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ version = project.mod_version
group = project.maven_group

repositories {
mavenCentral()
mavenLocal()
mavenCentral()
maven { url "https://maven.meteordev.org/releases"}
maven { url "https://maven.meteordev.org/snapshots" }
maven { url "https://maven.seedfinding.com/" }
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ org.gradle.jvmargs=-Xmx2G
# Fabric Properties
minecraft_version=1.21.11
yarn_version=1.21.11+build.3
loader_version=0.17.3
loader_version=0.18.2

# Mod Properties
mod_version = 0.3
Expand Down
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
pluginManagement {
repositories {
mavenLocal()
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import meteordevelopment.meteorclient.gui.widgets.containers.WTable;
import meteordevelopment.meteorclient.gui.widgets.pressable.WCheckbox;
import meteordevelopment.meteorclient.utils.render.color.Color;
import net.minecraft.SharedConstants;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.multiplayer.JoinMultiplayerScreen;
import net.minecraft.client.gui.screens.multiplayer.ServerSelectionList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class WMeteorView extends WView implements MeteorWidget {
@Override
protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, double delta) {
if (canScroll && hasScrollBar) {
renderer.quad(handleX(), handleY(), handleWidth(), handleHeight(), theme().scrollbarColor.get(handlePressed, handleMouseOver));
renderer.quad(handleX(), handleY(), handleWidth(), handleHeight(), theme().scrollbarColor.get(focused, handleMouseOver));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import static meteordevelopment.meteorclient.MeteorClient.mc;

@Mixin(ClientCommonPacketListenerImpl.class)
public class ClientCommonNetwokHandlerMixin {
public class ClientCommonNetworkHandlerMixin {
@Inject(method = "onDisconnect", at = @At("HEAD"), cancellable = true)
private void onDisconnected(DisconnectionDetails info, CallbackInfo ci) {
if (Modules.get().isActive(SilentDisconnect.class) && mc.level != null && mc.player != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package anticope.rejects.mixin;

import anticope.rejects.modules.Rendering;
import com.mojang.blaze3d.vertex.PoseStack;
import meteordevelopment.meteorclient.systems.modules.Modules;
import net.minecraft.client.renderer.SubmitNodeCollector;
import net.minecraft.client.renderer.entity.layers.Deadmau5EarsLayer;
Expand All @@ -12,25 +13,16 @@

@Mixin(Deadmau5EarsLayer.class)
public class Deadmau5FeatureRendererMixin {
@Inject(method = "submit", at = @At("HEAD"), cancellable = true)
private void onRender(com.mojang.blaze3d.vertex.PoseStack matrixStack, SubmitNodeCollector queue, int light, AvatarRenderState renderState, float limbAngle, float limbDistance, CallbackInfo ci) {
// Check if Modules system is initialized
@Inject(
method = "submit(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/client/renderer/entity/state/AvatarRenderState;FF)V",
at = @At("HEAD")
)
private void onRender(PoseStack poseStack, SubmitNodeCollector collector, int light, AvatarRenderState renderState, float f, float g, CallbackInfo ci) {
if (Modules.get() != null) {
Rendering renderingModule = Modules.get().get(Rendering.class);
if (renderingModule != null && renderingModule.deadmau5EarsEnabled()) {
// Allow rendering by not canceling
return;
renderState.showExtraEars = true;
}
}

// Default vanilla behavior: only render for "deadmau5"
if (renderState.nameTag != null) {
String playerName = renderState.nameTag.getString();
if (!playerName.equals("deadmau5")) {
ci.cancel();
}
} else {
ci.cancel();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import anticope.rejects.modules.Rendering;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import meteordevelopment.meteorclient.systems.modules.Modules;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
Expand All @@ -20,13 +19,13 @@
@Mixin(LivingEntityRenderer.class)
public class LivingEntityRendererMixin<T extends LivingEntity, S extends LivingEntityRenderState, M extends EntityModel<? super S>> {

@Inject(method = "setupRotations", at = @At(value = "TAIL"))
@Inject(method = "setupRotations", at = @At("HEAD"))
private void dinnerboneEntities(S state, PoseStack matrices, float animationProgress, float bodyYaw, CallbackInfo ci) {
if (state instanceof AvatarRenderState) return;
if (Modules.get() == null) return;
Rendering renderingModule = Modules.get().get(Rendering.class);
if (renderingModule == null) return;
if ((!(state instanceof AvatarRenderState)) && renderingModule.dinnerboneEnabled()) {
matrices.translate(0.0D, state.boundingBoxHeight + 0.1F, 0.0D);
matrices.mulPose(Axis.ZP.rotationDegrees(180.0F));
if (renderingModule != null && renderingModule.dinnerboneEnabled()) {
state.isUpsideDown = true;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,23 @@
import net.minecraft.client.renderer.blockentity.ChestRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(ChestRenderer.class)
public class TexturedRenderLayersMixin {
@Inject(method = "xmasTextures", at = @At("HEAD"), cancellable = true)
private static void onIsAroundChristmas(CallbackInfoReturnable<Boolean> cir) {
// Check if Modules system is initialized
@ModifyArg(
method = "extractRenderState",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/renderer/blockentity/ChestRenderer;getChestMaterial(Lnet/minecraft/world/level/block/entity/BlockEntity;Z)Lnet/minecraft/client/renderer/blockentity/state/ChestRenderState$ChestMaterialType;"
),
index = 1
)
private boolean modifyXmasTexturesArg(boolean original) {
if (Modules.get() != null) {
Rendering rendering = Modules.get().get(Rendering.class);
if (rendering != null && rendering.chistmas()) {
cir.setReturnValue(true);
}
if (rendering != null && rendering.chistmas()) return true;
}
return original;
}
}
4 changes: 2 additions & 2 deletions src/main/java/anticope/rejects/modules/AntiCrash.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ private void onPacketReceive(PacketEvent.Receive event) {
cancel(event);
} else if (event.packet instanceof ClientboundSetEntityMotionPacket packet) {
// velocity
if (packet.getMovement().x > 30_000_000 || packet.getMovement().y > 30_000_000 || packet.getMovement().z > 30_000_000
|| packet.getMovement().x < -30_000_000 || packet.getMovement().y < -30_000_000 || packet.getMovement().z < -30_000_000
if (packet.getMovement().x > 1000 || packet.getMovement().y > 1000 || packet.getMovement().z > 1000
|| packet.getMovement().x < -1000 || packet.getMovement().y < -1000 || packet.getMovement().z < -1000
) cancel(event);
}
}
Expand Down
10 changes: 3 additions & 7 deletions src/main/java/anticope/rejects/modules/AntiSpawnpoint.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.attribute.BedRule;
import net.minecraft.world.attribute.EnvironmentAttributeMap;
import net.minecraft.world.attribute.EnvironmentAttributes;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BedBlock;
import net.minecraft.world.level.block.Blocks;

Expand All @@ -36,11 +34,9 @@ private void onSendPacket(PacketEvent.Send event) {
if (mc.level == null) return;
if(!(event.packet instanceof ServerboundUseItemOnPacket)) return;


BlockPos blockPos = ((ServerboundUseItemOnPacket) event.packet).getHitResult().getBlockPos();
EnvironmentAttributeMap attributes = mc.level.dimensionType().attributes();
boolean IsOverWorld = attributes.applyModifier(EnvironmentAttributes.BED_RULE, BedRule.CAN_SLEEP_WHEN_DARK) != BedRule.CAN_SLEEP_WHEN_DARK;
boolean IsNetherWorld = attributes.applyModifier(EnvironmentAttributes.RESPAWN_ANCHOR_WORKS, false);
boolean IsOverWorld = mc.level.dimension() == Level.OVERWORLD;
boolean IsNetherWorld = mc.level.dimension() == Level.NETHER;
boolean BlockIsBed = mc.level.getBlockState(blockPos).getBlock() instanceof BedBlock;
boolean BlockIsAnchor = mc.level.getBlockState(blockPos).getBlock().equals(Blocks.RESPAWN_ANCHOR);

Expand Down
40 changes: 23 additions & 17 deletions src/main/java/anticope/rejects/modules/ArrowDmg.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,26 @@

import anticope.rejects.MeteorRejectsAddon;
import anticope.rejects.events.StopUsingItemEvent;
import meteordevelopment.meteorclient.settings.BoolSetting;
import meteordevelopment.meteorclient.settings.IntSetting;
import meteordevelopment.meteorclient.settings.Setting;
import meteordevelopment.meteorclient.settings.SettingGroup;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket;
import net.minecraft.network.protocol.game.ServerboundMovePlayerPacket.Pos;
import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.phys.Vec3;

public class ArrowDmg extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup();

public final Setting<Integer> packets = sgGeneral.add(new IntSetting.Builder()
.name("packets")
.description("Amount of packets to send. More packets = higher damage.")
.defaultValue(200)
.min(2)
.sliderMax(2000)
public final Setting<Double> strength = sgGeneral.add(new DoubleSetting.Builder()
.name("strength")
.description("More strength = higher damage.")
.defaultValue(5)
.min(0.1)
.sliderMax(25)
.build()
);

Expand All @@ -35,7 +34,7 @@ public class ArrowDmg extends Module {


public ArrowDmg() {
super(MeteorRejectsAddon.CATEGORY, "arrow-damage", "Massively increases arrow damage, but also consumes a lot of hunger and reduces accuracy. Does not work with crossbows and seems to be patched on Paper servers.");
super(MeteorRejectsAddon.CATEGORY, "arrow-damage", "Massively increases arrow damage, but reduces accuracy and consume more hunger. Does not work with crossbows and is patched on Paper servers.");
}

@EventHandler
Expand All @@ -52,12 +51,19 @@ private void onStopUsingItem(StopUsingItemEvent event) {
double y = p.getY();
double z = p.getZ();

for (int i = 0; i < packets.get() / 2; i++) {
p.connection.send(new ServerboundMovePlayerPacket.Pos(x,
y - 1e-10, z, true, mc.player.horizontalCollision));
p.connection.send(new ServerboundMovePlayerPacket.Pos(x,
y + 1e-10, z, false, mc.player.horizontalCollision));
double adjustedStrength = strength.get() / 10.0 * Math.sqrt(500);
Vec3 lookVec = p.getViewVector(1).scale(adjustedStrength);

for (int i = 0; i < 4; i++) {
sendPos(x, y, z, true);
}
sendPos(x - lookVec.x, y, z - lookVec.z, true);
sendPos(x, y, z, false);
}

private void sendPos(double x, double y, double z, boolean onGround) {
ClientPacketListener clientPacketListener = mc.player.connection;
clientPacketListener.send(new Pos(x, y, z, onGround, mc.player.horizontalCollision));
}

private boolean isValidItem(Item item) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/anticope/rejects/modules/AutoCraft.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import net.minecraft.world.item.crafting.display.RecipeDisplay;
import net.minecraft.world.item.crafting.display.RecipeDisplayEntry;
import net.minecraft.world.item.crafting.display.SlotDisplayContext;
import java.util.Arrays;

import java.util.List;

public class AutoCraft extends Module {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/anticope/rejects/modules/AutoEnchant.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.enchantment.EnchantmentHelper;

import java.util.List;
import java.util.Objects;

Expand Down Expand Up @@ -50,7 +50,7 @@ public class AutoEnchant extends meteordevelopment.meteorclient.systems.modules.
.name("item-whitelist")
.description("Item that require enchantment.")
.defaultValue()
.filter(item -> item.equals(Items.BOOK) || new ItemStack(item).isDamageableItem())
.filter(item -> item.equals(Items.BOOK) || new ItemStack(item).isEnchantable())
.build()
);

Expand Down Expand Up @@ -109,7 +109,7 @@ private void autoEnchant() {
}

private boolean fillCanEnchantItem() {
FindItemResult res = InvUtils.find(stack -> itemWhitelist.get().contains(stack.getItem()) && EnchantmentHelper.canStoreEnchantments(stack));
FindItemResult res = InvUtils.find(stack -> itemWhitelist.get().contains(stack.getItem()));
if (!res.found()) return false;
InvUtils.shiftClick().slot(res.slot());
return true;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/anticope/rejects/modules/AutoExtinguish.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import net.minecraft.network.protocol.game.ServerboundPlayerActionPacket;
import net.minecraft.resources.Identifier;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.attribute.EnvironmentAttributes;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import java.util.concurrent.atomic.AtomicInteger;

Expand Down Expand Up @@ -91,7 +91,7 @@ public AutoExtinguish() {

@EventHandler
private void onTick(TickEvent.Pre event) {
if (mc.level.dimensionType().attributes().applyModifier(EnvironmentAttributes.RESPAWN_ANCHOR_WORKS, false)) {
if (mc.level.dimension() == Level.NETHER) {
if (doesWaterBucketWork) {
warning("Water Buckets don't work in this dimension!");
doesWaterBucketWork = false;
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/anticope/rejects/modules/AutoFarm.java
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ private boolean harvest(BlockPos pos, BlockState state, Block block) {
if (block instanceof SweetBerryBushBlock)
mc.gameMode.useItemOn(mc.player, InteractionHand.MAIN_HAND, new BlockHitResult(Utils.vec3d(pos), Direction.UP, pos, false));
else {
mc.gameMode.continueDestroyBlock(pos, Direction.UP);
BlockUtils.breakBlock(pos, true);
}
return true;
}
Expand Down Expand Up @@ -280,6 +280,8 @@ private boolean isMature(BlockState state, Block block) {
return state.getValue(netherWartBlock.AGE) >= 3;
} else if (block instanceof PitcherCropBlock pitcherCropBlock) {
return state.getValue(pitcherCropBlock.AGE) >= 4;
} else if (block instanceof SaplingBlock) {
return false;
}
return true;
}
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/anticope/rejects/modules/AutoGrind.java
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,11 @@ private boolean canGrind(ItemStack stack) {
int availEnchs = 0;

for (Holder<Enchantment> enchantment : enchantments.keySet()) {
// grindstones cant remove curses
if (enchantment.is(EnchantmentTags.CURSE)) continue;
availEnchs++;
if (EnchantmentHelper.hasTag(stack, EnchantmentTags.CURSE))
availEnchs--;
if (enchantmentBlacklist.get().contains(enchantment.value()))

if (enchantment.unwrapKey().map(enchantmentBlacklist.get()::contains).orElse(false))
return false;
}

Expand Down
Loading
Loading