Вопрос Проблема с Ambience

Read Only
Read Only
Статус
Оффлайн
Регистрация
23 Сен 2024
Сообщения
255
Реакции
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Всем привет, проблема с функцией Ambeince aka CustomWorld в майнкрафте
Он просто не меняет время, хотя туман работает, вот его код:
Ambience:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "День", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket p) {
            switch (time.get()) {
                case "День":
                    p.worldTime = 1000L;
                    break;
                case "Ночь":
                    p.worldTime = 13000L;
                    break;
                case "Рассвет":
                    p.worldTime = 23000L;
                    break;
                case "Закат":
                    p.worldTime = 12000L;
                    break;
                case "Полдень":
                    p.worldTime = 6000L;
                    break;
                case "Полночь":
                    p.worldTime = 18000L;
                    break;
            }
        }
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();
    }
}
Если можете понять в чём проблема, помогите исправить
 
Всем привет, проблема с функцией Ambeince aka CustomWorld в майнкрафте
Он просто не меняет время, хотя туман работает, вот его код:
Ambience:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "День", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket p) {
            switch (time.get()) {
                case "День":
                    p.worldTime = 1000L;
                    break;
                case "Ночь":
                    p.worldTime = 13000L;
                    break;
                case "Рассвет":
                    p.worldTime = 23000L;
                    break;
                case "Закат":
                    p.worldTime = 12000L;
                    break;
                case "Полдень":
                    p.worldTime = 6000L;
                    break;
                case "Полночь":
                    p.worldTime = 18000L;
                    break;
            }
        }
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();
    }
}
Если можете понять в чём проблема, помогите исправить
try this one:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "По умолчанию", "По умолчанию", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());
    
    private final Minecraft mc = Minecraft.getInstance();

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket && !time.get().equals("По умолчанию")) {
            e.cancel();
        }
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();

        if (time.get().equals("По умолчанию") || mc.world == null) {
            return;
        }

      
        switch (time.get()) {
            case "День":
                mc.world.setWorldTime(1000L);
                break;
            case "Ночь":
                mc.world.setWorldTime(13000L);
                break;
            case "Рассвет":
                mc.world.setWorldTime(23000L);
                break;
            case "Закат":
                mc.world.setWorldTime(12000L);
                break;
            case "Полдень":
                mc.world.setWorldTime(6000L);
                break;
            case "Полночь":
                mc.world.setWorldTime(18000L);
                break;
        }
    }
}

попробуй это но я не очень уверен так же я добавил По умолчанию что бы было удобнее
 
try this one:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "По умолчанию", "По умолчанию", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());
   
    private final Minecraft mc = Minecraft.getInstance();

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket && !time.get().equals("По умолчанию")) {
            e.cancel();
        }
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();

        if (time.get().equals("По умолчанию") || mc.world == null) {
            return;
        }

     
        switch (time.get()) {
            case "День":
                mc.world.setWorldTime(1000L);
                break;
            case "Ночь":
                mc.world.setWorldTime(13000L);
                break;
            case "Рассвет":
                mc.world.setWorldTime(23000L);
                break;
            case "Закат":
                mc.world.setWorldTime(12000L);
                break;
            case "Полдень":
                mc.world.setWorldTime(6000L);
                break;
            case "Полночь":
                mc.world.setWorldTime(18000L);
                break;
        }
    }
}

попробуй это но я не очень уверен так же я добавил По умолчанию что бы было удобнее
Дай метод setWorldTime, либо на что его заменить можно?
 
не уверен но попробуй на setDayTime не дружу с 3.1
Он подходит, но смотри, на пример когда у меня стоит день, то из за setDayTime у меня на секунду день, и потом ночь, и так бесконечно
 
Он подходит, но смотри, на пример когда у меня стоит день, то из за setDayTime у меня на секунду день, и потом ночь, и так бесконечно
govno code eeeeee:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "По умолчанию", "По умолчанию", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());

    private String lastTimeMode = "";
    private final Minecraft mc = Minecraft.getInstance();

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket && !time.get().equals("По умолчанию")) {
            e.setCancelled(true);
        }
    }

    private long getTimeForMode(String mode) {
        return switch (mode) {
            case "По умолчанию" -> -1L;
            case "День" -> 1000L;
            case "Ночь" -> 13000L;
            case "Рассвет" -> 23000L;
            case "Закат" -> 12000L;
            case "Полдень" -> 6000L;
            case "Полночь" -> 18000L;
            default -> -1L;
        };
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();

        String currentTimeMode = time.get();
        if (mc.world != null && !currentTimeMode.equals(lastTimeMode)) {
            long targetTime = getTimeForMode(currentTimeMode);

            if (targetTime != -1L) {
                mc.world.setDayTime(targetTime);
            }

            lastTimeMode = currentTimeMode;
        }
    }
}

