/**
* Updates and clears PvP flag of {@link L2PcInstance} after specified time.
* @author Tryskell, Hasha
*/
public final class PvpFlagTaskManager implements Runnable
{
private final Map<L2PcInstance, Long> _players = new ConcurrentHashMap<>();
public static final PvpFlagTaskManager getInstance()
{
return SingletonHolder._instance;
}
protected PvpFlagTaskManager()
{
// Run task each second.
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(this, 1000, 1000);
}
/**
* Adds {@link L2PcInstance} to the PvpFlagTask.
* @param player : L2PcInstance to be added and checked.
* @param time : Time in ms, after which the PvP flag is removed.
*/
public final void add(L2PcInstance player, long time)
{
_players.put(player, System.currentTimeMillis() + time);
}
/**
* Removes {@link L2PcInstance} from the PvpFlagTask.
* @param player : {@link L2PcInstance} to be removed.
*/
public final void remove(L2PcInstance player)
{
_players.remove(player);
}
@Override
public final void run()
{
// List is empty, skip.
if (_players.isEmpty())
return;
// Get current time.
final long currentTime = System.currentTimeMillis();
// Loop all players.
for (Iterator<Map.Entry<L2PcInstance, Long>> iterator = _players.entrySet().iterator(); iterator.hasNext();)
{
// Get entry of current iteration.
Map.Entry<L2PcInstance, Long> entry = iterator.next();
// Get time left and check.
final long timeLeft = entry.getValue();
if (_players.isInsideZone(ZoneId.BOSS))
entry.setValue(System.currentTimeMillis() + Config.PVP_NORMAL_TIME);
// Time is running out, clear PvP flag and remove from list.
if (currentTime > timeLeft)
{
entry.getKey().updatePvPFlag(0);
iterator.remove();
}
// Time almost runned out, update to blinking PvP flag.
else if (currentTime > (timeLeft - 5000))
entry.getKey().updatePvPFlag(2);
// Time didn't run out, keep PvP flag.
else
entry.getKey().updatePvPFlag(1);
}
}
private static class SingletonHolder
{
protected static final PvpFlagTaskManager _instance = new PvpFlagTaskManager();
}
}
Modificar mensaje
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
ADENA
500 K = 40e
1kk = 70e
3kk = 190e
ITEMS
staff of life = 150e
karmian set = 90e
elven jewls top D = 30e
Orcish Poleaxe+1 best C pole = 680e
any D grade armor on demand
discord
wiz0642_81242
❖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
Question
Miracles
Script if someone need it, make all GrandBoss Chaotic Zone http://www.lineager.su/always-pvp-status-in-boss-zone/ .
Someone know why got this error? Thanks guys.
Error
PvpFlagTaskManager.java
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.