Browse Source

Fixed outdated code preventing players to enter the game

Reported by: maneco2

Fixed missing DatapackRoot config.
Removed Server and DataPack version configs (not used anymore).
Fixed few NPE vulnerabilities.
Changed C3P0 logger to display warnings only.
Zoey76 10 years ago
parent
commit
0957f30860

+ 2 - 2
L2J_Server/dist/game/config/server.properties

@@ -69,8 +69,8 @@ RequestServerID = 1
 AcceptAlternateID = True
 
 # Datapack root directory.
-# Defaults to current directory from which the server is started unless the below line is uncommented.
-#DatapackRoot = C:/Work/tmp/DataPack
+# Defaults to current directory from which the server is started.
+DatapackRoot = .
 
 # Define how many players are allowed to play simultaneously on your server.
 # Default: 100

+ 0 - 37
L2J_Server/java/com/l2jserver/Config.java

@@ -62,8 +62,6 @@ public final class Config
 	public static final String GENERAL_CONFIG_FILE = "./config/General.properties";
 	public static final String HEXID_FILE = "./config/hexid.txt";
 	public static final String ID_CONFIG_FILE = "./config/idfactory.properties";
-	public static final String SERVER_VERSION_FILE = "./config/l2j-version.properties";
-	public static final String DATAPACK_VERSION_FILE = "./config/l2jdp-version.properties";
 	public static final String L2JMOD_CONFIG_FILE = "./config/l2jmods.properties";
 	public static final String LOGIN_CONFIGURATION_FILE = "./config/loginserver.properties";
 	public static final String NPC_CONFIG_FILE = "./config/NPC.properties";
@@ -916,9 +914,6 @@ public final class Config
 	public static int SELECTED_NODE_ID;
 	public static int LINKED_NODE_ID;
 	public static String NEW_NODE_TYPE;
-	public static String SERVER_VERSION;
-	public static String SERVER_BUILD_DATE;
-	public static String DATAPACK_VERSION;
 	public static int PVP_NORMAL_TIME;
 	public static int PVP_PVP_TIME;
 	
@@ -1685,38 +1680,6 @@ public final class Config
 					throw new Error("Failed to Load " + CHARACTER_CONFIG_FILE + " file.");
 				}
 				
