Переглянути джерело

BETA: Fixes and cleanup:
* AugmentationData: missing type arguments for generic class.
* FuncTemplate: missing type arguments for generic class.
* L2SkillDrain: redundant cast to int.
* AccountingFormatter: possible fall-through into case.
* L2TIntObjectHashMap: serializable class has no definition of serialVersionUID.
* L2SiegeClan: empty statement.
* CommunityServerThread: static method should be qualified by type name.
* L2CastleChamberlainInstance: possible fall-through into case.

Zoey76 13 роки тому
батько
коміт
b7cceb1ba6

+ 145 - 72
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/AugmentationData.java

@@ -40,9 +40,7 @@ import com.l2jserver.util.Rnd;
 
 /**
  * This class manages the augmentation data and can also create new augmentations.
- *
- * @author  durgus
- * edited by Gigiikun
+ * @author durgus, edited by Gigiikun
  */
 public class AugmentationData
 {
@@ -60,9 +58,9 @@ public class AugmentationData
 	private static final int STAT_START = 1;
 	private static final int STAT_END = 14560;
 	private static final int STAT_BLOCKSIZE = 3640;
-	//private static final int STAT_NUMBEROF_BLOCKS = 4;
+	// private static final int STAT_NUMBEROF_BLOCKS = 4;
 	private static final int STAT_SUBBLOCKSIZE = 91;
-	//private static final int STAT_NUMBEROF_SUBBLOCKS = 40;
+	// private static final int STAT_NUMBEROF_SUBBLOCKS = 40;
 	private static final int STAT_NUM = 13;
 	
 	private static final byte[] STATS1_MAP = new byte[STAT_SUBBLOCKSIZE];
@@ -88,32 +86,32 @@ public class AugmentationData
 	
 	private static final int ACC_RING_START = ACC_START;
 	private static final int ACC_RING_SKILLS = 18;
-	private static final int ACC_RING_BLOCKSIZE = ACC_RING_SKILLS + 4 * ACC_STAT_SUBBLOCKSIZE;
-	private static final int ACC_RING_END = ACC_RING_START + ACC_BLOCKS_NUM * ACC_RING_BLOCKSIZE - 1;
+	private static final int ACC_RING_BLOCKSIZE = ACC_RING_SKILLS + (4 * ACC_STAT_SUBBLOCKSIZE);
+	private static final int ACC_RING_END = (ACC_RING_START + (ACC_BLOCKS_NUM * ACC_RING_BLOCKSIZE)) - 1;
 	
 	private static final int ACC_EAR_START = ACC_RING_END + 1;
 	private static final int ACC_EAR_SKILLS = 18;
-	private static final int ACC_EAR_BLOCKSIZE = ACC_EAR_SKILLS + 4 * ACC_STAT_SUBBLOCKSIZE;
-	private static final int ACC_EAR_END = ACC_EAR_START + ACC_BLOCKS_NUM * ACC_EAR_BLOCKSIZE - 1;
+	private static final int ACC_EAR_BLOCKSIZE = ACC_EAR_SKILLS + (4 * ACC_STAT_SUBBLOCKSIZE);
+	private static final int ACC_EAR_END = (ACC_EAR_START + (ACC_BLOCKS_NUM * ACC_EAR_BLOCKSIZE)) - 1;
 	
 	private static final int ACC_NECK_START = ACC_EAR_END + 1;
 	private static final int ACC_NECK_SKILLS = 24;
-	private static final int ACC_NECK_BLOCKSIZE = ACC_NECK_SKILLS + 4 * ACC_STAT_SUBBLOCKSIZE;
+	private static final int ACC_NECK_BLOCKSIZE = ACC_NECK_SKILLS + (4 * ACC_STAT_SUBBLOCKSIZE);
 	
-	private static final int ACC_END = ACC_NECK_START + ACC_BLOCKS_NUM * ACC_NECK_BLOCKSIZE;
+	private static final int ACC_END = ACC_NECK_START + (ACC_BLOCKS_NUM * ACC_NECK_BLOCKSIZE);
 	
 	private static final byte[] ACC_STATS1_MAP = new byte[ACC_STAT_SUBBLOCKSIZE];
 	private static final byte[] ACC_STATS2_MAP = new byte[ACC_STAT_SUBBLOCKSIZE];
 	
-	private ArrayList<?>[] _augStats = new ArrayList[4];
-	private ArrayList<?>[] _augAccStats = new ArrayList[4];
+	private final ArrayList<?>[] _augStats = new ArrayList<?>[4];
+	private final ArrayList<?>[] _augAccStats = new ArrayList<?>[4];
 	
-	private ArrayList<?>[] _blueSkills = new ArrayList[10];
-	private ArrayList<?>[] _purpleSkills = new ArrayList[10];
-	private ArrayList<?>[] _redSkills = new ArrayList[10];
-	private ArrayList<?>[] _yellowSkills = new ArrayList[10];
+	private final ArrayList<?>[] _blueSkills = new ArrayList<?>[10];
+	private final ArrayList<?>[] _purpleSkills = new ArrayList<?>[10];
+	private final ArrayList<?>[] _redSkills = new ArrayList<?>[10];
+	private final ArrayList<?>[] _yellowSkills = new ArrayList<?>[10];
 	
-	private TIntObjectHashMap<AugmentationSkill> _allSkills = new TIntObjectHashMap<AugmentationSkill>();
+	private final TIntObjectHashMap<AugmentationSkill> _allSkills = new TIntObjectHashMap<AugmentationSkill>();
 	
 	// =========================================================
 	// Constructor
@@ -154,8 +152,8 @@ public class AugmentationData
 			for (int j = i + 1; j < STAT_NUM; idx++, j++)
 			{
 				// combined stats
-				STATS1_MAP[idx] = (byte)i;
-				STATS2_MAP[idx] = (byte)j;
+				STATS1_MAP[idx] = (byte) i;
+				STATS2_MAP[idx] = (byte) j;
 			}
 		}
 		idx = 0;
@@ -168,12 +166,12 @@ public class AugmentationData
 		// 05-05 - order is changed here
 		// 04-05 /
 		// First values always solo, next are combined, except last 3 values
-		for (int i = 0; i < ACC_STAT_NUM - 2; i++)
+		for (int i = 0; i < (ACC_STAT_NUM - 2); i++)
 		{
 			for (int j = i; j < ACC_STAT_NUM; idx++, j++)
 			{
-				ACC_STATS1_MAP[idx] = (byte)i;
-				ACC_STATS2_MAP[idx] = (byte)j;
+				ACC_STATS1_MAP[idx] = (byte) i;
+				ACC_STATS2_MAP[idx] = (byte) j;
 			}
 		}
 		ACC_STATS1_MAP[idx] = 4;
@@ -198,8 +196,7 @@ public class AugmentationData
 		_log.info("AugmentationData: Loaded: " + (_augAccStats[0].size() * 4) + " accessory augmentation stats.");
 		for (int i = 0; i < 10; i++)
 		{
-			_log.info("AugmentationData: Loaded: " + _blueSkills[i].size() + " blue, " + _purpleSkills[i].size() + " purple and "
-					+ _redSkills[i].size() + " red skills for lifeStoneLevel " + i);
+			_log.info("AugmentationData: Loaded: " + _blueSkills[i].size() + " blue, " + _purpleSkills[i].size() + " purple and " + _redSkills[i].size() + " red skills for lifeStoneLevel " + i);
 		}
 	}
 	
@@ -208,8 +205,8 @@ public class AugmentationData
 	
 	public static class AugmentationSkill
 	{
-		private int _skillId;
-		private int _skillLevel;
+		private final int _skillId;
+		private final int _skillLevel;
 		
 		public AugmentationSkill(int skillId, int skillLevel)
 		{
@@ -252,15 +249,19 @@ public class AugmentationData
 		
 		public float getSingleStatValue(int i)
 		{
-			if (i >= _singleSize || i < 0)
+			if ((i >= _singleSize) || (i < 0))
+			{
 				return _singleValues[_singleSize - 1];
+			}
 			return _singleValues[i];
 		}
 		
 		public float getCombinedStatValue(int i)
 		{
-			if (i >= _combinedSize || i < 0)
+			if ((i >= _combinedSize) || (i < 0))
+			{
 				return _combinedValues[_combinedSize - 1];
+			}
 			return _combinedValues[i];
 		}
 		
@@ -288,7 +289,9 @@ public class AugmentationData
 			if (!file.exists())
 			{
 				if (Config.DEBUG)
+				{
 					_log.info("The augmentation skillmap file is missing.");
+				}
 				return;
 			}
 			
@@ -328,27 +331,35 @@ public class AugmentationData
 							if (skillId == 0)
 							{
 								if (Config.DEBUG)
-									_log.log(Level.SEVERE, "Bad skillId in augmentation_skillmap.xml in the augmentationId:"
-											+ augmentationId);
+								{
+									_log.log(Level.SEVERE, "Bad skillId in augmentation_skillmap.xml in the augmentationId:" + augmentationId);
+								}
 								badAugmantData++;
 								continue;
 							}
 							else if (skillLvL == 0)
 							{
 								if (Config.DEBUG)
-									_log.log(Level.SEVERE, "Bad skillLevel in augmentation_skillmap.xml in the augmentationId:"
-											+ augmentationId);
+								{
+									_log.log(Level.SEVERE, "Bad skillLevel in augmentation_skillmap.xml in the augmentationId:" + augmentationId);
+								}
 								badAugmantData++;
 								continue;
 							}
 							int k = (augmentationId - BLUE_START) / SKILLS_BLOCKSIZE;
 							
 							if (type.equalsIgnoreCase("blue"))
-								((ArrayList<Integer>)_blueSkills[k]).add(augmentationId);
+							{
+								((ArrayList<Integer>) _blueSkills[k]).add(augmentationId);
+							}
 							else if (type.equalsIgnoreCase("purple"))
-								((ArrayList<Integer>)_purpleSkills[k]).add(augmentationId);
+							{
+								((ArrayList<Integer>) _purpleSkills[k]).add(augmentationId);
+							}
 							else
-								((ArrayList<Integer>)_redSkills[k]).add(augmentationId);
+							{
+								((ArrayList<Integer>) _redSkills[k]).add(augmentationId);
+							}
 							
 							_allSkills.put(augmentationId, new AugmentationSkill(skillId, skillLvL));
 						}
@@ -356,7 +367,9 @@ public class AugmentationData
 				}
 			}
 			if (badAugmantData != 0)
