mirror of
https://github.com/JEFF-Media-GbR/ChestSort.git
synced 2025-01-07 08:57:44 +01:00
unload command, closes #72
This commit is contained in:
parent
e2d602a727
commit
f8c2913018
@ -1,5 +1,6 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
## 8.10.5
|
## 8.10.5
|
||||||
|
- Added reload command (/chestsort reload) with permission chestsort.reload
|
||||||
- ChestSort checks if Minepacks version is recent enough and, if not, disable the Minepacks hook.
|
- ChestSort checks if Minepacks version is recent enough and, if not, disable the Minepacks hook.
|
||||||
- Backpacks from Minepacks will no longer be moved into chests with the left-/right-click hotkeys
|
- Backpacks from Minepacks will no longer be moved into chests with the left-/right-click hotkeys
|
||||||
- Middle-Click hotkey is now disabled in Creative mode unless the clicked slot is empty, to allow players to duplicate items just like in vanilla
|
- Middle-Click hotkey is now disabled in Creative mode unless the clicked slot is empty, to allow players to duplicate items just like in vanilla
|
||||||
|
@ -5,6 +5,8 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
public class ChestSortChestSortCommand implements CommandExecutor {
|
public class ChestSortChestSortCommand implements CommandExecutor {
|
||||||
|
|
||||||
ChestSortPlugin plugin;
|
ChestSortPlugin plugin;
|
||||||
@ -20,6 +22,18 @@ public class ChestSortChestSortCommand implements CommandExecutor {
|
|||||||
if (!command.getName().equalsIgnoreCase("chestsort")) {
|
if (!command.getName().equalsIgnoreCase("chestsort")) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reload command
|
||||||
|
if(args.length>0 && args[0].equalsIgnoreCase("reload")) {
|
||||||
|
if(!sender.hasPermission("chestsort.reload")) {
|
||||||
|
sender.sendMessage(plugin.getCommand("chestsort").getPermissionMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
sender.sendMessage(ChatColor.GRAY + "Reloading ChestSort...");
|
||||||
|
plugin.load(true);
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "ChestSort has been reloaded.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(sender instanceof Player)) {
|
if (!(sender instanceof Player)) {
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ public class ChestSortPermissionsHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void addPermissions(Player p) {
|
void addPermissions(Player p) {
|
||||||
if(plugin.usePermissions) return;
|
if(plugin.getConfig().getBoolean("use-permissions")) return;
|
||||||
if(permissions.containsKey(p.getUniqueId())) return;
|
if(permissions.containsKey(p.getUniqueId())) return;
|
||||||
PermissionAttachment attachment = p.addAttachment(plugin);
|
PermissionAttachment attachment = p.addAttachment(plugin);
|
||||||
attachment.setPermission("chestsort.use", true);
|
attachment.setPermission("chestsort.use", true);
|
||||||
@ -26,7 +26,7 @@ public class ChestSortPermissionsHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void removePermissions(Player p) {
|
void removePermissions(Player p) {
|
||||||
if(plugin.usePermissions) return;
|
if(plugin.getConfig().getBoolean("use-permissions")) return;
|
||||||
if(!permissions.containsKey(p.getUniqueId())) return;
|
if(!permissions.containsKey(p.getUniqueId())) return;
|
||||||
PermissionAttachment attachment = permissions.get(p.getUniqueId());
|
PermissionAttachment attachment = permissions.get(p.getUniqueId());
|
||||||
attachment.unsetPermission("chestsort.use");
|
attachment.unsetPermission("chestsort.use");
|
||||||
|
@ -38,6 +38,7 @@ import java.io.OutputStreamWriter;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -46,6 +47,7 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -59,6 +61,7 @@ public class ChestSortPlugin extends JavaPlugin {
|
|||||||
ChestSortMessages messages;
|
ChestSortMessages messages;
|
||||||
ChestSortOrganizer organizer;
|
ChestSortOrganizer organizer;
|
||||||
ChestSortUpdateChecker updateChecker;
|
ChestSortUpdateChecker updateChecker;
|
||||||
|
Integer updateCheckerTask;
|
||||||
ChestSortListener listener;
|
ChestSortListener listener;
|
||||||
ChestSortSettingsGUI settingsGUI;
|
ChestSortSettingsGUI settingsGUI;
|
||||||
ChestSortPermissionsHandler permissionsHandler;
|
ChestSortPermissionsHandler permissionsHandler;
|
||||||
@ -70,7 +73,6 @@ public class ChestSortPlugin extends JavaPlugin {
|
|||||||
protected boolean debug = false;
|
protected boolean debug = false;
|
||||||
boolean verbose = true;
|
boolean verbose = true;
|
||||||
boolean hotkeyGUI = true;
|
boolean hotkeyGUI = true;
|
||||||
boolean usePermissions;
|
|
||||||
|
|
||||||
public boolean hookCrackShot = false;
|
public boolean hookCrackShot = false;
|
||||||
public boolean hookInventoryPages = false;
|
public boolean hookInventoryPages = false;
|
||||||
@ -231,146 +233,7 @@ public class ChestSortPlugin extends JavaPlugin {
|
|||||||
tmpVersion = mcVersion.substring(mcVersion.indexOf("_")+1);
|
tmpVersion = mcVersion.substring(mcVersion.indexOf("_")+1);
|
||||||
mcMinorVersion = Integer.parseInt(tmpVersion.substring(0,tmpVersion.indexOf("_")));
|
mcMinorVersion = Integer.parseInt(tmpVersion.substring(0,tmpVersion.indexOf("_")));
|
||||||
|
|
||||||
// Create the config file, including checks for old config versions, and load
|
load(false);
|
||||||
// the default values for unset options
|
|
||||||
|
|
||||||
createConfig();
|
|
||||||
|
|
||||||
debug = getConfig().getBoolean("debug");
|
|
||||||
|
|
||||||
if(debug) {
|
|
||||||
ChestSortDebugger debugger = new ChestSortDebugger(this);
|
|
||||||
getServer().getPluginManager().registerEvents(debugger, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(getConfig().getBoolean("hook-crackshot")) {
|
|
||||||
if(Bukkit.getPluginManager().getPlugin("CrackShot") instanceof Plugin) {
|
|
||||||
hookCrackShot=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(getConfig().getBoolean("hook-inventorypages")) {
|
|
||||||
if(Bukkit.getPluginManager().getPlugin("InventoryPages") instanceof Plugin) {
|
|
||||||
hookInventoryPages=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(getConfig().getBoolean("hook-minepacks")) {
|
|
||||||
if(Bukkit.getPluginManager().getPlugin("Minepacks") instanceof MinepacksPlugin) {
|
|
||||||
hookMinepacks=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Save default sorting category files when enabled in the config (default=true)
|
|
||||||
saveDefaultCategories();
|
|
||||||
|
|
||||||
verbose = getConfig().getBoolean("verbose");
|
|
||||||
|
|
||||||
// Create all needed instances of our classes
|
|
||||||
|
|
||||||
// Messages class will load messages from config, fallback to hardcoded default
|
|
||||||
// messages
|
|
||||||
messages = new ChestSortMessages(this);
|
|
||||||
|
|
||||||
// Organizer will load all category files and will be ready to sort stuff
|
|
||||||
organizer = new ChestSortOrganizer(this);
|
|
||||||
|
|
||||||
settingsGUI = new ChestSortSettingsGUI(this);
|
|
||||||
|
|
||||||
// UpdateChecker will check on startup and every 24 hours for new updates (when
|
|
||||||
// enabled)
|
|
||||||
updateChecker = new ChestSortUpdateChecker(this);
|
|
||||||
|
|
||||||
// The listener will register joining (and unregister leaving) players, and call
|
|
||||||
// the Organizer to sort inventories when a player closes a chest, shulkerbox or
|
|
||||||
// barrel inventory
|
|
||||||
listener = new ChestSortListener(this);
|
|
||||||
|
|
||||||
api = new ChestSortAPI(this);
|
|
||||||
|
|
||||||
permissionsHandler = new ChestSortPermissionsHandler(this);
|
|
||||||
|
|
||||||
usePermissions = getConfig().getBoolean("use-permissions");
|
|
||||||
|
|
||||||
updateCheckInterval = (int) (getConfig().getDouble("check-interval")*60*60);
|
|
||||||
|
|
||||||
// The sorting method will determine how stuff is sorted
|
|
||||||
sortingMethod = getConfig().getString("sorting-method");
|
|
||||||
|
|
||||||
// Register the events for our Listener
|
|
||||||
getServer().getPluginManager().registerEvents(listener, this);
|
|
||||||
|
|
||||||
// Register events for the GUI interaction
|
|
||||||
getServer().getPluginManager().registerEvents(settingsGUI, this);
|
|
||||||
|
|
||||||
// Create the CommandExecutor, register commands and set their TabCompleter
|
|
||||||
ChestSortChestSortCommand chestsortCommandExecutor = new ChestSortChestSortCommand(this);
|
|
||||||
ChestSortTabCompleter tabCompleter = new ChestSortTabCompleter();
|
|
||||||
this.getCommand("chestsort").setExecutor(chestsortCommandExecutor);
|
|
||||||
this.getCommand("chestsort").setTabCompleter(tabCompleter);
|
|
||||||
ChestSortInvSortCommand invsortCommandExecutor = new ChestSortInvSortCommand(this);
|
|
||||||
this.getCommand("invsort").setExecutor(invsortCommandExecutor);
|
|
||||||
this.getCommand("invsort").setTabCompleter(tabCompleter);
|
|
||||||
|
|
||||||
// Does anyone actually need this?
|
|
||||||
if (verbose) {
|
|
||||||
getLogger().info("Use permissions: " + usePermissions);
|
|
||||||
getLogger().info("Current sorting method: " + sortingMethod);
|
|
||||||
getLogger().info("Chest sorting enabled by default: " + getConfig().getBoolean("sorting-enabled-by-default"));
|
|
||||||
getLogger().info("Inventory sorting enabled by default: " + getConfig().getBoolean("inv-sorting-enabled-by-default"));
|
|
||||||
getLogger().info("Auto generate category files: " + getConfig().getBoolean("auto-generate-category-files"));
|
|
||||||
getLogger().info("Sort time: " + getConfig().getString("sort-time"));
|
|
||||||
getLogger().info("Allow hotkeys: " + getConfig().getBoolean("allow-hotkeys"));
|
|
||||||
if(getConfig().getBoolean("allow-hotkeys")) {
|
|
||||||
getLogger().info("Hotkeys enabled by default:");
|
|
||||||
getLogger().info("- Sorting hotkeys:");
|
|
||||||
getLogger().info(" |- Middle-Click: " + getConfig().getBoolean("sorting-hotkeys.middle-click"));
|
|
||||||
getLogger().info(" |- Shift-Click: " + getConfig().getBoolean("sorting-hotkeys.shift-click"));
|
|
||||||
getLogger().info(" |- Double-Click: " + getConfig().getBoolean("sorting-hotkeys.double-click"));
|
|
||||||
getLogger().info(" |- Shift-Right-Click: " + getConfig().getBoolean("sorting-hotkeys.shift-right-click"));
|
|
||||||
getLogger().info("- Additional hotkeys:");
|
|
||||||
getLogger().info(" |- Left-Click: " + getConfig().getBoolean("additional-hotkeys.left-click"));
|
|
||||||
getLogger().info(" |- Right-Click: " + getConfig().getBoolean("additional-hotkeys.right-click"));
|
|
||||||
}
|
|
||||||
getLogger().info("Check for updates: " + getConfig().getString("check-for-updates"));
|
|
||||||
if(getConfig().getString("check-for-updates").equalsIgnoreCase("true")) {
|
|
||||||
getLogger().info("Check interval: " + getConfig().getString("check-interval") + " hours ("+updateCheckInterval+" seconds)");
|
|
||||||
}
|
|
||||||
getLogger().info("Categories: " + getCategoryList());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for updates (async, of course)
|
|
||||||
// When set to true, we check for updates right now, and every X hours (see
|
|
||||||
// updateCheckInterval)
|
|
||||||
if (getConfig().getString("check-for-updates", "true").equalsIgnoreCase("true")) {
|
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
updateChecker.checkForUpdate();
|
|
||||||
}
|
|
||||||
}, 0L, updateCheckInterval * 20);
|
|
||||||
|
|
||||||
} // When set to on-startup, we check right now (delay 0)
|
|
||||||
else if (getConfig().getString("check-for-updates", "true").equalsIgnoreCase("on-startup")) {
|
|
||||||
updateChecker.checkForUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
registerMetrics();
|
|
||||||
|
|
||||||
// When dump is set to true in config.yml, we dump all items with their categories
|
|
||||||
// to find out which items are still missing in the category files
|
|
||||||
if(getConfig().getBoolean("dump")) {
|
|
||||||
try {
|
|
||||||
dump();
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("Error while writing dump file.");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(Player p : getServer().getOnlinePlayers()) {
|
|
||||||
permissionsHandler.addPermissions(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getCategoryList() {
|
private String getCategoryList() {
|
||||||
@ -549,16 +412,142 @@ public class ChestSortPlugin extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dumps all Materials into a csv file with their current category
|
void load(boolean reload) {
|
||||||
void dump() throws IOException {
|
|
||||||
File file = new File(getDataFolder() + File.separator + "dump.csv");
|
if(reload) {
|
||||||
FileOutputStream fos = new FileOutputStream(file);
|
unregisterAllPlayers();
|
||||||
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
|
reloadConfig();
|
||||||
for(Material mat : Material.values()) {
|
if(updateCheckerTask != null) {
|
||||||
bw.write(mat.name()+","+organizer.getCategoryLinePair(mat.name()).getCategoryName());
|
getServer().getScheduler().cancelTask(updateCheckerTask);
|
||||||
bw.newLine();
|
}
|
||||||
}
|
}
|
||||||
bw.close();
|
|
||||||
|
createConfig();
|
||||||
|
debug = getConfig().getBoolean("debug");
|
||||||
|
|
||||||
|
HandlerList.unregisterAll(this);
|
||||||
|
|
||||||
|
if(debug) {
|
||||||
|
ChestSortDebugger debugger = new ChestSortDebugger(this);
|
||||||
|
getServer().getPluginManager().registerEvents(debugger, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
hookCrackShot = getConfig().getBoolean("hook-crackshot")
|
||||||
|
&& Bukkit.getPluginManager().getPlugin("CrackShot") instanceof Plugin ? true : false;
|
||||||
|
|
||||||
|
hookInventoryPages = getConfig().getBoolean("hook-inventorypages")
|
||||||
|
&& Bukkit.getPluginManager().getPlugin("InventoryPages") instanceof Plugin ? true : false;
|
||||||
|
|
||||||
|
hookMinepacks = getConfig().getBoolean("hook-minepacks")
|
||||||
|
&& Bukkit.getPluginManager().getPlugin("Minepacks") instanceof MinepacksPlugin ? true : false;
|
||||||
|
|
||||||
|
saveDefaultCategories();
|
||||||
|
|
||||||
|
verbose = getConfig().getBoolean("verbose");
|
||||||
|
|
||||||
|
messages = new ChestSortMessages(this);
|
||||||
|
organizer = new ChestSortOrganizer(this);
|
||||||
|
settingsGUI = new ChestSortSettingsGUI(this);
|
||||||
|
updateChecker = new ChestSortUpdateChecker(this);
|
||||||
|
listener = new ChestSortListener(this);
|
||||||
|
api = new ChestSortAPI(this);
|
||||||
|
permissionsHandler = new ChestSortPermissionsHandler(this);
|
||||||
|
updateCheckInterval = (int) (getConfig().getDouble("check-interval")*60*60);
|
||||||
|
sortingMethod = getConfig().getString("sorting-method");
|
||||||
|
getServer().getPluginManager().registerEvents(listener, this);
|
||||||
|
getServer().getPluginManager().registerEvents(settingsGUI, this);
|
||||||
|
ChestSortChestSortCommand chestsortCommandExecutor = new ChestSortChestSortCommand(this);
|
||||||
|
ChestSortTabCompleter tabCompleter = new ChestSortTabCompleter();
|
||||||
|
this.getCommand("chestsort").setExecutor(chestsortCommandExecutor);
|
||||||
|
this.getCommand("chestsort").setTabCompleter(tabCompleter);
|
||||||
|
ChestSortInvSortCommand invsortCommandExecutor = new ChestSortInvSortCommand(this);
|
||||||
|
this.getCommand("invsort").setExecutor(invsortCommandExecutor);
|
||||||
|
this.getCommand("invsort").setTabCompleter(tabCompleter);
|
||||||
|
|
||||||
|
if (verbose) {
|
||||||
|
getLogger().info("Use permissions: " + getConfig().getBoolean("use-permissions"));
|
||||||
|
getLogger().info("Current sorting method: " + sortingMethod);
|
||||||
|
getLogger().info("Chest sorting enabled by default: " + getConfig().getBoolean("sorting-enabled-by-default"));
|
||||||
|
getLogger().info("Inventory sorting enabled by default: " + getConfig().getBoolean("inv-sorting-enabled-by-default"));
|
||||||
|
getLogger().info("Auto generate category files: " + getConfig().getBoolean("auto-generate-category-files"));
|
||||||
|
getLogger().info("Sort time: " + getConfig().getString("sort-time"));
|
||||||
|
getLogger().info("Allow hotkeys: " + getConfig().getBoolean("allow-hotkeys"));
|
||||||
|
if(getConfig().getBoolean("allow-hotkeys")) {
|
||||||
|
getLogger().info("Hotkeys enabled by default:");
|
||||||
|
getLogger().info("- Sorting hotkeys:");
|
||||||
|
getLogger().info(" |- Middle-Click: " + getConfig().getBoolean("sorting-hotkeys.middle-click"));
|
||||||
|
getLogger().info(" |- Shift-Click: " + getConfig().getBoolean("sorting-hotkeys.shift-click"));
|
||||||
|
getLogger().info(" |- Double-Click: " + getConfig().getBoolean("sorting-hotkeys.double-click"));
|
||||||
|
getLogger().info(" |- Shift-Right-Click: " + getConfig().getBoolean("sorting-hotkeys.shift-right-click"));
|
||||||
|
getLogger().info("- Additional hotkeys:");
|
||||||
|
getLogger().info(" |- Left-Click: " + getConfig().getBoolean("additional-hotkeys.left-click"));
|
||||||
|
getLogger().info(" |- Right-Click: " + getConfig().getBoolean("additional-hotkeys.right-click"));
|
||||||
|
}
|
||||||
|
getLogger().info("Check for updates: " + getConfig().getString("check-for-updates"));
|
||||||
|
if(getConfig().getString("check-for-updates").equalsIgnoreCase("true")) {
|
||||||
|
getLogger().info("Check interval: " + getConfig().getString("check-interval") + " hours ("+updateCheckInterval+" seconds)");
|
||||||
|
}
|
||||||
|
getLogger().info("Categories: " + getCategoryList());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getConfig().getString("check-for-updates", "true").equalsIgnoreCase("true")) {
|
||||||
|
updateCheckerTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
updateChecker.checkForUpdate();
|
||||||
|
}
|
||||||
|
}, 0L, updateCheckInterval * 20);
|
||||||
|
|
||||||
|
} // When set to on-startup, we check right now (delay 0)
|
||||||
|
else if (getConfig().getString("check-for-updates", "true").equalsIgnoreCase("on-startup")) {
|
||||||
|
updateChecker.checkForUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
registerMetrics();
|
||||||
|
|
||||||
|
if(getConfig().getBoolean("dump")) {
|
||||||
|
dump();
|
||||||
|
}
|
||||||
|
|
||||||
|
for(Player p : getServer().getOnlinePlayers()) {
|
||||||
|
permissionsHandler.addPermissions(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
// End Reload
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void unregisterAllPlayers() {
|
||||||
|
if(perPlayerSettings!=null && perPlayerSettings.size()>0) {
|
||||||
|
Iterator<String> it = perPlayerSettings.keySet().iterator();
|
||||||
|
while(it.hasNext()) {
|
||||||
|
Player p = getServer().getPlayer(it.next());
|
||||||
|
if(p != null) {
|
||||||
|
unregisterPlayer(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
perPlayerSettings = new HashMap<String,ChestSortPlayerSetting>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dumps all Materials into a csv file with their current category
|
||||||
|
void dump() {
|
||||||
|
try {
|
||||||
|
File file = new File(getDataFolder() + File.separator + "dump.csv");
|
||||||
|
FileOutputStream fos;
|
||||||
|
fos = new FileOutputStream(file);
|
||||||
|
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
|
||||||
|
for(Material mat : Material.values()) {
|
||||||
|
bw.write(mat.name()+","+organizer.getCategoryLinePair(mat.name()).getCategoryName());
|
||||||
|
bw.newLine();
|
||||||
|
}
|
||||||
|
bw.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void registerPlayerIfNeeded(Player p) {
|
void registerPlayerIfNeeded(Player p) {
|
||||||
|
@ -4,10 +4,14 @@ import java.io.BufferedReader;
|
|||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
|
||||||
import net.md_5.bungee.api.chat.ClickEvent;
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||||
@ -85,12 +89,10 @@ public class ChestSortUpdateChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void checkForUpdate() {
|
void checkForUpdate() {
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//plugin.getLogger().info("Checking for available updates...");
|
|
||||||
String userAgent = "ChestSort/"+plugin.getDescription().getVersion()+" (MC "+plugin.mcVersion+", "+plugin.getServer().getOnlinePlayers().size()+"/"+plugin.getServer().getOfflinePlayers().length+")";
|
String userAgent = "ChestSort/"+plugin.getDescription().getVersion()+" (MC "+plugin.mcVersion+", "+plugin.getServer().getOnlinePlayers().size()+"/"+plugin.getServer().getOfflinePlayers().length+")";
|
||||||
HttpURLConnection httpcon = (HttpURLConnection) new URL(latestVersionLink).openConnection();
|
HttpURLConnection httpcon = (HttpURLConnection) new URL(latestVersionLink).openConnection();
|
||||||
httpcon.addRequestProperty("User-Agent", userAgent);
|
httpcon.addRequestProperty("User-Agent", userAgent);
|
||||||
@ -110,15 +112,11 @@ public class ChestSortUpdateChecker {
|
|||||||
plugin.getLogger().warning(downloadLink);
|
plugin.getLogger().warning(downloadLink);
|
||||||
plugin.getLogger().warning("=================================================");
|
plugin.getLogger().warning("=================================================");
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.close();
|
reader.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.getLogger().warning("Could not check for updates.");
|
plugin.getLogger().warning("Could not check for updates.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user