hello i have a problem i use one event and after start show me this error
can any help me to fix it tnx!
code:
public class RandomFight
{
public static RandomFight getInstance()
{
return SingletonHolder._instance;
}
public static enum State
{
INACTIVE,
REGISTER,
LOADING,
FIGHT
}
public static State state = State.INACTIVE;
public static Vector<L2PcInstance> players = new Vector<>();
private L2PcInstance player;
protected void openRegistrations()
{
state = State.REGISTER;
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event will start in 1 minute.");
final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "To register press ?register");
Broadcast.toAllOnlinePlayers(cs);
Broadcast.toAllOnlinePlayers(cs1);
ThreadPoolManager.getInstance().scheduleGeneral(new checkRegist(), 60000);
}
protected void checkRegistrations()
{
state = State.LOADING;
if (players.isEmpty() || players.size() < 2)
{
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event will not start cause of no many partitipations, we are sorry.");
Broadcast.toAllOnlinePlayers(cs);
clean();
return;
}
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Amount of players Registed: " + players.size());
final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "2 Random players will be choosen in 30 seconds!");
Broadcast.toAllOnlinePlayers(cs);
Broadcast.toAllOnlinePlayers(cs1);
ThreadPoolManager.getInstance().scheduleGeneral(new pickPlayers(), 30000);
}
protected void pickPlayers()
{
if (players.isEmpty() || players.size() < 2)
{
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event aborted because no many partitipations, we are sorry.");
Broadcast.toAllOnlinePlayers(cs);
clean();
return;
}
for (L2PcInstance p : players)
if (p.isInOlympiadMode() || Olympiad.getInstance().isRegistered(p))
{
players.remove(p);
p.sendMessage("You automatically left from event because of your olympiad obligations.");
}
int rnd1 = Rnd.get(players.size());
int rnd2 = Rnd.get(players.size());
while (rnd2 == rnd1)
rnd2 = Rnd.get(players.size());
for (L2PcInstance player : players)
{
if (player != players.get(rnd1) && player != players.get(rnd2))
players.remove(player);
}
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players selected: " + players.firstElement().getName() + " || " + players.lastElement().getName());
final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players will be teleported in 15 seconds");
Broadcast.toAllOnlinePlayers(cs);
Broadcast.toAllOnlinePlayers(cs1);
ThreadPoolManager.getInstance().scheduleGeneral(new teleportPlayers(), 15000);
}
protected void teleport()
{
if (players.isEmpty() || players.size() < 2)
{
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event aborted because no many partitipations, we are sorry.");
Broadcast.toAllOnlinePlayers(cs);
clean();
return;
}
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players teleported!");
Broadcast.toAllOnlinePlayers(cs);
players.firstElement().teleToLocation(113474, 15552, 3968);
players.lastElement().teleToLocation(112990, 15489, 3968);
players.firstElement().setTeam(1);
players.lastElement().setTeam(2);
// para,etc
players.firstElement().sendMessage("Fight will begin in 15 seconds!");
players.lastElement().sendMessage("Fight will begin in 15 seconds!");
ThreadPoolManager.getInstance().scheduleGeneral(new fight(), 15000);
}
protected void startFight()
{
if (players.isEmpty() || players.size() < 2)
{
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "One of the players isn't online, event aborted we are sorry!");
Broadcast.toAllOnlinePlayers(cs);
clean();
return;
}
state = State.FIGHT;
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "FIGHT STARTED!");
Broadcast.toAllOnlinePlayers(cs);
players.firstElement().sendMessage("Start Fight!!");
players.lastElement().sendMessage("Start Fight!");
ThreadPoolManager.getInstance().scheduleGeneral(new checkLast(), 120000);
}
protected void lastCheck()
{
if (state == State.FIGHT)
{
if (players.isEmpty() || players.size() < 2)
{
revert();
clean();
return;
}
int alive = 0;
for (L2PcInstance player : players)
{
if (!player.isDead())
alive++;
}
if (alive == 2)
{
final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight ended tie!");
Broadcast.toAllOnlinePlayers(cs);
clean();
revert();
}
}
}
public static void revert()
{
if (!players.isEmpty())
for (L2PcInstance p : players)
{
if (p == null)
continue;
if (p.isDead())
p.doRevive();
p.setCurrentHp(p.getMaxHp());
p.setCurrentCp(p.getMaxCp());
p.setCurrentMp(p.getMaxMp());
p.broadcastUserInfo();
p.teleToLocation(82698, 148638, -3473);
}
}
public static void clean()
{
if (state == State.FIGHT)
for (L2PcInstance p : players)
p.setTeam(0);
players.clear();
state = State.INACTIVE;
}
protected RandomFight()
{
ThreadPoolManager.getInstance().scheduleAiAtFixedRate(new Event(), 60000 * Config.EVERY_MINUTES, 60000 * Config.EVERY_MINUTES);
}
private static class SingletonHolder
{
protected static final RandomFight _instance = new RandomFight();
}
protected class Event implements Runnable
{
@Override
public void run()
{
if (state == State.INACTIVE)
openRegistrations();
}
}
protected class checkRegist implements Runnable
{
@Override
public void run()
{
checkRegistrations();
}
}
protected class pickPlayers implements Runnable
{
@Override
public void run()
{
pickPlayers();
}
}
protected class teleportPlayers implements Runnable
{
@Override
public void run()
{
teleport();
}
}
protected class fight implements Runnable
{
@Override
public void run()
{
startFight();
}
}
protected class checkLast implements Runnable
{
@Override
public void run()
{
lastCheck();
}
}
}
❖Items that are sent by physical delivery are sent using someone else's data. That is, if you are not able to accept the parcel, we will not be able to return it. Please keep this in mind.
READY IN STOCK
PAYMENT SYSTEMS
4x4 io, Weststein, Paysafecard, Paysend, Genome, Conotoxia, Mybrocard, Payz Silver, Pockit UK, NagaPay, Volet com, SpectroCoin, SwissMoney, Yuh, Lydia / Sumeria, Ka.App, Wittix, Western Union, MyGuava, Xapo Bank, Bunq on emulator (DE, NL, FR, ES, IE ibans), Revolut on emulator (UK/EU), ICard, BlackCatCard, Vivid DE, Bankera, Bitsa, Wise EU/UK, N26 DE/ES on emulator, Skrill, Neteller, Trasta, Wirex, Lama, Paysera, Moneyjar
CRYPTOEXCHANGE
BINGX com, Bybit LVL 2, KuCoin, Binance LVL 2, Mexc, Latoken, Poloniex, Bitmart, Kraken, WhiteBit, Quppy, Nexo, Gate, OKX, Paybis, Paxful, Huobi (HTX), xcoins com, Bit2Me
BUSINESS ACCOUNTS
Stripe, Payoneer EU, Wise Business UK/EU, Revolut Business EU/UK, N26 Business DE, Wallester Business EU, Kraken Business Pro, Monzo Business, Vivid Business, Zen Business EU, Millennium Business PL, AirWallex EU/UK, Finom business, PayPal business, Payset business
NATIONAL BANKS / BANKS
BBVA, CommerzBank, ING, Santander, Kaspi Bank, Sberbank, AlfaBank, Tbank, Raiffeisen, mBank, Paribas, Bereke Bank, Kapital Bank
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
tazerman2
hello i have a problem i use one event and after start show me this error
can any help me to fix it tnx!
code:
6 answers to this question
Recommended Posts