+			{
 				_log.info("AugmentationData: " + badAugmantData + " bad skill(s) were skipped.");
+			}
 		}
 		catch (Exception e)
 		{
@@ -377,7 +390,9 @@ public class AugmentationData
 				if (!file.exists())
 				{
 					if (Config.DEBUG)
+					{
 						_log.info("The augmentation stat data file " + i + " is missing.");
+					}
 					return;
 				}
 				
@@ -405,21 +420,27 @@ public class AugmentationData
 										StringTokenizer data = new StringTokenizer(cd.getFirstChild().getNodeValue());
 										FastList<Float> array = new FastList<Float>();
 										while (data.hasMoreTokens())
+										{
 											array.add(Float.parseFloat(data.nextToken()));
+										}
 										
 										if (tableName.equalsIgnoreCase("#soloValues"))
 										{
 											soloValues = new float[array.size()];
 											int x = 0;
 											for (float value : array)
+											{
 												soloValues[x++] = value;
+											}
 										}
 										else
 										{
 											combinedValues = new float[array.size()];
 											int x = 0;
 											for (float value : array)
+											{
 												combinedValues[x++] = value;
+											}
 										}
 									}
 								}
@@ -447,7 +468,9 @@ public class AugmentationData
 				if (!file.exists())
 				{
 					if (Config.DEBUG)
+					{
 						_log.info("The jewel augmentation stat data file " + i + " is missing.");
+					}
 					return;
 				}
 				
@@ -475,21 +498,27 @@ public class AugmentationData
 										StringTokenizer data = new StringTokenizer(cd.getFirstChild().getNodeValue());
 										FastList<Float> array = new FastList<Float>();
 										while (data.hasMoreTokens())
+										{
 											array.add(Float.parseFloat(data.nextToken()));
+										}
 										
 										if (tableName.equalsIgnoreCase("#soloValues"))
 										{
 											soloValues = new float[array.size()];
 											int x = 0;
 											for (float value : array)
+											{
 												soloValues[x++] = value;
+											}
 										}
 										else
 										{
 											combinedValues = new float[array.size()];
 											int x = 0;
 											for (float value : array)
+											{
 												combinedValues[x++] = value;
+											}
 										}
 									}
 								}
@@ -543,42 +572,62 @@ public class AugmentationData
 		boolean generateSkill = false;
 		boolean generateGlow = false;
 		
-		//lifestonelevel is used for stat Id and skill level, but here the max level is 9
+		// lifestonelevel is used for stat Id and skill level, but here the max level is 9
 		lifeStoneLevel = Math.min(lifeStoneLevel, 9);
 		
 		switch (lifeStoneGrade)
 		{
 			case AbstractRefinePacket.GRADE_NONE:
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_NG_SKILL_CHANCE)
+				{
 					generateSkill = true;
+				}
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_NG_GLOW_CHANCE)
+				{
 					generateGlow = true;
+				}
 				break;
 			case AbstractRefinePacket.GRADE_MID:
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_MID_SKILL_CHANCE)
+				{
 					generateSkill = true;
+				}
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_MID_GLOW_CHANCE)
+				{
 					generateGlow = true;
+				}
 				break;
 			case AbstractRefinePacket.GRADE_HIGH:
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_HIGH_SKILL_CHANCE)
+				{
 					generateSkill = true;
+				}
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_HIGH_GLOW_CHANCE)
+				{
 					generateGlow = true;
+				}
 				break;
 			case AbstractRefinePacket.GRADE_TOP:
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_TOP_SKILL_CHANCE)
+				{
 					generateSkill = true;
+				}
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_TOP_GLOW_CHANCE)
+				{
 					generateGlow = true;
+				}
 				break;
 			case AbstractRefinePacket.GRADE_ACC:
 				if (Rnd.get(1, 100) <= Config.AUGMENTATION_ACC_SKILL_CHANCE)
+				{
 					generateSkill = true;
+				}
 		}
 		
-		if (!generateSkill && Rnd.get(1, 100) <= Config.AUGMENTATION_BASESTAT_CHANCE)
+		if (!generateSkill && (Rnd.get(1, 100) <= Config.AUGMENTATION_BASESTAT_CHANCE))
+		{
 			stat34 = Rnd.get(BASESTAT_STR, BASESTAT_MEN);
+		}
 		
 		// Second: decide which grade the augmentation result is going to have:
 		// 0:yellow, 1:blue, 2:purple, 3:red
@@ -586,21 +635,31 @@ public class AugmentationData
 		// whats known is: you cant have yellow with skill(or baseStatModifier)
 		// noGrade stone can not have glow, mid only with skill, high has a chance(custom), top allways glow
 		int resultColor = Rnd.get(0, 100);
-		if (stat34 == 0 && !generateSkill)
+		if ((stat34 == 0) && !generateSkill)
 		{
-			if (resultColor <= (15 * lifeStoneGrade) + 40)
+			if (resultColor <= ((15 * lifeStoneGrade) + 40))
+			{
 				resultColor = 1;
+			}
 			else
+			{
 				resultColor = 0;
+			}
 		}
 		else
 		{
-			if (resultColor <= (10 * lifeStoneGrade) + 5 || stat34 != 0)
+			if ((resultColor <= ((10 * lifeStoneGrade) + 5)) || (stat34 != 0))
+			{
 				resultColor = 3;
-			else if (resultColor <= (10 * lifeStoneGrade) + 10)
+			}
+			else if (resultColor <= ((10 * lifeStoneGrade) + 10))
+			{
 				resultColor = 1;
+			}
 			else
+			{
 				resultColor = 2;
+			}
 		}
 		
 		// generate a skill if neccessary
@@ -610,13 +669,13 @@ public class AugmentationData
 			switch (resultColor)
 			{
 				case 1: // blue skill
-					stat34 = ((Integer)_blueSkills[lifeStoneLevel].get(Rnd.get(0, _blueSkills[lifeStoneLevel].size() - 1)));
+					stat34 = ((Integer) _blueSkills[lifeStoneLevel].get(Rnd.get(0, _blueSkills[lifeStoneLevel].size() - 1)));
 					break;
 				case 2: // purple skill
-					stat34 = ((Integer)_purpleSkills[lifeStoneLevel].get(Rnd.get(0, _purpleSkills[lifeStoneLevel].size() - 1)));
+					stat34 = ((Integer) _purpleSkills[lifeStoneLevel].get(Rnd.get(0, _purpleSkills[lifeStoneLevel].size() - 1)));
 					break;
 				case 3: // red skill
-					stat34 = ((Integer)_redSkills[lifeStoneLevel].get(Rnd.get(0, _redSkills[lifeStoneLevel].size() - 1)));
+					stat34 = ((Integer) _redSkills[lifeStoneLevel].get(Rnd.get(0, _redSkills[lifeStoneLevel].size() - 1)));
 					break;
 			}
 			skill = _allSkills.get(stat34).getSkill();
@@ -647,30 +706,36 @@ public class AugmentationData
 		if (stat34 == 0)
 		{
 			int temp = Rnd.get(2, 3);
-			int colorOffset = resultColor * (10 * STAT_SUBBLOCKSIZE) + temp * STAT_BLOCKSIZE + 1;
+			int colorOffset = (resultColor * (10 * STAT_SUBBLOCKSIZE)) + (temp * STAT_BLOCKSIZE) + 1;
 			offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + colorOffset;
 			
-			stat34 = Rnd.get(offset, offset + STAT_SUBBLOCKSIZE - 1);
-			if (generateGlow && lifeStoneGrade >= 2)
-				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + (temp - 2) * STAT_BLOCKSIZE + lifeStoneGrade
-				* (10 * STAT_SUBBLOCKSIZE) + 1;
+			stat34 = Rnd.get(offset, (offset + STAT_SUBBLOCKSIZE) - 1);
+			if (generateGlow && (lifeStoneGrade >= 2))
+			{
+				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + ((temp - 2) * STAT_BLOCKSIZE) + (lifeStoneGrade * (10 * STAT_SUBBLOCKSIZE)) + 1;
+			}
 			else
-				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + (temp - 2) * STAT_BLOCKSIZE + Rnd.get(0, 1)
-				* (10 * STAT_SUBBLOCKSIZE) + 1;
+			{
+				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + ((temp - 2) * STAT_BLOCKSIZE) + (Rnd.get(0, 1) * (10 * STAT_SUBBLOCKSIZE)) + 1;
+			}
 		}
 		else
 		{
 			if (!generateGlow)
-				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + Rnd.get(0, 1) * STAT_BLOCKSIZE + 1;
+			{
+				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + (Rnd.get(0, 1) * STAT_BLOCKSIZE) + 1;
+			}
 			else
-				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + Rnd.get(0, 1) * STAT_BLOCKSIZE + (lifeStoneGrade + resultColor) / 2
-				* (10 * STAT_SUBBLOCKSIZE) + 1;
+			{
+				offset = (lifeStoneLevel * STAT_SUBBLOCKSIZE) + (Rnd.get(0, 1) * STAT_BLOCKSIZE) + (((lifeStoneGrade + resultColor) / 2) * (10 * STAT_SUBBLOCKSIZE)) + 1;
+			}
 		}
-		stat12 = Rnd.get(offset, offset + STAT_SUBBLOCKSIZE - 1);
+		stat12 = Rnd.get(offset, (offset + STAT_SUBBLOCKSIZE) - 1);
 		
 		if (Config.DEBUG)
-			_log.info("Augmentation success: stat12=" + stat12 + "; stat34=" + stat34 + "; resultColor=" + resultColor + "; level="
-					+ lifeStoneLevel + "; grade=" + lifeStoneGrade);
+		{
+			_log.info("Augmentation success: stat12=" + stat12 + "; stat34=" + stat34 + "; resultColor=" + resultColor + "; level=" + lifeStoneLevel + "; grade=" + lifeStoneGrade);
+		}
 		return new L2Augmentation(((stat34 << 16) + stat12), skill);
 	}
 	
