Начинающий
			
			
				
					
				
			
		Начинающий
		- Статус
- Оффлайн
- Регистрация
- 18 Май 2025
- Сообщения
- 52
- Реакции
- 1
- Выберите загрузчик игры
- Vanilla
- Fabric
 
			
				Код:
			
		
		
		package zenith.pl.client.modules.impl.misc;
import com.darkmagician6.eventapi.EventTarget;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import zenith.pl.base.events.impl.player.EventUpdate;
import zenith.pl.client.modules.api.Category;
import zenith.pl.client.modules.api.Module;
import zenith.pl.client.modules.api.ModuleAnnotation;
import zenith.pl.client.modules.api.setting.impl.BooleanSetting;
import zenith.pl.client.modules.api.setting.impl.ModeSetting;
import zenith.pl.client.modules.api.setting.impl.NumberSetting;
import zenith.pl.utility.game.other.MessageUtil;
@ModuleAnnotation(name = "AutoLeave", category = Category.MISC, description = "Выходит с сервера при определённом событии")
public class AutoLeave extends Module {
    public static final AutoLeave INSTANCE = new AutoLeave();
    private final NumberSetting leaveDistantion = new NumberSetting("Дистанция выхода", 5, 3, 50, 0.1f);
    private final ModeSetting leaveType = new ModeSetting("Тип выхода", "Обычный", "/home", "/spawn");
    private final BooleanSetting leaveDisable = new BooleanSetting("Выключить при использовании", true);
    int disableTick;
    private void leave() {
        if (mc.getNetworkHandler() != null) {
            if (leaveDisable.isEnabled()) {
                toggle();
            }
            mc.world.disconnect();
        }
        else {
            MessageUtil.displayError("AutoLeave нельзя использовать в одиночной игре!");
        }
    }
    private void commandLeave(String command) {
        if (leaveDisable.isEnabled() ? disableTick >= 10 : disableTick >=30) {
            mc.getNetworkHandler().sendChatCommand(command);
            if (leaveDisable.isEnabled()) {
                toggle();
            }
            disableTick = 0;
        } else disableTick++;
    }
    @EventTarget
    public void onUpdate(EventUpdate event) {
        for (Entity entity : mc.world.getPlayers()) {
            if (entity instanceof PlayerEntity playerEntity) {
                if (playerEntity != mc.player) {
                    double distance = mc.player.distanceTo(playerEntity);
                    if (distance <= leaveDistantion.getCurrent()) {
                        switch (leaveType.getValue().getName()) {
                            case "Обычный" -> {
                                leave();
                            }
                            case "/home" -> {
                                commandLeave("/home home");
                            }
                            case "/spawn" -> {
                                commandLeave("/spawn");
                            }
                        }
                    }
                }
            }
        }
    }
} 
				 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		