[1.7.10]....звук.

Скомпилировал мод, сунул в клиент. И при попытке проиграть свою пластинку он пишет Unable to play unknown sound event minecraft:records.march1. И что с ним делать? В тестах он видит кастомный sounds.json а в клиенте - нет.
 
В том то и прикол, что нет:
Код:
 @Override
    public ResourceLocation getRecordResource(String name)
    {
        return new ResourceLocation(ModBase.MODID + ":" + name);
    }
[merge_posts_bbcode]Добавлено: 15.12.2014 16:22:54[/merge_posts_bbcode]

Разобрался, файл в records должен лежать, а не просто свободно в assets болтаться. Можно закрывать

[merge_posts_bbcode]Добавлено: 15.12.2014 16:45:25[/merge_posts_bbcode]

Поторопился, все лежит правильно. и не пашет. вот мод: https://www.dropbox.com/s/qoevnm3biwa89qp/modid-1.0.jar?dl=0
 
210
1
19
Вопрос актуален, кстати. Столкнулся и не могу никак решить.Сделал музыку, вставил её, если пишу так:
/playsound rha:records.record_passport Player700 - музыка звучит.
А если вставляю пластинку, то пишет:
[20:26:50] [Client thread/WARN]: Unable to play empty soundEvent: minecraft:records.record_passport

Причем все работает нормально при тестовом запуске из Eclipse - ошибок нет, музыка играет, если вставить пластинку.

Вот класс пластинки:
Код:
package ru.lao.rha;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.BlockJukebox;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;

public class RHItem_Record extends ItemRecord {
    private String name;

    public RHItem_Record(String name) {
      super(name);
      //this.setCreativeTab(CreativeTabs.tabMisc);
      this.name = name;
      this.setUnlocalizedName(name);
   }
   
   @Override
     public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
     {
         if (world.getBlock(x, y, z) == Blocks.jukebox && world.getBlockMetadata(x, y, z) == 0)
       {
             if (world.isRemote)
             {
                 return true;
             }
             else
             {
                 ((BlockJukebox)Blocks.jukebox).func_149926_b(world, x, y, z, itemStack);
                 world.playAuxSFXAtEntity((EntityPlayer)null, 1005, x, y, z, Item.getIdFromItem(this));
                 --itemStack.stackSize;
                 return true;
             }
       } 
         else
         {
             return false;
         }
     }

    @Override
    public void registerIcons(IIconRegister iconRegister)
    {
    itemIcon = iconRegister.registerIcon(Main.MODID + ":" + name);
    }

   @Override
   public ResourceLocation getRecordResource(String filename) {
       //return new ResourceLocation(Main.MODID + ":" + filename);
       // return new ResourceLocation("rha:" + filename);
       return new ResourceLocation("rha", filename);
   }
   
   /**
    * Return an item rarity from EnumRarity
    */
   @Override
   public EnumRarity getRarity(ItemStack item)
   {
       return EnumRarity.epic;
   }
   

}

Если внести ошибку в название ресурс-файла, то Eclipse начинает выдавать ошибку. А в скомпилированном виде мод бьет ту же ошибку, будто игнорирует этот кусок кода (здесь три варианта, все работают в Eclipse, все не работают в моем клиенте):
Код:
   @Override
   public ResourceLocation getRecordResource(String filename) {
       //return new ResourceLocation(Main.MODID + ":" + filename);
       // return new ResourceLocation("rha:" + filename);
       return new ResourceLocation("rha", filename);
   }
[merge_posts_bbcode]Добавлено: 08.02.2016 20:36:24[/merge_posts_bbcode]

Кстати, Mo'Creatures со своей пластинкой зебры тоже ее не проигрывает, и в консоли клиента та же ошибка. Вместо файла mocreatures:records.shuffling оно пытается найти и проиграть minecraft:records.shuffling.
 

svk

1,185
2
Может попробовать в моде сделать не MyMode, а Minecraft в папке мода?)
 

timaxa007

Модератор
5,831
409
672
Vova_master написал(а):
Поторопился, все лежит правильно. и не пашет. вот мод: https://www.dropbox.com/s/qoevnm3biwa89qp/modid-1.0.jar?dl=0
Эм... У меня пашет на пиратском клиенте.
[merge_posts_bbcode]Добавлено: 09.02.2016 14:23:01[/merge_posts_bbcode]

LaoTheLizard, вроде как есть разница между регистрации как звука и как пластинки. Хотя я в этом json'е звука и где его обрабатывает не разбирался как надо.
 
210
1
19
timaxa007, смысл в том, что в Eclipse (то есть, не компилируя мод) я клиент запускаю - всё работает. А скомпилировал мод, засунул в свой клиент - тот же код уже по-другому работает и ищет не "rha[font=Verdana, Helvetica, Arial, sans-serif]:records.record_passport[/font]", а, внезапно "[font=Verdana, Helvetica, Arial, sans-serif]minecraft:records.record_passport[/font]".
 
4,045
63
645
Чувак, это очень частая проблема )))
По крайней мере, у меня.
Может тупо forge обновить? В левом фордже 1.8.8 у меня похожая фигня с бронёй была... Пока его разрабы не исправили.
С другой стороны, для 1.7.10 это странно.
 
210
1
19
Liahim написал(а):
Может тупо forge обновить?
Не вариант. В моей ситуации даже откорректировать через MCP клиент будет проще. Что и пытаюсь уже сделать, но просто тону в море всяких func_

Update:
Проблему я решил. Через 8 месяцев нашлось решение. :)
 
Сверху