package org.arkham.cs.handler;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.concurrent.TimeUnit;
import org.arkham.cs.CosmeticSuite;
import org.arkham.cs.cosmetics.GlobalKit;
import org.arkham.cs.cosmetics.HeroKit;
import org.arkham.cs.db.SQLConnectionThread;
import org.arkham.cs.db.SQLQueryThread;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
public class KitManager {
public static void giveKit(Player player, GlobalKit kit) {
if (!canUse(player, kit)) {
return;
}
kit.giveItems(player);
long current = System.currentTimeMillis() / 1000;
int id = (kit instanceof HeroKit) ? 1 : 2;
player.sendMessage(CosmeticSuite.PREFIX + "You have redeemed the " + (id == 1 ? "Hero": "SuperHero") + " Kit! You'll have to wait another 24 hours before using it again!");
SQLQueryThread.addQuery("INSERT INTO `globalkits` VALUES('" + player.getUniqueId().toString() + "', " + id + ", " + current + ") ");
}
public static boolean canUse(Player player, GlobalKit kit) {
int id = (kit instanceof HeroKit) ? 1 : 2;
if(PlayerHandler.isNothingSpecial(player)){
CosmeticSuite cs = CosmeticSuite.getInstance();
FileConfiguration config = cs.getConfig();
String link = config.getString("buy-link", CosmeticSuite.PREFIX + "Purchase this Kit at " + ChatColor.UNDERLINE + "buy.arkhamnetwork.org");
link = ChatColor.translateAlternateColorCodes('&', link);
player.sendMessage(link);
return false;
}
String uuid = "'" + player.getUniqueId() + "'";
String query = "SELECT `time` FROM `globalkits` WHERE `player`=" + uuid + " AND `id`=" + id;
ResultSet res = SQLConnectionThread.getResultSet(query);
try {
if (res.next()) {
String msg = getTimeRemaining(player, kit);
if (msg.equalsIgnoreCase("hecanuse")) {
SQLQueryThread.addQuery("DELETE FROM `globalkits` WHERE `player` =" + uuid + " AND `id`=" + id);
return true;
}
player.sendMessage(msg);
return false;
} else {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
public static String getTimeRemaining(Player player, GlobalKit kit) {
int id = (kit instanceof HeroKit) ? 1 : 2;
long time = -69;
StringBuilder builder = new StringBuilder();
String uuid = "'" + player.getUniqueId() + "'";
String query = "SELECT `time` FROM `globalkits` WHERE `player`=" + uuid + " AND `id`=" + id;
ResultSet res = SQLConnectionThread.getResultSet(query);
try {
if (res.next()) {
time = res.getLong("time");
}
} catch (SQLException e) {
e.printStackTrace();
}
int minutes = 0;
int seconds = 0;
int hours = 0;
long t = (TimeUnit.HOURS.toSeconds(24)) - ((System.currentTimeMillis() / 1000) - time);
if (t <= 0) {
builder.append("HeCanUse");
return builder.toString();
}
builder.append(CosmeticSuite.PREFIX + "Please wait another ");
seconds = (int) (t % 60);
minutes = (int) ((t % 3600) / 60);
hours = (int) (t / 3600);
if (hours > 0) {
builder.append(hours + "h, ");
}
if (minutes > 0) {
builder.append(minutes + "m, ");
}
if (seconds > 0) {
builder.append(seconds + "s");
}
builder.append(ChatColor.YELLOW + " before using this kit again");
return builder.toString();
}
}