forked from ChomeNS/chomens-bot-java
no internet check
This commit is contained in:
parent
5a5b9c18a8
commit
fd3c7d62f7
3 changed files with 47 additions and 3 deletions
|
@ -13,6 +13,8 @@ public class Configuration {
|
|||
|
||||
public Keys keys = new Keys();
|
||||
|
||||
public InternetCheck internetCheck = new InternetCheck();
|
||||
|
||||
public String weatherApiKey;
|
||||
|
||||
public Core core = new Core();
|
||||
|
@ -28,6 +30,11 @@ public class Configuration {
|
|||
|
||||
public BotOption[] bots = new BotOption[]{};
|
||||
|
||||
public static class InternetCheck {
|
||||
public boolean enabled = true;
|
||||
public String address = "https://sus.red";
|
||||
}
|
||||
|
||||
public static class ConsolePrefixes {
|
||||
public String normalCommandsPrefix;
|
||||
public String consoleServerPrefix;
|
||||
|
|
|
@ -10,11 +10,15 @@ import org.yaml.snakeyaml.constructor.Constructor;
|
|||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class Main {
|
||||
public static final List<Bot> bots = new ArrayList<>();
|
||||
|
@ -22,11 +26,12 @@ public class Main {
|
|||
public static final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
|
||||
public static final ScheduledExecutorService executor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
|
||||
|
||||
private static Configuration config;
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
final File file = new File("config.yml");
|
||||
final Constructor constructor = new Constructor(Configuration.class, new LoaderOptions());
|
||||
final Yaml yaml = new Yaml(constructor);
|
||||
Configuration _config;
|
||||
|
||||
if (!file.exists()) {
|
||||
// creates config file from default-config.yml
|
||||
|
@ -53,9 +58,15 @@ public class Main {
|
|||
InputStream opt = new FileInputStream(file);
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(opt));
|
||||
|
||||
_config = yaml.load(reader);
|
||||
config = yaml.load(reader);
|
||||
|
||||
final Configuration config = _config;
|
||||
executor.scheduleAtFixedRate(() -> {
|
||||
try {
|
||||
checkInternet();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}, 0, 1, TimeUnit.MINUTES);
|
||||
|
||||
Configuration.BotOption[] botsOptions = config.bots;
|
||||
|
||||
|
@ -84,4 +95,26 @@ public class Main {
|
|||
// fard
|
||||
new ConsolePlugin(bots, config, jda);
|
||||
}
|
||||
|
||||
private static void checkInternet () throws IOException {
|
||||
if (!config.internetCheck.enabled) return;
|
||||
|
||||
boolean reachable = false;
|
||||
|
||||
try {
|
||||
final URL url = new URL(config.internetCheck.address);
|
||||
|
||||
final URLConnection connection = url.openConnection();
|
||||
|
||||
connection.connect();
|
||||
|
||||
reachable = true;
|
||||
} catch (UnknownHostException ignored) {}
|
||||
|
||||
if (!reachable) {
|
||||
System.err.println("No internet, exiting");
|
||||
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,6 +11,10 @@ consolePrefixes:
|
|||
normalCommandsPrefix: '.'
|
||||
consoleServerPrefix: '/'
|
||||
|
||||
internetCheck:
|
||||
enabled: true
|
||||
url: 'https://sus.red'
|
||||
|
||||
discord:
|
||||
enabled: false
|
||||
prefix: 'default!'
|
||||
|
|
Loading…
Reference in a new issue