From faa853de6b3644a33bc855d018d49dd6af69f900 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 19 Feb 2020 08:30:13 +0000 Subject: [PATCH] Removal of nProtect and NetcoreConfig classes. --- .../dist/game/config/protected/MmoCore.ini | 48 ---- .../java/org/l2jmobius/Config.java | 20 ++ .../org/l2jmobius/commons/crypt/nProtect.java | 223 ------------------ .../l2jmobius/commons/mmocore/MMOClient.java | 2 +- .../commons/mmocore/MMOConnection.java | 52 +--- .../commons/mmocore/NetcoreConfig.java | 85 ------- .../commons/mmocore/SelectorConfig.java | 103 ++------ .../commons/mmocore/SelectorThread.java | 72 ++---- .../org/l2jmobius/gameserver/GameServer.java | 16 +- .../gameserver/LoginServerThread.java | 15 +- .../model/actor/instance/PlayerInstance.java | 6 - .../model/entity/siege/FortSiege.java | 7 - .../gameserver/model/entity/siege/Siege.java | 8 +- .../gameserver/network/ClientStats.java | 47 ++-- .../gameserver/network/GameClient.java | 57 +---- .../gameserver/network/GamePacketHandler.java | 5 +- .../clientpackets/CharacterCreate.java | 8 - .../clientpackets/CharacterDelete.java | 8 - .../clientpackets/CharacterRestore.java | 8 - .../clientpackets/CharacterSelected.java | 2 - .../network/clientpackets/EnterWorld.java | 11 - .../network/clientpackets/GameGuardReply.java | 8 - .../network/clientpackets/RequestRestart.java | 8 - .../network/serverpackets/GameGuardQuery.java | 3 - .../l2jmobius/loginserver/LoginClient.java | 2 +- .../l2jmobius/loginserver/LoginServer.java | 9 +- 26 files changed, 114 insertions(+), 719 deletions(-) delete mode 100644 L2J_Mobius_C6_Interlude/dist/game/config/protected/MmoCore.ini delete mode 100644 L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/crypt/nProtect.java delete mode 100644 L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/NetcoreConfig.java diff --git a/L2J_Mobius_C6_Interlude/dist/game/config/protected/MmoCore.ini b/L2J_Mobius_C6_Interlude/dist/game/config/protected/MmoCore.ini deleted file mode 100644 index 4325862d9d..0000000000 --- a/L2J_Mobius_C6_Interlude/dist/game/config/protected/MmoCore.ini +++ /dev/null @@ -1,48 +0,0 @@ -#=========================================# -# MMOCore Connection Settings # -#=========================================# - -PacketHandlerDebug = False - -# -------------------------- -# Client Queue Configuration -# -------------------------- -# Queue size, do not set it too low ! -# Default: 14 -ClientPacketQueueSize = 14 -# Maximum number of packets in burst. -# Execution will be aborted and thread released if more packets executed in raw. -# Default: 50 -ClientPacketQueueMaxBurstSize = 50 -# Maximum number of packets per second. -# Flood detector will be triggered if more packets received. -# After triggering all incoming packets will be dropped until flooding stopped. -# Default: 80 -ClientPacketQueueMaxPacketsPerSecond = 80 -# Average number of packets per second calculated during this interval. -# Using larger value decrease number of false kicks, but slower reaction to flood. -# Avoid using too low or too high values, recommended between 3 and 10. -# Default: 5 -ClientPacketQueueMeasureInterval = 5 -# Maximum average number of packets per second during measure interval. -# Flood detector will be triggered if more packets received. -# After triggering all incoming packets will be dropped until flooding stopped. -# Default: 40 -ClientPacketQueueMaxAveragePacketsPerSecond = 40 -# Maximum number of flood triggers per minute. -# Client will be kicked if more floods detected. -# Default: 2 -ClientPacketQueueMaxFloodPerMin = 6 -# Maximum number of queue overflows per minute. -# After overflow all incoming packets from client are dropped until queue is flushed. -# Client will be kicked if more queue overflows detected. -# Default: 50 -ClientPacketQueueOverflowsPerMin = 50 -# Maximum number of buffer underflows per minute. -# Client will be kicked if more underflow exceptions detected. -# Default: 1 -ClientPacketQueueUnderflowsPerMin = 1 -# Maximum number of unknown packets per minute. -# Client will be kicked if more unknown packets received. -# Default: 5 -ClientPacketQueueUnknownPerMin = 5 diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java index 0d9f440f61..b3c977fc4e 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java @@ -1156,6 +1156,26 @@ public class Config public static long SESSION_TTL; public static int MAX_LOGINSESSIONS; + /** MMO settings */ + public static final int MMO_SELECTOR_SLEEP_TIME = 20; // default 20 + public static final int MMO_MAX_SEND_PER_PASS = 80; // default 80 + public static final int MMO_MAX_READ_PER_PASS = 80; // default 80 + public static final int MMO_HELPER_BUFFER_COUNT = 20; // default 20 + + /** Client Packets Queue settings */ + public static final int CLIENT_PACKET_QUEUE_SIZE = 14; // default MMO_MAX_READ_PER_PASS + 2 + public static final int CLIENT_PACKET_QUEUE_MAX_BURST_SIZE = 13; // default MMO_MAX_READ_PER_PASS + 1 + public static final int CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND = 160; // default 160 + public static final int CLIENT_PACKET_QUEUE_MEASURE_INTERVAL = 5; // default 5 + public static final int CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND = 80; // default 80 + public static final int CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN = 2; // default 2 + public static final int CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN = 1; // default 1 + public static final int CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN = 1; // default 1 + public static final int CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN = 5; // default 5 + + /** Packet handler settings */ + public static final boolean PACKET_HANDLER_DEBUG = false; + public static void loadAccessConfig() { try diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/crypt/nProtect.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/crypt/nProtect.java deleted file mode 100644 index 627a4c865e..0000000000 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/crypt/nProtect.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.l2jmobius.commons.crypt; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.concurrent.ScheduledFuture; -import java.util.logging.Logger; - -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; -import org.l2jmobius.gameserver.network.GameClient; -import org.l2jmobius.gameserver.network.serverpackets.GameGuardQuery; - -/** - * The main "engine" of protection ... - * @author Nick - */ -public class nProtect -{ - private static final Logger LOGGER = Logger.getLogger(nProtect.class.getName()); - - public enum RestrictionType - { - RESTRICT_ENTER, - RESTRICT_EVENT, - RESTRICT_OLYMPIAD, - RESTRICT_SIEGE - } - - public class nProtectAccessor - { - public void setCheckGameGuardQuery(Method m) - { - _checkGameGuardQuery = m; - } - - public void setStartTask(Method m) - { - _startTask = m; - } - - public void setCheckRestriction(Method m) - { - _checkRestriction = m; - } - - public void setSendRequest(Method m) - { - _sendRequest = m; - } - - public void setCloseSession(Method m) - { - _closeSession = m; - } - - public void setSendGGQuery(Method m) - { - _sendGGQuery = m; - } - } - - protected Method _checkGameGuardQuery = null; - protected Method _startTask = null; - protected Method _checkRestriction = null; - protected Method _sendRequest = null; - protected Method _closeSession = null; - protected Method _sendGGQuery = null; - - private static boolean enabled = false; - - private nProtect() - { - Class clazz = null; - try - { - clazz = Class.forName("org.l2jmobius.protection.main"); - - if (clazz != null) - { - final Method m = clazz.getMethod("init", nProtectAccessor.class); - if (m != null) - { - m.invoke(null, new nProtectAccessor()); - enabled = true; - } - } - } - catch (ClassNotFoundException e) - { - // LOGGER.warning("nProtect System will be not loaded due to ClassNotFoundException of 'org.l2jmobius.protection.main' class"); - } - catch (SecurityException | InvocationTargetException | IllegalAccessException | IllegalArgumentException | NoSuchMethodException e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - } - - public void sendGameGuardQuery(GameGuardQuery pkt) - { - try - { - if (_sendGGQuery != null) - { - _sendGGQuery.invoke(pkt); - } - } - catch (Exception e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - } - - public boolean checkGameGuardRepy(GameClient cl, int[] reply) - { - try - { - if (_checkGameGuardQuery != null) - { - return (Boolean) _checkGameGuardQuery.invoke(null, cl, reply); - } - } - catch (Exception e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - return true; - } - - public ScheduledFuture startTask(GameClient client) - { - try - { - if (_startTask != null) - { - return (ScheduledFuture) _startTask.invoke(null, client); - } - } - catch (Exception e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - return null; - } - - public void sendRequest(GameClient cl) - { - if (_sendRequest != null) - { - try - { - _sendRequest.invoke(null, cl); - } - catch (Exception e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - } - } - - public void closeSession(GameClient cl) - { - if (_closeSession != null) - { - try - { - _closeSession.invoke(null, cl); - } - catch (Exception e) - { - // Ignore. - } - } - } - - public boolean checkRestriction(PlayerInstance player, RestrictionType type, Object... params) - { - try - { - if (_checkRestriction != null) - { - return (Boolean) _checkRestriction.invoke(null, player, type, params); - } - } - catch (Exception e) - { - LOGGER.warning("Ptoblem with nProtect: " + e.getMessage()); - } - return true; - } - - /** - * @return the enabled - */ - public static boolean isEnabled() - { - return enabled; - } - - public static nProtect getInstance() - { - return SingletonHolder.INSTANCE; - } - - private static class SingletonHolder - { - protected static final nProtect INSTANCE = new nProtect(); - } -} diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOClient.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOClient.java index 1ed22cd747..53532a779c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOClient.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOClient.java @@ -42,5 +42,5 @@ public abstract class MMOClient> protected abstract void onDisconnection(); - protected abstract void onForcedDisconnection(boolean critical); + protected abstract void onForcedDisconnection(); } \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOConnection.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOConnection.java index b92ca1850b..c04822e901 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOConnection.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/MMOConnection.java @@ -17,7 +17,6 @@ package org.l2jmobius.commons.mmocore; import java.io.IOException; -import java.io.InputStream; import java.net.InetAddress; import java.net.Socket; import java.nio.ByteBuffer; @@ -36,8 +35,6 @@ public class MMOConnection> private final Socket _socket; - private final InputStream _socket_is; - private final InetAddress _address; private final ReadableByteChannel _readableByteChannel; @@ -60,16 +57,13 @@ public class MMOConnection> private T _client; - public MMOConnection(SelectorThread selectorThread, Socket socket, SelectionKey key) throws IOException + public MMOConnection(SelectorThread selectorThread, Socket socket, SelectionKey key) { _selectorThread = selectorThread; _socket = socket; _address = socket.getInetAddress(); _readableByteChannel = socket.getChannel(); _writableByteChannel = socket.getChannel(); - - _socket_is = socket.getInputStream(); - _port = socket.getPort(); _selectionKey = key; @@ -100,7 +94,7 @@ public class MMOConnection> _sendQueue.addLast(sp); } - if (!_sendQueue.isEmpty() && _selectionKey.isValid()) + if (!_sendQueue.isEmpty()) { try { @@ -163,6 +157,7 @@ public class MMOConnection> { temp.put(_primaryWriteBuffer); _selectorThread.recycleBuffer(_primaryWriteBuffer); + _primaryWriteBuffer = temp; } else { @@ -200,32 +195,6 @@ public class MMOConnection> return _readBuffer; } - public boolean isConnected() - { - return !_socket.isClosed() && _socket.isConnected(); - } - - public boolean isChannelConnected() - { - boolean output = false; - - if (!_socket.isClosed() && (_socket.getChannel() != null) && _socket.getChannel().isConnected() && _socket.getChannel().isOpen() && !_socket.isInputShutdown()) - { - try - { - if (_socket_is.available() > 0) - { - output = true; - } - } - catch (IOException e) - { - // not useful LOGGER - } - } - return output; - } - public boolean isClosed() { return _pendingClose; @@ -269,16 +238,13 @@ public class MMOConnection> } } - if (_selectionKey.isValid()) + try { - try - { - _selectionKey.interestOps(_selectionKey.interestOps() & ~SelectionKey.OP_WRITE); - } - catch (CancelledKeyException e) - { - // not useful LOGGER - } + _selectionKey.interestOps(_selectionKey.interestOps() & ~SelectionKey.OP_WRITE); + } + catch (CancelledKeyException e) + { + // ignore } // _closePacket = sp; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/NetcoreConfig.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/NetcoreConfig.java deleted file mode 100644 index 509bd25ec0..0000000000 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/NetcoreConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.l2jmobius.commons.mmocore; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.Properties; - -public class NetcoreConfig -{ - public boolean PACKET_HANDLER_DEBUG; - - /** MMO settings */ - public int MMO_SELECTOR_SLEEP_TIME = 20; // default 20 - public int MMO_MAX_SEND_PER_PASS = 12; // default 12 - public int MMO_MAX_READ_PER_PASS = 12; // default 12 - public int MMO_HELPER_BUFFER_COUNT = 20; // default 20 - - /** Client Packets Queue settings */ - public int CLIENT_PACKET_QUEUE_SIZE; // default MMO_MAX_READ_PER_PASS + 2 - public int CLIENT_PACKET_QUEUE_MAX_BURST_SIZE; // default MMO_MAX_READ_PER_PASS + 1 - public int CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND; // default 80 - public int CLIENT_PACKET_QUEUE_MEASURE_INTERVAL; // default 5 - public int CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND; // default 40 - public int CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN; // default 2 - public int CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN; // default 1 - public int CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN; // default 1 - public int CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN; // default 5 - - private NetcoreConfig() - { - final String MMO_CONFIG = "./config/protected/MmoCore.ini"; - - try - { - final Properties mmoSetting = new Properties(); - final InputStream is = new FileInputStream(new File(MMO_CONFIG)); - mmoSetting.load(is); - is.close(); - - PACKET_HANDLER_DEBUG = Boolean.parseBoolean(mmoSetting.getProperty("PacketHandlerDebug", "False")); - - // CLIENT-QUEUE-SETTINGS - CLIENT_PACKET_QUEUE_SIZE = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueSize", "14")); // default MMO_MAX_READ_PER_PASS + 2 - CLIENT_PACKET_QUEUE_MAX_BURST_SIZE = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueMaxBurstSize", "13")); // default MMO_MAX_READ_PER_PASS + 1 - CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueMaxPacketsPerSecond", "80")); // default 80 - CLIENT_PACKET_QUEUE_MEASURE_INTERVAL = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueMeasureInterval", "5")); // default 5 - CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueMaxAveragePacketsPerSecond", "40")); // default 40 - CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueMaxFloodPerMin", "6")); // default 6 - CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueOverflowsPerMin", "3")); // default 3 - CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueUnderflowsPerMin", "3")); // default 3 - CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN = Integer.parseInt(mmoSetting.getProperty("ClientPacketQueueUnknownPerMin", "5")); // default 5 - } - catch (Exception e) - { - e.printStackTrace(); - throw new Error("Failed to Load " + MMO_CONFIG + " File."); - } - } - - public static NetcoreConfig getInstance() - { - return SingletonHolder.INSTANCE; - } - - private static class SingletonHolder - { - protected static final NetcoreConfig INSTANCE = new NetcoreConfig(); - } -} \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorConfig.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorConfig.java index fdd969f1bf..21c911031b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorConfig.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorConfig.java @@ -19,106 +19,41 @@ package org.l2jmobius.commons.mmocore; /** * @author KenM */ - public class SelectorConfig { - private int readBufferSize = 64 * 1024; + public int READ_BUFFER_SIZE = 64 * 1024; - private int writeBufferSize = 64 * 1024; + public int WRITE_BUFFER_SIZE = 64 * 1024; - private int helperBufferCount = 20; + public int HELPER_BUFFER_COUNT = 20; - private int helperBufferSize = 64 * 1024; + public int HELPER_BUFFER_SIZE = 64 * 1024; /** - * Server will try to send maxSendPerPass packets per socket write call
- * however it may send less if the write buffer was filled before achieving this value. + * Server will try to send MAX_SEND_PER_PASS packets per socket write call
+ * however it may send less if the write buffer was filled before achieving + * this value. */ - private int maxSendPerPass = 10; + public int MAX_SEND_PER_PASS = 10; /** - * Server will try to read maxReadPerPass packets per socket read call
- * however it may read less if the read buffer was empty before achieving this value. + * Server will try to read MAX_READ_PER_PASS packets per socket read call
+ * however it may read less if the read buffer was empty before achieving + * this value. */ - private int maxReadPerPass = 10; + public int MAX_READ_PER_PASS = 10; /** - * Defines how much time (in milis) should the selector sleep, an higher value increases throughput but also increases latency(to a max of the sleep value itself).
- * Also an extremely high value(usually > 100) will decrease throughput due to the server not doing enough sends per second (depends on max sends per pass).
+ * Defines how much time (in milis) should the selector sleep, an higher + * value increases throughput but also increases latency(to a max of the + * sleep value itself).
+ * Also an extremely high value(usually > 100) will decrease throughput due + * to the server not doing enough sends per second (depends on max sends per + * pass).
*
* Recommended values:
* 1 for minimal latency.
* 10-30 for an latency/troughput trade-off based on your needs.
*/ - private int sleepTime = 10; - - public int getReadBufferSize() - { - return readBufferSize; - } - - public void setReadBufferSize(int readBufferSize) - { - this.readBufferSize = readBufferSize; - } - - public int getWriteBufferSize() - { - return writeBufferSize; - } - - public void setWriteBufferSize(int writeBufferSize) - { - this.writeBufferSize = writeBufferSize; - } - - public int getHelperBufferCount() - { - return helperBufferCount; - } - - public void setHelperBufferCount(int helperBufferCount) - { - this.helperBufferCount = helperBufferCount; - } - - public int getHelperBufferSize() - { - return helperBufferSize; - } - - public void setHelperBufferSize(int helperBufferSize) - { - this.helperBufferSize = helperBufferSize; - } - - public int getMaxSendPerPass() - { - return maxSendPerPass; - } - - public void setMaxSendPerPass(int maxSendPerPass) - { - this.maxSendPerPass = maxSendPerPass; - } - - public int getMaxReadPerPass() - { - return maxReadPerPass; - } - - public void setMaxReadPerPass(int maxReadPerPass) - { - this.maxReadPerPass = maxReadPerPass; - } - - public int getSleepTime() - { - return sleepTime; - } - - public void setSleepTime(int sleepTime) - { - this.sleepTime = sleepTime; - } + public int SLEEP_TIME = 10; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorThread.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorThread.java index b6bcb3584f..225ca95de4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorThread.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/commons/mmocore/SelectorThread.java @@ -70,16 +70,16 @@ public class SelectorThread>extends Thread { super.setName("SelectorThread-" + super.getId()); - HELPER_BUFFER_SIZE = sc.getHelperBufferSize(); - HELPER_BUFFER_COUNT = sc.getHelperBufferCount(); - MAX_SEND_PER_PASS = sc.getMaxSendPerPass(); - MAX_READ_PER_PASS = sc.getMaxReadPerPass(); + HELPER_BUFFER_SIZE = sc.HELPER_BUFFER_SIZE; + HELPER_BUFFER_COUNT = sc.HELPER_BUFFER_COUNT; + MAX_SEND_PER_PASS = sc.MAX_SEND_PER_PASS; + MAX_READ_PER_PASS = sc.MAX_READ_PER_PASS; - SLEEP_TIME = sc.getSleepTime(); + SLEEP_TIME = sc.SLEEP_TIME; - DIRECT_WRITE_BUFFER = ByteBuffer.allocateDirect(sc.getWriteBufferSize()).order(BYTE_ORDER); - WRITE_BUFFER = ByteBuffer.wrap(new byte[sc.getWriteBufferSize()]).order(BYTE_ORDER); - READ_BUFFER = ByteBuffer.wrap(new byte[sc.getReadBufferSize()]).order(BYTE_ORDER); + DIRECT_WRITE_BUFFER = ByteBuffer.allocateDirect(sc.WRITE_BUFFER_SIZE).order(BYTE_ORDER); + WRITE_BUFFER = ByteBuffer.wrap(new byte[sc.WRITE_BUFFER_SIZE]).order(BYTE_ORDER); + READ_BUFFER = ByteBuffer.wrap(new byte[sc.READ_BUFFER_SIZE]).order(BYTE_ORDER); STRING_BUFFER = new NioNetStringBuffer(64 * 1024); @@ -208,16 +208,9 @@ public class SelectorThread>extends Thread { while (!_pendingClose.isEmpty()) { - try - { - con = _pendingClose.removeFirst(); - writeClosePacket(con); - closeConnectionImpl(con.getSelectionKey(), con); - } - catch (Exception e) - { - e.printStackTrace(); - } + con = _pendingClose.removeFirst(); + writeClosePacket(con); + closeConnectionImpl(con.getSelectionKey(), con); } } @@ -241,7 +234,7 @@ public class SelectorThread>extends Thread } catch (IOException e) { - con.getClient().onForcedDisconnection(true); + con.getClient().onForcedDisconnection(); closeConnectionImpl(key, con); } @@ -288,6 +281,7 @@ public class SelectorThread>extends Thread { return; } + ByteBuffer buf = con.getReadBuffer(); if (buf == null) { @@ -302,18 +296,13 @@ public class SelectorThread>extends Thread int result = -2; - boolean critical = true; - try { result = con.read(buf); } catch (IOException e) { - if (!con.isConnected() || !con.isChannelConnected()) - { - critical = false; - } + // error handling goes bellow } if (result > 0) @@ -360,7 +349,7 @@ public class SelectorThread>extends Thread } case -2: { - con.getClient().onForcedDisconnection(critical); + con.getClient().onForcedDisconnection(); closeConnectionImpl(key, con); break; } @@ -379,7 +368,7 @@ public class SelectorThread>extends Thread } case 1: { - // we don`t have enough data for header so we need to read + // we don't have enough data for header so we need to read key.interestOps(key.interestOps() | SelectionKey.OP_READ); // did we use the READ_BUFFER ? @@ -403,17 +392,14 @@ public class SelectorThread>extends Thread // do we got enough bytes for the packet? if (dataPending <= buf.remaining()) { - boolean read = true; // avoid parsing dummy packets (packets without body) if (dataPending > 0) { final int pos = buf.position(); - if (!parseClientPacket(pos, buf, dataPending, client)) - { - read = false; - } + parseClientPacket(pos, buf, dataPending, client); buf.position(pos + dataPending); } + // if we are done with this buffer if (!buf.hasRemaining()) { @@ -426,17 +412,17 @@ public class SelectorThread>extends Thread { READ_BUFFER.clear(); } - read = false; + return false; } - return read; + return true; } - // we don`t have enough bytes for the dataPacket so we need - // to read + // we don't have enough bytes for the dataPacket so we need to read key.interestOps(key.interestOps() | SelectionKey.OP_READ); + // did we use the READ_BUFFER ? if (buf == READ_BUFFER) { - // move it`s position + // move it's position buf.position(buf.position() - HEADER_SIZE); // move the pending byte to the connections READ_BUFFER allocateReadBuffer(con); @@ -457,7 +443,7 @@ public class SelectorThread>extends Thread READ_BUFFER.clear(); } - private final boolean parseClientPacket(int pos, ByteBuffer buf, int dataSize, T client) + private final void parseClientPacket(int pos, ByteBuffer buf, int dataSize, T client) { final boolean ret = client.decrypt(buf, dataSize); @@ -466,7 +452,6 @@ public class SelectorThread>extends Thread // apply limit final int limit = buf.limit(); buf.limit(pos + dataSize); - final ReceivablePacket cp = _packetHandler.handlePacket(buf, client); if (cp != null) @@ -486,8 +471,6 @@ public class SelectorThread>extends Thread buf.limit(limit); } - - return true; } private final void writeClosePacket(MMOConnection con) @@ -566,7 +549,7 @@ public class SelectorThread>extends Thread } else { - con.getClient().onForcedDisconnection(true); + con.getClient().onForcedDisconnection(); closeConnectionImpl(key, con); } } @@ -698,11 +681,6 @@ public class SelectorThread>extends Thread _shutdown = true; } - public boolean isShutdown() - { - return _shutdown; - } - protected void closeSelectorThread() { for (SelectionKey key : _selector.keys()) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/GameServer.java index 8ad0767a61..f87c8a1cc4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/GameServer.java @@ -29,10 +29,8 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.enums.ServerMode; -import org.l2jmobius.commons.mmocore.NetcoreConfig; import org.l2jmobius.commons.mmocore.SelectorConfig; import org.l2jmobius.commons.mmocore.SelectorThread; import org.l2jmobius.commons.util.DeadlockDetector; @@ -195,12 +193,6 @@ public class GameServer CrestCache.getInstance(); ScriptEngineManager.getInstance(); - nProtect.getInstance(); - if (nProtect.isEnabled()) - { - LOGGER.info("nProtect System Enabled"); - } - Util.printSection("World"); World.getInstance(); MapRegionData.getInstance(); @@ -507,10 +499,10 @@ public class GameServer _loginThread.start(); final SelectorConfig sc = new SelectorConfig(); - sc.setMaxReadPerPass(NetcoreConfig.getInstance().MMO_MAX_READ_PER_PASS); - sc.setMaxSendPerPass(NetcoreConfig.getInstance().MMO_MAX_SEND_PER_PASS); - sc.setSleepTime(NetcoreConfig.getInstance().MMO_SELECTOR_SLEEP_TIME); - sc.setHelperBufferCount(NetcoreConfig.getInstance().MMO_HELPER_BUFFER_COUNT); + sc.MAX_READ_PER_PASS = Config.MMO_MAX_READ_PER_PASS; + sc.MAX_SEND_PER_PASS = Config.MMO_MAX_SEND_PER_PASS; + sc.SLEEP_TIME = Config.MMO_SELECTOR_SLEEP_TIME; + sc.HELPER_BUFFER_COUNT = Config.MMO_HELPER_BUFFER_COUNT; _gamePacketHandler = new GamePacketHandler(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java index 800ab362f3..f6a5157640 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/LoginServerThread.java @@ -311,18 +311,9 @@ public class LoginServerThread extends Thread sendPacket(pig); wcToRemove.gameClient.setState(GameClientState.AUTHED); wcToRemove.gameClient.setSessionId(wcToRemove.session); - // before the char selection, check shutdown status - if (GameServer.getSelectorThread().isShutdown()) - { - wcToRemove.gameClient.getConnection().sendPacket(new AuthLoginFail(1)); - wcToRemove.gameClient.closeNow(); - } - else - { - final CharSelectInfo cl = new CharSelectInfo(wcToRemove.account, wcToRemove.gameClient.getSessionId().playOkID1); - wcToRemove.gameClient.getConnection().sendPacket(cl); - wcToRemove.gameClient.setCharSelection(cl.getCharInfo()); - } + final CharSelectInfo cl = new CharSelectInfo(wcToRemove.account, wcToRemove.gameClient.getSessionId().playOkID1); + wcToRemove.gameClient.getConnection().sendPacket(cl); + wcToRemove.gameClient.setCharSelection(cl.getCharInfo()); } else { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index e441725803..0681020818 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -38,7 +38,6 @@ import java.util.concurrent.locks.ReentrantLock; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.GameTimeController; @@ -4583,11 +4582,6 @@ public class PlayerInstance extends Playable */ public void setClient(GameClient client) { - if ((client == null) && (_client != null)) - { - _client.stopGuardTask(); - nProtect.getInstance().closeSession(_client); - } _client = client; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/FortSiege.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/FortSiege.java index 91ed938ac0..4ea83a2c1a 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/FortSiege.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/FortSiege.java @@ -25,8 +25,6 @@ import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; -import org.l2jmobius.commons.crypt.nProtect.RestrictionType; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.gameserver.datatables.sql.ClanTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable; @@ -434,11 +432,6 @@ public class FortSiege // Schedule a task to prepare auto siege end _siegeEndDate = Calendar.getInstance(); _siegeEndDate.add(Calendar.MINUTE, FortSiegeManager.getInstance().getSiegeLength()); - nProtect.getInstance().checkRestriction(null, RestrictionType.RESTRICT_EVENT, new Object[] - { - FortSiege.class, - this - }); ThreadPool.schedule(new ScheduleEndSiegeTask(getFort()), 1000); // Prepare auto end task announceToPlayer("The siege of " + getFort().getName() + " has started!", false); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Siege.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Siege.java index 4ab1c9c4a2..3fde80e605 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Siege.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Siege.java @@ -27,8 +27,6 @@ import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; -import org.l2jmobius.commons.crypt.nProtect.RestrictionType; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.gameserver.datatables.sql.ClanTable; import org.l2jmobius.gameserver.datatables.sql.NpcTable; @@ -600,11 +598,7 @@ public class Siege // Schedule a task to prepare auto siege end _siegeEndDate = Calendar.getInstance(); _siegeEndDate.add(Calendar.MINUTE, SiegeManager.getInstance().getSiegeLength()); - nProtect.getInstance().checkRestriction(null, RestrictionType.RESTRICT_EVENT, new Object[] - { - Siege.class, - this - }); + // Prepare auto end task ThreadPool.schedule(new ScheduleEndSiegeTask(getCastle()), 1000); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/ClientStats.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/ClientStats.java index 51a21f821c..9ab10a26b7 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/ClientStats.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/ClientStats.java @@ -16,7 +16,7 @@ */ package org.l2jmobius.gameserver.network; -import org.l2jmobius.commons.mmocore.NetcoreConfig; +import org.l2jmobius.Config; public class ClientStats { @@ -53,13 +53,13 @@ public class ClientStats public ClientStats() { - BUFFER_SIZE = NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MEASURE_INTERVAL; + BUFFER_SIZE = Config.CLIENT_PACKET_QUEUE_MEASURE_INTERVAL; _packetsInSecond = new int[BUFFER_SIZE]; _head = BUFFER_SIZE - 1; } /** - * @return true if incoming packet need to be dropped + * @return true if incoming packet need to be dropped. */ protected final boolean dropPacket() { @@ -72,9 +72,8 @@ public class ClientStats } /** - * Later during flood returns true (and send ActionFailed) once per second. * @param queueSize - * @return true if flood detected first and ActionFailed packet need to be sent. + * @return true if flood detected first and ActionFailed packet need to be sent. Later during flood returns true (and send ActionFailed) once per second. */ protected final boolean countPacket(int queueSize) { @@ -93,8 +92,8 @@ public class ClientStats } /** - * Counts unknown packets and return true if threshold is reached. - * @return + * Counts unknown packets. + * @return true if threshold is reached. */ protected final boolean countUnknownPacket() { @@ -109,13 +108,13 @@ public class ClientStats } _unknownPacketsInMin++; - return _unknownPacketsInMin > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN; + return _unknownPacketsInMin > Config.CLIENT_PACKET_QUEUE_MAX_UNKNOWN_PER_MIN; } /** - * Counts burst length and return true if execution of the queue need to be aborted. + * Counts burst length. * @param count - current number of processed packets in burst - * @return + * @return true if execution of the queue need to be aborted. */ protected final boolean countBurst(int count) { @@ -124,7 +123,7 @@ public class ClientStats maxBurstSize = count; } - if (count < NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_BURST_SIZE) + if (count < Config.CLIENT_PACKET_QUEUE_MAX_BURST_SIZE) { return false; } @@ -134,8 +133,8 @@ public class ClientStats } /** - * Counts queue overflows and return true if threshold is reached. - * @return + * Counts queue overflows. + * @return true if threshold is reached. */ protected final boolean countQueueOverflow() { @@ -151,12 +150,12 @@ public class ClientStats } _overflowsInMin++; - return _overflowsInMin > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN; + return _overflowsInMin > Config.CLIENT_PACKET_QUEUE_MAX_OVERFLOWS_PER_MIN; } /** - * Counts underflow exceptions and return true if threshold is reached. - * @return + * Counts underflow exceptions. + * @return true if threshold is reached. */ protected final boolean countUnderflowException() { @@ -171,26 +170,24 @@ public class ClientStats } _underflowReadsInMin++; - return _underflowReadsInMin > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN; + return _underflowReadsInMin > Config.CLIENT_PACKET_QUEUE_MAX_UNDERFLOWS_PER_MIN; } /** - * Returns true if maximum number of floods per minute is reached. - * @return + * @return true if maximum number of floods per minute is reached. */ protected final boolean countFloods() { - return _floodsInMin > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN; + return _floodsInMin > Config.CLIENT_PACKET_QUEUE_MAX_FLOODS_PER_MIN; } private final boolean longFloodDetected() { - return (_totalCount / BUFFER_SIZE) > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND; + return (_totalCount / BUFFER_SIZE) > Config.CLIENT_PACKET_QUEUE_MAX_AVERAGE_PACKETS_PER_SECOND; } /** - * Returns true if flood detected first and ActionFailed packet need to be sent. Later during flood returns true (and send ActionFailed) once per second. - * @return + * @return true if flood detected first and ActionFailed packet need to be sent. Later during flood returns true (and send ActionFailed) once per second. */ private final synchronized boolean countPacket() { @@ -201,7 +198,7 @@ public class ClientStats _packetCountStartTick = tick; // clear flag if no more flooding during last seconds - if (_floodDetected && !longFloodDetected() && (_packetsInSecond[_head] < (NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND / 2))) + if (_floodDetected && !longFloodDetected() && (_packetsInSecond[_head] < (Config.CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND / 2))) { _floodDetected = false; } @@ -221,7 +218,7 @@ public class ClientStats final int count = ++_packetsInSecond[_head]; if (!_floodDetected) { - if (count > NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND) + if (count > Config.CLIENT_PACKET_QUEUE_MAX_PACKETS_PER_SECOND) { shortFloods++; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java index f918537585..fbbf6945ee 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GameClient.java @@ -32,11 +32,9 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.mmocore.MMOClient; import org.l2jmobius.commons.mmocore.MMOConnection; -import org.l2jmobius.commons.mmocore.NetcoreConfig; import org.l2jmobius.commons.mmocore.ReceivablePacket; import org.l2jmobius.gameserver.LoginServerThread; import org.l2jmobius.gameserver.LoginServerThread.SessionKey; @@ -57,7 +55,6 @@ import org.l2jmobius.gameserver.model.entity.olympiad.Olympiad; import org.l2jmobius.gameserver.model.zone.ZoneId; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.GameServerPacket; -import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.ServerClose; import org.l2jmobius.gameserver.util.EventData; import org.l2jmobius.gameserver.util.FloodProtectors; @@ -93,9 +90,6 @@ public class GameClient extends MMOClient> implements private final long _connectionStartTime; private final List _charSlotMapping = new ArrayList<>(); - // Task - private ScheduledFuture _guardCheckTask = null; - protected ScheduledFuture _cleanupTask = null; private final ClientStats _stats; @@ -103,14 +97,8 @@ public class GameClient extends MMOClient> implements // Crypt private final GameCrypt _crypt; - // Flood protection - public long packetsNextSendTick = 0; - - protected boolean _closenow = true; private boolean _isDetached = false; - protected boolean _forcedToClose = false; - private final ArrayBlockingQueue> _packetQueue; private final ReentrantLock _queueLock = new ReentrantLock(); @@ -123,17 +111,7 @@ public class GameClient extends MMOClient> implements _connectionStartTime = System.currentTimeMillis(); _crypt = new GameCrypt(); _stats = new ClientStats(); - _packetQueue = new ArrayBlockingQueue<>(NetcoreConfig.getInstance().CLIENT_PACKET_QUEUE_SIZE); - - _guardCheckTask = nProtect.getInstance().startTask(this); - ThreadPool.schedule(() -> - { - if (_closenow) - { - close(new LeaveWorld()); - } - }, 4000); - + _packetQueue = new ArrayBlockingQueue<>(Config.CLIENT_PACKET_QUEUE_SIZE); } public byte[] enableCrypt() @@ -170,7 +148,6 @@ public class GameClient extends MMOClient> implements @Override public boolean decrypt(ByteBuffer buf, int size) { - _closenow = false; _crypt.decrypt(buf.array(), buf.position(), size); return true; } @@ -538,24 +515,12 @@ public class GameClient extends MMOClient> implements } @Override - public void onForcedDisconnection(boolean critical) + public void onForcedDisconnection() { - _forcedToClose = true; - // the force operation will allow to not save client position to prevent again criticals and stuck closeNow(); } - public void stopGuardTask() - { - if (_guardCheckTask != null) - { - _guardCheckTask.cancel(true); - _guardCheckTask = null; - } - - } - @Override public void onDisconnection() { @@ -585,7 +550,6 @@ public class GameClient extends MMOClient> implements */ public void close(int delay) { - close(ServerClose.STATIC_PACKET); synchronized (this) { @@ -595,8 +559,6 @@ public class GameClient extends MMOClient> implements } _cleanupTask = ThreadPool.schedule(new CleanupTask(), delay); // delayed } - stopGuardTask(); - nProtect.getInstance().closeSession(this); } public String getIpAddress() @@ -703,16 +665,8 @@ public class GameClient extends MMOClient> implements // prevent closing again player.setClient(null); - player.deleteMe(); - - try - { - player.store(_forcedToClose); - } - catch (Exception e2) - { - } + player.store(true); } setPlayer(null); @@ -990,11 +944,6 @@ public class GameClient extends MMOClient> implements } } - public boolean isForcedToClose() - { - return _forcedToClose; - } - public void setProtocolVersion(int version) { _protocolVersion = version; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GamePacketHandler.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GamePacketHandler.java index ad6c77e3a1..30c1a9d174 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GamePacketHandler.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/GamePacketHandler.java @@ -24,7 +24,6 @@ import org.l2jmobius.commons.mmocore.IClientFactory; import org.l2jmobius.commons.mmocore.IMMOExecutor; import org.l2jmobius.commons.mmocore.IPacketHandler; import org.l2jmobius.commons.mmocore.MMOConnection; -import org.l2jmobius.commons.mmocore.NetcoreConfig; import org.l2jmobius.commons.mmocore.ReceivablePacket; import org.l2jmobius.commons.util.Util; import org.l2jmobius.gameserver.network.GameClient.GameClientState; @@ -1318,7 +1317,7 @@ public class GamePacketHandler implements IPacketHandler, IClientFac private void printDebug(int opcode, ByteBuffer buf, GameClientState state, GameClient client) { - if (!NetcoreConfig.getInstance().PACKET_HANDLER_DEBUG) + if (!Config.PACKET_HANDLER_DEBUG) { return; } @@ -1333,7 +1332,7 @@ public class GamePacketHandler implements IPacketHandler, IClientFac private void printDebugDoubleOpcode(int opcode, int id2, ByteBuffer buf, GameClientState state, GameClient client) { - if (!NetcoreConfig.getInstance().PACKET_HANDLER_DEBUG) + if (!Config.PACKET_HANDLER_DEBUG) { return; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterCreate.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterCreate.java index a424fe6d9c..fa5ee4f0dd 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterCreate.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterCreate.java @@ -22,7 +22,6 @@ import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import org.l2jmobius.Config; -import org.l2jmobius.gameserver.GameServer; import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.datatables.sql.CharNameTable; @@ -287,13 +286,6 @@ public class CharacterCreate extends GameClientPacket newChar.store(); newChar.deleteMe(); // Release the world of this character and it's inventory - // Before the char selection, check shutdown status - if (GameServer.getSelectorThread().isShutdown()) - { - client.closeNow(); - return; - } - // Send char list final CharSelectInfo cl = new CharSelectInfo(client.getAccountName(), client.getSessionId().playOkID1); client.getConnection().sendPacket(cl); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterDelete.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterDelete.java index df603f8edf..ba055c7c95 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterDelete.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterDelete.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.clientpackets; import java.util.logging.Logger; -import org.l2jmobius.gameserver.GameServer; import org.l2jmobius.gameserver.network.serverpackets.CharDeleteFail; import org.l2jmobius.gameserver.network.serverpackets.CharDeleteOk; import org.l2jmobius.gameserver.network.serverpackets.CharSelectInfo; @@ -77,13 +76,6 @@ public class CharacterDelete extends GameClientPacket LOGGER.warning("ERROR " + getType() + ": " + e); } - // Before the char selection, check shutdown status - if (GameServer.getSelectorThread().isShutdown()) - { - getClient().closeNow(); - return; - } - final CharSelectInfo cl = new CharSelectInfo(getClient().getAccountName(), getClient().getSessionId().playOkID1, 0); sendPacket(cl); getClient().setCharSelection(cl.getCharInfo()); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterRestore.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterRestore.java index 1727a35675..104eb0cc9b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterRestore.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterRestore.java @@ -16,7 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import org.l2jmobius.gameserver.GameServer; import org.l2jmobius.gameserver.network.serverpackets.CharSelectInfo; public class CharacterRestore extends GameClientPacket @@ -45,13 +44,6 @@ public class CharacterRestore extends GameClientPacket { } - // Before the char selection, check shutdown status - if (GameServer.getSelectorThread().isShutdown()) - { - getClient().closeNow(); - return; - } - final CharSelectInfo cl = new CharSelectInfo(getClient().getAccountName(), getClient().getSessionId().playOkID1, 0); sendPacket(cl); getClient().setCharSelection(cl.getCharInfo()); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterSelected.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterSelected.java index af28b5d2fc..48dd6235e4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterSelected.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CharacterSelected.java @@ -18,7 +18,6 @@ package org.l2jmobius.gameserver.network.clientpackets; import java.util.logging.Logger; -import org.l2jmobius.commons.crypt.nProtect; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.GameClient.GameClientState; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; @@ -83,7 +82,6 @@ public class CharacterSelected extends GameClientPacket cha.setClient(getClient()); getClient().setPlayer(cha); - nProtect.getInstance().sendRequest(getClient()); getClient().setState(GameClientState.ENTERING); sendPacket(new CharSelected(cha, getClient().getSessionId().playOkID1)); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 70c6983668..b0a3f1f773 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -26,9 +26,6 @@ import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import org.l2jmobius.Config; -import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.crypt.nProtect; -import org.l2jmobius.commons.crypt.nProtect.RestrictionType; import org.l2jmobius.gameserver.GameTimeController; import org.l2jmobius.gameserver.communitybbs.Manager.MailBBSManager; import org.l2jmobius.gameserver.datatables.SkillTable; @@ -68,7 +65,6 @@ import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.zone.ZoneId; -import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient.GameClientState; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ClientSetTime; @@ -508,13 +504,6 @@ public class EnterWorld extends GameClientPacket } } - if (!nProtect.getInstance().checkRestriction(player, RestrictionType.RESTRICT_ENTER)) - { - player.setImmobilized(true); - player.disableAllSkills(); - ThreadPool.schedule(new Disconnection(player), 20000); - } - // Elrokian Trap like L2OFF final ItemInstance rhand = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if ((rhand != null) && (rhand.getItemId() == 8763)) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/GameGuardReply.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/GameGuardReply.java index 02b982edb2..9266916b41 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/GameGuardReply.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/GameGuardReply.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.clientpackets; -import org.l2jmobius.commons.crypt.nProtect; - /** * @author zabbix Lets drink to code! Unknown Packet: ca 0000: 45 00 01 00 1e 37 a2 f5 00 00 00 00 00 00 00 00 E....7.......... */ @@ -37,12 +35,6 @@ public class GameGuardReply extends GameClientPacket @Override protected void runImpl() { - // TODO: clean nProtect System - if (!nProtect.getInstance().checkGameGuardRepy(getClient(), _reply)) - { - return; - } - getClient().setGameGuardOk(true); } } \ No newline at end of file diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRestart.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRestart.java index 7b2a47d638..b14af689a0 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRestart.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRestart.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets; import java.util.logging.Logger; import org.l2jmobius.Config; -import org.l2jmobius.gameserver.GameServer; import org.l2jmobius.gameserver.datatables.SkillTable; import org.l2jmobius.gameserver.model.Inventory; import org.l2jmobius.gameserver.model.Party; @@ -183,13 +182,6 @@ public class RequestRestart extends GameClientPacket // return the client to the authed status client.setState(GameClientState.AUTHED); - // before the char selection, check shutdown status - if (GameServer.getSelectorThread().isShutdown()) - { - getClient().closeNow(); - return; - } - // Restart true sendPacket(RestartResponse.valueOf(true)); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GameGuardQuery.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GameGuardQuery.java index 068fdb3843..db0f7dfd82 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GameGuardQuery.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GameGuardQuery.java @@ -16,8 +16,6 @@ */ package org.l2jmobius.gameserver.network.serverpackets; -import org.l2jmobius.commons.crypt.nProtect; - /** * @author zabbix Lets drink to code! */ @@ -35,6 +33,5 @@ public class GameGuardQuery extends GameServerPacket public void writeImpl() { writeC(0xf9); - nProtect.getInstance().sendGameGuardQuery(this); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginClient.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginClient.java index 81814aa59e..82247a6236 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginClient.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginClient.java @@ -283,7 +283,7 @@ public class LoginClient extends MMOClient> } @Override - protected void onForcedDisconnection(boolean critical) + protected void onForcedDisconnection() { // Empty } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginServer.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginServer.java index 2b7108e8f3..92fe6a5e17 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginServer.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/loginserver/LoginServer.java @@ -31,7 +31,6 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseBackup; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.enums.ServerMode; -import org.l2jmobius.commons.mmocore.NetcoreConfig; import org.l2jmobius.commons.mmocore.SelectorConfig; import org.l2jmobius.commons.mmocore.SelectorThread; import org.l2jmobius.loginserver.network.gameserverpackets.ServerStatus; @@ -129,10 +128,10 @@ public class LoginServer } final SelectorConfig sc = new SelectorConfig(); - sc.setMaxReadPerPass(NetcoreConfig.getInstance().MMO_MAX_READ_PER_PASS); - sc.setMaxSendPerPass(NetcoreConfig.getInstance().MMO_MAX_SEND_PER_PASS); - sc.setSleepTime(NetcoreConfig.getInstance().MMO_SELECTOR_SLEEP_TIME); - sc.setHelperBufferCount(NetcoreConfig.getInstance().MMO_HELPER_BUFFER_COUNT); + sc.MAX_READ_PER_PASS = Config.MMO_MAX_READ_PER_PASS; + sc.MAX_SEND_PER_PASS = Config.MMO_MAX_SEND_PER_PASS; + sc.SLEEP_TIME = Config.MMO_SELECTOR_SLEEP_TIME; + sc.HELPER_BUFFER_COUNT = Config.MMO_HELPER_BUFFER_COUNT; final LoginPacketHandler lph = new LoginPacketHandler(); final SelectorHelper sh = new SelectorHelper();