Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Say2.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Say2.java (revision 816) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Say2.java (working copy) @@ -116,7 +116,8 @@ if (_type == TELL) { L2PcInstance receiver = L2World.getInstance().getPlayer(_target); - if (receiver != null) + + if (receiver != null && !receiver.isInBlockList(activeChar) && !receiver.isBlockAll()) { if(!receiver.getMessageRefusal()) { @@ -145,12 +146,13 @@ { for (L2PcInstance player : L2World.getInstance().getAllPlayers()) { - player.sendPacket(cs); + if(!player.isInBlockList(activeChar) && !player.isBlockAll()) + player.sendPacket(cs); } } else { for (L2PcInstance player : L2World.getInstance().getAllPlayers()) { - if (activeChar.getDistance(player.getX(),player.getY())<10000) + if (activeChar.getDistance(player.getX(),player.getY())<10000 && !player.isInBlockList(activeChar) && !player.isBlockAll()) player.sendPacket(cs); } } @@ -159,7 +161,7 @@ { for (L2PcInstance player : activeChar.getKnownPlayers()) { - if (activeChar.getDistance(player.getX(),player.getY())<1250) + if (activeChar.getDistance(player.getX(),player.getY())<1250 && !player.isInBlockList(activeChar) && !player.isBlockAll()) player.sendPacket(cs); } @@ -191,7 +193,10 @@ { for (L2PcInstance gm : L2World.getInstance().getAllGMs()) { - gm.sendPacket(cs); + if(!gm.getMessageRefusal()) + { + gm.sendPacket(cs); + } } } /* Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2PcInstance.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2PcInstance.java (revision 816) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2PcInstance.java (working copy) @@ -352,6 +352,9 @@ public int _telemode = 0; + private ArrayList _blockList; // characters blocked with '/block ' cmd + private boolean _blockAll = false; // /blockall cmd handling + /** * Create a new L2PcInstance and add it in the characters table of the database.

* @@ -439,6 +442,7 @@ super(objectId, template); _accountName = accountName; _level = 1; + _blockList = new ArrayList(); } /** @@ -5409,4 +5413,49 @@ { _messageRefusal = mode; } + + public void addToBlockList(L2PcInstance charid) + { + _blockList.add(charid); + } + + public void removeFromBlockList(L2PcInstance charid) + { + _blockList.remove(charid); + } + + public boolean isInBlockList(L2PcInstance charid) + { + for(L2PcInstance candidate : _blockList) + { + if(candidate == charid) + { + return true; + } + } + + return false; + } + + public boolean isBlockAll() + { + return _blockAll; + } + + public void setBlockAll(boolean state) + { + _blockAll = state; + } + + public ArrayList getBlockList() + { + ArrayList blocked = new ArrayList(); + + for(L2PcInstance current : _blockList) + { + blocked.add(current.getName()); + } + + return blocked; + } } Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/PacketHandler.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/PacketHandler.java (revision 816) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/PacketHandler.java (working copy) @@ -493,9 +493,9 @@ // case 0x9f: // // RequestPackageSend // break; -// case 0xa0: -// // RequestBlock -// break; + case 0xa0: + msg = new RequestBlock(data,_client); + break; // case 0xa1: // // RequestCastleSiegeInfo // break;