-				// Load L2J Server Version L2Properties file (if exists)
-				try
-				{
-					L2Properties serverVersion = new L2Properties();
-					is = new FileInputStream(new File(SERVER_VERSION_FILE));
-					serverVersion.load(is);
-					
-					SERVER_VERSION = serverVersion.getProperty("version", "Unsupported Custom Version.");
-					SERVER_BUILD_DATE = serverVersion.getProperty("builddate", "Undefined Date.");
-				}
-				catch (Exception e)
-				{
-					// Ignore L2Properties file if it doesnt exist
-					SERVER_VERSION = "Unsupported Custom Version.";
-					SERVER_BUILD_DATE = "Undefined Date.";
-				}
-				
-				// Load L2J Datapack Version L2Properties file (if exists)
-				try
-				{
-					L2Properties serverVersion = new L2Properties();
-					is = new FileInputStream(new File(DATAPACK_VERSION_FILE));
-					serverVersion.load(is);
-					
-					DATAPACK_VERSION = serverVersion.getProperty("version", "Unsupported Custom Version.");
-				}
-				catch (Exception e)
-				{
-					// Ignore L2Properties file if it doesnt exist
-					DATAPACK_VERSION = "Unsupported Custom Version.";
-				}
-				
 				// Load Telnet L2Properties file (if exists)
 				try
 				{

+ 2 - 14
L2J_Server/java/com/l2jserver/gameserver/Announcements.java

@@ -139,12 +139,11 @@ public class Announcements
 	
 	private void readFromDisk(File file)
 	{
-		LineNumberReader lnr = null;
-		try
+		try (LineNumberReader lnr = new LineNumberReader(new FileReader(file));)
 		{
 			int i = 0;
 			String line = null;
-			lnr = new LineNumberReader(new FileReader(file));
+			
 			while ((line = lnr.readLine()) != null)
 			{
 				StringTokenizer st = new StringTokenizer(line, "\n\r");
@@ -166,17 +165,6 @@ public class Announcements
 		{
 			_log.log(Level.SEVERE, "Error reading announcements: ", e1);
 		}
-		finally
-		{
-			try
-			{
-				lnr.close();
-			}
-			catch (Exception e2)
-			{
-				// nothing
-			}
-		}
 	}
 	
 	private void saveToDisk()

+ 1 - 10
L2J_Server/java/com/l2jserver/gameserver/GameServer.java

@@ -175,16 +175,7 @@ public class GameServer
 		long serverLoadStart = System.currentTimeMillis();
 		
 		gameServer = this;
-		_log.finest("used mem:" + getUsedMemoryMB() + "MB");
-		
-		if (Config.SERVER_VERSION != null)
-		{
-			_log.info("L2J Server Version:    " + Config.SERVER_VERSION);
-		}
-		if (Config.DATAPACK_VERSION != null)
-		{
-			_log.info("L2J Datapack Version:  " + Config.DATAPACK_VERSION);
-		}
+		_log.finest("Used memory:" + getUsedMemoryMB() + "MB");
 		
 		_idFactory = IdFactory.getInstance();
 		

+ 16 - 64
L2J_Server/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java

@@ -19,7 +19,6 @@ import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ATTACK;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.logging.Level;
 
 import javolution.util.FastList;
 
@@ -141,18 +140,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 		
 		npc.setTarget(getAttackTarget());
 		
-		L2Skill[] skills = null;
-		// double dist2 = 0;
-		
-		try
-		{
-			skills = _actor.getAllSkills();
-			// dist2 = _actor.getPlanDistanceSq(getAttackTarget().getX(), getAttackTarget().getY());
-		}
-		catch (NullPointerException e)
-		{
-			_log.log(Level.WARNING, "Encountered Null Value: " + e.getMessage(), e);
-		}
+		L2Skill[] skills = _actor.getAllSkills();
 		
 		if (!_actor.isMuted())
 		{
@@ -194,29 +182,17 @@ public class L2ControllableMobAI extends L2AttackableAI
 			return;
 		}
 		
-		L2Skill[] skills = null;
-		double dist2 = 0;
-		int range = 0;
-		int max_range = 0;
-		
 		_actor.setTarget(target);
+		L2Skill[] skills = _actor.getAllSkills();
+		double dist2 = _actor.getPlanDistanceSq(target.getX(), target.getY());
+		int range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + target.getTemplate().collisionRadius;
+		int max_range = range;
+		
 		// as a response, we put the target in a forcedattack mode
 		L2ControllableMobInstance theTarget = (L2ControllableMobInstance) target;
 		L2ControllableMobAI ctrlAi = (L2ControllableMobAI) theTarget.getAI();
 		ctrlAi.forceAttack(_actor);
 		
-		try
-		{
-			skills = _actor.getAllSkills();
-			dist2 = _actor.getPlanDistanceSq(target.getX(), target.getY());
-			range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + target.getTemplate().collisionRadius;
-			max_range = range;
-		}
-		catch (NullPointerException e)
-		{
-			_log.log(Level.WARNING, "Encountered Null Value: " + e.getMessage(), e);
-		}
-		
 		if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 		{
 			// check distant skills
@@ -252,23 +228,11 @@ public class L2ControllableMobAI extends L2AttackableAI
 			setAlternateAI(AI_IDLE);
 		}
 		
-		L2Skill[] skills = null;
-		double dist2 = 0;
-		int range = 0;
-		int max_range = 0;
-		
-		try
-		{
-			_actor.setTarget(getForcedTarget());
-			skills = _actor.getAllSkills();
-			dist2 = _actor.getPlanDistanceSq(getForcedTarget().getX(), getForcedTarget().getY());
-			range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + getForcedTarget().getTemplate().collisionRadius;
-			max_range = range;
-		}
-		catch (NullPointerException e)
-		{
-			_log.log(Level.WARNING, "Encountered Null Value: " + e.getMessage(), e);
-		}
+		_actor.setTarget(getForcedTarget());
+		L2Skill[] skills = _actor.getAllSkills();
+		double dist2 = _actor.getPlanDistanceSq(getForcedTarget().getX(), getForcedTarget().getY());
+		int range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + getForcedTarget().getTemplate().collisionRadius;
+		int max_range = range;
 		
 		if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 		{
@@ -342,23 +306,11 @@ public class L2ControllableMobAI extends L2AttackableAI
 				}
 			}
 			
-			L2Skill[] skills = null;
-			double dist2 = 0;
-			int range = 0;
-			int max_range = 0;
-			
-			try
-			{
-				_actor.setTarget(getAttackTarget());
-				skills = _actor.getAllSkills();
-				dist2 = _actor.getPlanDistanceSq(getAttackTarget().getX(), getAttackTarget().getY());
-				range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + getAttackTarget().getTemplate().collisionRadius;
-				max_range = range;
-			}
-			catch (NullPointerException e)
-			{
-				_log.log(Level.WARNING, "Encountered Null Value: " + e.getMessage(), e);
-			}
+			_actor.setTarget(getAttackTarget());
+			L2Skill[] skills = _actor.getAllSkills();
+			double dist2 = _actor.getPlanDistanceSq(getAttackTarget().getX(), getAttackTarget().getY());
+			int range = _actor.getPhysicalAttackRange() + _actor.getTemplate().collisionRadius + getAttackTarget().getTemplate().collisionRadius;
+			int max_range = range;
 			
 			if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 			{

+ 1 - 1
L2J_Server/java/com/l2jserver/gameserver/model/actor/instance/L2EffectPointInstance.java

@@ -28,7 +28,7 @@ public class L2EffectPointInstance extends L2Npc
 		super(objectId, template);
 		setInstanceType(InstanceType.L2EffectPointInstance);
 		setIsInvul(false);
-		_owner = owner == null ? null : owner.getActingPlayer();
+		_owner = owner.getActingPlayer();
 		setInstanceId(owner.getInstanceId());
 	}
 	

+ 20 - 20
L2J_Server/java/com/l2jserver/gameserver/model/actor/status/PcStatus.java

@@ -197,30 +197,30 @@ public class PcStatus extends PlayableStatus
 					}
 				}
 			}
