public static void startScheduler() { Bukkit.getLogger().info("Started Event"); new BukkitRunnable() { @Override public void run() { try { if(checkUpdate()) { if(!CitizensAPI.getNPCRegistry().getById(67).isSpawned()) { Set itemsKeys = plugin.getConfig().getConfigurationSection("items").getKeys(false); List itemsList = itemsKeys .stream() .filter(item -> plugin.getConfig().getString("items." + item + ".rarity").equals("Common")) .mapToInt(Integer::parseInt) .boxed() .collect(Collectors.toList()); List legendary = itemsKeys .stream() .filter(item -> plugin.getConfig().getString("items." + item + ".rarity").equals("Legendary")) .mapToInt(item -> Integer.parseInt(item)) .boxed() .collect(Collectors.toList()); List itemsRandom = new ArrayList<>(); plugin.getConfig().set("Common", null); plugin.getConfig().set("Legendary", null); shuffle(itemsList); shuffle(legendary); for (int i = 0; i < 7; i++) { itemsRandom.add(itemsList.get(i)); } plugin.getConfig().set("Common", itemsRandom); plugin.getConfig().set("Legendary", legendary.get(0)); plugin.saveConfig(); CitizensAPI.getNPCRegistry().getById(67).spawn(new Location(Bukkit.getWorld("world"), -125.700, 86, 23.527, -90, 3)); Bukkit.broadcast(ChatColor.translateAlternateColorCodes('&', "&d&lDaily &7» &eCome on /warp war to visit our sweet items!"), "dailyshop.notify"); CitizensAPI.getNPCRegistry().saveToStore(); } } else { if(CitizensAPI.getNPCRegistry().getById(67).isSpawned()) { CitizensAPI.getNPCRegistry().getById(67).spawn(new Location(Bukkit.getWorld("world"), -125.700, 86, 23.527, -90, 3)); CitizensAPI.getNPCRegistry().getById(67).despawn(DespawnReason.PENDING_RESPAWN); Bukkit.broadcast(ChatColor.translateAlternateColorCodes('&', "&d&lDaily &7» &eNext monday see you all."), "dailyshop.notify"); } } } catch (ParseException e) { throw new RuntimeException(e); } } }.runTaskTimer(plugin, 0L, 20L * 3600L); } public static void getDate() { Calendar c = Calendar.getInstance(); c.set(Calendar.DAY_OF_WEEK, 2); //LUNEDI c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); Date today = c.getTime(); plugin.getConfig().set("time", today.toString()); try { plugin.getConfig().save(new File(plugin.getDataFolder(), "config.yml")); } catch(Exception e) {} } public static boolean checkUpdate() throws ParseException { Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); Integer today = c.getTime().getDay(); Integer date = sdf.parse(plugin.getConfig().getString("time")).getDay(); if(today == date) { return true; } if(today > date || date > today) { return false; } return false; } public static boolean checkUpdate(String date) throws ParseException { Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");; Date today = c.getTime(); Date domani = sdf.parse(date); if(today.toInstant().isAfter(domani.toInstant())) { return true; } else { return false; } } public static int generate(int min, int max) { return min + (int)(Math.random() * ((max - min) + 1)); }