Начинающий
- Статус
- Оффлайн
- Регистрация
- 25 Янв 2024
- Сообщения
- 110
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
- OptiFine
- Прочие моды
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ss уже пофикшен на русское название
}
}```
Код:
package org.excellent.client.managers.module.impl.player;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraft.util.text.TextFormatting;
import org.excellent.client.api.annotations.Funtime;
import org.excellent.client.api.events.orbit.EventHandler;
import org.excellent.client.managers.events.player.UpdateEvent;
import org.excellent.client.managers.module.Category;
import org.excellent.client.managers.module.Module;
import org.excellent.client.managers.module.ModuleInfo;
import org.excellent.client.managers.module.settings.impl.BooleanSetting;
import org.excellent.client.utils.chat.ChatUtil;
import java.util.HashMap;
import java.util.Map;
[USER=18895]@FUNTIME[/USER]
[USER=270918]@Getter[/USER]
@Accessors(fluent = true)
@FieldDefaults(level = AccessLevel.PRIVATE)
@ModuleInfo(name = "PotionLogger", category = Category.MISC)
public class PotionLogger extends Module {
private static final Map<Effect, String> EFFECT_TRANSLATIONS = new HashMap<>() {{
put(Effects.SPEED, "Скорость");
put(Effects.STRENGTH, "Сила");
put(Effects.INSTANT_HEALTH, "Прилив Здоровья");
put(Effects.RESISTANCE, "Сопротивление");
put(Effects.HASTE, "Спешка");
put(Effects.REGENERATION, "Регенерация");
put(Effects.WITHER, "Иссушение");
put(Effects.POISON, "Отравление");
}};
private final BooleanSetting speedSetting = new BooleanSetting(this, "Скорость", true);
private final BooleanSetting strengthSetting = new BooleanSetting(this, "Сила", true);
private final BooleanSetting instantHealthSetting = new BooleanSetting(this, "Прилив Здоровья", true);
private final BooleanSetting resistanceSetting = new BooleanSetting(this, "Сопротивление", true);
private final BooleanSetting hasteSetting = new BooleanSetting(this, "Спешка", true);
private final BooleanSetting regenerationSetting = new BooleanSetting(this, "Регенерация", true);
private final BooleanSetting witherSetting = new BooleanSetting(this, "Иссушение", true);
private final BooleanSetting poisonSetting = new BooleanSetting(this, "Отравление", true);
private final BooleanSetting allEffectsSetting = new BooleanSetting(this, "Все Эффекты", false);
private final Map<String, Map<Effect, Integer>> playerPotionEffects = new HashMap<>();
public PotionLogger() {
allEffectsSetting.setVisible(() -> {
if (allEffectsSetting.getValue()) {
speedSetting.set(true);
strengthSetting.set(true);
instantHealthSetting.set(true);
resistanceSetting.set(true);
hasteSetting.set(true);
regenerationSetting.set(true);
witherSetting.set(true);
poisonSetting.set(true);
}
return true;
});
}
[USER=1489798]@EventHandler[/USER]
public void onUpdate(UpdateEvent event) {
if (mc.world == null || mc.player == null) return;
for (PlayerEntity player : mc.world.getPlayers()) {
if (player == mc.player) continue; // кто спросит зачем эта строчка А НАДО ТАК ПЕДИКИ УДАЛЯТЬ СЕБЯ ТО НУЖНО
Map<Effect, Integer> currentEffects = new HashMap<>();
for (EffectInstance activeEffect : player.getActivePotionEffects()) {
Effect effect = activeEffect.getPotion();
int amplifier = activeEffect.getAmplifier();
currentEffects.put(effect, amplifier);
Map<Effect, Integer> previousEffects = playerPotionEffects.getOrDefault(player.getName().getString(), new HashMap<>());
if (isEffectEnabled(effect) &&
(!previousEffects.containsKey(effect) ||
previousEffects.get(effect) != amplifier)) {
String effectName = EFFECT_TRANSLATIONS.getOrDefault(effect, effect.getName());
String message = String.format("%s%s%s получил эффект %s%s%s (Уровень %d)", // можете заменить на свой текст
TextFormatting.YELLOW, player.getName().getString(),
TextFormatting.WHITE,
TextFormatting.GREEN, effectName,
TextFormatting.WHITE,
amplifier + 1);
ChatUtil.addText(message);
}
}
playerPotionEffects.put(player.getName().getString(), currentEffects);
}
}
private boolean isEffectEnabled(Effect effect) {
if (allEffectsSetting.getValue()) return true;
if (effect == Effects.SPEED) return speedSetting.getValue();
if (effect == Effects.STRENGTH) return strengthSetting.getValue();
if (effect == Effects.INSTANT_HEALTH) return instantHealthSetting.getValue();
if (effect == Effects.RESISTANCE) return resistanceSetting.getValue();
if (effect == Effects.HASTE) return hasteSetting.getValue();
if (effect == Effects.REGENERATION) return regenerationSetting.getValue();
if (effect == Effects.WITHER) return witherSetting.getValue();
if (effect == Effects.POISON) return poisonSetting.getValue();
return false;
}```