package handlers.voice;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javolution.text.TextBuilder;
import ru.catssoftware.gameserver.handler.IVoicedCommandHandler;
import ru.catssoftware.gameserver.handler.VoicedCommandHandler;
import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance;
import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage;
public class GrandBossSpawn implements IVoicedCommandHandler {
private static final int[] BOSSES = {29001, 29006, 29014, 29019, 29020, 29022, 29028, 29045};
// QueenAnt, Core, Orfen, Antharas, Baium, Zaken, Valakas, Frintezza
private static final String [] VOICED_COMMANDS = {"epic"};
@[member='override']
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) {
if (activeChar == null) {
return false;
}
if (command.startsWith("epic")) {
NpcHtmlMessage epic = new NpcHtmlMessage(5);
TextBuilder html = new TextBuilder("<html><body><br>");
html.append("<html><title>RespawnBoss</title><body><br><center>");
html.append("<table width=256>");
html.append("<tr><td><font color=\"9CC300\">Имя Рейд Босса</font></td>");
html.append("<td><font color=\"9CC300\">Статус</font></td></tr>");
for (int bossid : BOSSES) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
st = con.prepareStatement("SELECT spawn_date, status FROM grandboss_data WHERE boss_id=?");
st.setInt(1, bossid);
rs = st.executeQuery();
if(rs.next()) {
int gstatus = rs.getInt("status");
long respawn = rs.getLong("spawn_date");
html.append("<tr><td><font color=\"FF0000\">" + BossName(bossid) + "</font></td>");
switch(gstatus)
{
case 1:
html.append("<td><font color=\"008000\">Жив</font>" + "<br1></td></tr>");
break;
case 0:
if (System.currentTimeMillis() < respawn) {
int hours = (int) ((respawn - System.currentTimeMillis()) / 1000 / 60 / 60);
int mins = (int) (((respawn - (hours * 60 * 60 * 1000)) - System.currentTimeMillis()) / 1000 / 60);
html.append("<td><font color=\"FFFFFF\">Респавн:</font><font color=\"32C332\"> " + hours + " ч. " + mins + " мин.</font><br1></td></tr>");
}
break;
default:
html.append("<td><font color=\"FFFFFF\">Атакуют</font>" + "<br1></td></tr>");
}
}
} catch (SQLException var10) {
;
}
}
html.append("</table><br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32><br>");
html.append("</center></body></html>");
epic.setHtml(html.toString());
activeChar.sendPacket(epic);
return true;
}
return false;
}
public String getDescription(String command) {
if (command.equals("epic")) {
return "Показать статус Эпик Босов";
}
return null;
}
@[member='override']
public String[] getVoicedCommandList() {
return VOICED_COMMANDS;
}
public static void main(String[] args) {
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new GrandBossSpawn());
}
public static final String BossName(int id)
{
switch (id) {
case 29001:
return "QueenAnt";
case 29006:
return "Core";
case 29014:
return "Orfen";
case 29019:
return "Antharas";
case 29020:
return "Baium";
case 29028:
return "Valakas";
case 29022:
return "Zaken";
case 29045:
return "Frintezza";
}
return "null";
}
}