Use try-with-resources in metronomeplugin and narrow down exception catching

This commit is contained in:
Lucas
2019-07-08 00:31:04 +02:00
parent dc148f5fa0
commit d59a57d21a

View File

@@ -26,8 +26,12 @@
package net.runelite.client.plugins.metronome; package net.runelite.client.plugins.metronome;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.io.IOException;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.SoundEffectVolume; import net.runelite.api.SoundEffectVolume;
import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem; import javax.sound.sampled.AudioSystem;
@@ -49,6 +53,7 @@ import net.runelite.client.plugins.PluginDescriptor;
tags = {"skilling", "tick", "timers"}, tags = {"skilling", "tick", "timers"},
enabledByDefault = false enabledByDefault = false
) )
@Slf4j
@Singleton @Singleton
public class MetronomePlugin extends Plugin public class MetronomePlugin extends Plugin
{ {
@@ -80,33 +85,26 @@ public class MetronomePlugin extends Plugin
private Clip GetAudioClip(String path) private Clip GetAudioClip(String path)
{ {
File audioFile = new File(path); File audioFile = new File(path);
if (audioFile.exists()) if (!audioFile.exists())
{ {
AudioInputStream audioStream; return null;
try }
{
audioStream = AudioSystem.getAudioInputStream(audioFile); try (AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile))
} {
catch (Exception e) Clip audioClip = AudioSystem.getClip();
{ audioClip.open(audioStream);
return null; FloatControl gainControl = (FloatControl) audioClip.getControl(FloatControl.Type.MASTER_GAIN);
} float gainValue = (((float) this.volume) * 40f / 100f) - 35f;
gainControl.setValue(gainValue);
try
{ return audioClip;
Clip audioClip = AudioSystem.getClip(); }
audioClip.open(audioStream); catch (IOException | LineUnavailableException | UnsupportedAudioFileException e)
FloatControl gainControl = (FloatControl) audioClip.getControl(FloatControl.Type.MASTER_GAIN); {
float gainValue = (((float) this.volume) * 40f / 100f) - 35f; log.warn("Error opening audiostream from " + audioFile, e);
gainControl.setValue(gainValue); return null;
return audioClip;
}
catch (Exception e)
{
return null;
}
} }
return null;
} }
@Override @Override
@@ -146,6 +144,7 @@ public class MetronomePlugin extends Plugin
float gainValue = (((float) this.volume) * 40f / 100f) - 35f; float gainValue = (((float) this.volume) * 40f / 100f) - 35f;
FloatControl gainControlTick = (FloatControl) tickClip.getControl(FloatControl.Type.MASTER_GAIN); FloatControl gainControlTick = (FloatControl) tickClip.getControl(FloatControl.Type.MASTER_GAIN);
gainControlTick.setValue(gainValue); gainControlTick.setValue(gainValue);
FloatControl gainControlTock = (FloatControl) tockClip.getControl(FloatControl.Type.MASTER_GAIN); FloatControl gainControlTock = (FloatControl) tockClip.getControl(FloatControl.Type.MASTER_GAIN);
gainControlTock.setValue(gainValue); gainControlTock.setValue(gainValue);
} }