Помогите Проблема с перемещением вагонетки 1.16.2

Статус
Закрыто для дальнейших ответов.

Vlad_007WOLFYATINA

Активный участник
Пользователь
Баллы
66
qq форум!
Возникла острая проблема - получаю пакеты от игрока когда тот управляет вагонеткой.
Нужно просто перемещать вагонетку по кнопкам WASD. Как это делать я понял, вопрос теперь в другом.
Код:
Код:
protocolManager = ProtocolLibrary.getProtocolManager();
        protocolManager.addPacketListener(
                  new PacketAdapter(this, ListenerPriority.NORMAL,
                          PacketType.Play.Client.STEER_VEHICLE) {
                    @Override
                    public void onPacketReceiving(PacketEvent event) {
                        if(event.getPacketType() == PacketType.Play.Client.STEER_VEHICLE)
                        {
                            PacketContainer container = event.getPacket();
                            Player player = event.getPlayer();
                            //Float sideways = container.getFloat().read(0);
                            //Float forward = container.getFloat().read(1);
                            Minecart cart = (Minecart)player.getVehicle();
                            cart.setMaxSpeed(20);
                            cart.setRotation(player.getEyeLocation().getYaw() + 90, 0);
                            cart.setVelocity(player.getVelocity().normalize().multiply(1));
                            for(Player p : Bukkit.getOnlinePlayers())
                            {
                                p.sendMessage("FACING:" + p.getVehicle().getFacing() + "|YOUR YAW" + player.getEyeLocation().getYaw() + "|CART YAW" + cart.getLocation().getYaw());
                            }
                        }
                    }
                });
Суть в том, что вагонетка спустя какое-то количество блоков просто останавливается.

Видео (есть момент где я написал в чат "после" - это после того, когда multiply стал принимать значение 1. до этого принимал 10):

Знаю например, что есть плагин uCars. Но там СТОЛЬКО КОДА, что разбираться в том как перемещается вагонетка можно убить дни, а сделать перемещение нужно срочно.
Если потребуется написание кастомного класса вагонетки - не проблема, просто скажите что нужно конкретно прописывать своей вагонетке.
Спасибо!
P.S. Подозреваю что баг кроется в Yaw - нужно, чтобы yaw вагонетки и yaw игрока были равны. Но как такое сделать?
P.S.S. Entity#setRotation() работает очень криво - иногда facing и yaw совпадает, иногда нет. Тем не менее - вагонетка останавливается(
 
Модераторы могут закрывать тему, пофиксил очень просто:
Код:
Vector path = new Vector(player.getEyeLocation().getDirection().getX(), player.getVelocity().getY(), player.getEyeLocation().getDirection().getZ());
Для Minecart#setVelocity() использовать path.normalize()
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх