andrewphorn / ClassiCube-Client

The applet used for classicube.net
34 stars 19 forks source link

TextHotKey - key bindings #274

Open Dzienny opened 10 years ago

Dzienny commented 10 years ago

TextHotKey extension doesn't work. I noticed that there is some code to handle this extension, but it hasn't been finished.

Also, the extension should have a new behaviour that would allow the server to easily remove all the key bindings with one packet. I suggest that could be done with, for example, a packet that contains KeyCode equal to 0.

If someone feels like implementing it - the new release of MCDzienny (11.8) has a plugin that could be helpful for testing. It's in plugins tab -> Keyboard Shortcuts. It provides server side implementation for TextHotKey extension. Mind that currently this feature of MCDzienny works only on Windows, the mono version hasn't been done yet.

Jonty800 commented 10 years ago

The feature was unfinished because LWJGL didn't support key modifier flags. The flags indicate which combination of CTRL, SHIFT, and ALT keys was pressed

Dzienny commented 10 years ago

Lwjgl reads these keys (ctrl, shift, alt) directly, so the flags can be added manually.

Actually, some flags are there already -> https://github.com/andrewphorn/ClassiCube-Client/blob/master/src/main/java/com/mojang/minecraft/player/InputHandlerImpl.java

Example: If the hacks are on, then: keylist[7] is a flag for SHIFT keylist[8] is a flag for CTRL