Skip to content

Commit 166298f

Browse files
committed
Added UpdateManager
1 parent a316158 commit 166298f

4 files changed

Lines changed: 92 additions & 12 deletions

File tree

src/main/java/tech/codemein/aichat/commands/MainCommand.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
6161
sender.sendMessage(ColorUtil.translate(FileManager.config.getString("No-Permission")));
6262
return true;
6363
}
64-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &bYour version is: &c" + Main.getInstance().getDescription().getVersion()));
64+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ Your version is: &c" + Main.getInstance().getDescription().getVersion()));
6565
return true;
6666
case "update":
6767
if (!(sender.hasPermission("cai.set") || sender.hasPermission("cai.*"))) {
@@ -102,30 +102,30 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
102102
return true;*/
103103
}
104104
} else {
105-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &bPlease choose between broadcast, quit or join message"));
105+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ Please choose between key"));
106106
}
107107
return true;
108108
case "reload":
109-
if (!(sender.hasPermission("sm.reload") || sender.hasPermission("sm.*"))) {
109+
if (!(sender.hasPermission("cai.reload") || sender.hasPermission("cai.*"))) {
110110
sender.sendMessage(ColorUtil.translate(new FileManager().getStringFromConfig("No-Permission")));
111111
return true;
112112
}
113113
if(args.length > 1) {
114114
switch (args[1]) {
115115
case "config":
116-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &7Reloading config..."));
116+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ &7Reloading config..."));
117117
new FileManager().reloadConfig();
118-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &aReloaded"));
118+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ &aReloaded"));
119119
return true;
120120
case "plugin":
121-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &7Reloading plugin... (This don't have 100% effectivity)"));
121+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ &7Reloading plugin... (This don't have 100% effectivity)"));
122122
Bukkit.getPluginManager().disablePlugin(Main.getInstance());
123123
Bukkit.getPluginManager().enablePlugin(Main.getInstance());
124-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &aReloaded"));
124+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ &aReloaded"));
125125
return true;
126126
}
127127
} else {
128-
sender.sendMessage(ColorUtil.translate("&8[&aSurvival&8] &bPlease choose config/plugin"));
128+
sender.sendMessage(ColorUtil.translate("&8[&cChatGPT&8] &b→ &bPlease choose config/plugin"));
129129
}
130130
return true;
131131
}

src/main/java/tech/codemein/aichat/managers/PluginManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public void start() {
2020
Main.getInstance().getLogger().info("Loading Commands.");
2121
Main.getInstance().getCommand("ask").setExecutor(new ASKCommand());
2222
Main.getInstance().getCommand("aichat").setExecutor(new MainCommand());
23+
24+
UpdateManager.startUpdater();
2325
}
2426

2527
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package tech.codemein.aichat.managers;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonObject;
5+
import com.google.gson.JsonParser;
6+
import net.md_5.bungee.api.chat.ClickEvent;
7+
import net.md_5.bungee.api.chat.ComponentBuilder;
8+
import net.md_5.bungee.api.chat.HoverEvent;
9+
import net.md_5.bungee.api.chat.TextComponent;
10+
import org.bukkit.Bukkit;
11+
import org.bukkit.entity.Player;
12+
import org.bukkit.event.EventHandler;
13+
import org.bukkit.event.Listener;
14+
import org.bukkit.event.player.PlayerJoinEvent;
15+
import tech.codemein.aichat.Main;
16+
import tech.codemein.aichat.utils.ColorUtil;
17+
18+
import java.io.BufferedReader;
19+
import java.io.InputStreamReader;
20+
import java.net.URL;
21+
22+
import static org.bukkit.Bukkit.getLogger;
23+
24+
public class UpdateManager implements Listener {
25+
private static String currentVersion = Main.getInstance().getDescription().getVersion();
26+
public static String latestVersion;
27+
private static String user = "CodeITForFun";
28+
private static String repo = "AIChat";
29+
public static void startUpdater() {
30+
Bukkit.getScheduler().runTaskTimerAsynchronously(Main.getInstance(), new Runnable() {
31+
@Override
32+
public void run() {
33+
checkForUpdates();
34+
}
35+
}, 0L, 20 * 60 * 60 * 24); // Schedule the task to run every 24 hours
36+
}
37+
private static void checkForUpdates() {
38+
try {
39+
URL url = new URL("https://api.github.com/repos/"+ user + "/" + repo + "/releases"); // Replace with the URL to your GitHub releases
40+
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
41+
StringBuilder result = new StringBuilder();
42+
String line;
43+
while ((line = reader.readLine()) != null) {
44+
result.append(line);
45+
}
46+
47+
JsonArray releases = new JsonParser().parse(result.toString()).getAsJsonArray();
48+
JsonObject latestRelease = releases.get(0).getAsJsonObject();
49+
latestVersion = latestRelease.get("tag_name").getAsString().replace("v", "");
50+
51+
if(currentVersion == null) { currentVersion = new FileManager().getStringFromConfig("Version"); }
52+
53+
if (!currentVersion.equals(latestVersion)) {
54+
Bukkit.getLogger().warning(ColorUtil.translate("[AIChat] A new update is available: " + latestVersion + " Your version is: " + currentVersion + ". Download it here: https://www.spigotmc.org/resources/web-server-for-minecraft.107949/"));
55+
} else {
56+
Bukkit.getLogger().warning(ColorUtil.translate("[AIChat] You are using latest version"));
57+
}
58+
} catch (Exception e) {
59+
getLogger().warning("[AIChat] ----------------------------------------------------------------");
60+
getLogger().warning("[AIChat] Failed to check for updates, please report bottom error in our discord.\n");
61+
e.printStackTrace();
62+
getLogger().warning("\n[AIChat] End of error.");
63+
getLogger().warning("[AIChat] ----------------------------------------------------------------");
64+
}
65+
}
66+
67+
@EventHandler
68+
public void onPlayerJoin(PlayerJoinEvent event) {
69+
Player player = event.getPlayer();
70+
71+
if (!(player.hasPermission("cai.update") || player.hasPermission("cai.*"))) {
72+
return;
73+
}
74+
75+
TextComponent message = new TextComponent(ColorUtil.translate(FileManager.config.getString("prefix") + " &bA new update of Web Server for minecraft is available: &c" +
76+
latestVersion + "&b. Your version is: &c" + currentVersion));
77+
message.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://www.spigotmc.org/resources/web-server-for-minecraft.107949/"));
78+
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to Download Manual Update from SpigotMC").create()));
79+
80+
if (!(currentVersion.equals(latestVersion.toString()))) player.spigot().sendMessage(message);
81+
}
82+
}

src/main/java/tech/codemein/aichat/utils/Updater.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)