diff --git a/pom.xml b/pom.xml
index 638be19..5316a49 100755
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
ru.froggymonitor
rewardplugin
- 1.4
+ 1.4.1
jar
FroggyMonitorReward
diff --git a/src/main/java/ru.froggymonitor/rewardplugin/Main.java b/src/main/java/ru.froggymonitor/rewardplugin/Main.java
index 939ec62..0468b02 100755
--- a/src/main/java/ru.froggymonitor/rewardplugin/Main.java
+++ b/src/main/java/ru.froggymonitor/rewardplugin/Main.java
@@ -5,6 +5,7 @@ import net.md_5.bungee.api.chat.BaseComponent;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
+import org.bukkit.block.data.type.TripwireHook;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@@ -62,6 +63,11 @@ public final class Main extends JavaPlugin implements Listener {
public boolean has_placeholderapi;
public boolean has_vault;
+ public String bind_host;
+ public int bind_port;
+
+ public ReloadCommand reload_command;
+
@Override
public void onEnable() {
has_vault = setupEconomy();
@@ -69,6 +75,8 @@ public final class Main extends JavaPlugin implements Listener {
me = this;
+ reload_command = new ReloadCommand();
+
conf = new UnrealConfig(this, "config.yml");
vote_page = "/api/vote";
@@ -84,6 +92,9 @@ public final class Main extends JavaPlugin implements Listener {
add_comment_reward = new Reward("add_comment", (Map) conf.get("add_comment"));
del_comment_reward = new Reward("del_comment", (Map) conf.get("del_comment"));
+ bind_host = (String) conf.get("bind_host");
+ bind_port = ((Number) conf.get("bind_port")).intValue();
+
httpClient = HttpClient.newHttpClient();
sendRewardUrls();
@@ -92,11 +103,7 @@ public final class Main extends JavaPlugin implements Listener {
loadCache();
- site = new SitePart(
- (String) conf.get("bind_host"),
- ((Number) conf.get("bind_port")).intValue(),
- 0);
-
+ site = new SitePart(bind_host,bind_port,0);
site.start();
getServer().getPluginManager().registerEvents(this,this);
@@ -104,8 +111,20 @@ public final class Main extends JavaPlugin implements Listener {
@Override
public void onDisable() {
- saveCache();
- site.stop();
+ tryCatchIgnore(() -> {
+ saveCache();
+ site.stop();
+ });
+ }
+
+ public interface tryCatchRunnable {
+ public void run() throws Throwable;
+ }
+
+ public void tryCatchIgnore(tryCatchRunnable r) {
+ try {
+ r.run();
+ } catch (Throwable ignored) {}
}
@EventHandler
@@ -172,7 +191,7 @@ public final class Main extends JavaPlugin implements Listener {
public HttpClient httpClient;
public void sendRewardUrls() {
- String start_url = "http://"+external_host+":"+site.port;
+ String start_url = "http://"+external_host+":"+bind_port;
String body = "{\"secret_token\": \""+secret_token+"\", "+
"\"vote_url\": \""+start_url+vote_page+"\", "+
diff --git a/src/main/java/ru.froggymonitor/rewardplugin/ReloadCommand.java b/src/main/java/ru.froggymonitor/rewardplugin/ReloadCommand.java
new file mode 100644
index 0000000..90c3bf1
--- /dev/null
+++ b/src/main/java/ru.froggymonitor/rewardplugin/ReloadCommand.java
@@ -0,0 +1,51 @@
+package ru.froggymonitor.rewardplugin;
+
+import org.bukkit.Bukkit;
+import org.bukkit.command.*;
+import org.bukkit.entity.Player;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReloadCommand implements CommandExecutor, TabCompleter {
+ public PluginCommand pluginCommand;
+
+ public ReloadCommand() {
+ pluginCommand = Main.me.getCommand("reload");
+ pluginCommand.setTabCompleter(this);
+ pluginCommand.setExecutor(this);
+ }
+
+ public List onTabComplete(CommandSender sender,
+ Command command,
+ String alias,
+ String[] args) {
+ return new ArrayList<>();
+ }
+
+ public boolean onCommand(CommandSender sender,
+ Command command,
+ String alias,
+ String[] args) {
+ try {
+ Main.me.onDisable();
+ Main.me.onEnable();
+ for (Player p : Bukkit.getOnlinePlayers())
+ Main.me.onJoin(new PlayerJoinEvent(p, ""));
+
+ sender.sendMessage("Перезагрузка успешно завершена");
+ return true;
+ } catch (Exception e) {
+ StringWriter buffer = new StringWriter();
+ PrintWriter writer = new PrintWriter(buffer);
+ e.printStackTrace(writer);
+ sender.sendMessage(buffer.toString());
+ }
+ sender.sendMessage("При выполнении команды возникла неизвестная ошибка");
+ return true;
+ }
+}