From 427dc747b872da3da713930e82c56a4cdc894eab Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 14 Apr 2020 09:10:41 +0000 Subject: [PATCH] Moved AntiFeedManager offline store check to OfflineTradeUtil. Contributed by pecanha. --- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- .../instancemanager/AntiFeedManager.java | 17 ++++------------- .../gameserver/util/OfflineTradeUtil.java | 10 +++++++++- 34 files changed, 221 insertions(+), 238 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index d5200a7b34..6818a1605b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3296c2859d..c970df1e35 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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(); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java index 90e8d5d070..fedf7cd9dc 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/instancemanager/AntiFeedManager.java @@ -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; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 3a67044966..b1b01e7094 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -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();