Музыка играет пока я держу правую кнопку мыши

Версия Minecraft
1.7.10
681
20
319
Здравствуйте, помогите пожалуйста с кодом, сижу уже голова не варит, код взят из CustomNPC
У меня есть предмет и нужно что бы пока я держу кнопку мыши музыка играла, в мире, в радиусе 6 блоков от игрока.

item:
 public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer player) {
      if(par2World.isRemote) {
         return par1ItemStack;
      } else {
         int note = par2World.rand.nextInt(24);
         float var7 = (float)Math.pow(2.0D, (double)(note - 12) / 12.0D);
         String var8 = "harp";
         par2World.playSoundEffect(player.posX, player.posY, player.posZ, "note." + var8, 3.0F, var7);
         par2World.spawnParticle("note", player.posY, player.posY + 1.2D, player.posY, (double)note / 24.0D, 0.0D, 0.0D);
         return par1ItemStack;
      }
   }
 
235
3
21
если вставить в onItemRightClick принтлн и зажать пкм, то можно увидеть, что метод вызывается 4 раза в секунду, можно записывать время ласт вызова в nbt предмета и если разница скажем больше 500ms (2 вызова) то прекращать воспроизведение
1568326649257.png
на клиенте нужно вызвать
Minecraft.getMinecraft().getSoundHandler().stopSound(ISound);;
ну и для того чтобы все это работало естетвенно нужно через пакеты реализовывать воспроизведение и остановку музыки
 

tox1cozZ

aka Agravaine
8,455
598
2,892
У него звук ноты воспроизводится, который длится-то от силы пол секунды, так что стопать ему ничего и не надо.
Я вообще не понял вопроса, что конкретно тебе нужно, код правильный вроде.
 
681
20
319
У него звук ноты воспроизводится, который длится-то от силы пол секунды, так что стопать ему ничего и не надо.
Я вообще не понял вопроса, что конкретно тебе нужно, код правильный вроде.
Мне нужно что бы примером песня КАПИТОШКА, играла до того времени пока игрок держит правую кнопку мыши, если отпустил, музыка закончилась, ну а потом если нажал заново все
 
3,005
192
592
В старт юзе - запускаешь музыку.
В стоп юзе - включаешь музыку.
Вроде, все просто?

А еще...
Похожее сделано в ванили!
И это, не поверишь.. Лук!
При нажатии - идет натягивание, при отпускании - выстрел стрелы.
Но, это прям про уровень.
 
5,018
47
783
если вставить в onItemRightClick принтлн и зажать пкм, то можно увидеть, что метод вызывается 4 раза в секунду, можно записывать время ласт вызова в nbt предмета и если разница скажем больше 500ms (2 вызова) то прекращать воспроизведение
на клиенте нужно вызвать
ну и для того чтобы все это работало естетвенно нужно через пакеты реализовывать воспроизведение и остановку музыки
он не вызывается четыре раза в тик. У клика есть начальная фаза и конечная, а также, клиент и сервер. Вот и получается, 4 штуки.
Соответсвенно делаешь проверку на сторону, на фазу клика и все
 
Сверху