Moved AntiFeedManager offline store check to OfflineTradeUtil.

Contributed by pecanha.
This commit is contained in:
MobiusDevelopment 2020-04-14 09:10:41 +00:00
parent 232a94e465
commit 427dc747b8
34 changed files with 221 additions and 238 deletions

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.Olympiad;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();

View File

@ -19,15 +19,17 @@ package org.l2jmobius.gameserver.instancemanager;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
public class AntiFeedManager
{
protected static final Logger LOGGER_ACCOUNTING = Logger.getLogger("accounting");
public static final int GAME_ID = 0;
public static final int OLYMPIAD_ID = 1;
public static final int TVT_ID = 2;
@ -157,23 +159,12 @@ public class AntiFeedManager
final Integer addrHash = client.getConnectionAddress().hashCode();
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
if (!Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
final String address = client.getConnectionAddress().getHostAddress();
for (PlayerInstance player : World.getInstance().getPlayers())
{
if (((player.getClient() == null) || player.getClient().isDetached()) && player.getIPAddress().equals(address))
{
connectionCount.decrementAndGet();
}
}
}
if ((connectionCount.get() + 1) <= (max + Config.DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0)))
{
connectionCount.incrementAndGet();
return true;
}
return false;
}

View File

@ -25,6 +25,7 @@ import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
import org.l2jmobius.gameserver.model.zone.ZoneId;
import org.l2jmobius.gameserver.network.Disconnection;
import org.l2jmobius.gameserver.network.GameClient;
/**
@ -103,7 +104,14 @@ public class OfflineTradeUtil
World.OFFLINE_TRADE_COUNT++;
final GameClient client = player.getClient();
client.close(true);
if (Config.DUALBOX_COUNT_OFFLINE_TRADERS)
{
client.close(true);
}
else
{
Disconnection.of(client, player).defaultSequence(false);
}
client.setDetached(true);
player.leaveParty();