Начинающий
- Статус
- Оффлайн
- Регистрация
- 27 Дек 2024
- Сообщения
- 100
- Реакции
- 0
Писал через чат Гпт тк сам ещё не умею можете помочь что не так
ClickActions работает, а вот код трайсеров не работает помогите кому не сложно
Tracers:
package im.geassclient.functions.impl.player;
import com.google.common.eventbus.Subscribe;
import im.geassclient.command.friends.FriendStorage;
import im.geassclient.events.EventKey;
import im.geassclient.events.EventUpdate;
import im.geassclient.functions.api.Category;
import im.geassclient.functions.api.Function;
import im.geassclient.functions.api.FunctionRegister;
import im.geassclient.functions.settings.impl.ModeSetting;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.TextComponent;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.AxisAlignedBB;
import java.util.List;
@FunctionRegister(name = "Tracers", type = Category.Player)
public class TracersFunction extends Function {
private ModeSetting tracersPlayer;
private ModeSetting tracersItems;
private ModeSetting tracersFriends;
public TracersFunction() {
super("Tracers", Category.Player);
tracersPlayer = new ModeSetting("Tracers for Players", "Включено", new String[]{"Включено", "Выключено"});
tracersItems = new ModeSetting("Tracers for Items", "Включено", new String[]{"Включено", "Выключено"});
tracersFriends = new ModeSetting("Tracers for Friends", "Включено", new String[]{"Включено", "Выключено"});
addSettings(tracersPlayer, tracersItems, tracersFriends);
}
@Subscribe
public void onKey(EventKey e) {
if (e.getKey() == 1) {
openContextMenu();
}
}
private void openContextMenu() {
print("Меню Tracers: Выберите настройки лучей.");
}
@Subscribe
public void onUpdate(EventUpdate e) {
if (tracersPlayer.get().equals("Включено")) {
renderTracersForPlayers(Minecraft.getInstance().world.getEntitiesWithinAABB(PlayerEntity.class, new AxisAlignedBB(-100, -100, -100, 100, 100, 100)));
}
if (tracersItems.get().equals("Включено")) {
renderTracersForItems(Minecraft.getInstance().world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(-100, -100, -100, 100, 100, 100)));
}
if (tracersFriends.get().equals("Включено")) {
renderTracersForFriends(FriendStorage.getFriends());
}
}
private void renderTracersForPlayers(List<PlayerEntity> players) {
for (PlayerEntity player : players) {
Vector3d playerPosition = player.getPositionVec();
System.out.println("Отрисовываем луч к игроку: " + player.getName().getString());
}
}
private void renderTracersForItems(List<ItemEntity> items) {
for (ItemEntity item : items) {
Vector3d itemPosition = item.getPositionVec();
System.out.println("Отрисовываем луч к предмету: " + item.getDisplayName().getString());
}
}
private void renderTracersForFriends(List<String> friends) {
for (String friendName : friends) {
PlayerEntity friend = Minecraft.getInstance().world.getPlayerByUuid(FriendStorage.getFriendUuid(friendName));
if (friend != null) {
Vector3d friendPosition = friend.getPositionVec();
System.out.println("Отрисовываем луч к другу: " + friend.getName().getString());
} else {
print("Не удалось найти друга с именем: " + friendName);
}
}
}
private void print(String message) {
if (Minecraft.getInstance().player != null) {
Minecraft.getInstance().player.sendMessage(new TextComponent(message), Minecraft.getInstance().player.getUuid());
}
}
}
ClickActions:
package im.geassclient.functions.impl.player;
import com.google.common.eventbus.Subscribe;
import im.geassclient.command.friends.FriendStorage;
import im.geassclient.events.EventKey;
import im.geassclient.events.EventMotion;
import im.geassclient.events.EventPacket;
import im.geassclient.events.EventUpdate;
import im.geassclient.functions.api.Category;
import im.geassclient.functions.api.Function;
import im.geassclient.functions.api.FunctionRegister;
import im.geassclient.functions.settings.impl.BindSetting;
import im.geassclient.functions.settings.impl.ModeSetting;
import im.geassclient.utils.math.StopWatch;
import im.geassclient.utils.player.InventoryUtil;
import im.geassclient.utils.player.PlayerUtils;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.EnderPearlItem;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ClickActions", type = Category.Player)
public class ClickActions extends Function {
final BindSetting throwKey = new BindSetting("Кнопка", -98);
final ModeSetting clickPearl = new ModeSetting("ClickPearl", "Включено", new String[]{"Включено", "Выключено"});
final ModeSetting clickFriend = new ModeSetting("ClickFriend", "Включено", new String[]{"Включено", "Выключено"});
final StopWatch stopWatch = new StopWatch();
final InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
private final ItemCooldown itemCooldown = new ItemCooldown();
long delay;
boolean throwPearl;
public ClickActions() {
super("ClickActions", Category.Player);
addSettings(throwKey, clickPearl, clickFriend);
}
@Subscribe
public void onKey(EventKey e) {
if (e.getKey() == throwKey.get()) {
if (clickFriend.get().equals("Включено")) {
handleFriendInteraction();
}
if (clickPearl.get().equals("Включено")) {
throwPearl = true;
}
}
}
private void handleFriendInteraction() {
if (mc.pointedEntity instanceof PlayerEntity) {
String playerName = mc.pointedEntity.getName().getString();
if (!PlayerUtils.isNameValid(playerName)) {
print("Невозможно добавить бота в друзья, увы, как бы вам не хотелось это сделать");
return;
}
if (FriendStorage.isFriend(playerName)) {
FriendStorage.remove(playerName);
printStatus(playerName, true);
} else {
FriendStorage.add(playerName);
printStatus(playerName, false);
}
}
}
@Subscribe
private void onMotion(EventMotion e) {
if (throwPearl && clickPearl.get().equals("Включено")) {
if (!mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
boolean isOffhandEnderPearl = mc.player.getHeldItemOffhand().getItem() instanceof EnderPearlItem;
if (isOffhandEnderPearl) {
mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
mc.player.swingArm(Hand.MAIN_HAND);
} else {
int slot = findPearlAndThrow();
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
}
throwPearl = false;
}
}
@Subscribe
private void onUpdate(EventUpdate e) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
}
@Subscribe
private void onPacket(EventPacket e) {
this.handUtil.onEventPacket(e);
}
private int findPearlAndThrow() {
int hbSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.ENDER_PEARL, true);
if (hbSlot != -1) {
this.handUtil.setOriginalSlot(mc.player.inventory.currentItem);
if (hbSlot != mc.player.inventory.currentItem) {
mc.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
}
mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
mc.player.swingArm(Hand.MAIN_HAND);
updateItemCooldown();
if (hbSlot != mc.player.inventory.currentItem) {
mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
}
this.delay = System.currentTimeMillis();
return hbSlot;
}
int invSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.ENDER_PEARL, false);
if (invSlot != -1) {
this.handUtil.setOriginalSlot(mc.player.inventory.currentItem);
mc.playerController.pickItem(invSlot);
mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
mc.player.swingArm(Hand.MAIN_HAND);
updateItemCooldown();
this.delay = System.currentTimeMillis();
return invSlot;
}
return -1;
}
private void updateItemCooldown() {
itemCooldown.updateItemCooldown(Items.ENDER_PEARL);
}
void printStatus(String name, boolean remove) {
if (remove) {
print(name + " удалён из друзей");
} else {
print(name + " добавлен в друзья");
}
}
[USER=1367676]@override[/USER]
public void onDisable() {
throwPearl = false;
delay = 0;
super.onDisable();
}
}