Начинающий
- Статус
- Оффлайн
- Регистрация
- 9 Май 2023
- Сообщения
- 59
- Реакции
- 1
- Выберите загрузчик игры
- Vanilla
Короче ловите фикс для AutoSwap на Excellent Omni, была залупа с тем что оно просто не свапало тотем на тотем и т.д. 
Жду это в великой пасте NightDlc
Думая ss не нужен :|

Жду это в великой пасте NightDlc

Думая ss не нужен :|
AutoSwap:
package org.sheluvparis.excellent.client.impl.feature.impl.combat;
import lombok.Getter;
import lombok.experimental.Accessors;
import net.minecraft.item.AirItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import org.sheluvparis.common.events.orbit.EventHandler;
import org.sheluvparis.excellent.client.events.input.KeyboardPressEvent;
import org.sheluvparis.excellent.client.events.input.MousePressEvent;
import org.sheluvparis.excellent.client.impl.feature.Category;
import org.sheluvparis.excellent.client.impl.feature.Feature;
import org.sheluvparis.excellent.client.impl.feature.FeatureInfo;
import org.sheluvparis.excellent.client.impl.settings.impl.BindSetting;
import org.sheluvparis.excellent.client.impl.settings.impl.ModeSetting;
import org.sheluvparis.excellent.client.util.math.StopWatch;
import org.sheluvparis.excellent.client.util.player.InvUtil;
@Getter
@Accessors(fluent = true)
@FeatureInfo(name = "AutoSwap", description = "Меняет местами 2 предмета по нажатию одной кнопки", category = Category.COMBAT)
public class AutoSwap extends Feature {
private final ModeSetting item = new ModeSetting("Предмет", "Шар", "Тотем", "Щит", "Гепл").set("Щит");
private final ModeSetting swap = new ModeSetting("Свапать на", "На шар", "На тотем", "На щит", "На гепл").set("На гепл");
private final BindSetting keyBind = new BindSetting("Клавиша для свапа");
private final StopWatch stopWatch = new StopWatch();
@EventHandler
public void onKeyboardPress(KeyboardPressEvent event) {
if (mc.currentScreen != null) return;
if (event.isKey(keyBind.get())) {
handleSwap();
}
}
@EventHandler
public void onMousePress(MousePressEvent event) {
if (mc.currentScreen != null) return;
if (event.isKey(keyBind.get())) {
handleSwap();
}
}
private void handleSwap() {
if (!stopWatch.finished(200)) {
return;
}
ItemStack offhandItemStack = mc.player.getHeldItemOffhand();
Item selectedItem = getItemForMode(item);
Item swapItem = getItemForMode(swap);
if (offhandItemStack.getItem() == selectedItem) {
performSwap(swapItem);
} else if (offhandItemStack.getItem() == swapItem) {
performSwap(selectedItem);
} else {
performSwap(selectedItem);
}
}
private void performSwap(Item targetItem) {
int targetSlot = getSlot(targetItem);
if (targetSlot >= 0) {
boolean isOffhandNotEmpty = !(mc.player.getHeldItemOffhand().getItem() instanceof AirItem);
InvUtil.moveItem(targetSlot, 45, isOffhandNotEmpty);
stopWatch.reset();
}
}
private Item getItemForMode(ModeSetting mode) {
switch (mode.get()) {
case "Шар": return Items.PLAYER_HEAD;
case "Тотем": return Items.TOTEM_OF_UNDYING;
case "Щит": return Items.SHIELD;
case "Гепл": return Items.GOLDEN_APPLE;
default: return Items.AIR;
}
}
// Есть только миг, за него и держись
// When she twerked i am like a bottle of jizz
private int getSlot(Item item) {
for (int i = 0; i < 36; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
if (i < 9) {
return i + 36;
}
return i;
}
}
return -1;
}
}