Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Июн 2025
- Сообщения
- 47
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
Код:
package im.expensive.functions.impl.movement;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventMotion;
import im.expensive.events.EventPacket;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.api.FunctionRegistry;
import im.expensive.functions.settings.impl.SliderSetting;
import net.minecraft.network.IPacket;
import java.util.concurrent.ConcurrentLinkedQueue;
@FunctionRegister(name = "Blink", type = Category.Movement)
public class Blink extends Function
{
public static class TimedPacket {
private final IPacket<?> packet;
private final long time;
public TimedPacket(final IPacket<?> packet, final long time) {
this.packet = packet;
this.time = time;
}
public IPacket<?> getPacket() {
return packet;
}
public long getTime() {
return time;
}
}
private SliderSetting delay = new SliderSetting("Задержка", 1000,100,5000, 100);
public Blink() {
addSettings(delay);
}
public static final ConcurrentLinkedQueue<TimedPacket> packets = new ConcurrentLinkedQueue<>();
@Override
public void onDisable() {
super.onDisable();
for (TimedPacket p : packets) {
mc.player.connection.getNetworkManager().sendPacketWithoutEvent(p.getPacket());
}
packets.clear();
}
@Subscribe
public void onPacket(EventPacket e) {
if (e.isSend()) {
IPacket<?> packet = e.getPacket();
packets.add(new TimedPacket(packet, System.currentTimeMillis()));
e.cancel();
}
}
@Subscribe
public void onMotion(EventMotion e) {
for (TimedPacket timedPacket : packets) {
if (System.currentTimeMillis() - timedPacket.getTime() >= delay.get().intValue()) {
mc.player.connection.getNetworkManager().sendPacketWithoutEvent(timedPacket.getPacket());
packets.remove(timedPacket);
}
}
}
}
Последнее редактирование:
