diff --git a/common/mekanism/client/MekanismKeyHandler.java b/common/mekanism/client/MekanismKeyHandler.java index 08fa6e2e4..9da898c5e 100644 --- a/common/mekanism/client/MekanismKeyHandler.java +++ b/common/mekanism/client/MekanismKeyHandler.java @@ -17,6 +17,8 @@ public class MekanismKeyHandler extends KeyHandler public static KeyBinding modeSwitch = new KeyBinding("Mekanism Mode Switch", Keyboard.KEY_M); public static KeyBinding voice = new KeyBinding("Mekanism Voice", Keyboard.KEY_U); + public static boolean voiceKeyDown = false; + public MekanismKeyHandler() { super(new KeyBinding[] {modeSwitch, voice}, new boolean[] {false, false}); @@ -29,10 +31,22 @@ public class MekanismKeyHandler extends KeyHandler } @Override - public void keyDown(EnumSet types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {} + public void keyDown(EnumSet types, KeyBinding kb, boolean tickEnd, boolean isRepeat) + { + if(tickEnd && kb.keyCode == voice.keyCode) + { + voiceKeyDown = true; + } + } @Override - public void keyUp(EnumSet types, KeyBinding kb, boolean tickEnd) {} + public void keyUp(EnumSet types, KeyBinding kb, boolean tickEnd) + { + if(tickEnd && kb.keyCode == voice.keyCode) + { + voiceKeyDown = false; + } + } @Override public EnumSet ticks() diff --git a/common/mekanism/client/voice/VoiceInput.java b/common/mekanism/client/voice/VoiceInput.java index 927b8aea4..b6d432a47 100644 --- a/common/mekanism/client/voice/VoiceInput.java +++ b/common/mekanism/client/voice/VoiceInput.java @@ -40,11 +40,12 @@ public class VoiceInput extends Thread while(voiceClient.running) { - if(MekanismKeyHandler.voice.isPressed()) + if(MekanismKeyHandler.voiceKeyDown) { + System.out.println("Pressed"); targetLine.flush(); - while(voiceClient.running && MekanismKeyHandler.voice.isPressed()) + while(voiceClient.running && MekanismKeyHandler.voiceKeyDown) { int availableBytes = audioInput.available(); byte[] audioData = new byte[availableBytes > 2200 ? 2200 : availableBytes]; @@ -54,6 +55,7 @@ public class VoiceInput extends Thread { voiceClient.output.writeShort(audioData.length); voiceClient.output.write(audioData); + System.out.println("Wrote"); } } @@ -65,6 +67,7 @@ public class VoiceInput extends Thread } else if(doFlush) { + System.out.println("Flushed"); voiceClient.output.flush(); doFlush = false; } diff --git a/common/mekanism/client/voice/VoiceOutput.java b/common/mekanism/client/voice/VoiceOutput.java index 6599b7621..8db2e5841 100644 --- a/common/mekanism/client/voice/VoiceOutput.java +++ b/common/mekanism/client/voice/VoiceOutput.java @@ -39,6 +39,8 @@ public class VoiceOutput extends Thread byte[] audioData = new byte[byteCount]; voiceClient.input.readFully(audioData); + System.out.println("Got"); + sourceLine.write(audioData, 0, audioData.length); } } catch(Exception e) { diff --git a/common/mekanism/common/voice/VoiceConnection.java b/common/mekanism/common/voice/VoiceConnection.java index b292f0d1f..908e8381f 100644 --- a/common/mekanism/common/voice/VoiceConnection.java +++ b/common/mekanism/common/voice/VoiceConnection.java @@ -117,6 +117,8 @@ public class VoiceConnection output.write(audioData); output.flush(); + + System.out.println("Sent"); } catch(Exception e) { System.err.println("[Mekanism] VoiceServer: Error while sending data to player."); e.printStackTrace();