@@ -686,15 +751,15 @@ public class AugmentationData
 		switch (bodyPart)
 		{
 			case L2Item.SLOT_LR_FINGER:
-				base = ACC_RING_START + ACC_RING_BLOCKSIZE * lifeStoneLevel;
+				base = ACC_RING_START + (ACC_RING_BLOCKSIZE * lifeStoneLevel);
 				skillsLength = ACC_RING_SKILLS;
 				break;
 			case L2Item.SLOT_LR_EAR:
-				base = ACC_EAR_START + ACC_EAR_BLOCKSIZE * lifeStoneLevel;
+				base = ACC_EAR_START + (ACC_EAR_BLOCKSIZE * lifeStoneLevel);
 				skillsLength = ACC_EAR_SKILLS;
 				break;
 			case L2Item.SLOT_NECK:
-				base = ACC_NECK_START + ACC_NECK_BLOCKSIZE * lifeStoneLevel;
+				base = ACC_NECK_START + (ACC_NECK_BLOCKSIZE * lifeStoneLevel);
 				skillsLength = ACC_NECK_SKILLS;
 				break;
 			default:
@@ -712,7 +777,9 @@ public class AugmentationData
 			// second augmentation (skill)
 			stat34 = base + Rnd.get(skillsLength);
 			if (_allSkills.contains(stat34))
+			{
 				skill = _allSkills.get(stat34).getSkill();
+			}
 		}
 		
 		if (skill == null)
@@ -722,15 +789,16 @@ public class AugmentationData
 			// starting from next and wrapping over using remainder
 			stat34 = (stat12 + 1 + Rnd.get(ACC_STAT_SUBBLOCKSIZE - 1)) % ACC_STAT_SUBBLOCKSIZE;
 			// this is a stats - skipping skills
-			stat34 = base + skillsLength + ACC_STAT_SUBBLOCKSIZE * resultColor + stat34;
+			stat34 = base + skillsLength + (ACC_STAT_SUBBLOCKSIZE * resultColor) + stat34;
 		}
 		
 		// stat12 has stats only
-		stat12 = base + skillsLength + ACC_STAT_SUBBLOCKSIZE * resultColor + stat12;
+		stat12 = base + skillsLength + (ACC_STAT_SUBBLOCKSIZE * resultColor) + stat12;
 		
 		if (Config.DEBUG)
-			_log.info("Accessory augmentation success: stat12=" + stat12 + "; stat34=" + stat34 + "; level="
-					+ lifeStoneLevel);
+		{
+			_log.info("Accessory augmentation success: stat12=" + stat12 + "; stat34=" + stat34 + "; level=" + lifeStoneLevel);
+		}
 		return new L2Augmentation(((stat34 << 16) + stat12), skill);
 	}
 	
@@ -780,7 +848,7 @@ public class AugmentationData
 		for (int i = 0; i < 2; i++)
 		{
 			// weapon augmentation - stats
-			if (stats[i] >= STAT_START && stats[i] <= STAT_END)
+			if ((stats[i] >= STAT_START) && (stats[i] <= STAT_END))
 			{
 				int base = stats[i] - STAT_START;
 				int color = base / STAT_BLOCKSIZE; // 4 color blocks
@@ -795,7 +863,8 @@ public class AugmentationData
 					AugmentationStat as = ((AugmentationStat) _augStats[color].get(stat1));
 					temp.add(new AugStat(as.getStat(), as.getSingleStatValue(level)));
 				}
-				else // combined stat
+				else
+				// combined stat
 				{
 					AugmentationStat as = ((AugmentationStat) _augStats[color].get(stat1));
 					temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(level)));
@@ -804,7 +873,7 @@ public class AugmentationData
 				}
 			}
 			// its a base stat
-			else if (stats[i] >= BASESTAT_STR && stats[i] <= BASESTAT_MEN)
+			else if ((stats[i] >= BASESTAT_STR) && (stats[i] <= BASESTAT_MEN))
 			{
 				switch (stats[i])
 				{
@@ -827,7 +896,7 @@ public class AugmentationData
 			// each area consist of 10 blocks (level)
 			// each block has skills first (18 or 24 for necklaces)
 			// and sub-block for stats next
-			else if (stats[i] >= ACC_START && stats[i] <= ACC_END)
+			else if ((stats[i] >= ACC_START) && (stats[i] <= ACC_END))
 			{
 				int base, level, subblock;
 				
@@ -837,13 +906,14 @@ public class AugmentationData
 					level = base / ACC_RING_BLOCKSIZE; // stat level (block number)
 					subblock = (base % ACC_RING_BLOCKSIZE) - ACC_RING_SKILLS; // skills first
 				}
-				else if (stats[i] <= ACC_EAR_END) //earrings area
+				else if (stats[i] <= ACC_EAR_END) // earrings area
 				{
 					base = stats[i] - ACC_EAR_START;
 					level = base / ACC_EAR_BLOCKSIZE;
 					subblock = (base % ACC_EAR_BLOCKSIZE) - ACC_EAR_SKILLS;
 				}
-				else // necklaces
+				else
+				// necklaces
 				{
 					base = stats[i] - ACC_NECK_START;
 					level = base / ACC_NECK_BLOCKSIZE;
@@ -861,7 +931,8 @@ public class AugmentationData
 						AugmentationStat as = ((AugmentationStat) _augAccStats[color].get(stat1));
 						temp.add(new AugStat(as.getStat(), as.getSingleStatValue(level)));
 					}
-					else // combined
+					else
+					// combined
 					{
 						AugmentationStat as = ((AugmentationStat) _augAccStats[color].get(stat1));
 						temp.add(new AugStat(as.getStat(), as.getCombinedStatValue(level)));
@@ -882,7 +953,9 @@ public class AugmentationData
 	{
 		final AugmentationSkill temp = _allSkills.get(augmentationId);
 		if (temp == null)
+		{
 			return null;
+		}
 		
 		return temp.getSkill();
 	}

+ 33 - 12
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2SiegeClan.java

@@ -26,8 +26,8 @@ public class L2SiegeClan
 	// Instance
 	// ===============================================================
 	// Data Field
-	private int _clanId                = 0;
-	private List<L2Npc> _flag  = new FastList<L2Npc>();
+	private int _clanId = 0;
+	private List<L2Npc> _flag = new FastList<L2Npc>();
 	private int _numFlagsAdded = 0;
 	private SiegeClanType _type;
 	
@@ -63,14 +63,21 @@ public class L2SiegeClan
 	
 	public boolean removeFlag(L2Npc flag)
 	{
-		if (flag == null) return false;
+		if (flag == null)
+		{
+			return false;
+		}
 		boolean ret = getFlag().remove(flag);
-		//check if null objects or duplicates remain in the list.
-		//for some reason, this might be happening sometimes...
+		// check if null objects or duplicates remain in the list.
+		// for some reason, this might be happening sometimes...
 		// delete false duplicates: if this flag got deleted, delete its copies too.
 		if (ret)
-			while (getFlag().remove(flag)) ;
-		
+		{
+			while (getFlag().remove(flag))
+			{
+				//
+			}
+		}
 		flag.deleteMe();
 		_numFlagsAdded--;
 		return ret;
@@ -78,21 +85,35 @@ public class L2SiegeClan
 	
 	public void removeFlags()
 	{
-		for (L2Npc flag: getFlag())
+		for (L2Npc flag : getFlag())
+		{
 			removeFlag(flag);
+		}
 	}
 	
 	// =========================================================
 	// Property
-	public final int getClanId() { return _clanId; }
+	public final int getClanId()
+	{
+		return _clanId;
+	}
 	
 	public final List<L2Npc> getFlag()
 	{
-		if (_flag == null) _flag  = new FastList<L2Npc>();
+		if (_flag == null)
+		{
+			_flag = new FastList<L2Npc>();
+		}
 		return _flag;
 	}
 	
-	public SiegeClanType getType() { return _type; }
+	public SiegeClanType getType()
+	{
+		return _type;
+	}
 	
-	public void setType(SiegeClanType setType) { _type = setType; }
+	public void setType(SiegeClanType setType)
+	{
+		_type = setType;
+	}
 }

+ 185 - 172
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2CastleChamberlainInstance.java

@@ -42,7 +42,7 @@ import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.StringUtil;
 
 /**
- * Castle Chamberlains implementation used for: - tax rate control - regional
+ * Castle Chamberlains implementation used for: - tax rate control - regional<br>
  * manor system control - castle treasure control - ...
  */
 public class L2CastleChamberlainInstance extends L2MerchantInstance
@@ -71,14 +71,20 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 	{
 		// BypassValidation Exploit plug.
 		if (player.getLastFolkNPC().getObjectId() != getObjectId())
+		{
 			return;
+		}
 		
 		SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
 		int condition = validateCondition(player);
 		if (condition <= COND_ALL_FALSE)
+		{
 			return;
+		}
 		else if (condition == COND_BUSY_BECAUSE_OF_SIEGE)
+		{
 			return;
+		}
 		else if (condition == COND_OWNER)
 		{
 			StringTokenizer st = new StringTokenizer(command, " ");
@@ -86,12 +92,20 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 			
 			String val = "";
 			if (st.countTokens() >= 1)
+			{
 				val = st.nextToken();
+			}
 			
 			if (actualCommand.equalsIgnoreCase("banish_foreigner"))
 			{
-				if (!validatePrivileges(player, L2Clan.CP_CS_DISMISS)) return;
-				if (siegeBlocksFunction(player)) return;
+				if (!validatePrivileges(player, L2Clan.CP_CS_DISMISS))
+				{
+					return;
+				}
+				if (siegeBlocksFunction(player))
+				{
+					return;
+				}
 				getCastle().banishForeigners(); // Move non-clan members off castle area
 				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 				html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-banishafter.htm");
@@ -101,8 +115,14 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 			}
 			else if (actualCommand.equalsIgnoreCase("banish_foreigner_show"))
 			{
-				if (!validatePrivileges(player, L2Clan.CP_CS_DISMISS)) return;
-				if (siegeBlocksFunction(player)) return;
+				if (!validatePrivileges(player, L2Clan.CP_CS_DISMISS))
+				{
+					return;
+				}
+				if (siegeBlocksFunction(player))
+				{
+					return;
+				}
 				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 				html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-banishfore.htm");
 				html.replace("%objectId%", String.valueOf(getObjectId()));
@@ -219,13 +239,17 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 				if ((player.getClanPrivileges() & L2Clan.CP_CS_USE_FUNCTIONS) == L2Clan.CP_CS_USE_FUNCTIONS)
 				{
 					if (val.isEmpty())
+					{
 						return;
+					}
 					player.tempInventoryDisable();
 					
 					if (Config.DEBUG)
+					{
 						_log.fine("Showing chamberlain buylist");
+					}
 					
-					showBuyWindow(player,Integer.parseInt(val + "1"));
+					showBuyWindow(player, Integer.parseInt(val + "1"));
 					player.sendPacket(ActionFailed.STATIC_PACKET);
 				}
 				else
@@ -265,12 +289,16 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						catch (NoSuchElementException e)
 						{
 						}
-						if (amount > 0 && getCastle().getTreasury() + amount < PcInventory.MAX_ADENA)
+						if ((amount > 0) && ((getCastle().getTreasury() + amount) < PcInventory.MAX_ADENA))
 						{
 							if (player.reduceAdena("Castle", amount, this, true))
+							{
 								getCastle().addToTreasuryNoTax(amount);
+							}
 							else
+							{
 								sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
+							}
 						}
 					}
 					else if (val.equalsIgnoreCase("withdraw"))
@@ -285,11 +313,15 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						if (amount > 0)
 						{
 							if (getCastle().getTreasury() < amount)
+							{
 								filename = "data/html/chamberlain/chamberlain-vault-no.htm";
+							}
 							else
 							{
 								if (getCastle().addToTreasuryNoTax((-1) * amount))
+								{
 									player.addAdena("Castle", amount, this, true);
+								}
 							}
 						}
 					}
@@ -309,8 +341,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 				}
 				return;
 			}
-			else if (actualCommand.equalsIgnoreCase("operate_door")) // door
-				// control
+			else if (actualCommand.equalsIgnoreCase("operate_door")) // door control
 			{
 				if ((player.getClanPrivileges() & L2Clan.CP_CS_OPEN_DOOR) == L2Clan.CP_CS_OPEN_DOOR)
 				{
@@ -325,7 +356,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 						String file = "data/html/chamberlain/doors-close.htm";
 						if (open)
+						{
 							file = "data/html/chamberlain/doors-open.htm";
+						}
 						html.setFile(player.getHtmlPrefix(), file);
 						html.replace("%objectId%", String.valueOf(getObjectId()));
 						player.sendPacket(html);
@@ -347,30 +380,16 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 				return;
 			}
 			else if (actualCommand.equalsIgnoreCase("tax_set")) // tax rates
-				// control
+			// control
 			{
 				if ((player.getClanPrivileges() & L2Clan.CP_CS_TAXES) == L2Clan.CP_CS_TAXES)
 				{
 					if (!val.isEmpty())
+					{
 						getCastle().setTaxPercent(player, Integer.parseInt(val));
+					}
 					
-					final String msg = StringUtil.concat(
-							"<html><body>",
-							getName(),
-							":<br>" +
-							"Current tax rate: ",
-							String.valueOf(getCastle().getTaxPercent()),
-							"%<br>" +
-							"<table>" +
-							"<tr>" +
-							"<td>Change tax rate to:</td>" +
-							"<td><edit var=\"value\" width=40><br>" +
-							"<button value=\"Adjust\" action=\"bypass -h npc_%objectId%_tax_set $value\" width=80 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>" +
-							"</tr>" +
-							"</table>" +
-							"</center>" +
-							"</body></html>"
-					);
+					final String msg = StringUtil.concat("<html><body>", getName(), ":<br>" + "Current tax rate: ", String.valueOf(getCastle().getTaxPercent()), "%<br>" + "<table>" + "<tr>" + "<td>Change tax rate to:</td>" + "<td><edit var=\"value\" width=40><br>" + "<button value=\"Adjust\" action=\"bypass -h npc_%objectId%_tax_set $value\" width=80 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>" + "</tr>" + "</table>" + "</center>" + "</body></html>");
 					sendHtmlMessage(player, msg);
 				}
 				else
@@ -406,43 +425,61 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 				{
 					NpcHtmlMessage html = new NpcHtmlMessage(1);
 					if (getCastle().getFunction(Castle.FUNC_TELEPORT) == null)
+					{
 						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-nac.htm");
+					}
 					else
-						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/"+ getNpcId()+ "-t"
-								+ getCastle().getFunction(Castle.FUNC_TELEPORT).getLvl()+ ".htm");
+					{
+						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/" + getNpcId() + "-t" + getCastle().getFunction(Castle.FUNC_TELEPORT).getLvl() + ".htm");
+					}
 					sendHtmlMessage(player, html);
 				}
 				else if (val.equalsIgnoreCase("support"))
 				{
 					NpcHtmlMessage html = new NpcHtmlMessage(1);
 					if (getCastle().getFunction(Castle.FUNC_SUPPORT) == null)
+					{
 						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-nac.htm");
+					}
 					else
 					{
-						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support"
-								+ getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl()+ ".htm");
-						html.replace("%mp%", String.valueOf((int)getCurrentMp()));
+						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support" + getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl() + ".htm");
+						html.replace("%mp%", String.valueOf((int) getCurrentMp()));
 					}
 					sendHtmlMessage(player, html);
 				}
 				else if (val.equalsIgnoreCase("back"))
+				{
 					showChatWindow(player);
+				}
 				else
 				{
 					NpcHtmlMessage html = new NpcHtmlMessage(1);
 					html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-functions.htm");
 					if (getCastle().getFunction(Castle.FUNC_RESTORE_EXP) != null)
+					{
 						html.replace("%xp_regen%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLvl()));
+					}
 					else
+					{
 						html.replace("%xp_regen%", "0");
+					}
 					if (getCastle().getFunction(Castle.FUNC_RESTORE_HP) != null)
+					{
 						html.replace("%hp_regen%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLvl()));
+					}
 					else
+					{
 						html.replace("%hp_regen%", "0");
+					}
 					if (getCastle().getFunction(Castle.FUNC_RESTORE_MP) != null)
+					{
 						html.replace("%mp_regen%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLvl()));
+					}
 					else
+					{
 						html.replace("%mp_regen%", "0");
+					}
 					sendHtmlMessage(player, html);
 				}
 				return;
@@ -512,15 +549,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										break;
 								}
 								
-								html.replace("%cost%", String.valueOf(cost)
-										+ "</font>Adena /"
-										+ String.valueOf(Config.CS_HPREG_FEE_RATIO
-												/ 1000 / 60 / 60 / 24)
-												+ " Day</font>)");
-								html.replace("%use%", "Provides additional HP recovery for clan members in the castle.<font color=\"00FFFF\">"
-										+ String.valueOf(percent) + "%</font>");
-								html.replace("%apply%", "recovery hp "
-										+ String.valueOf(percent));
+								html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CS_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
+								html.replace("%use%", "Provides additional HP recovery for clan members in the castle.<font color=\"00FFFF\">" + String.valueOf(percent) + "%</font>");
+								html.replace("%apply%", "recovery hp " + String.valueOf(percent));
 								sendHtmlMessage(player, html);
 								return;
 							}
@@ -547,15 +578,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										cost = Config.CS_MPREG4_FEE;
 										break;
 								}
-								html.replace("%cost%", String.valueOf(cost)
-										+ "</font>Adena /"
-										+ String.valueOf(Config.CS_MPREG_FEE_RATIO
-												/ 1000 / 60 / 60 / 24)
-												+ " Day</font>)");
-								html.replace("%use%", "Provides additional MP recovery for clan members in the castle.<font color=\"00FFFF\">"
-										+ String.valueOf(percent) + "%</font>");
-								html.replace("%apply%", "recovery mp "
-										+ String.valueOf(percent));
+								html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CS_MPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
+								html.replace("%use%", "Provides additional MP recovery for clan members in the castle.<font color=\"00FFFF\">" + String.valueOf(percent) + "%</font>");
+								html.replace("%apply%", "recovery mp " + String.valueOf(percent));
 								sendHtmlMessage(player, html);
 								return;
 							}
@@ -582,15 +607,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										cost = Config.CS_EXPREG4_FEE;
 										break;
 								}
