Index: C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/Config.java =================================================================== --- C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/Config.java (revision 1600) +++ C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/Config.java (working copy) @@ -398,6 +398,9 @@ /** Store skills cooltime on char exit/relogin */ public static final boolean STORE_SKILL_COOLTIME; public static final boolean SHOW_LICENCE; + + /** Deafult punishment for illegal actions */ + public static final int DEFAULT_PUNISH; static { try { @@ -506,6 +509,7 @@ DATABASE_LOGIN = serverSettings.getProperty("Login", "root"); DATABASE_PASSWORD = serverSettings.getProperty("Password", ""); DATABASE_MAX_CONNECTIONS = Integer.parseInt(serverSettings.getProperty("MaximumDbConnections", "10")); + DEFAULT_PUNISH = Integer.parseInt(serverSettings.getProperty("DefaultPunish", "2")); } catch (Exception e) { Index: C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestBuyItem.java =================================================================== --- C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestBuyItem.java (revision 1600) +++ C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestBuyItem.java (working copy) @@ -23,13 +23,14 @@ import java.util.logging.Logger; import javolution.util.FastList; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.ClientThread; import net.sf.l2j.gameserver.ItemTable; import net.sf.l2j.gameserver.TradeController; import net.sf.l2j.gameserver.model.L2FolkInstance; import net.sf.l2j.gameserver.model.L2ItemInstance; +import net.sf.l2j.gameserver.model.L2MercManagerInstance; import net.sf.l2j.gameserver.model.L2MerchantInstance; -import net.sf.l2j.gameserver.model.L2MercManagerInstance; import net.sf.l2j.gameserver.model.L2NpcInstance; import net.sf.l2j.gameserver.model.L2PcInstance; import net.sf.l2j.gameserver.model.L2TradeList; @@ -164,7 +165,7 @@ cnt = items.get(i).getCount(); if (cnt > Integer.MAX_VALUE) { - Util.handleIllegalPlayerAction("Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" items at the same time.", _log, true); + Util.handleIllegalPlayerAction(activeChar,"Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" items at the same time.", _log, Config.DEFAULT_PUNISH); SystemMessage sm = new SystemMessage(SystemMessage.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED); sendPacket(sm); for (L2ItemInstance item : items) @@ -210,7 +211,7 @@ tax = (int)(subTotal * taxRate); if (subTotal + tax > Integer.MAX_VALUE) { - Util.handleIllegalPlayerAction("Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" adena worth of goods.", _log, true); + Util.handleIllegalPlayerAction(activeChar,"Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" adena worth of goods.", _log, Config.DEFAULT_PUNISH); for (L2ItemInstance item : items) { L2World.getInstance().removeObject(item); @@ -220,7 +221,7 @@ finalLoad += cnt * weight; if (finalLoad > Integer.MAX_VALUE) { - Util.handleIllegalPlayerAction("Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" adena worth of goods.", _log, true); + Util.handleIllegalPlayerAction(activeChar,"Warning!! Character "+activeChar.getName()+" of account "+activeChar.getAccountName()+" tried to purchase over "+Integer.MAX_VALUE+" adena worth of goods.", _log, Config.DEFAULT_PUNISH); for (L2ItemInstance item : items) { L2World.getInstance().removeObject(item); Index: C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java =================================================================== --- C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (revision 1600) +++ C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (working copy) @@ -56,7 +56,7 @@ L2ItemInstance scroll = activeChar.getEnchantScroll(); if (item == null || scroll == null) { - Util.handleIllegalPlayerAction("Player "+activeChar.getName()+" tried to enchant with no enchant scroll equiped", _log, false); + Util.handleIllegalPlayerAction(activeChar,"Player "+activeChar.getName()+" tried to enchant with no enchant scroll equiped", _log, Config.DEFAULT_PUNISH); return; } L2ItemInstance scrollItem = activeChar.getInventory().getItemByItemId(scroll.getItemId()); @@ -64,7 +64,7 @@ if(scrollItem == null) { activeChar.sendMessage("You dont have such an enchant scroll"); - Util.handleIllegalPlayerAction("Player "+activeChar.getName()+" tried to enchant with a scroll he doesnt have", _log, true); + Util.handleIllegalPlayerAction(activeChar,"Player "+activeChar.getName()+" tried to enchant with a scroll he doesnt have", _log, Config.DEFAULT_PUNISH); return; } Index: C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java =================================================================== --- C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java (revision 1600) +++ C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java (working copy) @@ -31,6 +31,7 @@ import java.util.logging.Logger; import net.sf.l2j.gameserver.GmListTable; +import net.sf.l2j.gameserver.model.L2PcInstance; /** * This class ... @@ -41,18 +42,38 @@ { String message; Logger log; - boolean broadcastToGms; + int punishment; + L2PcInstance actor; - public IllegalPlayerAction(String message, Logger log, boolean broadcastToGms) + public static final int PUNISH_BROADCAST = 1; + public static final int PUNISH_KICK = 2; + public static final int PUNISH_KICKBAN = 3; + + public IllegalPlayerAction(L2PcInstance actor, String message, Logger log, int punishment) { this.message = message; this.log = log; - this.broadcastToGms = broadcastToGms; + this.punishment = punishment; + this.actor = actor; } public void run() { log.warning(message); - if (broadcastToGms) GmListTable.broadcastMessageToGMs(message); + GmListTable.broadcastMessageToGMs(message); + + switch(punishment) + { + case PUNISH_BROADCAST: + return; + case PUNISH_KICK: + actor.sendMessage("You are kicked for illegail action, GM informed"); + actor.closeNetConnection(); + break; + case PUNISH_KICKBAN: + actor.sendMessage("You are banned for illegail action, GM informed"); + actor.setAccessLevel(-100); + actor.closeNetConnection(); + } } } Index: C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/Util.java =================================================================== --- C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/Util.java (revision 1600) +++ C:/eclipse/workspace/L2_GameServer/java/net/sf/l2j/gameserver/util/Util.java (working copy) @@ -31,6 +31,7 @@ import java.util.logging.Logger; import net.sf.l2j.gameserver.ClientScheduler; +import net.sf.l2j.gameserver.model.L2PcInstance; /** @@ -41,8 +42,8 @@ public final class Util { - public static void handleIllegalPlayerAction(String message, Logger log, boolean broadcastToGms) + public static void handleIllegalPlayerAction(L2PcInstance actor, String message, Logger log, int punishment) { - ClientScheduler.scheduleEvent(new IllegalPlayerAction(message, log, broadcastToGms), 500); + ClientScheduler.scheduleEvent(new IllegalPlayerAction(actor,message, log, punishment), 500); } }