2014-12-30 2 views
-2

Я хочу игроку получить случайный предмет в Int []Random в Int []

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { 


Player player = (Player) sender; 

if(commandLabel.equalsIgnoreCase("surprise")){ 
Random random = new Random(); 

PlayerInventory inventory = player.getInventory(); 
int ItensIds[] = {274, 313, 314, 315, 316}; 
ItemStack item = new ItemStack(Material.AIR); 



for(int Ids : ItensIds){ 

    int randomNumber = random.nextInt(300); 
    do{ 
     randomNumber = random.nextInt(300); 
     item.setTypeId(Ids); 
     inventory.addItem(item); 
    } while(randomNumber == Ids); 

    break; 
} 

} 

Im пытаясь понять, как он работает, но заканчивается сбой сервера или не работает вообще.

Im действительно новый в этом коде, пожалуйста, поймите, если я сделал что-то действительно не так.

+1

когда он падает, что является исключением? почему вы генерируете случайное число дважды? какова точка цикла 'for', так как вы его нарушаете в любом случае после первой итерации. –

+0

. В чем смысл' do {...} while (randomNumber == Ids); '? – August

+0

Я не очень много кодирования, если я сделал что-то действительно не так, пожалуйста, исправьте меня – BlackDereker

ответ

2

«Я хочу, чтобы игроку получить случайный предмет в Int []»

Если вы хотите, чтобы получить случайное значение из вашего int массива (который ItensIds[]), вы можете просто сделайте это:

int randomNumber = ItensIds[random.nextInt(ItensIds.length)]; 

Вам не нужна петля или что-то еще.

Смежные вопросы