-								html.replace("%cost%", String.valueOf(cost)
-										+ "</font>Adena /"
-										+ String.valueOf(Config.CS_EXPREG_FEE_RATIO
-												/ 1000 / 60 / 60 / 24)
-												+ " Day</font>)");
-								html.replace("%use%", "Restores the Exp of any clan member who is resurrected in the castle.<font color=\"00FFFF\">"
-										+ String.valueOf(percent) + "%</font>");
-								html.replace("%apply%", "recovery exp "
-										+ String.valueOf(percent));
+								html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CS_EXPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
+								html.replace("%use%", "Restores the Exp of any clan member who is resurrected in the castle.<font color=\"00FFFF\">" + String.valueOf(percent) + "%</font>");
+								html.replace("%apply%", "recovery exp " + String.valueOf(percent));
 								sendHtmlMessage(player, html);
 								return;
 							}
@@ -600,7 +619,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 								{
 									int fee;
 									if (Config.DEBUG)
+									{
 										_log.warning("Hp editing invoked");
+									}
 									val = st.nextToken();
 									NpcHtmlMessage html = new NpcHtmlMessage(1);
 									html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-apply_confirmed.htm");
@@ -609,8 +630,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										if (getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLvl() == Integer.parseInt(val))
 										{
 											html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-used.htm");
-											html.replace("%val%", String.valueOf(val)
-													+ "%");
+											html.replace("%val%", String.valueOf(val) + "%");
 											sendHtmlMessage(player, html);
 											return;
 										}
@@ -653,7 +673,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 								{
 									int fee;
 									if (Config.DEBUG)
+									{
 										_log.warning("Mp editing invoked");
+									}
 									val = st.nextToken();
 									NpcHtmlMessage html = new NpcHtmlMessage(1);
 									html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-apply_confirmed.htm");
@@ -662,8 +684,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										if (getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLvl() == Integer.parseInt(val))
 										{
 											html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-used.htm");
-											html.replace("%val%", String.valueOf(val)
-													+ "%");
+											html.replace("%val%", String.valueOf(val) + "%");
 											sendHtmlMessage(player, html);
 											return;
 										}
@@ -703,7 +724,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 								{
 									int fee;
 									if (Config.DEBUG)
+									{
 										_log.warning("Exp editing invoked");
+									}
 									val = st.nextToken();
 									NpcHtmlMessage html = new NpcHtmlMessage(1);
 									html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-apply_confirmed.htm");
@@ -712,8 +735,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										if (getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLvl() == Integer.parseInt(val))
 										{
 											html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-used.htm");
-											html.replace("%val%", String.valueOf(val)
-													+ "%");
+											html.replace("%val%", String.valueOf(val) + "%");
 											sendHtmlMessage(player, html);
 											return;
 										}
@@ -755,16 +777,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						String mp = "[<a action=\"bypass -h npc_%objectId%_manage recovery edit_mp 5\">5%</a>][<a action=\"bypass -h npc_%objectId%_manage recovery edit_mp 15\">15%</a>][<a action=\"bypass -h npc_%objectId%_manage recovery edit_mp 30\">30%</a>][<a action=\"bypass -h npc_%objectId%_manage recovery edit_mp 40\">40%</a>]";
 						if (getCastle().getFunction(Castle.FUNC_RESTORE_HP) != null)
 						{
-							html.replace("%hp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLvl())
-									+ "%</font> (<font color=\"FFAABB\">"
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLease())
-									+ "</font>Adena /"
-									+ String.valueOf(Config.CS_HPREG_FEE_RATIO
-											/ 1000 / 60 / 60 / 24) + " Day)");
-							html.replace("%hp_period%", "Withdraw the fee for the next time at "
-									+ format.format(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getEndTime()));
-							html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]"
-									+ hp);
+							html.replace("%hp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getLease()) + "</font>Adena /" + String.valueOf(Config.CS_HPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
+							html.replace("%hp_period%", "Withdraw the fee for the next time at " + format.format(getCastle().getFunction(Castle.FUNC_RESTORE_HP).getEndTime()));
+							html.replace("%change_hp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery hp_cancel\">Deactivate</a>]" + hp);
 						}
 						else
 						{
@@ -774,16 +789,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						}
 						if (getCastle().getFunction(Castle.FUNC_RESTORE_EXP) != null)
 						{
-							html.replace("%exp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLvl())
-									+ "%</font> (<font color=\"FFAABB\">"
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLease())
-									+ "</font>Adena /"
-									+ String.valueOf(Config.CS_EXPREG_FEE_RATIO
-											/ 1000 / 60 / 60 / 24) + " Day)");
-							html.replace("%exp_period%", "Withdraw the fee for the next time at "
-									+ format.format(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getEndTime()));
-							html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]"
-									+ exp);
+							html.replace("%exp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getLease()) + "</font>Adena /" + String.valueOf(Config.CS_EXPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
+							html.replace("%exp_period%", "Withdraw the fee for the next time at " + format.format(getCastle().getFunction(Castle.FUNC_RESTORE_EXP).getEndTime()));
+							html.replace("%change_exp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery exp_cancel\">Deactivate</a>]" + exp);
 						}
 						else
 						{
@@ -793,16 +801,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						}
 						if (getCastle().getFunction(Castle.FUNC_RESTORE_MP) != null)
 						{
-							html.replace("%mp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLvl())
-									+ "%</font> (<font color=\"FFAABB\">"
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLease())
-									+ "</font>Adena /"
-									+ String.valueOf(Config.CS_MPREG_FEE_RATIO
-											/ 1000 / 60 / 60 / 24) + " Day)");
-							html.replace("%mp_period%", "Withdraw the fee for the next time at "
-									+ format.format(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getEndTime()));
-							html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]"
-									+ mp);
+							html.replace("%mp_recovery%", String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLvl()) + "%</font> (<font color=\"FFAABB\">" + String.valueOf(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getLease()) + "</font>Adena /" + String.valueOf(Config.CS_MPREG_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
+							html.replace("%mp_period%", "Withdraw the fee for the next time at " + format.format(getCastle().getFunction(Castle.FUNC_RESTORE_MP).getEndTime()));
+							html.replace("%change_mp%", "[<a action=\"bypass -h npc_%objectId%_manage recovery mp_cancel\">Deactivate</a>]" + mp);
 						}
 						else
 						{
@@ -861,14 +862,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										cost = Config.CS_SUPPORT4_FEE;
 										break;
 								}
-								html.replace("%cost%", String.valueOf(cost)
-										+ "</font>Adena /"
-										+ String.valueOf(Config.CS_SUPPORT_FEE_RATIO
-												/ 1000 / 60 / 60 / 24)
-												+ " Day</font>)");
+								html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CS_SUPPORT_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
 								html.replace("%use%", "Enables the use of supplementary magic.");
-								html.replace("%apply%", "other support "
-										+ String.valueOf(stage));
+								html.replace("%apply%", "other support " + String.valueOf(stage));
 								sendHtmlMessage(player, html);
 								return;
 							}
@@ -889,15 +885,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										cost = Config.CS_TELE2_FEE;
 										break;
 								}
-								html.replace("%cost%", String.valueOf(cost)
-										+ "</font>Adena /"
-										+ String.valueOf(Config.CS_TELE_FEE_RATIO
-												/ 1000 / 60 / 60 / 24)
-												+ " Day</font>)");
-								html.replace("%use%", "Teleports clan members in a castle to the target <font color=\"00FFFF\">Stage "
-										+ String.valueOf(stage)
-										+ "</font> staging area");
-								html.replace("%apply%", "other tele "+ String.valueOf(stage));
+								html.replace("%cost%", String.valueOf(cost) + "</font>Adena /" + String.valueOf(Config.CS_TELE_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day</font>)");
+								html.replace("%use%", "Teleports clan members in a castle to the target <font color=\"00FFFF\">Stage " + String.valueOf(stage) + "</font> staging area");
+								html.replace("%apply%", "other tele " + String.valueOf(stage));
 								sendHtmlMessage(player, html);
 								return;
 							}
@@ -907,7 +897,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 								{
 									int fee;
 									if (Config.DEBUG)
+									{
 										_log.warning("Tele editing invoked");
+									}
 									val = st.nextToken();
 									NpcHtmlMessage html = new NpcHtmlMessage(1);
 									html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-apply_confirmed.htm");
@@ -916,7 +908,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										if (getCastle().getFunction(Castle.FUNC_TELEPORT).getLvl() == Integer.parseInt(val))
 										{
 											html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-used.htm");
-											html.replace("%val%", "Stage "	+ String.valueOf(val));
+											html.replace("%val%", "Stage " + String.valueOf(val));
 											sendHtmlMessage(player, html);
 											return;
 										}
@@ -950,7 +942,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 								{
 									int fee;
 									if (Config.DEBUG)
+									{
 										_log.warning("Support editing invoked");
+									}
 									val = st.nextToken();
 									NpcHtmlMessage html = new NpcHtmlMessage(1);
 									html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-apply_confirmed.htm");
@@ -959,8 +953,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										if (getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl() == Integer.parseInt(val))
 										{
 											html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/functions-used.htm");
-											html.replace("%val%", "Stage "
-													+ String.valueOf(val));
+											html.replace("%val%", "Stage " + String.valueOf(val));
 											sendHtmlMessage(player, html);
 											return;
 										}
@@ -991,7 +984,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 										sendHtmlMessage(player, html);
 									}
 									else
+									{
 										sendHtmlMessage(player, html);
+									}
 								}
 								return;
 							}
@@ -1002,17 +997,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						String support = "[<a action=\"bypass -h npc_%objectId%_manage other edit_support 1\">Level 1</a>][<a action=\"bypass -h npc_%objectId%_manage other edit_support 2\">Level 2</a>][<a action=\"bypass -h npc_%objectId%_manage other edit_support 3\">Level 3</a>][<a action=\"bypass -h npc_%objectId%_manage other edit_support 4\">Level 4</a>]";
 						if (getCastle().getFunction(Castle.FUNC_TELEPORT) != null)
 						{
-							html.replace("%tele%", "Stage "
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_TELEPORT).getLvl())
-									+ "</font> (<font color=\"FFAABB\">"
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_TELEPORT).getLease())
-									+ "</font>Adena /"
-									+ String.valueOf(Config.CS_TELE_FEE_RATIO
-											/ 1000 / 60 / 60 / 24) + " Day)");
-							html.replace("%tele_period%", "Withdraw the fee for the next time at "
-									+ format.format(getCastle().getFunction(Castle.FUNC_TELEPORT).getEndTime()));
-							html.replace("%change_tele%", "[<a action=\"bypass -h npc_%objectId%_manage other tele_cancel\">Deactivate</a>]"
-									+ tele);
+							html.replace("%tele%", "Stage " + String.valueOf(getCastle().getFunction(Castle.FUNC_TELEPORT).getLvl()) + "</font> (<font color=\"FFAABB\">" + String.valueOf(getCastle().getFunction(Castle.FUNC_TELEPORT).getLease()) + "</font>Adena /" + String.valueOf(Config.CS_TELE_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
+							html.replace("%tele_period%", "Withdraw the fee for the next time at " + format.format(getCastle().getFunction(Castle.FUNC_TELEPORT).getEndTime()));
+							html.replace("%change_tele%", "[<a action=\"bypass -h npc_%objectId%_manage other tele_cancel\">Deactivate</a>]" + tele);
 						}
 						else
 						{
@@ -1022,17 +1009,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						}
 						if (getCastle().getFunction(Castle.FUNC_SUPPORT) != null)
 						{
-							html.replace("%support%", "Stage "
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl())
-									+ "</font> (<font color=\"FFAABB\">"
-									+ String.valueOf(getCastle().getFunction(Castle.FUNC_SUPPORT).getLease())
-									+ "</font>Adena /"
-									+ String.valueOf(Config.CS_SUPPORT_FEE_RATIO
-											/ 1000 / 60 / 60 / 24) + " Day)");
-							html.replace("%support_period%", "Withdraw the fee for the next time at "
-									+ format.format(getCastle().getFunction(Castle.FUNC_SUPPORT).getEndTime()));
-							html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]"
-									+ support);
+							html.replace("%support%", "Stage " + String.valueOf(getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl()) + "</font> (<font color=\"FFAABB\">" + String.valueOf(getCastle().getFunction(Castle.FUNC_SUPPORT).getLease()) + "</font>Adena /" + String.valueOf(Config.CS_SUPPORT_FEE_RATIO / 1000 / 60 / 60 / 24) + " Day)");
+							html.replace("%support_period%", "Withdraw the fee for the next time at " + format.format(getCastle().getFunction(Castle.FUNC_SUPPORT).getEndTime()));
+							html.replace("%change_support%", "[<a action=\"bypass -h npc_%objectId%_manage other support_cancel\">Deactivate</a>]" + support);
 						}
 						else
 						{
@@ -1043,7 +1022,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						sendHtmlMessage(player, html);
 					}
 					else if (val.equalsIgnoreCase("back"))
+					{
 						showChatWindow(player);
+					}
 					else
 					{
 						NpcHtmlMessage html = new NpcHtmlMessage(1);
@@ -1064,7 +1045,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 				setTarget(player);
 				L2Skill skill;
 				if (val.isEmpty())
+				{
 					return;
+				}
 				
 				try
 				{
@@ -1072,30 +1055,40 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 					try
 					{
 						if (getCastle().getFunction(Castle.FUNC_SUPPORT) == null)
+						{
 							return;
+						}
 						if (getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl() == 0)
+						{
 							return;
+						}
 						NpcHtmlMessage html = new NpcHtmlMessage(1);
 						int skill_lvl = 0;
 						if (st.countTokens() >= 1)
+						{
 							skill_lvl = Integer.parseInt(st.nextToken());
+						}
 						skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl);
 						if (skill.getSkillType() == L2SkillType.SUMMON)
+						{
 							player.doSimultaneousCast(skill);
+						}
 						else
 						{
-							if (!((skill.getMpConsume() + skill.getMpInitialConsume()) > this.getCurrentMp()))
+							if (!((skill.getMpConsume() + skill.getMpInitialConsume()) > getCurrentMp()))
+							{
 								this.doCast(skill);
+							}
 							else
 							{
 								html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support-no_mana.htm");
-								html.replace("%mp%", String.valueOf((int)getCurrentMp()));
+								html.replace("%mp%", String.valueOf((int) getCurrentMp()));
 								sendHtmlMessage(player, html);
 								return;
 							}
 						}
 						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support-done.htm");
-						html.replace("%mp%", String.valueOf((int)getCurrentMp()));
+						html.replace("%mp%", String.valueOf((int) getCurrentMp()));
 						sendHtmlMessage(player, html);
 					}
 					catch (Exception e)
@@ -1113,10 +1106,11 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 			{
 				NpcHtmlMessage html = new NpcHtmlMessage(1);
 				if (getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl() == 0)
+				{
 					return;
-				html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support"
-						+ getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl()	+ ".htm");
-				html.replace("%mp%", String.valueOf((int)getStatus().getCurrentMp()));
+				}
+				html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/support" + getCastle().getFunction(Castle.FUNC_SUPPORT).getLvl() + ".htm");
+				html.replace("%mp%", String.valueOf((int) getStatus().getCurrentMp()));
 				sendHtmlMessage(player, html);
 				return;
 			}
@@ -1184,18 +1178,26 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 					default:
 						break;
 				}
-				NpcHtmlMessage html = getNextSiegeTimePage(player.getHtmlPrefix(), Integer.parseInt(val),isAfternoon);
+				NpcHtmlMessage html = getNextSiegeTimePage(player.getHtmlPrefix(), Integer.parseInt(val), isAfternoon);
 				
 				if (html == null)
 				{
 					if (Config.CL_SET_SIEGE_TIME_LIST.contains("day"))
+					{
 						getCastle().getSiegeDate().set(Calendar.DAY_OF_WEEK, _preDay);
+					}
 					else
+					{
 						getCastle().getSiegeDate().set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
+					}
 					if (Config.CL_SET_SIEGE_TIME_LIST.contains("hour"))
+					{
 						getCastle().getSiegeDate().set(Calendar.HOUR_OF_DAY, _preHour);
+					}
 					if (Config.CL_SET_SIEGE_TIME_LIST.contains("minute"))
+					{
 						getCastle().getSiegeDate().set(Calendar.MINUTE, Integer.parseInt(st.nextToken()));
+					}
 					// now store the changed time and finished next Siege Time registration
 					getCastle().getSiege().endTimeRegistration(false);
 					
@@ -1209,7 +1211,9 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 			else if (actualCommand.equals("give_crown"))
 			{
 				if (siegeBlocksFunction(player))
+				{
 					return;
+				}
 				
 				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 				
@@ -1228,28 +1232,34 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						html.replace("%FeudName%", String.valueOf(getCastle().getName()));
 					}
 					else
+					{
 						html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-hascrown.htm");
+					}
 				}
 				else
+				{
 					html.setFile(player.getHtmlPrefix(), "data/html/chamberlain/chamberlain-noprivs.htm");
+				}
 				
 				player.sendPacket(html);
 				return;
 			}
 			else
+			{
 				super.onBypassFeedback(player, command);
+			}
 		}
 	}
 	
 	private NpcHtmlMessage getNextSiegeTimePage(String htmlPrefix, int now, boolean isAfternoon)
 	{
 		NpcHtmlMessage ret = new NpcHtmlMessage(1);
-		if (now == 0 && Config.CL_SET_SIEGE_TIME_LIST.contains("day"))
+		if ((now == 0) && Config.CL_SET_SIEGE_TIME_LIST.contains("day"))
 		{
 			ret.setFile(htmlPrefix, "data/html/chamberlain/siegetime4.htm");
 			return ret;
 		}
-		if (now < 3 && Config.CL_SET_SIEGE_TIME_LIST.contains("hour"))
+		if ((now < 3) && Config.CL_SET_SIEGE_TIME_LIST.contains("hour"))
 		{
 			switch (now)
 			{
@@ -1260,6 +1270,7 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 						ret.setFile(htmlPrefix, "data/html/chamberlain/siegetime5.htm");
 						return ret;
 					}
+					break;
 				case 2:
 					ret.setFile(htmlPrefix, "data/html/chamberlain/siegetime6.htm");
 					List<Integer> list;
@@ -1268,12 +1279,18 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 					
 					if (!isAfternoon)
 					{
-						if (Config.SIEGE_HOUR_LIST_AFTERNOON.isEmpty()) ampm = "AM";
+						if (Config.SIEGE_HOUR_LIST_AFTERNOON.isEmpty())
+						{
+							ampm = "AM";
+						}
 						list = Config.SIEGE_HOUR_LIST_MORNING;
 					}
 					else
 					{
-						if (Config.SIEGE_HOUR_LIST_MORNING.isEmpty()) ampm = "PM";
+						if (Config.SIEGE_HOUR_LIST_MORNING.isEmpty())
+						{
+							ampm = "PM";
+						}
 						inc = 12;
 						list = Config.SIEGE_HOUR_LIST_AFTERNOON;
 					}
@@ -1283,34 +1300,18 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 					{
 						if (hour == 0)
 						{
-							StringUtil.append(tList,
-									"<a action=\"bypass -h npc_%objectId%_siege_time_set 3 ",
-									String.valueOf(hour + inc),
-									"\">",
-									String.valueOf(hour + 12),
-									":00 ",
-									ampm,
-									"</a><br>"
-							);
+							StringUtil.append(tList, "<a action=\"bypass -h npc_%objectId%_siege_time_set 3 ", String.valueOf(hour + inc), "\">", String.valueOf(hour + 12), ":00 ", ampm, "</a><br>");
 						}
 						else
 						{
-							StringUtil.append(tList,
-									"<a action=\"bypass -h npc_%objectId%_siege_time_set 3 ",
-									String.valueOf(hour + inc),
-									"\">",
-									String.valueOf(hour),
-									":00 ",
-									ampm,
-									"</a><br>"
-							);
+							StringUtil.append(tList, "<a action=\"bypass -h npc_%objectId%_siege_time_set 3 ", String.valueOf(hour + inc), "\">", String.valueOf(hour), ":00 ", ampm, "</a><br>");
 						}
 					}
 					ret.replace("%links%", tList.toString());
 			}
 			return ret;
 		}
