-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
В данной функции можно выбрать порог прочности брони для оповещения о поломке.
У кого нет Manag, просто удалите.
У кого нет Manag, просто удалите.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
package xii.infinity.client.functions.impl.misc;
import com.google.common.eventbus.Subscribe;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import xii.infinity.client.events.EventUpdate;
import xii.infinity.client.functions.api.Category;
import xii.infinity.client.functions.api.Function;
import xii.infinity.client.functions.api.FunctionRegister;
import xii.infinity.client.functions.api.Manag;
import xii.infinity.client.functions.impl.render.NotificationManager;
import xii.infinity.client.functions.settings.impl.BooleanSetting;
import xii.infinity.client.functions.settings.impl.ModeListSetting;
import xii.infinity.client.functions.settings.impl.SliderSetting;
import xii.infinity.client.utils.client.IMinecraft;
@Getter
@FunctionRegister(name = "ArmorAlert", type = Category.Misc)
public class ArmorAlert extends Function implements IMinecraft {
private final ModeListSetting modes = new ModeListSetting("Тип",
new BooleanSetting("Шлем", true),
new BooleanSetting("Нагрудник", true),
new BooleanSetting("Штаны", true),
new BooleanSetting("Ботинки", true));
private final SliderSetting proch = new SliderSetting("Порог прочности", 70, 1, 100, 10);
private final BooleanSetting notification = new BooleanSetting("Notification", true);
private boolean hel = false;
private boolean ches = false;
private boolean leg = false;
private boolean boot = false;
public ArmorAlert() {
addSettings(modes, proch, notification);
}
@Subscribe
private void onUpdate(EventUpdate e) {
PlayerEntity player = Minecraft.getInstance().player;
if (player == null) return;
checkArmorDurability(player);
}
private void checkArmorDurability(PlayerEntity player) {
ItemStack helmet = player.getItemStackFromSlot(EquipmentSlotType.HEAD);
ItemStack chestplate = player.getItemStackFromSlot(EquipmentSlotType.CHEST);
ItemStack leggings = player.getItemStackFromSlot(EquipmentSlotType.LEGS);
ItemStack boots = player.getItemStackFromSlot(EquipmentSlotType.FEET);
checkArmorPiece(helmet, "Шлем", hel);
checkArmorPiece(chestplate, "Нагрудник", ches);
checkArmorPiece(leggings, "Штаны", leg);
checkArmorPiece(boots, "Ботинки", boot);
}
private void checkArmorPiece(ItemStack piece, String name, boolean alerted) {
if (modes.getValueByName(name).get() && piece.isDamageable() && piece.getDamage() >= piece.getMaxDamage() - proch.get() && !alerted) {
print("Внимание! " + name + " почти сломан!");
setAlerted(name, true);
if (notification.get()) {
Manag.NOTIFICATION_MANAGER.add("Внимание! " + name + " почти сломан!", "", 2, NotificationManager.ImageType.FIRST_PHOTO);
}
} else if (piece.getDamage() < piece.getMaxDamage() - proch.get()) {
setAlerted(name, false);
}
}
private void setAlerted(String name, boolean value) {
switch (name) {
case "Шлем":
hel = value;
break;
case "Нагрудник":
ches = value;
break;
case "Штаны":
leg = value;
break;
case "Ботинки":
boot = value;
break;
}
}
}