瀏覽代碼

MailSystem sending post update - disallow sending in jail, added block list check.
Some threads rename.

JIV 15 年之前
父節點
當前提交
f4930aaf29

+ 19 - 6
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestSendPost.java

@@ -20,6 +20,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.AccessLevels;
 import com.l2jserver.gameserver.datatables.CharNameTable;
 import com.l2jserver.gameserver.instancemanager.MailManager;
+import com.l2jserver.gameserver.model.BlockList;
 import com.l2jserver.gameserver.model.L2AccessLevel;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -111,12 +112,6 @@ public final class RequestSendPost extends L2GameClientPacket
 		if (activeChar == null)
 			return;
 
-		if (!activeChar.getFloodProtectors().getSendMail().tryPerformAction("sendmail"))
-		{
-			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_FORWARD_LESS_THAN_MINUTE));
-			return;
-		}
-
 		if (!Config.ALLOW_ATTACHMENTS)
 		{
 			_items = null;
@@ -231,6 +226,18 @@ public final class RequestSendPost extends L2GameClientPacket
 			activeChar.sendPacket(sm);
 			return;
 		}
+		
+		if (activeChar.isInJail())
+		{
+			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_FORWARD_NOT_IN_PEACE_ZONE));
+			return;
+		}
+		
+		if (BlockList.isInBlockList(receiverId, activeChar.getObjectId()))
+		{
+			activeChar.sendPacket(new SystemMessage(SystemMessageId.C1_BLOCKED_YOU_CANNOT_MAIL).addString(_receiver));
+			return;
+		}
 
 		if (MailManager.getInstance().getOutboxSize(activeChar.getObjectId()) >= OUTBOX_SIZE)
 		{
@@ -243,6 +250,12 @@ public final class RequestSendPost extends L2GameClientPacket
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_FORWARD_MAIL_LIMIT_EXCEEDED));
 			return;
 		}
+		
+		if (!activeChar.getFloodProtectors().getSendMail().tryPerformAction("sendmail"))
+		{
+			activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_FORWARD_LESS_THAN_MINUTE));
+			return;
+		}
 
 		Message msg = new Message(activeChar.getObjectId(), receiverId, _isCod, _subject, _text, _reqAdena);
 		if (removeItems(activeChar, msg))

+ 1 - 0
L2_GameServer/java/com/l2jserver/loginserver/GameServerListener.java

@@ -35,6 +35,7 @@ public class GameServerListener extends FloodProtectedListener
 	public GameServerListener() throws IOException
 	{
 		super(Config.GAME_SERVER_LOGIN_HOST, Config.GAME_SERVER_LOGIN_PORT);
+		setName(getClass().getSimpleName());
 	}
 
 	/**

+ 1 - 0
L2_GameServer/java/com/l2jserver/loginserver/GameServerThread.java

@@ -614,6 +614,7 @@ public class GameServerThread extends Thread
 		_privateKey = (RSAPrivateKey) pair.getPrivate();
 		_publicKey = (RSAPublicKey) pair.getPublic();
 		_blowfish = new NewCrypt("_;v.]05-31!|+-%xT!^[$\00");
+		setName(getClass().getSimpleName()+"-"+getId()+"@"+_connectionIp);
 		start();
 	}
 

+ 1 - 0
L2_GameServer/java/com/l2jserver/util/IPv4Filter.java

@@ -38,6 +38,7 @@ public class IPv4Filter implements IAcceptFilter, Runnable
 	{
 		_ipFloodMap = new HashMap<Integer, Flood>();
 		Thread t = new Thread(this);
+		t.setName(getClass().getSimpleName());
 		t.setDaemon(true);
 		t.start();
 	}