/* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jserver.gameserver.model.entity;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
public class EventTask
{
public static void getInstance()
{
ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
{
public void run()
{
String currentEventKing = null,
newEventKing = null;
int topEventKills = 0;
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement stm = con.prepareStatement("SELECT char_name FROM characters WHERE EventKing=? AND accesslevel=?");
stm.setInt(1, 1);
stm.setInt(2, 1);
ResultSet rSet = stm.executeQuery();
if (rSet.next())
{
currentEventKing = rSet.getString("char_name");
}
rSet.close();
stm.close();
if (currentEventKing != null)
{
boolean cont = false;
L2PcInstance cEventKing = L2World.getInstance().getPlayer(currentEventKing);
if (cEventKing == null || cEventKing.isOnline() == 0)
{
cont = true;
}
else
{
cEventKing.setEventKing(false);
cEventKing.broadcastUserInfo();
}
if (cont)
{
stm = con.prepareStatement("UPDATE characters SET EventKing=? WHERE char_name=?");
stm.setInt(1, 0);
stm.setString(2, currentEventKing);
stm.execute();
stm.close();
}
}
stm = con.prepareStatement("SELECT eventkills,char_name FROM characters WHERE accesslevel=? ORDER BY eventkills DESC LIMIT 1");
stm.setInt(1, 0);
rSet = stm.executeQuery();
if (rSet.next())
{
newEventKing = rSet.getString("char_name");
topEventKills = rSet.getInt("eventkills");
}
rSet.close();
stm.close();
boolean cont = false;
L2PcInstance nEventKing = L2World.getInstance().getPlayer(newEventKing);
if (nEventKing == null || nEventKing.isOnline() == 0)
{
cont = true;
}
else
{
nEventKing.setEventKing(true);
nEventKing.broadcastUserInfo();
}
if (cont)
{
stm = con.prepareStatement("UPDATE characters SET EventKing=? WHERE char_name=?");
stm.setInt(1, 1);
stm.setString(2, newEventKing);
stm.execute();
stm.close();
}
stm = con.prepareStatement("UPDATE characters SET eventkills=?");
stm.setInt(1, 0);
stm.execute();
stm.close();
Announcements.getInstance().announceToAll("New event king: "+newEventKing);
}
catch (Exception e)
{ }
finally
{
try
{
con.close();
}
catch (Exception e)
{ }
}
}
}
, getValidationTime());
}
private static long getValidationTime()
{
Calendar cld = Calendar.getInstance();
cld.set(Calendar.HOUR_OF_DAY, 19);
cld.set(Calendar.MINUTE, 0);
cld.set(Calendar.SECOND, 0);
long time = cld.getTimeInMillis();
if (System.currentTimeMillis()-time <= 0)
{
return time;
}
return 0;
}
}
i used this System.out.println("[DEBUG-EVENT] Time left: "+getValidationTime()); before ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() and it worked ( i've got it in console like [DEBUG-EVENT] Time left: 13859604932849 i don't know why the fuck i got this time :|)
DISCORD :
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/hood-services
https://campsite.bio/utchihaamkt
Question
Leon29
Why this code is not workin`
i used this System.out.println("[DEBUG-EVENT] Time left: "+getValidationTime()); before ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() and it worked ( i've got it in console like [DEBUG-EVENT] Time left: 13859604932849 i don't know why the fuck i got this time :|)
4 answers to this question
Recommended Posts