Изменить скин игрока

Версия Minecraft
1.7.10
Здравствуйте.
Как можно изменить скин игрока, вне зависимости от установленного ресурспака?
Может для этого ивент какой есть?
 
timaxa007 написал(а):
Эвент для этого отдельного нет. Проверяешь игрока на AbstractClientPlayer, изменяешь ему locationSkin.


Через метод func_152121_a(Type, ResourceLocation).


вот нагуглил:

Код:
 @SubscribeEvent
 public void onRenderPlayer(RenderPlayerEvent.Pre event)
 {
   EntityPlayer entity = event.entityPlayer;
   String name = entity.func_70005_c_();
   if (!this.renderedSkins.containsKey(name))
   {
     ResourceLocation skin = getSkin(name);
     ((AbstractClientPlayer)entity).func_152121_a(MinecraftProfileTexture.Type.SKIN, skin);
     
     this.renderedSkins.put(name, skin);
   }
   else
   {
     ((AbstractClientPlayer)entity).func_152121_a(MinecraftProfileTexture.Type.SKIN, (ResourceLocation)this.renderedSkins.get(name));
   }
   if (!this.renderedCape.containsKey(name))
   {
     ResourceLocation cape = getCloak(name);
     ((AbstractClientPlayer)entity).func_152121_a(MinecraftProfileTexture.Type.CAPE, cape);
     this.renderedCape.put(name, cape);
   }
   else
   {
     ((AbstractClientPlayer)entity).func_152121_a(MinecraftProfileTexture.Type.CAPE, (ResourceLocation)this.renderedCape.get(name));
   }
 }
всё так просто или это вообще не то? Сейчас среды под рукой нет.
я так понимаю, метод func_152121_a меняет текстуру скина?
 
Правильно ли я понял? Создаем класс для события - например MRP.java и пишем туда:
Код:
    @SubscribeEvent
    public void onRenderPlayer(RenderPlayerEvent.Pre event)
    {
        System.out.println(ModInfo.MODNAME+ " onRenderPlayer");
    }
регистрируем событие на стороне клиента:
Код:
    @EventHandler
    public void init(FMLInitializationEvent event)
	{
		if (event.getSide().isClient()){
			FMLCommonHandler.instance().bus().register(new MRP());
    	}
 	}
но так не получается. Событие не приходит.
а если так:
Код:
			MinecraftForge.BUS.register(new MRP());
то среда ругается на отсутствие класса MinecraftForge


Спасибо, всё получилось и работает. Тема, в общем, закрыта.
Но есть еще вопрос. Можно ли изменить скин при нажатии кнопки в своём GUI? То есть, можно ли будет из обработчика кнопки гуя получить экземпляр EntityPlayer и выполнить func_152121_a?
 
Товарищи, обнаружилась проблема.
на версии 10.13.4.1448 это работает, а на версии 10.13.2.1291 любой скин выглядит вот так

что делать? Обновлять фордж не советуйте, так как 1291 это последняя версия, которая встает на пиратку.
Или скиньте тутор,как поставить новый фордж на пиратку
 
7,099
324
1,510
дебажить, для начала
 
2,505
81
397
hohserg написал(а):
дебажить, для начала
Дебажить отдельный клиент? Найс план.


Agravaine написал(а):
По-этому нужно слать пакет.
Этого не достаточно


BlackCrafter написал(а):
очень люблю такие советы :)
Интересно, и как же?
Ровно так же, как и с текущим форжем. Качаешь нужную тебе версию, собираешь и переносишь.
Но в любом случае, мой совет плохой :). Он на крайний случай.
 
Dahaka написал(а):
BlackCrafter написал(а):
очень люблю такие советы :)
Интересно, и как же?
Ровно так же, как и с текущим форжем. Качаешь нужную тебе версию, собираешь и переносишь.
а какой в этом смысл, если методы те же самые?
 
Сверху