KeyBinding

Версия Minecraft
1.6.4
31
1
1
Может кто-нибудь подсказать, как добавить кнопку на 1.6.4 версии?
Проблема в том, что на этой версии нет метода ClientRegistry.registerKeyBinding(keyBinding);
 
355
2
17
Нашел весьма давний код с 1.6.4. Итератор с середины можно по сути убрать, им удалялись ванильные клавиши.
А KeysHandler extends KeyBindingRegistry.KeyHandler это чет типа ивента KeyInput

Java:
    private static KeyBinding[] keys = new KeyBinding[]{new KeyBinding("OpenInventory", Keyboard.KEY_E)};
    private Minecraft minecraft = Minecraft.getMinecraft();

    public KeyBindingHandler()
    {

        ArrayList<KeyBinding> binds = new ArrayList<KeyBinding>(Arrays.asList(keys));
        Collections.addAll(binds, minecraft.gameSettings.keyBindings);

        Iterator iterator = binds.iterator();
        while (iterator.hasNext())
        {
            KeyBinding key = (KeyBinding) iterator.next();
            //if (key.keyDescription.equals("key.inventory")) iterator.remove();
        }

        minecraft.gameSettings.keyBindings = (binds.toArray(new KeyBinding[binds.size()]));

        boolean[] repeating = new boolean[keys.length];
        Arrays.fill(repeating, Boolean.FALSE);
        TickRegistry.registerTickHandler(new KeysHandler(keys, repeating), Side.CLIENT);

    }
 
31
1
1
Я уже решил:
code:
    private KeyBoardRegistry(KeyBinding[] keyBindings, boolean[] repeatings) {
        super(keyBindings, repeatings);
    }
    private static final int[] keyValues = {Keyboard.KEY_O};
    private static final String[] desc = {"Open GUI "};
    private static final KeyBinding[] keys  = new KeyBinding[desc.length];
    public static final int OPEN_ADVITEMSGUI = 0;


    private EnumSet tickTypes = EnumSet.of(TickType.PLAYER);

    public static void init() {
        boolean[] repeat = new boolean[desc.length];
        for (int i = 0; i < desc.length; ++i) {
            keys[i] = new KeyBinding(desc[i], keyValues[i]);
            repeat[i] = false;
        }

        KeyBindingRegistry.registerKeyBinding(new KeyBoardRegistry(keys, repeat));
    }
    @Override
    public String getLabel() {
        return "keys";
    }
    @Override
    public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {
        if(tickEnd)
        {
            if(Minecraft.getMinecraft().inGameHasFocus)
            {
                if(kb == keys[OPEN_ADVITEMSGUI])
                {
                    NetworkHandler.sendOpenGuiPacket(GuiHandler.ADVANCEDITEMSGUI);
                }
            }
        }   
    }
    @Override
    public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) {

    }
    @Override
    public EnumSet<TickType> ticks() {
        return tickTypes;
    }
 
Сверху