Начинающий
- Статус
- Оффлайн
- Регистрация
- 13 Дек 2025
- Сообщения
- 24
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
добавил зельки и снежок заморозку
code:
сса нету сорян, я не хочу ласт деньги на фп тратить
code:
codes:
package im.temch1k.functions.impl.misc;
import com.google.common.eventbus.Subscribe;
import im.temch1k.events.EventKey;
import im.temch1k.events.EventPacket;
import im.temch1k.events.EventUpdate;
import im.temch1k.functions.api.Category;
import im.temch1k.functions.api.Function;
import im.temch1k.functions.api.FunctionRegister;
import im.temch1k.functions.settings.impl.BindSetting;
import im.temch1k.functions.settings.impl.BooleanSetting;
import im.temch1k.functions.settings.impl.ModeListSetting;
import im.temch1k.utils.client.ClientUtil;
import im.temch1k.utils.math.StopWatch;
import im.temch1k.utils.player.InventoryUtil;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static net.optifine.util.ItemUtils.getItem;
@FunctionRegister(name = "FThelper", type = Category.Misc)
public class FThelper extends Function {
private final ModeListSetting mode = new ModeListSetting("Тип",
new BooleanSetting("Использование по бинду", true),
new BooleanSetting("Закрывать меню", true));
private final BindSetting disorientationKey = new BindSetting("Кнопка дезорента", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting shulkerKey = new BindSetting("Кнопка шалкера", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting trapKey = new BindSetting("Кнопка трапки", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting flameKey = new BindSetting("Кнопка смерча", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting blatantKey = new BindSetting("Кнопка явки", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting bowKey = new BindSetting("Кнопка арбалета", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting zamorozkaKey = new BindSetting("Кнопка заморозки", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting plastKey = new BindSetting("Кнопка пласта", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting xlopyshkaKey = new BindSetting("Кнопка хлопушки", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting svatvodaKey = new BindSetting("Кнопка святой воды", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting gnevkaKey = new BindSetting("Кнопка зельки гнева", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting paladinKey = new BindSetting("Кнопка зельки паладина", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting assasinKey = new BindSetting("Кнопка зельки ассасина", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting radiaciaKey = new BindSetting("Кнопка зельки радиации", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting snotvornoeKey = new BindSetting("Кнопка снотворного", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
private final BindSetting bojkaKey = new BindSetting("Кнопка божки", -1)
.setVisible(() -> mode.getValueByName("Использование по бинду").get());
final StopWatch stopWatch = new StopWatch();
InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
long delay;
boolean disorientationThrow, trapThrow, flameThrow, bojkaThrow, blatantThrow, zamorozkaThrow, xlopyshkaThrow, snotvornoeThrow, radiaciaThrow, assasinThrow, svatvodaThrow, gnevkaThrow, paladinThrow, bowThrow, plastThrow, shulkerThrow;
public FThelper() {
addSettings(mode, disorientationKey, bojkaKey, xlopyshkaKey, snotvornoeKey, radiaciaKey, assasinKey, svatvodaKey, gnevkaKey, paladinKey, trapKey, flameKey, blatantKey, bowKey, zamorozkaKey, plastKey, shulkerKey);
}
@Subscribe
private void onKey(EventKey e) {
if (e.getKey() == disorientationKey.get()) {
disorientationThrow = true;
}
if (e.getKey() == shulkerKey.get()) {
shulkerThrow = true;
}
if (e.getKey() == zamorozkaKey.get()) {
zamorozkaThrow = true;
}
if (e.getKey() == trapKey.get()) {
trapThrow = true;
}
if (e.getKey() == flameKey.get()) {
flameThrow = true;
}
if (e.getKey() == blatantKey.get()) {
blatantThrow = true;
}
if (e.getKey() == bowKey.get()) {
bowThrow = true;
}
if (e.getKey() == plastKey.get()) {
plastThrow = true;
}
if (e.getKey() == xlopyshkaKey.get()) {
xlopyshkaThrow = true;
}
if (e.getKey() == snotvornoeKey.get()) {
snotvornoeThrow = true;
}
if (e.getKey() == radiaciaKey.get()) {
radiaciaThrow = true;
}
if (e.getKey() == assasinKey.get()) {
assasinThrow = true;
}
if (e.getKey() == svatvodaKey.get()) {
svatvodaThrow = true;
}
if (e.getKey() == gnevkaKey.get()) {
gnevkaThrow = true;
}
if (e.getKey() == paladinKey.get()) {
paladinThrow = true;
}
if (e.getKey() == bojkaKey.get()) {
bojkaThrow = true;
}
}
@Subscribe
private void onUpdate(EventUpdate e) {
if (disorientationThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("дезориентация", true);
int invSlot = getItemForName("дезориентация", false);
if (invSlot == -1 && hbSlot == -1) {
print("Дезориентация не найдена!");
disorientationThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.ENDER_EYE)) {
print("Заюзал дезориентацию!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
disorientationThrow = false;
}
if (bojkaThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("божья аура", true);
int invSlot = getItemForName("божья аура", false);
if (invSlot == -1 && hbSlot == -1) {
print("Божья аура не найдена!");
bojkaThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.PHANTOM_MEMBRANE)) {
print("Заюзал божку!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
bojkaThrow = false;
}
if (xlopyshkaThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Хлопушка", true);
int invSlot = getItemForName("Хлопушка", false);
if (invSlot == -1 && hbSlot == -1) {
print("Хлопушка не найдена!");
xlopyshkaThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал хлопушку!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
xlopyshkaThrow = false;
}
if (svatvodaThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Святая вода", true);
int invSlot = getItemForName("Святая вода", false);
if (invSlot == -1 && hbSlot == -1) {
print("Святая вода не найдена!");
svatvodaThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал святую воду!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
svatvodaThrow = false;
}
if (gnevkaThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Зелье гнева", true);
int invSlot = getItemForName("Зелье гнева", false);
if (invSlot == -1 && hbSlot == -1) {
print("Зелька гнева не найдена!");
gnevkaThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал гневку!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
gnevkaThrow = false;
}
if (paladinThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Зелье палладина", true);
int invSlot = getItemForName("Зелье палладина", false);
if (invSlot == -1 && hbSlot == -1) {
print("Зелье палладина не найдена!");
paladinThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал палладинку!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
paladinThrow = false;
}
if (assasinThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Зелье ассасина", true);
int invSlot = getItemForName("Зелье ассасина", false);
if (invSlot == -1 && hbSlot == -1) {
print("Зелье ассасина не найдена!");
assasinThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал ассасинку!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
assasinThrow = false;
}
if (radiaciaThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Зелье радиации", true);
int invSlot = getItemForName("Зелье радиации", false);
if (invSlot == -1 && hbSlot == -1) {
print("Зелье радиации не найдена!");
radiaciaThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал радиацию!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
radiaciaThrow = false;
}
if (snotvornoeThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("Снотворное", true);
int invSlot = getItemForName("Снотворное", false);
if (invSlot == -1 && hbSlot == -1) {
print("Снотворное не найдена!");
snotvornoeThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
print("Заюзал снотворное!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
snotvornoeThrow = false;
}
if (disorientationThrow) {
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
int hbSlot = getItemForName("дезориентация", true);
int invSlot = getItemForName("дезориентация", false);
if (invSlot == -1 && hbSlot == -1) {
print("Дезориентация не найдена!");
disorientationThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.ENDER_EYE)) {
print("Заюзал дезориентацию!");
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
}
disorientationThrow = false;
}
if (shulkerThrow) {
// САЛАТ СПАСАЙ
int hbSlot = getItemForName("ящик", true); // мега поиск ящика
int invSlot = getItemForName("ящик", false); // мега поиск ящика
if (invSlot == -1 && hbSlot == -1) {
print("Шалкер не найден");
trapThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.SHULKER_BOX)) {
print("Заюзал шалкер!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
shulkerThrow = false;
}
if (trapThrow) {
int hbSlot = getItemForName("трапка", true);
int invSlot = getItemForName("трапка", false);
if (invSlot == -1 && hbSlot == -1) {
print("Трапка не найдена");
trapThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.NETHERITE_SCRAP)) {
print("Заюзал трапку!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
trapThrow = false;
}
if (flameThrow) {
int hbSlot = getItemForName("огненный", true);
int invSlot = getItemForName("огненный", false);
if (invSlot == -1 && hbSlot == -1) {
print("Огненный смерч не найден");
flameThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
print("Заюзал огненный смерч!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
flameThrow = false;
}
if (bowThrow) {
int hbSlot = getItemForName("арбалет", true);
int invSlot = getItemForName("арбалет", false);
if (invSlot == -1 && hbSlot == -1) {
print("Арбалет не найден");
bowThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.CROSSBOW)) {
print("Заюзал арбалет!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
bowThrow = false;
}
if (plastThrow) {
int hbSlot = getItemForName("пласт", true);
int invSlot = getItemForName("пласт", false);
if (invSlot == -1 && hbSlot == -1) {
print("Пласт не найден");
plastThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.DRIED_KELP)) {
print("Заюзал пласт!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
plastThrow = false;
}
if (blatantThrow) {
int hbSlot = getItemForName("явная", true);
int invSlot = getItemForName("явная", false);
if (invSlot == -1 && hbSlot == -1) {
print("Явная пыль не найдена");
blatantThrow = false;
return;
}
if (!mc.player.getCooldownTracker().hasCooldown(Items.TNT)) {
print("Заюзал явную пыль!");
int old = mc.player.inventory.currentItem;
int slot = findAndTrowItem(hbSlot, invSlot);
if (slot > 8) {
mc.playerController.pickItem(slot);
}
if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
mc.player.inventory.currentItem = old;
}
}
blatantThrow = false;
}
this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
}
@Subscribe
private void onPacket(EventPacket e) {
this.handUtil.onEventPacket(e);
}
private int findAndTrowItem(int hbSlot, int invSlot) {
if (hbSlot != -1) {
this.handUtil.setOriginalSlot(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);
this.delay = System.currentTimeMillis();
return hbSlot;
}
if (invSlot != -1) {
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);
this.delay = System.currentTimeMillis();
return invSlot;
}
return -1;
}
@Override
public void onDisable() {
disorientationThrow = false;
trapThrow = false;
flameThrow = false;
blatantThrow = false;
plastThrow = false;
bowThrow = false;
zamorozkaThrow = false;
xlopyshkaThrow = false;
gnevkaThrow = false;
paladinThrow = false;
svatvodaThrow = false;
radiaciaThrow = false;
assasinThrow = false;
snotvornoeThrow = false;
bojkaThrow = false;
delay = 0;
super.onDisable();
}
private int getItemForName(String name, boolean inHotBar) {
int firstSlot = inHotBar ? 0 : 9;
int lastSlot = inHotBar ? 9 : 36;
for (int i = firstSlot; i < lastSlot; i++) {
ItemStack itemStack = mc.player.inventory.getStackInSlot(i);
if (itemStack.getItem() instanceof AirItem) {
continue;
}
String displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString());
if (displayName != null && displayName.toLowerCase().contains(name)) {
return i;
}
}
return -1;
}
}
}
Последнее редактирование: