Добавить метод внутри команды, используя dispatchCommand - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь вставить метод, который предоставляет случайную строку из массива, и выполнить ее в команде Minecraft.

Ошибка

Это говорит о том, что тип java: 'void' здесь не разрешен при добавлении оператора + между строками с помощью метода randomKey ().

Я разрабатываю плагин внутри IntelliJ.

public class events implements Listener{




    public static void main(String[] args)
    {
        randomKey();
    }

    public static void randomKey(){
        String[] crates ={"Basic", "Classic", "Crazy", "Galactic"};
        Random random = new Random();
        int RandomNumber = random.nextInt(crates.length);
        System.out.println(crates[RandomNumber]);
    }


    @EventHandler
    public  void keyGiver(BlockBreakEvent event ){



        //get block type grass

        Block block = event.getBlock();
        Material material  = block.getType();

        Player player = event.getPlayer();



        if(material.equals(Material.GRASS)){

            getServer().dispatchCommand(getServer().getConsoleSender(), "cc give Physical"+randomKey()+" 1 " + player.getName() + " ");
        }


    }```

1 Ответ

1 голос
/ 29 мая 2019

Вы должны вернуть что-то, чтобы использовать функцию в выражении, это исправление, которое я рекомендую использовать на основе вашего кода:

public static String randomKey(){
    String[] crates ={"Basic", "Classic", "Crazy", "Galactic"};
    Random random = new Random();
    int RandomNumber = random.nextInt(crates.length);
    System.out.println(crates[RandomNumber]);
    return crates[RandomNumber];
}
...