1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите block.getState().getInventory().addItem() cтранно работает

Тема в разделе "Разработка плагинов для новичков", создана пользователем KruASe, 4 авг 2022.

Статус темы:
Закрыта.
  1. Автор темы
    KruASe

    KruASe Ньюби

    Баллы:
    1
    Имя в Minecraft:
    KruASe
    Всем здравствуйте!

    Код (Java):
    Код:
    @Override
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
        Block block = ((Player) sender).getWorld().getBlockAt(-1, 80, 41);
        Chest cont = (Chest) block.getState();
        cont.getInventory().addItem(new ItemStack(Material.DIAMOND));
        cont.update();
    
        return true;
    }
    (Захардкодил координаты, чтобы не возиться)

    Столкнулся со следующей проблемой:
    Если блок - это одинарный сундук, то ничего не происходит, но если блок - правая часть двойного сундука, то алмаз добавляется.
    С бочкой точно так же, как и с одинарным сундуком (касты я менял на соответствующие).
    .getBlockInventory() не работает ни при каких обстоятельствах.
    С инвентарем игрока все нормально.

    Почему так происходит?
     
    Последнее редактирование: 4 авг 2022
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Попробуй без cont.update().
     
  3. Автор темы
    KruASe

    KruASe Ньюби

    Баллы:
    1
    Имя в Minecraft:
    KruASe
    Сработало... Спасибо!
    А почему update() мешает?
    Он вроде как нужен, если вызваy .getSnapshotInventory(), но почему же мешает при обычном инвентаре?..
    Странно
     
Статус темы:
Закрыта.

Поделиться этой страницей