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
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ base {
group = project.maven_group
}

loom {
accessWidenerPath = file("src/main/resources/genyo.accesswidener")
}

repositories {
maven {
name = "Meteor Dev Releases"
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/com/genyo/addon/GenyoAddon.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

import com.genyo.addon.gui.EnemiesTab;
import com.genyo.addon.hud.PvPNeccessaryHud;
import com.genyo.addon.managers.Managers;
import com.genyo.addon.modules.AngelSexHulkenberg;
import com.genyo.addon.modules.GenyoAutoEZ;
import com.genyo.addon.modules.TescoCrystal;
import com.genyo.addon.systems.enemies.Enemies;
import com.mojang.logging.LogUtils;
import meteordevelopment.meteorclient.addons.GithubRepo;
Expand All @@ -27,9 +30,13 @@ public void onInitialize() {
Systems.add(new Enemies());

Modules.get().add(new GenyoAutoEZ());
Modules.get().add(new TescoCrystal());
Modules.get().add(new AngelSexHulkenberg());

Tabs.add(new EnemiesTab());

Managers.subscribe();

// HUD
Hud.get().register(PvPNeccessaryHud.INFO);
}
Expand Down
17 changes: 17 additions & 0 deletions src/main/java/com/genyo/addon/events/TotemPopEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.genyo.addon.events;

import net.minecraft.entity.player.PlayerEntity;

public class TotemPopEvent {
private static final TotemPopEvent INSTANCE = new TotemPopEvent();

public PlayerEntity entity;
public int pops;

public static TotemPopEvent get(PlayerEntity entity, int pops) {
INSTANCE.entity = entity;
INSTANCE.pops = pops;

return INSTANCE;
}
}
18 changes: 8 additions & 10 deletions src/main/java/com/genyo/addon/hud/PvPNeccessaryHud.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import meteordevelopment.meteorclient.systems.hud.HudElement;
import meteordevelopment.meteorclient.systems.hud.HudElementInfo;
import meteordevelopment.meteorclient.systems.hud.HudRenderer;
import meteordevelopment.meteorclient.utils.player.InvUtils;
import meteordevelopment.meteorclient.utils.render.color.Color;
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
Expand Down Expand Up @@ -43,13 +41,13 @@ public class PvPNeccessaryHud extends HudElement {
// Scale

public final Setting<Integer> margin = sgScale.add(new IntSetting.Builder()
.name("margin")
.description("Két dolog közötti hely")
.defaultValue(0)
.onChanged(aInt -> calculateSize())
.min(0)
.sliderRange(0, 10)
.build()
.name("margin")
.description("Két dolog közötti hely")
.defaultValue(0)
.onChanged(aInt -> calculateSize())
.min(0)
.sliderRange(0, 10)
.build()
);

public final Setting<Boolean> customScale = sgScale.add(new BoolSetting.Builder()
Expand All @@ -71,7 +69,7 @@ public class PvPNeccessaryHud extends HudElement {
.build()
);

// Background
// Backgroundx

public final Setting<Boolean> background = sgBackground.add(new BoolSetting.Builder()
.name("background")
Expand Down
40 changes: 40 additions & 0 deletions src/main/java/com/genyo/addon/managers/CombatManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.genyo.addon.managers;

import com.genyo.addon.events.TotemPopEvent;
import meteordevelopment.meteorclient.MeteorClient;
import meteordevelopment.meteorclient.events.packets.PacketEvent;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityStatuses;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;

import java.util.HashMap;

import static meteordevelopment.meteorclient.MeteorClient.mc;

public class CombatManager {

public HashMap<String, Integer> popList = new HashMap<>();

@EventHandler
public void onPacketReceive(PacketEvent.Receive event) {

if (event.packet instanceof EntityStatusS2CPacket pac) {
if (pac.getStatus() == EntityStatuses.USE_TOTEM_OF_UNDYING) {
Entity ent = pac.getEntity(mc.world);
if (!(ent instanceof PlayerEntity)) return;
if (popList == null) {
popList = new HashMap<>();
}
if (popList.get(ent.getName().getString()) == null) {
popList.put(ent.getName().getString(), 1);
} else if (popList.get(ent.getName().getString()) != null) {
popList.put(ent.getName().getString(), popList.get(ent.getName().getString()) + 1);
}
MeteorClient.EVENT_BUS.post(TotemPopEvent.get((PlayerEntity) ent, popList.get(ent.getName().getString())));
}
}
}

}
13 changes: 13 additions & 0 deletions src/main/java/com/genyo/addon/managers/Managers.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.genyo.addon.managers;

import meteordevelopment.meteorclient.MeteorClient;

public class Managers {

public static final CombatManager COMBAT = new CombatManager();

public static void subscribe() {
MeteorClient.EVENT_BUS.subscribe(COMBAT);
}

}
19 changes: 19 additions & 0 deletions src/main/java/com/genyo/addon/mixin/IEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.genyo.addon.mixin;

import net.minecraft.entity.Entity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(Entity.class)
public interface IEntity {
@Mutable
@Accessor("pos")
void setPos(Vec3d pos);

@Mutable
@Accessor("blockPos")
void setBlockPos(BlockPos blockPos);
}
1 change: 0 additions & 1 deletion src/main/java/com/genyo/addon/mixin/PlayerUtilsMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public class PlayerUtilsMixin {
@Inject(at = @At("TAIL"), method = "getPlayerColor*", cancellable = true)
private static void injectGetPlayerColor(PlayerEntity entity, Color defaultColor, CallbackInfoReturnable<Color> cir) {
if (Enemies.get().isEnemy(entity)) {
//cir.setReturnValue(new Color(245, 133, 125, 255));
cir.setReturnValue(Enemies.get().getEnemyColor());
}
}
Expand Down
217 changes: 217 additions & 0 deletions src/main/java/com/genyo/addon/modules/AngelSexHulkenberg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
package com.genyo.addon.modules;

import com.genyo.addon.GenyoAddon;
import com.genyo.addon.events.TotemPopEvent;
import com.genyo.addon.mixin.IEntity;
import com.genyo.addon.render.Render2DEngine;
import com.genyo.addon.render.Render3DEngine;
import com.genyo.addon.utils.MathUtil;
import com.mojang.authlib.GameProfile;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import meteordevelopment.meteorclient.events.render.Render3DEvent;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.meteorclient.utils.render.color.Color;
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.client.network.AbstractClientPlayerEntity;
import net.minecraft.client.render.*;
import net.minecraft.client.render.entity.PlayerEntityRenderer;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.RotationAxis;
import org.jetbrains.annotations.NotNull;

import java.util.concurrent.CopyOnWriteArrayList;

public final class AngelSexHulkenberg extends Module {

public AngelSexHulkenberg() {
super(GenyoAddon.GENYO, "angel-sex-hulkenberg", "Geci fasz csumi");
}

private final SettingGroup sgGeneral = settings.getDefaultGroup();

private final Setting<Mode> mode = sgGeneral.add(new EnumSetting.Builder<Mode>()
.name("Mode")
.description("Genyo")
.defaultValue(Mode.Textured)
.build()
);

private final Setting<Boolean> secondLayer = sgGeneral.add(new BoolSetting.Builder()
.name("Second Layer")
.description("nemtom")
.defaultValue(true)
.build()
);

private final Setting<SettingColor> color = sgGeneral.add(new ColorSetting.Builder()
.name("Color")
.description("színcápa színcápa mondj egy színt")
.defaultValue(new Color(53, 46, 46, 37))
.build()
);

private final Setting<Integer> ySpeed = sgGeneral.add(new IntSetting.Builder()
.name("Y Speed")
.description("y show speed")
.defaultValue(0)
.min(-10)
.max(10)
.build()
);

private final Setting<Integer> aSpeed = sgGeneral.add(new IntSetting.Builder()
.name("Alpha Speed")
.description("alpha show speed")
.defaultValue(5)
.min(1)
.max(100)
.build()
);

private final Setting<Double> rotSpeed = sgGeneral.add(new DoubleSetting.Builder()
.name("Rotation Speed")
.description("rotációs kapa")
.defaultValue(0.25)
.min(0)
.max(6)
.build()
);

private final CopyOnWriteArrayList<Person> popList = new CopyOnWriteArrayList<>();

private enum Mode {
Simple, Textured
}

@EventHandler
public void onUpdate() {
popList.forEach(person -> person.update(popList));
}

@EventHandler
public void onRender(Render3DEvent event) {
MatrixStack stack = event.matrices;

RenderSystem.enableBlend();
RenderSystem.disableDepthTest();
if (mode.get().equals(Mode.Simple)) RenderSystem.defaultBlendFunc();
else RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
popList.forEach(person -> renderEntity(stack, person.player, person.getTexture(), color.get().a));
RenderSystem.enableDepthTest();
RenderSystem.disableBlend();
}

@EventHandler
@SuppressWarnings("unused")
private void onTotemPop(@NotNull TotemPopEvent e) {
if (e.entity.equals(mc.player) || mc.world == null) return;
//if (mc.world == null) return; --------- for testing

AbstractClientPlayerEntity entity = new AbstractClientPlayerEntity(mc.world, new GameProfile(e.entity.getUuid(), e.entity.getName().getString())) {
@Override public boolean isSpectator() {return false;}
@Override public boolean isCreative() {return false;}
};

entity.copyPositionAndRotation(e.entity);
entity.bodyYaw = e.entity.bodyYaw;
entity.headYaw = e.entity.headYaw;
entity.handSwingProgress = e.entity.handSwingProgress;
entity.handSwingTicks = e.entity.handSwingTicks;
entity.setSneaking(e.entity.isSneaking());
entity.limbAnimator.setSpeed(e.entity.limbAnimator.getSpeed());
entity.limbAnimator.pos = e.entity.limbAnimator.getPos();
popList.add(new Person(entity, ((AbstractClientPlayerEntity) e.entity).getSkinTextures().texture()));
}

private void renderEntity(@NotNull MatrixStack matrices, @NotNull LivingEntity entity, Identifier texture, int alpha) {
PlayerEntityRenderer entityRenderer = (PlayerEntityRenderer) mc.getEntityRenderDispatcher().getRenderer((AbstractClientPlayerEntity) entity);
PlayerEntityRenderState renderState = entityRenderer.createRenderState();

renderState.leftPantsLegVisible = secondLayer.get();
renderState.rightPantsLegVisible = secondLayer.get();
renderState.leftSleeveVisible = secondLayer.get();
renderState.rightSleeveVisible = secondLayer.get();
renderState.jacketVisible = secondLayer.get();
renderState.hatVisible = secondLayer.get();

double x = entity.getX() - mc.getEntityRenderDispatcher().camera.getPos().getX();
double y = entity.getY() - mc.getEntityRenderDispatcher().camera.getPos().getY();
double z = entity.getZ() - mc.getEntityRenderDispatcher().camera.getPos().getZ();
((IEntity) entity).setPos(entity.getPos().add(0, (double) ySpeed.get() / 50., 0));

matrices.push();
matrices.translate((float) x, (float) y, (float) z);

float yRotYaw = ((alpha / 255f) * 360f * rotSpeed.get().floatValue());
yRotYaw = yRotYaw == 0 ? 0 : Render2DEngine.interpolateFloat(yRotYaw, yRotYaw - (((aSpeed.get() / 255f) * 360f * rotSpeed.get().floatValue())), Render3DEngine.getTickDelta());

matrices.multiply(RotationAxis.POSITIVE_Y.rotation(MathUtil.rad(180 - entity.bodyYaw + yRotYaw)));
prepareScale(matrices);

float limbSpeed = Math.min(entity.limbAnimator.getSpeed(), 1f);

entityRenderer.updateRenderState((AbstractClientPlayerEntity) entity, renderState, limbSpeed);

BufferBuilder buffer;
if (mode.get().equals(Mode.Textured)) {
RenderSystem.setShaderTexture(0, texture);
buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE);
} else {
buffer = Tessellator.getInstance().begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION);
}

RenderSystem.setShaderColor(color.get().r, color.get().g, color.get().b, alpha / 255f);

entityRenderer.render(renderState, matrices, mc.getBufferBuilders().getEntityVertexConsumers(), 1);
//modelBase.render(matrices, buffer, 10, 0);
endBuilding(buffer);
RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
matrices.pop();
}

public static void endBuilding(BufferBuilder bb) {
BuiltBuffer builtBuffer = bb.endNullable();
if (builtBuffer != null)
BufferRenderer.drawWithGlobalProgram(builtBuffer);
}

private static void prepareScale(@NotNull MatrixStack matrixStack) {
matrixStack.scale(-1.0F, -1.0F, 1.0F);
matrixStack.scale(1.6f, 1.8f, 1.6f);
matrixStack.translate(0.0F, -1.501F, 0.0F);
}

private class Person {
private final AbstractClientPlayerEntity player;
private Identifier texture;
private int alpha;

public Person(AbstractClientPlayerEntity player, Identifier texture) {
this.player = player;
alpha = color.get().a;
this.texture = texture;
}

public void update(CopyOnWriteArrayList<Person> arrayList) {
if (alpha <= 0) {
arrayList.remove(this);
player.kill(player.getServer().getWorld(player.getWorld().getRegistryKey()));
player.remove(Entity.RemovalReason.KILLED);
player.onRemoved();
return;
}
alpha -= aSpeed.get();
}

public Identifier getTexture() {
return texture;
}
}
}
Loading
Loading