-		}
-		
-		if (value > 0)
-		{
-			value = getCurrentHp() - value;
-			if (value <= 0)
+			
+			if (value > 0)
 			{
-				if (getActiveChar().isInDuel())
-				{
-					getActiveChar().disableAllSkills();
-					stopHpMpRegeneration();
-					attacker.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
-					attacker.sendPacket(ActionFailed.STATIC_PACKET);
-					
-					// let the DuelManager know of his defeat
-					DuelManager.getInstance().onPlayerDefeat(getActiveChar());
-					value = 1;
-				}
-				else
+				value = getCurrentHp() - value;
+				if (value <= 0)
 				{
-					value = 0;
+					if (getActiveChar().isInDuel())
+					{
+						getActiveChar().disableAllSkills();
+						stopHpMpRegeneration();
+						attacker.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
+						attacker.sendPacket(ActionFailed.STATIC_PACKET);
+						
+						// let the DuelManager know of his defeat
+						DuelManager.getInstance().onPlayerDefeat(getActiveChar());
+						value = 1;
+					}
+					else
+					{
+						value = 0;
+					}
 				}
+				setCurrentHp(value);
 			}
-			setCurrentHp(value);
 		}
 		
 		if (getActiveChar().getCurrentHp() < 0.5)

+ 7 - 28
L2J_Server/java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java

@@ -14,7 +14,6 @@
  */
 package com.l2jserver.gameserver.network.clientpackets;
 
-import java.io.UnsupportedEncodingException;
 import java.util.Base64;
 import java.util.logging.Logger;
 
@@ -427,22 +426,9 @@ public class EnterWorld extends L2GameClientPacket
 		
 		sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WELCOME_TO_LINEAGE));
 		
-		activeChar.sendMessage(getText("VGhpcyBzZXJ2ZXIgdXNlcyBMMkosIGEgcHJvamVjdCBmb3VuZGVkIGJ5IEwyQ2hlZg==\n"));
-		activeChar.sendMessage(getText("YW5kIGRldmVsb3BlZCBieSB0aGUgTDJKIERldiBUZWFtIGF0IGwyanNlcnZlci5jb20=\n"));
-		
-		if (Config.DISPLAY_SERVER_VERSION)
-		{
-			if (Config.SERVER_VERSION != null)
-			{
-				activeChar.sendMessage(getText("TDJKIFNlcnZlciBWZXJzaW9uOg==") + " " + Config.SERVER_VERSION);
-			}
-			
-			if (Config.DATAPACK_VERSION != null)
-			{
-				activeChar.sendMessage(getText("TDJKIERhdGFwYWNrIFZlcnNpb246") + " " + Config.DATAPACK_VERSION);
-			}
-		}
-		activeChar.sendMessage(getText("Q29weXJpZ2h0IDIwMDQtMjAxMQ==\n"));
+		activeChar.sendMessage(getText("VGhpcyBzZXJ2ZXIgdXNlcyBMMkosIGEgcHJvamVjdCBmb3VuZGVkIGJ5IEwyQ2hlZg=="));
+		activeChar.sendMessage(getText("YW5kIGRldmVsb3BlZCBieSB0aGUgTDJKIERldiBUZWFtIGF0IGwyanNlcnZlci5jb20="));
+		activeChar.sendMessage(getText("Q29weXJpZ2h0IDIwMDQtMjAxMQ=="));
 		
 		SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
 		Announcements.getInstance().showAnnouncements(activeChar);
@@ -683,20 +669,13 @@ public class EnterWorld extends L2GameClientPacket
 	}
 	
 	/**
-	 * @param string
-	 * @return
-	 * @throws UnsupportedEncodingException
+	 * Gets the decoded string.
+	 * @param string the string to decode
+	 * @return the decoded string
 	 */
 	private String getText(String string)
 	{
-		try
-		{
-			return new String(Base64.getDecoder().decode(string), "UTF-8");
-		}
-		catch (UnsupportedEncodingException e)
-		{
-			return null;
-		}
+		return new String(Base64.getDecoder().decode(string));
 	}
 	
 	private void loadTutorial(L2PcInstance player)

+ 2 - 2
L2J_Server/java/com/l2jserver/gameserver/network/clientpackets/L2GameClientPacket.java

@@ -44,7 +44,7 @@ public abstract class L2GameClientPacket extends ReceivablePacket<L2GameClient>
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Client: " + getClient().toString() + " - Failed reading: " + getType() + " - L2J Server Version: " + Config.SERVER_VERSION + " - DP Revision: " + Config.DATAPACK_VERSION + " ; " + e.getMessage(), e);
+			_log.log(Level.SEVERE, "Client: " + getClient().toString() + " - Failed reading: " + getType() + " ; " + e.getMessage(), e);
 			
 			if (e instanceof BufferUnderflowException)
 			{
@@ -83,7 +83,7 @@ public abstract class L2GameClientPacket extends ReceivablePacket<L2GameClient>
 		}
 		catch (Throwable t)
 		{
-			_log.log(Level.SEVERE, "Client: " + getClient().toString() + " - Failed running: " + getType() + " - L2J Server Version: " + Config.SERVER_VERSION + " - DP Revision: " + Config.DATAPACK_VERSION + " ; " + t.getMessage(), t);
+			_log.log(Level.SEVERE, "Client: " + getClient().toString() + " - Failed running: " + getType() + " ; " + t.getMessage(), t);
 			// in case of EnterWorld error kick player from game
 			if (this instanceof EnterWorld)
 			{

+ 2 - 8
L2J_Server/java/com/l2jserver/gameserver/network/serverpackets/L2GameServerPacket.java

@@ -14,12 +14,10 @@
  */
 package com.l2jserver.gameserver.network.serverpackets;
 
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.mmocore.network.SendablePacket;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.network.L2GameClient;
 
 /**
@@ -48,20 +46,16 @@ public abstract class L2GameServerPacket extends SendablePacket<L2GameClient>
 		_invisible = b;
 	}
 	
-	/**
-	 * @see com.l2jserver.mmocore.network.SendablePacket#write()
-	 */
 	@Override
 	protected void write()
 	{
 		try
 		{
-			// _log.info(this.getType());
 			writeImpl();
 		}
 		catch (Exception e)
 		{
-			_log.log(Level.SEVERE, "Client: " + getClient().toString() + " - Failed writing: " + getType() + " - L2J Server Version: " + Config.SERVER_VERSION + " - DP Revision: " + Config.DATAPACK_VERSION + " ; " + e.getMessage(), e);
+			_log.severe("Client: " + getClient().toString() + " - Failed writing: " + getType() + "; " + e.getMessage());
 		}
 	}
 	
@@ -73,7 +67,7 @@ public abstract class L2GameServerPacket extends SendablePacket<L2GameClient>
 	protected abstract void writeImpl();
 	
 	/**
-	 * @return A String with this packet name for debuging purposes
+	 * @return A String with this packet name for debugging purposes
 	 */
 	public abstract String getType();
 }

+ 0 - 3
L2J_Server/java/com/l2jserver/status/GameStatusThread.java

@@ -1207,9 +1207,6 @@ public class GameStatusThread extends Thread
 		
 		StringBuilder sb = new StringBuilder();
 		sb.append(sdf.format(cal.getTime()));
-		sb.append("\n\nL2J Server Version: " + Config.SERVER_VERSION);
-		sb.append("\nDP Revision: " + Config.DATAPACK_VERSION);
-		sb.append("\n\n");
 		sb.append(getServerStatus());
 		sb.append("\n\n");
 		sb.append("\n## Java Platform Information ##");

+ 3 - 0
L2J_Server/misc/log.cfg

@@ -155,3 +155,6 @@ AltPrivilegesAdmin.pattern = log/admin-commands.log
 AltPrivilegesAdmin.formatter = com.l2jserver.log.FileLogFormatter
 AltPrivilegesAdmin.append = true
 AltPrivilegesAdmin.level = CONFIG
+
+# c3p0 Logging
+com.mchange.v2.level = WARNING