Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Июн 2024
- Сообщения
- 4
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
Пожалуйста, авторизуйтесь для просмотра ссылки.
JavaScript:
package clanpasters.module.impl.misc;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import clanpasters.control.Manager;
import clanpasters.control.events.client.Event;
import clanpasters.control.events.player.EventDestroyTotem;
import clanpasters.control.events.player.EventUpdate;
import clanpasters.module.TypeList;
import clanpasters.module.api.Annotation;
import clanpasters.module.api.Module;
import clanpasters.module.settings.Setting;
import clanpasters.module.settings.imp.BooleanOption;
import clanpasters.module.settings.imp.MultiBoxSetting;
import clanpasters.module.settings.imp.SliderSetting;
import clanpasters.utils.misc.TimerUtil;
import clanpasters.utils.other.OtherUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionUtils;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.TranslationTextComponent;
@Annotation(
name = "InventoryAnaliz",
desc = "Анализирует инв игрока",
type = TypeList.Misc
)
public class InventoryAnaliz extends Module {
private final MultiBoxSetting mode = new MultiBoxSetting("Предметы", new BooleanOption[]{new BooleanOption("Кристаллы", true), new BooleanOption("Обсидиан", true), new BooleanOption("Паутина", true), new BooleanOption("Чарки", true), new BooleanOption("Зелье", true)});
public final BooleanOption totemco = new BooleanOption("Снос таликов", true);
public final BooleanOption friendignor = new BooleanOption("Игнор друзей", true);
private final SliderSetting clear = new SliderSetting("Очистка", 1.0F, 1.0F, 3.0F, 1.0F);
private final Map<String, TimerUtil> playerTimers = new ConcurrentHashMap();
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public InventoryAnaliz() {
this.addSettings(new Setting[]{this.mode, this.totemco, this.friendignor});
}
public boolean onEvent(Event event) {
if (event instanceof EventUpdate) {
long currentTime = System.currentTimeMillis();
Iterator var5 = mc.world.getPlayers().iterator();
label149:
while(true) {
PlayerEntity player;
String playerName;
do {
do {
if (!var5.hasNext()) {
return false;
}
player = (PlayerEntity)var5.next();
Minecraft var10001 = mc;
} while(player == Minecraft.player);
playerName = player.getName().getString();
} while(this.friendignor.get() && Manager.FRIEND_MANAGER.isFriend(playerName));
TimerUtil playerTimer = (TimerUtil)this.playerTimers.computeIfAbsent(playerName, (k) -> {
return new TimerUtil();
});
int crystalCount = 0;
Iterator var10 = player.inventory.mainInventory.iterator();
while(var10.hasNext()) {
ItemStack itemStack = (ItemStack)var10.next();
if (itemStack.getItem() == Items.END_CRYSTAL) {
crystalCount += itemStack.getCount();
}
}
int obsidianCount = 0;
Iterator var19 = player.inventory.mainInventory.iterator();
while(var19.hasNext()) {
ItemStack itemStack = (ItemStack)var19.next();
if (itemStack.getItem() == Items.OBSIDIAN) {
obsidianCount += itemStack.getCount();
}
}
int webCount = 0;
Iterator var21 = player.inventory.mainInventory.iterator();
while(var21.hasNext()) {
ItemStack itemStack = (ItemStack)var21.next();
if (itemStack.getItem() == Items.COBWEB) {
webCount += itemStack.getCount();
}
}
int enchantCount = 0;
Iterator var23 = player.inventory.mainInventory.iterator();
while(var23.hasNext()) {
ItemStack itemStack = (ItemStack)var23.next();
if (itemStack.getItem() == Items.ENCHANTED_GOLDEN_APPLE) {
enchantCount += itemStack.getCount();
}
}
int potionCount = 0;
String potionDisplayName = "зелий";
Iterator var15 = player.inventory.mainInventory.iterator();
while(true) {
ItemStack itemStack;
do {
if (!var15.hasNext()) {
String var10000;
if (this.mode.get(0) && crystalCount > 0 && playerTimer.isReached(26000L)) {
var10000 = String.valueOf(TextFormatting.RED);
OtherUtil.sendMessage("Игрок " + var10000 + playerName + String.valueOf(TextFormatting.WHITE) + " имеет " + String.valueOf(TextFormatting.RED) + crystalCount + String.valueOf(TextFormatting.WHITE) + " кристаллов");
playerTimer.reset();
this.scheduleClear(playerName);
}
if (this.mode.get(1) && obsidianCount > 0 && playerTimer.isReached(26000L)) {
var10000 = String.valueOf(TextFormatting.RED);
OtherUtil.sendMessage("Игрок " + var10000 + playerName + String.valueOf(TextFormatting.WHITE) + " имеет " + String.valueOf(TextFormatting.RED) + obsidianCount + String.valueOf(TextFormatting.WHITE) + " обсидиана");
playerTimer.reset();
this.scheduleClear(playerName);
}
if (this.mode.get(2) && webCount > 0 && playerTimer.isReached(26000L)) {
var10000 = String.valueOf(TextFormatting.RED);
OtherUtil.sendMessage("Игрок " + var10000 + playerName + String.valueOf(TextFormatting.WHITE) + " имеет " + String.valueOf(TextFormatting.RED) + webCount + String.valueOf(TextFormatting.WHITE) + " паутины");
playerTimer.reset();
this.scheduleClear(playerName);
}
if (this.mode.get(3) && enchantCount > 0 && playerTimer.isReached(26000L)) {
var10000 = String.valueOf(TextFormatting.RED);
OtherUtil.sendMessage("Игрок " + var10000 + playerName + String.valueOf(TextFormatting.WHITE) + " имеет " + String.valueOf(TextFormatting.RED) + enchantCount + String.valueOf(TextFormatting.WHITE) + " чарки");
playerTimer.reset();
this.scheduleClear(playerName);
}
if (this.mode.get(4) && potionCount > 0 && playerTimer.isReached(26000L)) {
var10000 = String.valueOf(TextFormatting.RED);
OtherUtil.sendMessage("Игрок " + var10000 + playerName + String.valueOf(TextFormatting.WHITE) + " имеет " + String.valueOf(TextFormatting.RED) + potionCount + String.valueOf(TextFormatting.RESET) + " " + potionDisplayName.toLowerCase());
playerTimer.reset();
this.scheduleClear(playerName);
}
continue label149;
}
itemStack = (ItemStack)var15.next();
} while(itemStack.getItem() != Items.POTION && itemStack.getItem() != Items.SPLASH_POTION);
potionCount += itemStack.getCount();
if (itemStack.hasDisplayName()) {
potionDisplayName = itemStack.getDisplayName().getString();
} else {
potionDisplayName = this.getPotionDisplayName(itemStack);
}
}
}
} else if (event instanceof EventDestroyTotem) {
EventDestroyTotem e = (EventDestroyTotem)event;
if (this.totemco.get()) {
Entity entity = e.entity;
String playerName = entity.getName().getString();
if (this.friendignor.get() && Manager.FRIEND_MANAGER.isFriend(playerName)) {
return false;
}
if (entity instanceof LivingEntity) {
this.totem_tracker((LivingEntity)entity);
}
}
}
return false;
}
private void totem_tracker(LivingEntity entity) {
if (entity.getHeldItemMainhand().getItem() == Items.TOTEM_OF_UNDYING && entity.getHeldItemMainhand().isEnchanted()) {
this.message_totem_tracker(entity.getHeldItemMainhand(), entity);
} else if (entity.getHeldItemOffhand().getItem() == Items.TOTEM_OF_UNDYING && entity.getHeldItemOffhand().isEnchanted() && entity.getHeldItemMainhand().getItem() != Items.TOTEM_OF_UNDYING) {
this.message_totem_tracker(entity.getHeldItemOffhand(), entity);
}
}
private void message_totem_tracker(ItemStack stack, LivingEntity entity) {
ITextComponent message = (new StringTextComponent("")).append((new StringTextComponent("Игрок ")).setStyle((new StringTextComponent("")).getStyle().applyFormatting(TextFormatting.WHITE))).append((new StringTextComponent(entity.getName().getString())).setStyle((new StringTextComponent("")).getStyle().applyFormatting(TextFormatting.RED))).append((new StringTextComponent(" потерял ")).setStyle((new StringTextComponent("")).getStyle().applyFormatting(TextFormatting.WHITE))).append(stack.getDisplayName());
OtherUtil.sendMessage((ITextComponent)message);
}
private void scheduleClear(String playerName) {
this.scheduler.schedule(() -> {
return (TimerUtil)this.playerTimers.remove(playerName);
}, (long)this.clear.getValue().intValue(), TimeUnit.MINUTES);
}
private String getPotionDisplayName(ItemStack potionStack) {
if (potionStack.getItem() == Items.POTION || potionStack.getItem() == Items.SPLASH_POTION) {
Potion potion = PotionUtils.getPotionFromItem(potionStack);
List<EffectInstance> effects = potion.getEffects();
if (!effects.isEmpty()) {
Effect effect = ((EffectInstance)effects.get(0)).getPotion();
String effectKey = effect.getName();
TranslationTextComponent var10000 = new TranslationTextComponent(effectKey);
return var10000.getString() + " зелье";
}
}
return "зелий";
}
}