rendered paste bodyIndex: trunk/L2_Gameserver/java/config/options.properties===================================================================--- trunk/L2_Gameserver/java/config/options.properties (revision 2001)+++ trunk/L2_Gameserver/java/config/options.properties (revision 2012)@@ -48,5 +48,7 @@ # 2 - kick player(default) # 3 - kick & ban player+# 4 - jail player (define minutes of jail with param: 0 = infinite) DefaultPunish = 2+DefaultPunishParam = 0 # Bypass exploit protectionIndex: trunk/L2_Gameserver/java/config/other.properties===================================================================--- trunk/L2_Gameserver/java/config/other.properties (revision 2007)+++ trunk/L2_Gameserver/java/config/other.properties (revision 2012)@@ -129,2 +129,5 @@ # Total number of petitions pending, if more are submitted they will be rejected. MaxPetitionsPending = 25++# Jail+JailIsPvp = TrueIndex: trunk/L2_Gameserver/java/net/sf/l2j/Config.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/Config.java (revision 2000)+++ trunk/L2_Gameserver/java/net/sf/l2j/Config.java (revision 2012)@@ -357,4 +357,7 @@ /** Allow fishing ? */ public static boolean ALLOWFISHING; + + /** Jail config **/+ public static boolean JAIL_IS_PVP; /** Enumeration describing values for Allowing the use of L2Walker client */@@ -723,6 +726,8 @@ public static boolean FORCE_GGAUTH; - /** Deafult punishment for illegal actions */+ /** Default punishment for illegal actions */ public static int DEFAULT_PUNISH;+ /** Parameter for default punishment */+ public static int DEFAULT_PUNISH_PARAM; /** Accept new game server ? */@@ -940,4 +945,5 @@ DEFAULT_PUNISH = Integer.parseInt(optionsSettings.getProperty("DefaultPunish", "2"));+ DEFAULT_PUNISH_PARAM = Integer.parseInt(optionsSettings.getProperty("DefaultPunishParam", "0")); LAZY_CACHE = Boolean.valueOf(optionsSettings.getProperty("LazyCache", "False"));@@ -1129,4 +1135,6 @@ MAX_PETITIONS_PER_PLAYER = Integer.parseInt(otherSettings.getProperty("MaxPetitionsPerPlayer", "5")); MAX_PETITIONS_PENDING = Integer.parseInt(otherSettings.getProperty("MaxPetitionsPending", "25"));+ + JAIL_IS_PVP = Boolean.valueOf(otherSettings.getProperty("JailIsPvp", "True")); } catch (Exception e)Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestRestartPoint.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestRestartPoint.java (revision 1759)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/RequestRestartPoint.java (revision 2012)@@ -70,6 +70,8 @@ try {- Location loc;- if (requestedPointType == 1) // to clanhall+ Location loc = null;+ if (activeChar.isInJail()) // to jail+ loc = new Location(-114356, -249645, -2984);+ else if (requestedPointType == 1) // to clanhall loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.ClanHall); else if (requestedPointType == 2) // to castleIndex: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/Say2.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/Say2.java (revision 1990)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/clientpackets/Say2.java (revision 2012)@@ -121,4 +121,13 @@ } }+ + if (activeChar.isInJail())+ {+ if (_type == SHOUT || _type == TRADE)+ {+ activeChar.sendMessage("You can not chat with the outside of the jail.");+ return;+ }+ } if (_type == PETITION_PLAYER && activeChar.isGM()) Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java (revision 1896)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminBan.java (revision 2012)@@ -19,4 +19,5 @@ package net.sf.l2j.gameserver.handler.admincommandhandlers; +import java.util.NoSuchElementException; import java.util.StringTokenizer; @@ -28,5 +29,4 @@ import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;-import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; /**@@ -63,15 +63,15 @@ catch(Exception e) {- L2Object target = activeChar.getTarget();- if (target!=null && target instanceof L2PcInstance)- plyr = (L2PcInstance)target;- else- activeChar.sendMessage("Wrong parameter or target");+ L2Object target = activeChar.getTarget();+ if (target!=null && target instanceof L2PcInstance)+ plyr = (L2PcInstance)target;+ else+ activeChar.sendMessage("Wrong parameter or target"); } if (plyr!=null && !plyr.equals(activeChar)) // you cannot ban yourself! {- player = plyr.getName();- LoginServerThread.getInstance().sendAccessLevel(player, -100);+ player = plyr.getName();+ LoginServerThread.getInstance().sendAccessLevel(player, -100); plyr.logout(); }@@ -86,5 +86,5 @@ catch(Exception e) {- e.printStackTrace();+ if (Config.DEBUG) e.printStackTrace(); } }@@ -94,18 +94,24 @@ { player = st.nextToken();+ int delay = 0;+ try+ {+ delay = Integer.parseInt(st.nextToken());+ } catch (NumberFormatException nfe) {+ } catch (NoSuchElementException nsee) {} L2PcInstance playerObj = L2World.getInstance().getPlayer(player);- - NpcHtmlMessage msg = new NpcHtmlMessage(0);- msg.setHtml("<html><body>You are abused server rules.</body></html>"); - playerObj.sendPacket(msg);- playerObj.teleToLocation(-114356,-249645,-2984);- - activeChar.sendMessage("Character "+player+" jailed");-- }- catch(Exception e)+ if (playerObj != null)+ {+ playerObj.setInJail(true, delay);+ activeChar.sendMessage("Character "+player+" jailed for "+(delay>0 ? delay+" minutes." : "ever!"));+ } else+ activeChar.sendMessage("Character not found!");+ } catch (NoSuchElementException nsee) {- e.printStackTrace();+ activeChar.sendMessage("Specify a character name.");+ } catch(Exception e)+ {+ if (Config.DEBUG) e.printStackTrace(); } }@@ -117,19 +123,22 @@ L2PcInstance playerObj = L2World.getInstance().getPlayer(player); - playerObj.teleToLocation(activeChar.getPosition().getX(),- activeChar.getPosition().getY(),- activeChar.getPosition().getZ());- - activeChar.sendMessage("Character "+player+" removed from jail");-- }- catch(Exception e)+ if (playerObj != null)+ {+ playerObj.stopJailTask(false);+ playerObj.setInJail(false);+ activeChar.sendMessage("Character "+player+" removed from jail");+ } else+ activeChar.sendMessage("Character not found!");+ } catch (NoSuchElementException nsee) {- e.printStackTrace();+ activeChar.sendMessage("Specify a character name.");+ } catch(Exception e)+ {+ if (Config.DEBUG) e.printStackTrace(); } } if (!"".equals(player))- GMAudit.auditGMAction(activeChar.getName(), command, player, "");+ GMAudit.auditGMAction(activeChar.getName(), command, player, ""); return true;Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (revision 1868)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (revision 2012)@@ -19,4 +19,5 @@ package net.sf.l2j.gameserver.handler.itemhandlers; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.GameTimeController; import net.sf.l2j.gameserver.MapRegionTable;@@ -69,4 +70,11 @@ { activeChar.sendPacket(SystemMessage.sendString("You may not use an escape skill in a festival."));+ return;+ }+ + // Check to see if player is in jail+ if (activeChar.isInJail())+ {+ activeChar.sendPacket(SystemMessage.sendString("You can not escape from jail.")); return; }@@ -210,5 +218,5 @@ } } catch (Throwable e) {- e.printStackTrace();+ if (Config.DEBUG) e.printStackTrace(); } }Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/skillhandlers/Recall.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/skillhandlers/Recall.java (revision 1384)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/skillhandlers/Recall.java (revision 2012)@@ -1,4 +1,5 @@ package net.sf.l2j.gameserver.handler.skillhandlers; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.MapRegionTable; import net.sf.l2j.gameserver.handler.ISkillHandler;@@ -17,24 +18,35 @@ public void useSkill(@SuppressWarnings("unused") L2Character activeChar, @SuppressWarnings("unused") L2Skill skill, L2Object[] targets) {- try {+ try + { for (int index = 0; index < targets.length; index++) {-// if (!(targets[index] instanceof L2PcInstance))-// continue;+ if (!(targets[index] instanceof L2Character))+ continue; - L2Character target = (L2Character) targets[index];+ L2Character target = (L2Character)targets[index]; - // Check to see if the current player target is in a festival.- L2PcInstance targetChar = (L2PcInstance)target;+ if (target instanceof L2PcInstance)+ {+ L2PcInstance targetChar = (L2PcInstance)target; - if (targetChar.isFestivalParticipant()) {- targetChar.sendPacket(SystemMessage.sendString("You may not use an escape skill in a festival."));- break;+ // Check to see if the current player target is in a festival.+ if (targetChar.isFestivalParticipant()) {+ targetChar.sendPacket(SystemMessage.sendString("You may not use an escape skill in a festival."));+ continue;+ }+ + // Check to see if player is in jail+ if (targetChar.isInJail())+ {+ targetChar.sendPacket(SystemMessage.sendString("You can not escape from jail."));+ continue;+ } } target.teleToLocation(MapRegionTable.TeleportWhereType.Town); }- } catch (Throwable e) {- e.printStackTrace();+ } catch (Throwable e) {+ if (Config.DEBUG) e.printStackTrace(); } }Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java (revision 2003)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java (revision 2012)@@ -37,5 +37,5 @@ { private static final int[] COMMAND_IDS = { 52 }; - private static final int REQUIRED_LEVEL = Config.GM_ESCAPE;+ private static final int REQUIRED_LEVEL = Config.GM_ESCAPE; /* (non-Javadoc)@@ -48,4 +48,18 @@ int unstuckTimer = (activeChar.getAccessLevel() >=REQUIRED_LEVEL? 5000 : Config.UNSTUCK_INTERVAL*1000 );+ + // Check to see if the player is in a festival.+ if (activeChar.isFestivalParticipant()) + {+ activeChar.sendPacket(SystemMessage.sendString("You may not use an escape command in a festival."));+ return false;+ }+ + // Check to see if player is in jail+ if (activeChar.isInJail())+ {+ activeChar.sendPacket(SystemMessage.sendString("You can not escape from jail."));+ return false;+ } SystemMessage sm = new SystemMessage(SystemMessage.S1_S2);@@ -88,5 +102,5 @@ { _activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town);- } catch (Throwable e) { e.printStackTrace(); }+ } catch (Throwable e) { if (Config.DEBUG) e.printStackTrace(); } } }Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/instancemanager/ZoneManager.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/instancemanager/ZoneManager.java (revision 1957)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/instancemanager/ZoneManager.java (revision 2012)@@ -125,5 +125,6 @@ Config.ZONE_TOWN == 2 && // Zone Town is set as PvP and TownManager.getInstance().checkIfInZone(x, y) // object is inside town zone- )+ ) ||+ (Config.JAIL_IS_PVP && checkIfInZone(ZoneType.getZoneTypeName(ZoneType.ZoneTypeEnum.Jail), x, y)) // object is inside jail ); }Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2008)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2012)@@ -33,4 +33,5 @@ import java.util.WeakHashMap; import java.util.concurrent.ScheduledFuture;+import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.zip.GZIPInputStream;@@ -184,5 +185,6 @@ private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?"; - private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, allyId, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, deleteclan, base_class, onlinetime FROM characters WHERE obj_id=?";+ private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,allyId=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,deleteclan=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=? WHERE obj_id=?";+ private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, allyId, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, deleteclan, base_class, onlinetime, in_jail, jail_timer FROM characters WHERE obj_id=?"; private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC"; private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";@@ -515,4 +517,7 @@ /** Store object used to summon the strider you are mounting **/ private int _mountObjectID = 0;+ + private boolean _inJail = false;+ private long _jailTimer = 0; /** Skill casting information (used to queue when several skills are cast in a short time) **/@@ -3662,4 +3667,5 @@ stopWaterTask(); stopRentPet();+ stopJailTask(); } @@ -4439,4 +4445,7 @@ } + player.setInJail((rset.getInt("in_jail")==1));+ player.setJailTimer(rset.getLong("jail_timer"));+ // Add the L2PcInstance object in _allObjects //L2World.getInstance().storeObject(player);@@ -4723,13 +4732,5 @@ // Update base class- statement = con.prepareStatement(- "UPDATE characters SET " +- "level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?," +- "str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?," +- "heading=?,x=?,y=?,z=?,exp=?,sp=?,karma=?,pvpkills=?,pkkills=?," +- "rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?," +- "title=?,allyId=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,deleteclan=?," +- "base_class=?,onlinetime=? " +- "WHERE obj_id=?");+ statement = con.prepareStatement(UPDATE_CHARACTER); statement.setInt(1, level); statement.setInt(2, getMaxHp());@@ -4784,6 +4785,8 @@ totalOnlineTime += (System.currentTimeMillis()-_onlineBeginTime)/1000; - statement.setLong(41, totalOnlineTime);- statement.setInt(42, getObjectId());+ statement.setLong(41, totalOnlineTime);+ statement.setInt(42, isInJail() ? 1 : 0);+ statement.setLong(43, getJailTimer());+ statement.setInt(44, getObjectId()); statement.execute();@@ -7176,4 +7179,7 @@ } }+ + // jail task+ updateJailState(); if (getInvisible() == 1) @@ -7926,3 +7932,116 @@ _queuedSkill = new SkillDat(queuedSkill, ctrlPressed, shiftPressed); }++ public boolean isInJail()+ {+ return _inJail;+ }++ public void setInJail(boolean state)+ {+ setInJail(state, 0);+ }+ public void setInJail(boolean state, int delayInMinutes)+ {+ _inJail = state;+ _jailTimer = 0;+ + if (_inJail)+ {+ if (delayInMinutes > 0)+ {+ _jailTimer = delayInMinutes * 60 * 1000; // in millisec+ + // start the countdown+ _jailTask = ThreadPoolManager.getInstance().scheduleGeneral(new JailTask(this), _jailTimer);+ sendMessage("You are in jail for "+delayInMinutes+" minutes.");+ }++ // Open a Html message to inform the player+ NpcHtmlMessage htmlMsg = new NpcHtmlMessage(0);+ String jailInfos = HtmCache.getInstance().getHtm("data/html/jail_in.htm");+ if (jailInfos != null)+ htmlMsg.setHtml(jailInfos);+ else+ htmlMsg.setHtml("<html><body>You have been put in jail by an admin.</body></html>");+ sendPacket(htmlMsg);++ teleToLocation(-114356, -249645, -2984); // Jail+ } else+ {+ // Open a Html message to inform the player+ NpcHtmlMessage htmlMsg = new NpcHtmlMessage(0);+ String jailInfos = HtmCache.getInstance().getHtm("data/html/jail_out.htm");+ if (jailInfos != null)+ htmlMsg.setHtml(jailInfos);+ else+ htmlMsg.setHtml("<html><body>You are free for now, respect server rules!</body></html>");+ sendPacket(htmlMsg);+ + teleToLocation(17836, 170178, -3507); // Floran+ }+ + // store in database+ storeCharBase();+ }++ public long getJailTimer()+ {+ return _jailTimer;+ }++ public void setJailTimer(long time)+ {+ _jailTimer = time;+ }++ private void updateJailState()+ {+ if (isInJail())+ {+ // If jail time is elapsed, free the player+ if (_jailTimer > 0)+ {+ // restart the countdown+ _jailTask = ThreadPoolManager.getInstance().scheduleGeneral(new JailTask(this), _jailTimer);+ }+ + // If player escaped, put him back in jail+ if (!ZoneManager.getInstance().checkIfInZone(ZoneType.getZoneTypeName(ZoneType.ZoneTypeEnum.Jail), this))+ teleToLocation(-114356,-249645,-2984);+ }+ }++ public void stopJailTask()+ {+ stopJailTask(true);+ }+ public void stopJailTask(boolean save)+ {+ if (_jailTask != null)+ {+ if (save)+ setJailTimer(_jailTask.getDelay(TimeUnit.MILLISECONDS));+ _jailTask.cancel(false);+ _jailTask = null;+ }+ }++ private ScheduledFuture _jailTask;+ private class JailTask implements Runnable+ {+ L2PcInstance _player;+ protected long _startedAt;+ + protected JailTask(L2PcInstance player)+ {+ _player = player;+ _startedAt = System.currentTimeMillis();+ }++ public void run() + {+ _player.setInJail(false);+ }+ } }Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/entity/ZoneType.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/entity/ZoneType.java (revision 1957)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/entity/ZoneType.java (revision 2012)@@ -33,5 +33,6 @@ Recharge, Damage,- Fishing+ Fishing,+ Jail } @@ -41,5 +42,5 @@ "Castle Defender Spawn", "Clan Hall", "Peace", "Siege Battlefield", "Town", "Town Spawn", "Underground",- "Water","No Landing","Recharge","Damage","Fishing" + "Water","No Landing","Recharge","Damage","Fishing", "Jail" }; Index: trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java===================================================================--- trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java (revision 1891)+++ trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/IllegalPlayerAction.java (revision 2012)@@ -33,4 +33,5 @@ import java.util.logging.Logger; +import net.sf.l2j.Config; import net.sf.l2j.gameserver.GmListTable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;@@ -45,7 +46,7 @@ private static Logger _logAudit = Logger.getLogger("audit"); - String message;- int punishment;- L2PcInstance actor;+ String _message;+ int _punishment;+ L2PcInstance _actor; public static final int PUNISH_BROADCAST = 1;@@ -56,19 +57,19 @@ public IllegalPlayerAction(L2PcInstance actor, String message, int punishment) {- this.message = message;- this.punishment = punishment;- this.actor = actor;+ this._message = message;+ this._punishment = punishment;+ this._actor = actor; switch(punishment) { case PUNISH_KICK:- actor.sendMessage("You are will be kicked for illegal action, GM informed");+ _actor.sendMessage("You are will be kicked for illegal action, GM informed"); break; case PUNISH_KICKBAN:- actor.sendMessage("You are banned for illegal action, GM informed");+ _actor.sendMessage("You are banned for illegal action, GM informed"); break; case PUNISH_JAIL:- actor.sendMessage("Illegal action performed!");- actor.sendMessage("You will be teleported to GM Consultation Service area and jailed");+ _actor.sendMessage("Illegal action performed!");+ _actor.sendMessage("You will be teleported to GM Consultation Service area and jailed"); break; }@@ -77,27 +78,26 @@ public void run() {- LogRecord record = new LogRecord(Level.INFO, "AUDIT:" + message);+ LogRecord record = new LogRecord(Level.INFO, "AUDIT:" + _message); record.setLoggerName("audit");- record.setParameters(new Object[]{actor, punishment});+ record.setParameters(new Object[]{_actor, _punishment}); _logAudit.log(record); - GmListTable.broadcastMessageToGMs(message);+ GmListTable.broadcastMessageToGMs(_message); - switch(punishment)+ switch(_punishment) { case PUNISH_BROADCAST: return; case PUNISH_KICK:- actor.closeNetConnection();+ _actor.closeNetConnection(); break; case PUNISH_KICKBAN:- actor.setAccessLevel(-100);- actor.setAccountAccesslevel(-100);- actor.closeNetConnection();+ _actor.setAccessLevel(-100);+ _actor.setAccountAccesslevel(-100);+ _actor.closeNetConnection(); break; case PUNISH_JAIL:- actor.teleToLocation(-114356,-249645,-2984);- //TODO: update L2PcInstance with Jailed flag- // to prevent /escape from jail+ _actor.setInJail(true, Config.DEFAULT_PUNISH_PARAM);+ break; } }