Помогите Заменить все вещи в сундуке, на которое смотрит игрок

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

Conorfish

Активный участник
Пользователь
Баллы
76
Игрок смотрит на сундук, пишет команду, там нужно заменить все вещи на dirt. Как я могу это сделать?
Как получить блок на которое смотрит игрок? с getTargetBlock не разобрался
Как заменить ВСЕ вещи в сундуке на землю?
Спасибо
 
PHP:
public void methodName(Player player) {

    // null - множество Material, которые стоит пропустить при raytrace
    // 5 - максимальная дистация поиска блока перед собой
    Block block = player.getTargetBlock(null, 5);

    if (block == null || block.getType() == Material.AIR) return; // block не найден, не помню может ли он быть null там

    if (block.getType() == Material.CHEST) { // блок точно является сундуком
        final ItemStack dirt = new ItemStack(Material.DIRT); // создаём экземпляр
        Chest chest = (Chest) block.getState(); // получаем состояние блока ввиде Chest
        Inventory inventory = chest.getBlockInventory(); // получем из состояния блока инвентарь
        for (int i = 0; i < inventory.getSize(); i++) { // бежим по всему инвентарю и устанавливаем клон(!) земли
            inventory.setItem(i, dirt.clone());
        }
    }

}
 
PHP:
public void methodName(Player player) {

    // null - множество Material, которые стоит пропустить при raytrace
    // 5 - максимальная дистация поиска блока перед собой
    Block block = player.getTargetBlock(null, 5);

    if (block == null || block.getType() == Material.AIR) return; // block не найден, не помню может ли он быть null там

    if (block.getType() == Material.CHEST) { // блок точно является сундуком
        final ItemStack dirt = new ItemStack(Material.DIRT); // создаём экземпляр
        Chest chest = (Chest) block.getState(); // получаем состояние блока ввиде Chest
        Inventory inventory = chest.getBlockInventory(); // получем из состояния блока инвентарь
        for (int i = 0; i < inventory.getSize(); i++) { // бежим по всему инвентарю и устанавливаем клон(!) земли
            inventory.setItem(i, dirt.clone());
        }
    }

}
Благодарю за код, и за описания каждой строчки
 
PHP:
public void methodName(Player player) {

    // null - множество Material, которые стоит пропустить при raytrace
    // 5 - максимальная дистация поиска блока перед собой
    Block block = player.getTargetBlock(null, 5);

    if (block == null || block.getType() == Material.AIR) return; // block не найден, не помню может ли он быть null там

    if (block.getType() == Material.CHEST) { // блок точно является сундуком
        final ItemStack dirt = new ItemStack(Material.DIRT); // создаём экземпляр
        Chest chest = (Chest) block.getState(); // получаем состояние блока ввиде Chest
        Inventory inventory = chest.getBlockInventory(); // получем из состояния блока инвентарь
        for (int i = 0; i < inventory.getSize(); i++) { // бежим по всему инвентарю и устанавливаем клон(!) земли
            inventory.setItem(i, dirt.clone());
        }
    }

}
Player player = (Player) sender;
Block block = player.getTargetBlock(null, 5);

The method getTargetBlock(HashSet<Byte>, int) is ambiguous for the type Player
 
Последнее редактирование:
Player player = (Player) sender;
Block block = player.getTargetBlock(null, 5);

The method getTargetBlock(HashSet<Byte>, int) is ambiguous for the type Player
Какая версия? Я прост помню что в старых версиях такая хрен была.
Попробуй (Set<Material>) null / (HashSet<Byte>) null, другими словами явно укажи какой метод ты вызываешь.
 
У меня на 1.12.2 проблем нет.
upload_2020-9-5_14-45-11.png

build.gradle
PHP:
repositories {
    mavenCentral()
    maven {
        name = 'spigotmc-repo'
        url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
    }
    maven {
        name = 'sonatype'
        url = 'https://oss.sonatype.org/content/groups/public/'
    }
}

dependencies {
    compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
}
 
У меня на 1.12.2 проблем нет.
Посмотреть вложение 57662

build.gradle
PHP:
repositories {
    mavenCentral()
    maven {
        name = 'spigotmc-repo'
        url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
    }
    maven {
        name = 'sonatype'
        url = 'https://oss.sonatype.org/content/groups/public/'
    }
}

dependencies {
    compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
}
Работает, спасибо за помощь
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх