浏览代码

BETA: Moving IllegalPlayerAction to player.tasks package.
* Renaming it to IllegalPlayerActionTask.
* Instead of INTs for punishments we now have an enum IllegalActionPunishmentType.
* Reviewed by: Zoey76, UnAfraid

xban1x 11 年之前
父节点
当前提交
feaae8e9ee

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/Config.java

@@ -53,6 +53,7 @@ import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
 import com.l2jserver.gameserver.engines.DocumentParser;
+import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.util.FloodProtectorConfig;
@@ -631,7 +632,7 @@ public final class Config
 	public static int RIFT_ENTER_COST_CAPTAIN;
 	public static int RIFT_ENTER_COST_COMMANDER;
 	public static int RIFT_ENTER_COST_HERO;
-	public static int DEFAULT_PUNISH;
+	public static IllegalActionPunishmentType DEFAULT_PUNISH;
 	public static int DEFAULT_PUNISH_PARAM;
 	public static boolean ONLY_GM_ITEMS_FREE;
 	public static boolean JAIL_IS_PVP;
@@ -2034,7 +2035,7 @@ public final class Config
 			RIFT_ENTER_COST_CAPTAIN = General.getInt("CaptainCost", 27);
 			RIFT_ENTER_COST_COMMANDER = General.getInt("CommanderCost", 30);
 			RIFT_ENTER_COST_HERO = General.getInt("HeroCost", 33);
-			DEFAULT_PUNISH = General.getInt("DefaultPunish", 2);
+			DEFAULT_PUNISH = IllegalActionPunishmentType.findByName(General.getString("DefaultPunish", "KICK"));
 			DEFAULT_PUNISH_PARAM = General.getInt("DefaultPunishParam", 0);
 			ONLY_GM_ITEMS_FREE = General.getBoolean("OnlyGMItemsFree", true);
 			JAIL_IS_PVP = General.getBoolean("JailIsPvp", false);

+ 44 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/enums/IllegalActionPunishmentType.java

@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server 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.
+ * 
+ * L2J Server 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 <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.enums;
+
+/**
+ * Illegal Action Punishment Type.
+ * @author xban1x
+ */
+public enum IllegalActionPunishmentType
+{
+	NONE,
+	BROADCAST,
+	KICK,
+	KICKBAN,
+	JAIL;
+	
+	public final static IllegalActionPunishmentType findByName(String name)
+	{
+		for (IllegalActionPunishmentType type : values())
+		{
+			if (type.name().toLowerCase().equals(name.toLowerCase()))
+			{
+				return type;
+			}
+		}
+		return null;
+	}
+}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -89,6 +89,7 @@ import com.l2jserver.gameserver.datatables.SkillTable.FrequentSkill;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.HtmlActionScope;
+import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.MountType;
 import com.l2jserver.gameserver.enums.PcRace;
