Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

ArmorAlert | expensive 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2024
Сообщения
16
Реакции
0
В данной функции можно выбрать порог прочности брони для оповещения о поломке.
У кого нет Manag, просто удалите.


Пожалуйста, авторизуйтесь для просмотра ссылки.





Код:
Expand Collapse Copy
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;
}
}


}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Норм
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
код Manag:

Код:
Expand Collapse Copy
package fun.ellant.ui.notifi;

public class Manag {
    public static NotificationManager NOTIFICATION_MANAGER;
}
 
Штаны уже сломан
 
не работает нифига
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В данной функции можно выбрать порог прочности брони для оповещения о поломке.
У кого нет Manag, просто удалите.



Пожалуйста, авторизуйтесь для просмотра ссылки.





Код:
Expand Collapse Copy
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;
}
}


}
уже лучше notification или отрендерить новые что бы показывало картинку при мало хп на экране
 
скинь notifactionmanager
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Hpalert
сделайте под 3.1 я не могу пределать
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
где взять NotificationManager и manag
 

Похожие темы

Назад
Сверху Снизу