-		if (now < 4 && Config.CL_SET_SIEGE_TIME_LIST.contains("minute"))
+		if ((now < 4) && Config.CL_SET_SIEGE_TIME_LIST.contains("minute"))
 		{
 			ret.setFile(htmlPrefix, "data/html/chamberlain/siegetime7.htm");
 			return ret;
@@ -1338,9 +1339,13 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 		if (condition > COND_ALL_FALSE)
 		{
 			if (condition == COND_BUSY_BECAUSE_OF_SIEGE)
+			{
 				filename = "data/html/chamberlain/chamberlain-busy.htm"; // Busy because of siege
-			else if (condition == COND_OWNER) // Clan owns castle
+			}
+			else if (condition == COND_OWNER)
+			{
 				filename = "data/html/chamberlain/chamberlain.htm"; // Owner message window
+			}
 		}
 		
 		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -1353,34 +1358,42 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 	private void doTeleport(L2PcInstance player, int val)
 	{
 		if (Config.DEBUG)
+		{
 			_log.warning("doTeleport(L2PcInstance player, int val) is called");
+		}
 		L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(val);
 		if (list != null)
 		{
 			if (player.destroyItemByItemId("Teleport", list.getItemId(), list.getPrice(), this, true))
 			{
 				if (Config.DEBUG)
-					_log.warning("Teleporting player " + player.getName()
-							+ " for Castle to new location: " + list.getLocX()
-							+ ":" + list.getLocY() + ":" + list.getLocZ());
+				{
+					_log.warning("Teleporting player " + player.getName() + " for Castle to new location: " + list.getLocX() + ":" + list.getLocY() + ":" + list.getLocZ());
+				}
 				player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ());
 			}
 		}
 		else
+		{
 			_log.warning("No teleport destination with id:" + val);
+		}
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 	}
 	
 	protected int validateCondition(L2PcInstance player)
 	{
-		if (getCastle() != null && getCastle().getCastleId() > 0)
+		if ((getCastle() != null) && (getCastle().getCastleId() > 0))
 		{
 			if (player.getClan() != null)
 			{
 				if (getCastle().getZone().isActive())
+				{
 					return COND_BUSY_BECAUSE_OF_SIEGE; // Busy because of siege
-				else if (getCastle().getOwnerId() == player.getClanId()) // Clan owns castle
+				}
+				else if (getCastle().getOwnerId() == player.getClanId())
+				{
 					return COND_OWNER; // Owner
+				}
 			}
 		}
 		return COND_ALL_FALSE;

+ 13 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/communityserver/CommunityServerThread.java

@@ -35,7 +35,7 @@ import com.l2jserver.gameserver.network.communityserver.readpackets.RequestPlaye
 import com.l2jserver.gameserver.network.communityserver.readpackets.RequestWorldInfo;
 
 /**
- * @authors  Forsaiken, Gigiikun
+ * @authors Forsaiken, Gigiikun
  */
 public final class CommunityServerThread extends NetConnection
 {
@@ -111,7 +111,9 @@ public final class CommunityServerThread extends NetConnection
 	public boolean sendPacket(final BaseWritePacket packet, final boolean needAuth)
 	{
 		if (needAuth && !_authed)
+		{
 			return false;
+		}
 		
 		try
 		{
@@ -140,7 +142,7 @@ public final class CommunityServerThread extends NetConnection
 		{
 			try
 			{
-				super.sleep(10000L);
+				sleep(10000L);
 			}
 			catch (InterruptedException e)
 			{
@@ -164,7 +166,6 @@ public final class CommunityServerThread extends NetConnection
 				continue;
 			}
 			
-			
 			try
 			{
 				long gameServerConnectStart = System.currentTimeMillis();
@@ -175,7 +176,9 @@ public final class CommunityServerThread extends NetConnection
 					packetType2 = data[1] & 0xFF;
 					
 					if (Config.PACKET_HANDLER_DEBUG)
+					{
 						_log.log(Level.INFO, "Received packet: 0x" + Integer.toHexString(packetType1) + "-0x" + Integer.toHexString(packetType2));
+					}
 					
 					switch (packetType1)
 					{
@@ -186,12 +189,10 @@ public final class CommunityServerThread extends NetConnection
 								case 0x00:
 									packet = new InitCS(data, this);
 									break;
-									
 								case 0x01:
 									_log.info("Server connected in " + ((System.currentTimeMillis() - gameServerConnectStart) / 1000) + " seconds");
 									packet = new AuthResponse(data, this);
 									break;
-									
 								case 0x02:
 									packet = new ConnectionError(data);
 									break;
@@ -241,13 +242,19 @@ public final class CommunityServerThread extends NetConnection
 					}
 					
 					if (packet != null)
-						//new Thread(packet).start();
+					{
+						// new Thread(packet).start();
 						ThreadPoolManager.getInstance().executeCommunityPacket(packet);
+					}
 					else
+					{
 						throw new IOException("Invalid packet!");
+					}
 				}
 				if (isInterrupted())
+				{
 					forceClose(null);
+				}
 			}
 			catch (IOException e)
 			{

+ 16 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/skills/funcs/FuncTemplate.java

@@ -55,14 +55,17 @@ public final class FuncTemplate
 		}
 		try
 		{
-			constructor = func.getConstructor(
-					new Class[]
-					          {
-							Stats.class, // stats to update
-							Integer.TYPE, // order of execution
-							Object.class, // owner
-							Lambda.class // value for function
-					          });
+			constructor = func.getConstructor(new Class<?>[]
+			{
+				// Stats to update
+				Stats.class,
+				// Order of execution
+				Integer.TYPE,
+				// Owner
+				Object.class,
+				// Value for function
+				Lambda.class
+			});
 		}
 		catch (NoSuchMethodException e)
 		{
@@ -72,13 +75,17 @@ public final class FuncTemplate
 	
 	public Func getFunc(Env env, Object owner)
 	{
-		if (attachCond != null && !attachCond.test(env))
+		if ((attachCond != null) && !attachCond.test(env))
+		{
 			return null;
+		}
 		try
 		{
 			Func f = (Func) constructor.newInstance(stat, order, owner, lambda);
 			if (applayCond != null)
+			{
 				f.setCondition(applayCond);
+			}
 			return f;
 		}
 		catch (IllegalAccessException e)

+ 58 - 34
L2J_Server_BETA/java/com/l2jserver/gameserver/skills/l2skills/L2SkillDrain.java

@@ -36,38 +36,43 @@ import com.l2jserver.gameserver.skills.Formulas;
 import com.l2jserver.gameserver.templates.StatsSet;
 import com.l2jserver.gameserver.templates.skills.L2TargetType;
 
-
 public class L2SkillDrain extends L2Skill
 {
 	private static final Logger _logDamage = Logger.getLogger("damage");
 	
-	private float _absorbPart;
-	private int   _absorbAbs;
+	private final float _absorbPart;
+	private final int _absorbAbs;
 	
 	public L2SkillDrain(StatsSet set)
 	{
 		super(set);
 		
-		_absorbPart = set.getFloat ("absorbPart", 0.f);
-		_absorbAbs  = set.getInteger("absorbAbs", 0);
+		_absorbPart = set.getFloat("absorbPart", 0.f);
+		_absorbAbs = set.getInteger("absorbAbs", 0);
 	}
 	
 	@Override
 	public void useSkill(L2Character activeChar, L2Object[] targets)
 	{
 		if (activeChar.isAlikeDead())
+		{
 			return;
+		}
 		
 		boolean ss = false;
 		boolean bss = false;
 		
-		for(L2Character target: (L2Character[]) targets)
+		for (L2Character target : (L2Character[]) targets)
 		{
-			if (target.isAlikeDead() && getTargetType() != L2TargetType.TARGET_CORPSE_MOB)
+			if (target.isAlikeDead() && (getTargetType() != L2TargetType.TARGET_CORPSE_MOB))
+			{
 				continue;
+			}
 			
-			if (activeChar != target && target.isInvul())
+			if ((activeChar != target) && target.isInvul())
+			{
 				continue; // No effect on invulnerable chars unless they cast it themselves.
+			}
 			
 			L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
 			
@@ -87,7 +92,7 @@ public class L2SkillDrain extends L2Skill
 			// If there is no weapon equipped, check for an active summon.
 			else if (activeChar instanceof L2Summon)
 			{
-				L2Summon activeSummon = (L2Summon)activeChar;
+				L2Summon activeSummon = (L2Summon) activeChar;
 				
 				if (activeSummon.getChargedSpiritShot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
 				{
@@ -101,38 +106,45 @@ public class L2SkillDrain extends L2Skill
 				}
 			}
 			
-			
 			boolean mcrit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, this));
 			byte shld = Formulas.calcShldUse(activeChar, target, this);
-			int damage = isStaticDamage() ? (int)getPower() : (int)Formulas.calcMagicDam(activeChar, target, this, shld, ss, bss, mcrit);
+			int damage = isStaticDamage() ? (int) getPower() : (int) Formulas.calcMagicDam(activeChar, target, this, shld, ss, bss, mcrit);
 			
 			int _drain = 0;
-			int _cp = (int)target.getCurrentCp();
-			int _hp = (int)target.getCurrentHp();
+			int _cp = (int) target.getCurrentCp();
+			int _hp = (int) target.getCurrentHp();
 			
 			if (_cp > 0)
 			{
 				if (damage < _cp)
+				{
 					_drain = 0;
+				}
 				else
+				{
 					_drain = damage - _cp;
+				}
 			}
 			else if (damage > _hp)
+			{
 				_drain = _hp;
+			}
 			else
+			{
 				_drain = damage;
+			}
 			
-			double hpAdd = _absorbAbs + _absorbPart * _drain;
+			double hpAdd = _absorbAbs + (_absorbPart * _drain);
 			double hp = ((activeChar.getCurrentHp() + hpAdd) > activeChar.getMaxHp() ? activeChar.getMaxHp() : (activeChar.getCurrentHp() + hpAdd));
 			
 			activeChar.setCurrentHp(hp);
 			
 			StatusUpdate suhp = new StatusUpdate(activeChar);
-			suhp.addAttribute(StatusUpdate.CUR_HP, (int)hp);
+			suhp.addAttribute(StatusUpdate.CUR_HP, (int) hp);
 			activeChar.sendPacket(suhp);
 			
 			// Check to see if we should damage the target
-			if (damage > 0 && (!target.isDead() || getTargetType() != L2TargetType.TARGET_CORPSE_MOB))
+			if ((damage > 0) && (!target.isDead() || (getTargetType() != L2TargetType.TARGET_CORPSE_MOB)))
 			{
 				// Manage attack or cast break of the target (calculating rate, sending message...)
 				if (!target.isRaid() && Formulas.calcAtkBreak(target, damage))
@@ -143,23 +155,24 @@ public class L2SkillDrain extends L2Skill
 				
 				activeChar.sendDamageMessage(target, damage, mcrit, false, false);
 				
-				if (Config.LOG_GAME_DAMAGE
-						&& activeChar instanceof L2Playable
-						&& damage > Config.LOG_GAME_DAMAGE_THRESHOLD)
+				if (Config.LOG_GAME_DAMAGE && (activeChar instanceof L2Playable) && (damage > Config.LOG_GAME_DAMAGE_THRESHOLD))
 				{
 					LogRecord record = new LogRecord(Level.INFO, "");
-					record.setParameters(new Object[]{activeChar, " did damage ", (int)damage, this, " to ", target});
+					record.setParameters(new Object[]
+					{
+						activeChar, " did damage ", damage, this, " to ", target
+					});
 					record.setLoggerName("mdam");
 					_logDamage.log(record);
 				}
 				
-				if (hasEffects() && getTargetType() != L2TargetType.TARGET_CORPSE_MOB)
+				if (hasEffects() && (getTargetType() != L2TargetType.TARGET_CORPSE_MOB))
 				{
 					// ignoring vengance-like reflections
 					if ((Formulas.calcSkillReflect(target, this) & Formulas.SKILL_REFLECT_SUCCEED) > 0)
 					{
 						activeChar.stopSkillEffects(getId());
-						getEffects(target,activeChar);
+						getEffects(target, activeChar);
 						SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
 						sm.addSkillName(getId());
 						activeChar.sendPacket(sm);
@@ -169,7 +182,9 @@ public class L2SkillDrain extends L2Skill
 						// activate attacked effects, if any
 						target.stopSkillEffects(getId());
 						if (Formulas.calcSkillSuccess(activeChar, target, this, shld, false, ss, bss))
+						{
 							getEffects(activeChar, target);
+						}
 						else
 						{
 							SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_RESISTED_YOUR_S2);
@@ -184,54 +199,63 @@ public class L2SkillDrain extends L2Skill
 			}
 			
 			// Check to see if we should do the decay right after the cast
-			if (target.isDead() && getTargetType() == L2TargetType.TARGET_CORPSE_MOB && target instanceof L2Npc) {
-				((L2Npc)target).endDecayTask();
+			if (target.isDead() && (getTargetType() == L2TargetType.TARGET_CORPSE_MOB) && (target instanceof L2Npc))
+			{
+				((L2Npc) target).endDecayTask();
 			}
 		}
-		//effect self :]
+		// effect self :]
 		L2Effect effect = activeChar.getFirstEffect(getId());
-		if (effect != null && effect.isSelfEffect())
+		if ((effect != null) && effect.isSelfEffect())
 		{
-			//Replace old effect with new one.
+			// Replace old effect with new one.
 			effect.exit();
 		}
 		// cast self effect if any
 		getEffectsSelf(activeChar);
 	}
+	
 	public void useCubicSkill(L2CubicInstance activeCubic, L2Object[] targets)
 	{
 		if (Config.DEBUG)
+		{
 			_log.info("L2SkillDrain: useCubicSkill()");
+		}
 		
-		for(L2Character target: (L2Character[]) targets)
+		for (L2Character target : (L2Character[]) targets)
 		{
-			if (target.isAlikeDead() && getTargetType() != L2TargetType.TARGET_CORPSE_MOB)
+			if (target.isAlikeDead() && (getTargetType() != L2TargetType.TARGET_CORPSE_MOB))
+			{
 				continue;
+			}
 			
 			boolean mcrit = Formulas.calcMCrit(activeCubic.getMCriticalHit(target, this));
 			byte shld = Formulas.calcShldUse(activeCubic.getOwner(), target, this);
 			
-			int damage = (int)Formulas.calcMagicDam(activeCubic, target, this, mcrit, shld);
+			int damage = (int) Formulas.calcMagicDam(activeCubic, target, this, mcrit, shld);
 			if (Config.DEBUG)
+			{
 				_log.info("L2SkillDrain: useCubicSkill() -> damage = " + damage);
+			}
 			
-			double hpAdd = _absorbAbs + _absorbPart * damage;
+			double hpAdd = _absorbAbs + (_absorbPart * damage);
 			L2PcInstance owner = activeCubic.getOwner();
 			double hp = ((owner.getCurrentHp() + hpAdd) > owner.getMaxHp() ? owner.getMaxHp() : (owner.getCurrentHp() + hpAdd));
 			
 			owner.setCurrentHp(hp);
 			
 			StatusUpdate suhp = new StatusUpdate(owner);
-			suhp.addAttribute(StatusUpdate.CUR_HP, (int)hp);
+			suhp.addAttribute(StatusUpdate.CUR_HP, (int) hp);
 			owner.sendPacket(suhp);
 			
 			// Check to see if we should damage the target
-			if (damage > 0 && (!target.isDead() || getTargetType() != L2TargetType.TARGET_CORPSE_MOB))
+			if ((damage > 0) && (!target.isDead() || (getTargetType() != L2TargetType.TARGET_CORPSE_MOB)))
 			{
 				target.reduceCurrentHp(damage, activeCubic.getOwner(), this);
 				
 				// Manage attack or cast break of the target (calculating rate, sending message...)
-				if (!target.isRaid() && Formulas.calcAtkBreak(target, damage)){
+				if (!target.isRaid() && Formulas.calcAtkBreak(target, damage))
+				{
 					target.breakAttack();
 					target.breakCast();
 				}

+ 48 - 42
L2J_Server_BETA/java/com/l2jserver/gameserver/util/L2TIntObjectHashMap.java

@@ -24,17 +24,15 @@ import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 /**
- * Custom extension of TIntObjectHashMap that is synchronized via
- * ReentrantReadWriteLock.
- * The purpose of this map is to replace the use of FastMap<K,V>.shared() which
- * requires a lot of resources.
- * 
+ * Custom extension of TIntObjectHashMap that is synchronized via ReentrantReadWriteLock.<br>
+ * The purpose of this map is to replace the use of FastMap<K,V>.shared() which requires a lot of resources.
  * @author Nik
- * 
  * @param <V> value object.
  */
 public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 {
+	private static final long serialVersionUID = 1L;
+	
 	private final Lock _readLock;
 	private final Lock _writeLock;
 	private boolean _tempWritesLockDisable;
@@ -63,14 +61,14 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	}
 	
 	/**
-	 * Unsynchronized operation, its free from any locks. <br>
-	 * Its useful while the readLock is taken by a thread (forEach operation for
-	 * example) and you need to put
-	 * something in the map without causing a deadlock by taking the writeLock
-	 * before the readLock is unlocked.
-	 * @param key 
-	 * @param value 
-	 * @return 
+	 * Unsynchronized operation, its free from any locks.<br>
+	 * Its useful while the readLock is taken by a thread<br>
+	 * (forEach operation for example)<br>
+	 * and you need to put something in the map without causing a deadlock<br>
+	 * by taking the writeLock before the readLock is unlocked.
+	 * @param key
+	 * @param value
+	 * @return
 	 */
 	public V unsynchronizedPut(int key, V value)
 	{
@@ -81,7 +79,9 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	public V get(int key)
 	{
 		if (!_tempWritesLockDisable)
+		{
 			_readLock.lock();
+		}
 		try
 		{
 			return super.get(key);
@@ -89,7 +89,9 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 		finally
 		{
 			if (!_tempWritesLockDisable)
+			{
 				_readLock.unlock();
+			}
 		}
 	}
 	
@@ -111,7 +113,9 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	public V remove(int key)
 	{
 		if (!_tempWritesLockDisable)
+		{
 			_writeLock.lock();
+		}
 		try
 		{
 			return super.remove(key);
@@ -119,18 +123,20 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 		finally
 		{
 			if (!_tempWritesLockDisable)
+			{
 				_writeLock.unlock();
+			}
 		}
 	}
 	
 	/**
-	 * Unsynchronized operation, its free from any locks. <br>
-	 * Its useful while the readLock is taken by a thread (forEach operation for
-	 * example) and you need to remove
-	 * something in the map without causing a deadlock by taking the writeLock
-	 * before the readLock is unlocked.
-	 * @param key 
-	 * @return 
+	 * Unsynchronized operation, its free from any locks.<br>
+	 * Its useful while the readLock is taken by a thread 
+	 * (forEach operation for example)<br>
+	 * and you need to remove something in the map without causing a deadlock<br>
+	 * by taking the writeLock before the readLock is unlocked.
+	 * @param key
+	 * @return
 	 */
 	public V unsynchronizedRemove(int key)
 	{
@@ -264,13 +270,13 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	}
 	
 	/**
-	 * A safe from deadlock loop. put and remove synchronizers are disabled
-	 * while this loop is running.<br>
-	 * Keep in mind that this uses writeLock instead of readLock, and its
-	 * intended only if you are trying to
-	 * put/remove something while looping the values of this map.
-	 * @param procedure 
-	 * @return 
+	 * A safe from deadlock loop.<br>
+	 * put and remove synchronizers are disabled while this loop is running.<br>
+	 * Keep in mind that this uses writeLock instead of readLock,<br>
+	 * and its intended only if you are trying to put/remove something while looping<br>
+	 * the values of this map.
+	 * @param procedure
+	 * @return
 	 */
 	public boolean safeForEachKey(TIntProcedure procedure)
 	{
@@ -302,13 +308,13 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	}
 	
 	/**
-	 * A safe from deadlock loop. put and remove synchronizers are disabled
-	 * while this loop is running.<br>
-	 * Keep in mind that this uses writeLock instead of readLock, and its
-	 * intended only if you are trying to
-	 * put/remove something while looping the values of this map.
-	 * @param arg0 
-	 * @return 
+	 * A safe from deadlock loop.<br>
+	 * put and remove synchronizers are disabled while this loop is running.<br>
+	 * Keep in mind that this uses writeLock instead of readLock,<br>
+	 * and its intended only if you are trying to put/remove something while looping<br>
+	 * the values of this map.
+	 * @param arg0
+	 * @return
 	 */
 	public boolean safeForEachValue(TObjectProcedure<V> arg0)
 	{
@@ -340,13 +346,13 @@ public class L2TIntObjectHashMap<V extends Object> extends TIntObjectHashMap<V>
 	}
 	
 	/**
-	 * A safe from deadlock loop. put and remove synchronizers are disabled
-	 * while this loop is running.<br>
-	 * Keep in mind that this uses writeLock instead of readLock, and its
-	 * intended only if you are trying to
-	 * put/remove something while looping the values of this map.
-	 * @param arg0 
-	 * @return 
+	 * A safe from deadlock loop.<br>
+	 * put and remove synchronizers are disabled while this loop is running.<br>
+	 * Keep in mind that this uses writeLock instead of readLock,
+	 * <br>and its intended only if you are trying to put/remove something while looping<br>
+	 * the values of this map.
+	 * @param arg0
+	 * @return
 	 */
 	public boolean safeForEachEntry(TIntObjectProcedure<V> arg0)
 	{

+ 21 - 11
L2J_Server_BETA/java/com/l2jserver/log/AccountingFormatter.java

@@ -26,33 +26,35 @@ import com.l2jserver.util.StringUtil;
 public class AccountingFormatter extends Formatter
 {
 	private static final String CRLF = "\r\n";
-	private SimpleDateFormat dateFmt = new SimpleDateFormat("dd MMM H:mm:ss");
+	private final SimpleDateFormat dateFmt = new SimpleDateFormat("dd MMM H:mm:ss");
 	
 	@Override
 	public String format(LogRecord record)
 	{
 		final Object[] params = record.getParameters();
-		final StringBuilder output = StringUtil.startAppend(30
-				+ record.getMessage().length()
-				+ (params == null ? 0 : params.length * 10), "[", dateFmt.format(new Date(record.getMillis())), "] ", record.getMessage());
+		final StringBuilder output = StringUtil.startAppend(30 + record.getMessage().length() + (params == null ? 0 : params.length * 10), "[", dateFmt.format(new Date(record.getMillis())), "] ", record.getMessage());
 		
 		if (params != null)
 		{
 			for (Object p : params)
 			{
 				if (p == null)
+				{
 					continue;
+				}
 				
 				StringUtil.append(output, ", ");
 				
 				if (p instanceof L2GameClient)
 				{
-					final L2GameClient client = (L2GameClient)p;
+					final L2GameClient client = (L2GameClient) p;
 					String address = null;
 					try
 					{
 						if (!client.isDetached())
+						{
 							address = client.getConnection().getInetAddress().getHostAddress();
+						}
 					}
 					catch (Exception e)
 					{
@@ -64,14 +66,20 @@ public class AccountingFormatter extends Formatter
 							if (client.getActiveChar() != null)
 							{
 								StringUtil.append(output, client.getActiveChar().getName());
-								StringUtil.append(output, "(", String.valueOf(client.getActiveChar().getObjectId()),") ");
+								StringUtil.append(output, "(", String.valueOf(client.getActiveChar().getObjectId()), ") ");
 							}
+							break;
 						case AUTHED:
 							if (client.getAccountName() != null)
-								StringUtil.append(output, client.getAccountName()," ");
+							{
+								StringUtil.append(output, client.getAccountName(), " ");
+							}
+							break;
 						case CONNECTED:
 							if (address != null)
+							{
 								StringUtil.append(output, address);
+							}
 							break;
 						default:
 							throw new IllegalStateException("Missing state on switch");
@@ -79,16 +87,18 @@ public class AccountingFormatter extends Formatter
 				}
 				else if (p instanceof L2PcInstance)
 				{
-					L2PcInstance player = (L2PcInstance)p;
+					L2PcInstance player = (L2PcInstance) p;
 					StringUtil.append(output, player.getName());
-					StringUtil.append(output, "(", String.valueOf(player.getObjectId()),")");
+					StringUtil.append(output, "(", String.valueOf(player.getObjectId()), ")");
 				}
 				else
+				{
 					StringUtil.append(output, p.toString());
+				}
 			}
 		}
-
+		
 		output.append(CRLF);
 		return output.toString();
 	}
-}
+}