Skip to content

Commit

Permalink
1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
Zgoly authored Oct 22, 2022
1 parent 906a7ad commit 57b8873
Show file tree
Hide file tree
Showing 12 changed files with 414 additions and 99 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ yarn_mappings=1.19.2+build.8
loader_version=0.14.9

# Mod Properties
mod_version=1.3.2
mod_version=1.4
maven_group=zgoly
archives_base_name=meteorist

Expand Down
7 changes: 5 additions & 2 deletions src/main/java/zgoly/meteorist/Meteorist.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
import meteordevelopment.meteorclient.systems.Systems;
import meteordevelopment.meteorclient.systems.commands.Commands;
import meteordevelopment.meteorclient.systems.hud.Hud;
import meteordevelopment.meteorclient.systems.hud.HudElementInfo;
import meteordevelopment.meteorclient.systems.hud.HudGroup;
import meteordevelopment.meteorclient.systems.hud.elements.TextHud;
import zgoly.meteorist.commands.Coordinates;
import zgoly.meteorist.commands.TargetNbt;
import zgoly.meteorist.hud.Presets;
import zgoly.meteorist.modules.*;
import meteordevelopment.meteorclient.MeteorClient;
Expand All @@ -31,11 +30,14 @@ public void onInitialize() {
MeteorClient.EVENT_BUS.registerLambdaFactory("zgoly.meteorist", (lookupInMethod, klass) -> (MethodHandles.Lookup) lookupInMethod.invoke(null, klass, MethodHandles.lookup()));
// Modules
Modules.get().add(new AutoFeed());
Modules.get().add(new AutoFix());
Modules.get().add(new AutoFloor());
Modules.get().add(new AutoHeal());
Modules.get().add(new AutoLeave());
Modules.get().add(new AutoLogin());
Modules.get().add(new ContainerCleaner());
Modules.get().add(new EntityUse());
Modules.get().add(new FastBridge());
Modules.get().add(new AutoLight());
Modules.get().add(new ItemSucker());
Modules.get().add(new JumpFlight());
Expand All @@ -45,6 +47,7 @@ public void onInitialize() {
Modules.get().add(new ZKillaura());
// Commands
Commands.get().add(new Coordinates());
Commands.get().add(new TargetNbt());
// Hud Presets
Presets.starscriptAdd();
Hud hud = Systems.get(Hud.class);
Expand Down
29 changes: 17 additions & 12 deletions src/main/java/zgoly/meteorist/commands/Coordinates.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import meteordevelopment.meteorclient.systems.commands.Command;
import net.minecraft.client.toast.SystemToast;
import net.minecraft.command.CommandSource;
import net.minecraft.text.Text;
import net.minecraft.util.math.BlockPos;

import static com.mojang.brigadier.Command.SINGLE_SUCCESS;

Expand All @@ -16,17 +16,22 @@ public Coordinates() {

@Override
public void build(LiteralArgumentBuilder<CommandSource> builder) {
builder.executes(context -> {
String s = ", ";
String pos = mc.player.getBlockPos().getX() + s + mc.player.getBlockPos().getY() + s + mc.player.getBlockPos().getZ();
mc.keyboard.setClipboard(pos);
mc.getToastManager().add(new SystemToast(SystemToast.Type.TUTORIAL_HINT, Text.of("Coordinates copied"), Text.of("Paste, using Ctrl + V")));
return SINGLE_SUCCESS;
});
builder.then(literal("share_in_chat").executes(context -> {
String s = ", ";
mc.player.sendChatMessage("Coordinates: " + mc.player.getBlockPos().getX() + s + mc.player.getBlockPos().getY() + s + mc.player.getBlockPos().getZ(), Text.of("Coordinates"));
return SINGLE_SUCCESS;
builder.executes(context -> CopyPos());
builder.then(literal("copy").executes(context -> CopyPos()));

builder.then(literal("share-in-chat").executes(context -> {
mc.player.sendChatMessage("Coordinates: " + getPos(), Text.of("Coordinates"));
return SINGLE_SUCCESS;
}));
}
private String getPos() {
BlockPos pos = mc.player.getBlockPos();
return pos.getX() + ", " + pos.getY() + ", " + pos.getZ();
}

private int CopyPos() {
mc.keyboard.setClipboard(getPos());
info("Coordinates successfully copied to the clipboard");
return SINGLE_SUCCESS;
}
}
60 changes: 60 additions & 0 deletions src/main/java/zgoly/meteorist/commands/TargetNbt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
//By Zgoly
package zgoly.meteorist.commands;

import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import meteordevelopment.meteorclient.systems.commands.Command;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.command.CommandSource;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.Text;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.math.BlockPos;

import static com.mojang.brigadier.Command.SINGLE_SUCCESS;

public class TargetNbt extends Command {
public TargetNbt() {
super("target-nbt", "Gets NBT of target you're looking at.", "nbt-target", "target");
}

@Override
public void build(LiteralArgumentBuilder<CommandSource> builder) {
builder.executes(context -> getNbt());
builder.then(literal("get").executes(context -> getNbt()));

builder.then(literal("copy").executes(context -> {
if (getTargetNbt() == null) return SINGLE_SUCCESS;
mc.keyboard.setClipboard(getTargetNbt().toString());
info("NBT successfully copied to your clipboard");
return SINGLE_SUCCESS;
}));
}

private NbtCompound getTargetNbt() {
switch (mc.crosshairTarget.getType()) {
case MISS -> info("There is no target for your cursor");
case BLOCK -> {
BlockPos pos = ((BlockHitResult) mc.crosshairTarget).getBlockPos();
BlockEntity blockEntity = mc.world.getBlockEntity(pos);

if (blockEntity != null) {
return blockEntity.createNbt();
} else {
info("Block you're targeting doesn't have NBT");
}
}
case ENTITY -> {
return ((EntityHitResult) mc.crosshairTarget).getEntity().writeNbt(new NbtCompound());
}

}
return null;
}

private int getNbt() {
if (getTargetNbt() == null) return SINGLE_SUCCESS;
mc.player.sendMessage(Text.of(getTargetNbt().toString()));
return SINGLE_SUCCESS;
}
}
88 changes: 88 additions & 0 deletions src/main/java/zgoly/meteorist/modules/AutoFix.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
//By Zgoly
package zgoly.meteorist.modules;

import meteordevelopment.meteorclient.events.world.TickEvent;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.item.ItemStack;
import zgoly.meteorist.Meteorist;

public class AutoFix extends Module {
public enum Mode {
Default,
Percentage
}
private final SettingGroup sgGeneral = settings.getDefaultGroup();

private final Setting<String> fixCommand = sgGeneral.add(new StringSetting.Builder()
.name("fix-command")
.description("Command to fix item.")
.defaultValue("/fix all")
.build()
);

private final Setting<AutoFix.Mode> mode = sgGeneral.add(new EnumSetting.Builder<AutoFix.Mode>()
.name("mode")
.description("Percentage - calculate item durability in percentage, Default - calculate item durability in numbers.")
.defaultValue(Mode.Default)
.build()
);

private final Setting<Integer> minDurability = sgGeneral.add(new IntSetting.Builder()
.name("min-durability")
.description("The durability number to send the command.")
.defaultValue(10)
.range(1, 1000)
.sliderRange(1, 1000)
.visible(() -> mode.get() == Mode.Default)
.build()
);

private final Setting<Integer> minDurabilityPercentage = sgGeneral.add(new IntSetting.Builder()
.name("min-durability")
.description("The durability percentage to send the command.")
.defaultValue(10)
.range(1, 100)
.sliderRange(1, 100)
.visible(() -> mode.get() == Mode.Percentage)
.build()
);

private final Setting<Integer> delay = sgGeneral.add(new IntSetting.Builder()
.name("delay")
.description("Delay after sending a command in ticks (20 ticks = 1 sec).")
.defaultValue(20)
.range(1, 1200)
.sliderRange(1, 40)
.build()
);

private int timer;

public AutoFix() {
super(Meteorist.CATEGORY, "auto-fix", "Writes command in chat when item close to break.");
}

@Override
public void onActivate() {
timer = 0;
}

@EventHandler
private void onTick(TickEvent.Post event) {
boolean work = false;
if (timer >= delay.get()) {
for (ItemStack item : mc.player.getItemsEquipped()) {
if (item.getDamage() > 0 && item.getMaxDamage() > 0) {
if ((mode.get() == Mode.Default && item.getMaxDamage() - item.getDamage() >= minDurability.get()) || (mode.get() == Mode.Percentage
&& (((item.getMaxDamage() - item.getDamage()) * 100) / item.getMaxDamage()) >= minDurabilityPercentage.get())) work = true;
}
}
if (work) {
mc.player.sendCommand(fixCommand.get().replace("/", ""));
timer = 0;
}
} else timer ++;
}
}
33 changes: 8 additions & 25 deletions src/main/java/zgoly/meteorist/modules/AutoFloor.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
import zgoly.meteorist.Meteorist;
import zgoly.meteorist.utils.Utils;

import java.util.List;

public class AutoFloor extends Module {
Expand All @@ -38,21 +40,6 @@ public class AutoFloor extends Module {
.build()
);

private final Setting<Boolean> skip = sgGeneral.add(new BoolSetting.Builder()
.name("skip")
.description("Skip block if impossible to place.")
.defaultValue(true)
.build()
);

private final Setting<Boolean> checkEntities = sgGeneral.add(new BoolSetting.Builder()
.name("check-entities")
.description("Check if any entities interfering with block placement. Example - player.")
.defaultValue(true)
.visible(skip::get)
.build()
);

private final Setting<Integer> maxBlocksPerTick = sgTiming.add(new IntSetting.Builder()
.name("max-blocks-per-tick")
.description("Maximum blocks to try to place per tick.")
Expand Down Expand Up @@ -130,20 +117,16 @@ public void onDeactivate() {

@EventHandler
private void onTick(TickEvent.Post event) {
Iterable<BlockPos> BlockPoses = BlockPos.iterateOutwards(mc.player.getBlockPos(), range.get(), 0, range.get());
Iterable<BlockPos> BlockPoses = BlockPos.iterateOutwards(mc.player.getBlockPos().down(-offset.get()), range.get(), 0, range.get());
if (work) {
int count = 0;
blockLoop: for (BlockPos blockPos : BlockPoses) {
if (skip.get() && !BlockUtils.canPlace(blockPos, checkEntities.get())) continue;
/*
for (Entity entity : mc.world.getEntities()) {
if (entity.getBlockPos() == blockPos) continue blockLoop;
}
*/
if (count > maxBlocksPerTick.get()) break;
for (BlockPos blockPos : BlockPoses) {
if (count >= maxBlocksPerTick.get()) break;
if (!BlockUtils.canPlace(blockPos) || Utils.isCollidesEntity(blockPos)) continue;

for (Block block : blocks.get()) {
FindItemResult item = InvUtils.findInHotbar(block.asItem());
BlockUtils.place(blockPos.add(0, offset.get(), 0), item, rotate.get(), 0, true);
BlockUtils.place(blockPos, item, rotate.get(), 0);
}
count++;
}
Expand Down
Loading

0 comments on commit 57b8873

Please sign in to comment.