Рендер рюкзака в моде Backpack

Версия Minecraft
1.7.10
210
1
19
Давно пользуюсь этим модом, где-то когда-то нашёл на него исходники и наконец добрался до него. В принципе, всё, что можно было сделать-доделать-облизать-доработать - всё сделано и мне очень нравится результат, однако осталась одна неприятная деталь. Дело в том, что у меня рюкзак на спине видит только его хозяин, другие игроки не видят. И ощущение (но это не точно), что когда-то было иначе - то есть видели. Грешил на другие моды - пробовал их удалять, играл с настройками графики, в общем, ничего не помогает.
Я вообще с рендерами существ не дружу - максимум могу подменить текстуры в готовом. Но я уверен, что автор мода всё делал по уму и, значит, где-то затесался какой-то мелкий косяк.


Напоследок уже начал грешить на свой косой мод, и его удалил. На этом фото в клиенте (и на сервере) установлен ТОЛЬКО мод Backpack. Настройка renderBackpackModel внутри мода принудительно установлена мною на TRUE.

iffK87BRY9.png




Java:
        if(ConfigurationBackpack.RENDER_BACKPACK_MODEL) {
            EventHandlerClientOnly eventHandlerClient = new EventHandlerClientOnly();
            MinecraftForge.EVENT_BUS.register(eventHandlerClient);
            FMLCommonHandler.instance().bus().register(eventHandlerClient);
        }

Отрисовка идет в Pre эвенте (переделано - добавлены текстуры для всех цветов рюкзака).
Java:
    @SubscribeEvent
    public void render(Pre event) {
        EntityPlayer entityPlayer = event.entityPlayer;
        String UUID = entityPlayer.getUniqueID().toString();
        Backpack.packetHandler.networkWrapper.sendToServer(new MessagePersonalBackpack(UUID));
        if(backpackDamage.containsKey(UUID) && backpackDamage.get(UUID) != -1) {
            GL11.glPushMatrix();
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
            bind(Constants.modelBackpackPure);
            int type = backpackDamage.get(UUID)%100;
            switch(type){
                case 0:{/*bind(Constants.modelBackpackPure); */break;}
                case 1:{bind(Constants.modelBackpackBlack); break;}
                case 2:{bind(Constants.modelBackpackRed); break;}
                case 3:{bind(Constants.modelBackpackGreen); break;}
                case 4:{bind(Constants.modelBackpackBrown); break;}
                case 5:{bind(Constants.modelBackpackBlue); break;}
                case 6:{bind(Constants.modelBackpackPurple); break;}
                case 7:{bind(Constants.modelBackpackCyan); break;}
                case 8:{bind(Constants.modelBackpackLightGray); break;}
                case 9:{bind(Constants.modelBackpackGray); break;}
                case 10:{bind(Constants.modelBackpackPink); break;}
                case 11:{bind(Constants.modelBackpackLime); break;}
                case 12:{bind(Constants.modelBackpackYellow); break;}
                case 13:{bind(Constants.modelBackpackLightBlue); break;}
                case 14:{bind(Constants.modelBackpackMagenta); break;}
                case 15:{bind(Constants.modelBackpackOrange); break;}
                case 16:{bind(Constants.modelBackpackWhite); break;}
                case 99:{bind(Constants.modelBackpackEnder); break;}
                case 17:{bind(Constants.modelBackpackWorkbench); break;}
                //default:{bind(Constants.modelBackpackPure);}
            }
           
            Constants.model.render(entityPlayer, 0F, 0F, 0F, 0F, 0F, 0.0625F);

            GL11.glPopMatrix();
        }
    }



Куда копать? Какой кусок кода привести здесь для рассмотрения?
 
210
1
19
Отлично, надеюсь ты теперь понимаешь что плагины - мусор и лучше всё делать модами?)
Ну согласен. Но ещё я понимаю, что даже глобальные API пишут представители сексуальных меньшинств.
 
7,099
324
1,509
А какой метод использовался для получения ника игрока? getCommandSenderName?
 
210
1
19
А какой метод использовался для получения ника игрока?
Изначально автор мода юзал не ник игрока, а UUID. Но вчера я посмотрел - видимо, из-за того, что майн "неоригинал", UUID не совпадают - для двух игроков было три UUID. Поэтому я вернулся обратно к нику, да. И брал его через event.entityPlayer.getDisplayName().
 
7,099
324
1,509
Надо было юзать getCommandSenderName
getDisplayName предназначен для рендера
 

sk9zist :l

Исправился
981
18
157

sk9zist :l

Исправился
981
18
157
Сверху