Возможно ли убрать F3/F5?

Версия Minecraft
1.7.10
API
Forge
Решение
Ах да, прости, забыл что ты не имеешь в виду сами клавиши.

Как убрать F3/F5 (пофикшено):
@SubscribeEvent(priority = EventPriority.NORMAL)
    public void handleKeyboardInput(InputEvent.KeyInputEvent event)
    {
        Minecraft mc = Minecraft.getMinecraft();
        if(mc.gameSettings.keyBindTogglePerspective.getIsKeyPressed())
        {
            mc.gameSettings.thirdPersonView = 0;
        }
        if(Keyboard.getEventKey() == Keyboard.KEY_F3)
        {
            mc.gameSettings.showDebugInfo = false;
        }
    }
177
4
22
Возможно. Либо перехватом нажатий, либо хуком в класс Minecraft, метод runTick() если не ошибаюсь. Хотя хукаться туда то ещё безумие, так что не надо.

Будет это как-то так:

Как убрать F3/F5:
@SubscribeEvent(priority = EventPriority.NORMAL)
public void handleKeyboardInput(InputEvent.KeyInputEvent event)
{
    if(Keyboard.getEventKey() == Keyboard.KEY_F5)
    {
        Minecraft.getMinecraft().gameSettings.thirdPersonView = 0;
    }
    if(Keyboard.getEventKey() == Keyboard.KEY_F3)
    {
        Minecraft.getMinecraft().gameSettings.showDebugInfo = false;
    }
}
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
Java:
public void onKeyDown(InputEvent.KeyInputEvent event)
{
    if(Keyboard.getEventKey() == Keyboard.KEY_F5 || Keyboard.getEventKey() == Keyboard.KEY_F3)
    {
        event.setCanceled(true);
    }
}
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Java:
public void onKeyDown(InputEvent.KeyInputEvent event)
{
    if(Keyboard.getEventKey() == Keyboard.KEY_F5 || Keyboard.getEventKey() == Keyboard.KEY_F3)
    {
        event.setCanceled(true);
    }
}
Ивент нельзя отменить.

Какой смысл вообще делать проверки?) Каждый тик сбрасывайте то действие которое они делают да и все.
 
177
4
22
Ах да, прости, забыл что ты не имеешь в виду сами клавиши.

Как убрать F3/F5 (пофикшено):
@SubscribeEvent(priority = EventPriority.NORMAL)
    public void handleKeyboardInput(InputEvent.KeyInputEvent event)
    {
        Minecraft mc = Minecraft.getMinecraft();
        if(mc.gameSettings.keyBindTogglePerspective.getIsKeyPressed())
        {
            mc.gameSettings.thirdPersonView = 0;
        }
        if(Keyboard.getEventKey() == Keyboard.KEY_F3)
        {
            mc.gameSettings.showDebugInfo = false;
        }
    }
 
@SubscribeEvent(priority = EventPriority.NORMAL) public void handleKeyboardInput(InputEvent.KeyInputEvent event) { Minecraft mc = Minecraft.getMinecraft(); if(mc.gameSettings.keyBindTogglePerspective.getIsKeyPressed()) { mc.gameSettings.thirdPersonView = 0; } if(Keyboard.getEventKey() == Keyboard.KEY_F3) { mc.gameSettings.showDebugInfo = false; } }
куда это нужно вставить? в options.txt?
 

Sainthozier

Стрелочник
623
11
369
Да, совершенно верно.
Только сперва укажите версию майнкрафта в названии файла, чтобы система смогла распознать и всё сама настроить для вас.
 

sk9zist :l

Исправился
981
18
157
1,074
72
372
Какие-то у вас очень сложные методы... Нельзя сделать по-красоте?
  1. Отвязать клавиши от кейбиндов (да, майкрафт позволяет отвязать клавишу от действия).
  2. Убрать кейбинды из меню настроек.
 
Ах да, прости, забыл что ты не имеешь в виду сами клавиши.

Как убрать F3/F5 (пофикшено):
@SubscribeEvent(priority = EventPriority.NORMAL)
    public void handleKeyboardInput(InputEvent.KeyInputEvent event)
    {
        Minecraft mc = Minecraft.getMinecraft();
        if(mc.gameSettings.keyBindTogglePerspective.getIsKeyPressed())
        {
            mc.gameSettings.thirdPersonView = 0;
        }
        if(Keyboard.getEventKey() == Keyboard.KEY_F3)
        {
            mc.gameSettings.showDebugInfo = false;
        }
    }
Простите, а куда это вставлять?
 
Сверху