@@ -8132,7 +8133,7 @@ public final class L2PcInstance extends L2Playable
 					{
 						if (!SkillTreesData.getInstance().isSkillAllowed(this, skill))
 						{
-							Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), 1);
+							Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
 							if (Config.SKILL_CHECK_REMOVE)
 							{
 								removeSkill(skill);

+ 32 - 25
L2J_Server_BETA/java/com/l2jserver/gameserver/util/IllegalPlayerAction.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/player/IllegalPlayerActionTask.java

@@ -16,7 +16,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-package com.l2jserver.gameserver.util;
+package com.l2jserver.gameserver.model.actor.tasks.player;
 
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
@@ -24,6 +24,7 @@ import java.util.logging.Logger;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.AdminTable;
+import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.instancemanager.PunishmentManager;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.punishment.PunishmentAffect;
@@ -31,23 +32,17 @@ import com.l2jserver.gameserver.model.punishment.PunishmentTask;
 import com.l2jserver.gameserver.model.punishment.PunishmentType;
 
 /**
- * This class ...
- * @version $Revision: 1.2 $ $Date: 2004/06/27 08:12:59 $
+ * Task that handles illegal player actions.
  */
-public final class IllegalPlayerAction implements Runnable
+public final class IllegalPlayerActionTask implements Runnable
 {
-	private static Logger _logAudit = Logger.getLogger("audit");
+	private static final Logger _log = Logger.getLogger("audit");
 	
 	private final String _message;
-	private final int _punishment;
+	private final IllegalActionPunishmentType _punishment;
 	private final L2PcInstance _actor;
 	
-	public static final int PUNISH_BROADCAST = 1;
-	public static final int PUNISH_KICK = 2;
-	public static final int PUNISH_KICKBAN = 3;
-	public static final int PUNISH_JAIL = 4;
-	
-	public IllegalPlayerAction(L2PcInstance actor, String message, int punishment)
+	public IllegalPlayerActionTask(L2PcInstance actor, String message, IllegalActionPunishmentType punishment)
 	{
 		_message = message;
 		_punishment = punishment;
@@ -55,10 +50,13 @@ public final class IllegalPlayerAction implements Runnable
 		
 		switch (punishment)
 		{
-			case PUNISH_KICK:
+			case KICK:
+			{
 				_actor.sendMessage("You will be kicked for illegal action, GM informed.");
 				break;
-			case PUNISH_KICKBAN:
+			}
+			case KICKBAN:
+			{
 				if (!_actor.isGM())
 				{
 					_actor.setAccessLevel(-1);
@@ -66,10 +64,13 @@ public final class IllegalPlayerAction implements Runnable
 				}
 				_actor.sendMessage("You are banned for illegal action, GM informed.");
 				break;
-			case PUNISH_JAIL:
+			}
+			case JAIL:
+			{
 				_actor.sendMessage("Illegal action performed!");
 				_actor.sendMessage("You will be teleported to GM Consultation Service area and jailed.");
 				break;
+			}
 		}
 	}
 	
@@ -78,29 +79,35 @@ public final class IllegalPlayerAction implements Runnable
 	{
 		LogRecord record = new LogRecord(Level.INFO, "AUDIT:" + _message);
 		record.setLoggerName("audit");
-		record.setParameters(new Object[]
-		{
-			_actor,
-			_punishment
-		});
-		_logAudit.log(record);
+		//@formatter:off
+		record.setParameters(new Object[] { _actor, _punishment	});
+		//@formatter:on
+		_log.log(record);
 		
 		AdminTable.getInstance().broadcastMessageToGMs(_message);
 		if (!_actor.isGM())
 		{
 			switch (_punishment)
 			{
-				case PUNISH_BROADCAST:
+				case BROADCAST:
+				{
 					return;
-				case PUNISH_KICK:
+				}
+				case KICK:
+				{
 					_actor.logout(false);
 					break;
-				case PUNISH_KICKBAN:
+				}
+				case KICKBAN:
+				{
 					PunishmentManager.getInstance().startPunishment(new PunishmentTask(_actor.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.BAN, System.currentTimeMillis() + (Config.DEFAULT_PUNISH_PARAM * 1000), _message, getClass().getSimpleName()));
 					break;
-				case PUNISH_JAIL:
+				}
+				case JAIL:
+				{
 					PunishmentManager.getInstance().startPunishment(new PunishmentTask(_actor.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.JAIL, System.currentTimeMillis() + (Config.DEFAULT_PUNISH_PARAM * 1000), _message, getClass().getSimpleName()));
 					break;
+				}
 			}
 		}
 	}

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkill.java

@@ -21,6 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
+import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.enums.QuestEventType;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
 import com.l2jserver.gameserver.model.L2Clan;
@@ -125,7 +126,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 			{
 				// The previous level skill has not been learned.
 				activeChar.sendPacket(SystemMessageId.PREVIOUS_LEVEL_SKILL_NOT_LEARNED);
-				Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without knowing it's previous level!", 0);
+				Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without knowing it's previous level!", IllegalActionPunishmentType.NONE);
 				return;
 			}
 		}
@@ -152,7 +153,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 				if (!canTransform(activeChar))
 				{
 					activeChar.sendPacket(SystemMessageId.NOT_COMPLETED_QUEST_FOR_SKILL_ACQUISITION);
-					Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without required quests!", 0);
+					Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without required quests!", IllegalActionPunishmentType.NONE);
 					return;
 				}
 				
@@ -240,7 +241,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 					if (!clan.isLearnableSubPledgeSkill(skill, _subType))
 					{
 						activeChar.sendPacket(SystemMessageId.SQUAD_SKILL_ALREADY_ACQUIRED);
-						Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without knowing it's previous level!", 0);
+						Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without knowing it's previous level!", IllegalActionPunishmentType.NONE);
 						return;
 					}
 					
@@ -295,7 +296,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 				if (activeChar.isSubClassActive())
 				{
 					activeChar.sendPacket(SystemMessageId.SKILL_NOT_FOR_SUBCLASS);
-					Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", 0);
+					Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE);
 					return;
 				}
 				
@@ -394,7 +395,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 				if (s.getGetLevel() > player.getLevel())
 				{
 					player.sendPacket(SystemMessageId.YOU_DONT_MEET_SKILL_LEVEL_REQUIREMENTS);
-					Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", 0);
+					Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", IllegalActionPunishmentType.NONE);
 					return false;
 				}
 				
@@ -453,7 +454,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 					{
 						if (!player.destroyItemByItemId("SkillLearn", itemIdCount.getId(), itemIdCount.getCount(), trainer, true))
 						{
-							Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", 0);
+							Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", IllegalActionPunishmentType.NONE);
 						}
 					}
 				}

+ 4 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/util/Util.java

@@ -37,9 +37,11 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.GeoData;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.enums.HtmlActionScope;
+import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.tasks.player.IllegalPlayerActionTask;
 import com.l2jserver.gameserver.network.serverpackets.AbstractHtmlPacket;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.ShowBoard;
@@ -53,9 +55,9 @@ public final class Util
 	private static final Logger LOGGER = Logger.getLogger(Util.class.getName());
 	private static final NumberFormat ADENA_FORMATTER = NumberFormat.getIntegerInstance(Locale.ENGLISH);
 	
-	public static void handleIllegalPlayerAction(L2PcInstance actor, String message, int punishment)
+	public static void handleIllegalPlayerAction(L2PcInstance actor, String message, IllegalActionPunishmentType punishment)
 	{
-		ThreadPoolManager.getInstance().scheduleGeneral(new IllegalPlayerAction(actor, message, punishment), 5000);
+		ThreadPoolManager.getInstance().scheduleGeneral(new IllegalPlayerActionTask(actor, message, punishment), 5000);
 	}
 	
 	public static String getRelativePath(File base, File file)