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();