Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Сен 2024
- Сообщения
- 326
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
Кто сможет тот нормально перенесёт, всем удачи!
AutoSwap:
package vesencePackage.main.module.impl.combat;
import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;
@ModuleRegister(
name = "Auto Swap",
type = Category.Combat,
desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);
public AutoSwap() {
addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
}
private final SwapHelpers swaps = new SwapHelpers();
private boolean swap;
private boolean hand;
public final StopWatchShadow swapWatch = new StopWatchShadow();
private boolean bypassActive;
private boolean bypassSwapped;
private int bypassSlot = -1;
private String bypassItemName = "";
@Subscribe
public void update(EventUpdate event) {
if (bypassActive) {
if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
mc.player.connection.sendPacket(new CCloseWindowPacket());
if (swaprender.getValue()) {
String itemName = getOffhandItemName();
if(itemName.contains("Тотем бессмертия")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 250, 85) + itemName,
"",
2
);
} else {
if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(173, 124, 87) + itemName,
"",
2
);
} else {
if(itemName.contains("Золотое яблоко")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 227, 156) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Огня")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 116, 94) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Воды")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(94, 116, 255) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Земли")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 143, 69) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Света")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 230, 69) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Порядка")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(236, 69, 255) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Хаоса")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(86, 21, 130) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Хаоса")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 255, 255) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар Д.Хелпера")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 143, 69) + itemName,
"",
2
);
} else {
if(itemName.contains("Тигринная голова")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 143, 69) + itemName,
"",
2
);
} else {
if(itemName.contains("Голова Дракулы")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 116, 94) + itemName,
"",
2
);
} else {
if(itemName.contains("Шар BUNNY")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(115, 115, 115) + itemName,
"",
2
);
} else {
if(itemName.contains("Пасхальное Яйцо")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 230, 69) + itemName,
"",
2
);
} else {
if(itemName.contains("Голова Гидры")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(92, 224, 83) + itemName,
"",
2
);
} else {
if(itemName.contains("Голова Кобры")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(48, 130, 42) + itemName,
"",
2
);
} else {
if(itemName.contains("ШАР БОГА")) {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 255, 255) + itemName,
"",
2
);
} else {
NotifySystem.NOTIFICATION_MANAGER.add(
"Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + " | " +
ColorFormatting.getColor(255, 255, 255) + itemName,
"",
2
);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
bypassSwapped = true;
}
if (swapWatch.hasTimeElapsed(80)) {
MovementManager.getInstance().unlockMovement("AutoSwap");
bypassActive = false;
bypassSwapped = false;
bypassSlot = -1;
bypassItemName = "";
}
return;
}
if (this.swap && this.hand) {
if (this.firstItemSetting.getValue().equals("Шар")) {
this.swap(Items.PLAYER_HEAD, "Шар", false);
} else if (this.firstItemSetting.getValue().equals("Тотем")) {
this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
} else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
} else if (this.firstItemSetting.getValue().equals("Щит")) {
this.swap(Items.SHIELD, "Щит", false);
}
this.hand = false;
}
if (this.swap) {
if (this.secondItemSetting.getValue().equals("Шар")) {
this.swap(Items.PLAYER_HEAD, "Шар", false);
} else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
} else if (this.secondItemSetting.getValue().equals("Тотем")) {
this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
} else if (this.secondItemSetting.getValue().equals("Щит")) {
this.swap(Items.SHIELD, "Щит", false);
}
this.hand = true;
}
}
@Subscribe
public void input(EventKey event) {
this.swap = event.isKeyDown(bind.getValue());
}
private boolean hasHeadOnHead() {
return mc.player != null && mc.player.inventory != null &&
mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
}
private boolean canSwapToItem(Item item) {
if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
return false;
}
return true;
}
private int findItemSlot(Item item, boolean onlyEnchanted) {
if (item == Items.PLAYER_HEAD) {
for (int i = 0; i < 36; i++) {
if (i != 103 - 36) {
if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
return i;
}
}
}
return -1;
} else if (item == Items.TOTEM_OF_UNDYING) {
return this.swaps.find(item, false, onlyEnchanted);
} else {
return this.swaps.find(item);
}
}
private String getOffhandItemName() {
if (mc.player == null || mc.player.inventory == null) return "Предмет";
ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
if (offhandStack.isEmpty()) return "Пусто";
return offhandStack.getDisplayName().getString();
}
private void swap(Item item, String itemName, boolean onlyEnchanted) {
if (!canSwapToItem(item)) {
this.swap = false;
if (swaprender.getValue()) {
NotifySystem.NOTIFICATION_MANAGER.add(
"AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
);
}
return;
}
if (LockManager.isLocked()) {
this.swap = false;
return;
}
int slot = findItemSlot(item, onlyEnchanted);
if (slot == -1) {
this.swap = false;
return;
}
if (this.mode.getValue().equals("Стандарт")) {
mc.playerController.windowClick(
0,
slot < 9 ? slot + 36 : slot,
40,
ClickType.SWAP,
mc.player
);
mc.player.connection.sendPacket(new CCloseWindowPacket());
if (swaprender.getValue()) {
String itemNameDisplay = getOffhandItemName();
NotifySystem.NOTIFICATION_MANAGER.add(
"Произошёл свап!" + ColorFormatting.getColor(65,65,65) + " | " +
ColorFormatting.getColor(138,204,84) + itemNameDisplay,
"",
2
);
}
this.swap = false;
}
if (this.mode.getValue().equals("Новый")) {
MovementManager.getInstance().lockMovement("AutoSwap");
bypassActive = true;
bypassSwapped = false;
bypassSlot = slot;
swapWatch.reset();
this.swap = false;
}
}
public boolean isMoving() {
return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
}
}
Кто сможет тот нормально перенесёт, всем удачи!