сорян за говно код но поедее должно работать
 
govno code eeeeee:
Expand Collapse Copy
package fun.vesence.modules.impl.render;

import com.google.common.eventbus.Subscribe;
import fun.vesence.events.impl.EventPacket;
import fun.vesence.events.impl.EventUpdate;
import fun.vesence.modules.api.Module;
import fun.vesence.modules.api.settings.impl.BooleanSetting;
import fun.vesence.modules.api.settings.impl.ModeSetting;
import fun.vesence.modules.api.settings.impl.SliderSetting;
import fun.vesence.modules.api.system.Category;
import fun.vesence.modules.api.system.ModuleSystem;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.network.play.server.SUpdateTimePacket;

@Getter
@ModuleSystem(name = "Ambience", category = Category.Render)
public class World extends Module {

    private final ModeSetting time = new ModeSetting("Время", "По умолчанию", "По умолчанию", "День", "Ночь", "Рассвет", "Закат", "Полдень", "Полночь");

    private final BooleanSetting customFog = new BooleanSetting("Туман", false);
    private final SliderSetting fogDistance = new SliderSetting("Дальность тумана", 0.5f, 0f, 1f, 0.1f)
            .setVisible(() -> customFog.get());

    private String lastTimeMode = "";
    private final Minecraft mc = Minecraft.getInstance();

    public World() {
        addSettings(time, customFog, fogDistance);
    }

    @Subscribe
    public void onPacket(EventPacket e) {
        if (e.getPacket() instanceof SUpdateTimePacket && !time.get().equals("По умолчанию")) {
            e.setCancelled(true);
        }
    }

    private long getTimeForMode(String mode) {
        return switch (mode) {
            case "По умолчанию" -> -1L;
            case "День" -> 1000L;
            case "Ночь" -> 13000L;
            case "Рассвет" -> 23000L;
            case "Закат" -> 12000L;
            case "Полдень" -> 6000L;
            case "Полночь" -> 18000L;
            default -> -1L;
        };
    }

    public static boolean fogEnabled = false;
    public static float fogDensity = 0.5f;

    @Subscribe
    public void onUpdate(EventUpdate event) {
        fogEnabled = customFog.get();
        fogDensity = fogDistance.get();

        String currentTimeMode = time.get();
        if (mc.world != null && !currentTimeMode.equals(lastTimeMode)) {
            long targetTime = getTimeForMode(currentTimeMode);

            if (targetTime != -1L) {
                mc.world.setDayTime(targetTime);
            }

            lastTimeMode = currentTimeMode;
        }
    }
}

сорян за говно код но поедее должно работать

setCancelled - у меня нет этого метода
 
Не работает, всё равно на одну секунду ставится то время какое ставишь, и обратно день ставится
Не работает, всё равно на одну секунду ставится то время какое ставишь, и обратно день ставится
Просто дай метод setWorldTime
 
Не работает, всё равно на одну секунду ставится то время какое ставишь, и обратно день ставится

Просто дай метод setWorldTime
тогда не знаю, у меня нету setWorldTime я использовал то что должно работать как минимум в обычном 1.16.5 тем более я не сижу на експе
 
Не работает, всё равно на одну секунду ставится то время какое ставишь, и обратно день ставится
Потому-что тебе нужно пакет отменять, если ты его не будешь отменять у тебя так и дальше будет обратно перескакивать время мира потому-что оно постоянно присылается на клиент
Тебе нужно будет в любом случае добавлять возможность отмены в эвент и отменять эвент пакета так, как тебе Beady написал
 
Потому-что тебе нужно пакет отменять, если ты его не будешь отменять у тебя так и дальше будет обратно перескакивать время мира потому-что оно постоянно присылается на клиент
Тебе нужно будет в любом случае добавлять возможность отмены в эвент и отменять эвент пакета так, как тебе Beady написал
А почему до этого оно работало, а щас нет, типо я хз, с утилками не чё не делал и с эвентами тоже
 
Я считаю лучшим решением в твоей ситуации будет создание собственной базы на MCP или что там кубоголовые используют.

Но а если другое решение сделать, просто пакеты отменяй и всё будет чики бамбони.
 
А почему до этого оно работало, а щас нет, типо я хз, с утилками не чё не делал и с эвентами тоже
Потому-что ты мог это делать в локальном мире где пакеты не приходят, потом зайти на сервер и всё ломалось
 
версия какая? найди где изменяется время в мире в коде майна и замени на своё, зачем эти все отменения пакетов
 
Назад
Сверху Снизу