Selaa lähdekoodia

BETA: Reworked team to use enum instead of int.

Reviewed by: !UnAfraid
Nos 11 vuotta sitten
vanhempi
sitoutus
bea6b7035f

+ 42 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/enums/Team.java

@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.enums;
+
+
+/**
+ * @author Nos
+ */
+public enum Team
+{
+	NONE(0),
+	BLUE(1),
+	RED(2);
+	
+	private int _id;
+	
+	private Team(int id)
+	{
+		_id = id;
+	}
+	
+	public int getId()
+	{
+		return _id;
+	}
+}

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/HandysBlockCheckerManager.java

@@ -25,6 +25,7 @@ import java.util.Map;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.tasks.PenaltyRemoveTask;
 import com.l2jserver.gameserver.model.ArenaParticipantsHolder;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -336,11 +337,11 @@ public final class HandysBlockCheckerManager
 		int arena = player.getBlockCheckerArena();
 		int team = getHolder(arena).getPlayerTeam(player);
 		HandysBlockCheckerManager.getInstance().removePlayer(player, arena, team);
-		if (player.getTeam() > 0)
+		if (player.getTeam() != Team.NONE)
 		{
 			player.stopAllEffects();
 			// Remove team aura
-			player.setTeam(0);
+			player.setTeam(Team.NONE);
 			
 			// Remove the event items
 			PcInventory inv = player.getInventory();

+ 5 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -51,6 +51,7 @@ import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.QuestEventType;
 import com.l2jserver.gameserver.enums.ShotType;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.ISkillHandler;
 import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
@@ -213,7 +214,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	
 	private final ReentrantLock _teleportLock;
 	
-	private int _team;
+	private Team _team = Team.NONE;
 	
 	protected long _exceptions = 0L;
 	
@@ -6735,17 +6736,14 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		broadcastPacket(new SocialAction(getObjectId(), id));
 	}
 	
-	public int getTeam()
+	public Team getTeam()
 	{
 		return _team;
 	}
 	
-	public void setTeam(int id)
+	public void setTeam(Team team)
 	{
-		if ((id >= 0) && (id <= 2))
-		{
-			_team = id;
-		}
+		_team = team;
 	}
 	
 	public void addOverrideCond(PcCondOverride... excs)

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -39,6 +39,7 @@ import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.QuestEventType;
 import com.l2jserver.gameserver.enums.ShotType;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.BypassHandler;
 import com.l2jserver.gameserver.handler.IBypassHandler;
 import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
@@ -1777,9 +1778,9 @@ public class L2Npc extends L2Character
 	}
 	
 	@Override
-	public void setTeam(int id)
+	public void setTeam(Team team)
 	{
-		super.setTeam(id);
+		super.setTeam(team);
 		for (L2PcInstance player : getKnownList().getKnownPlayers().values())
 		{
 			player.sendPacket(new AbstractNpcInfo.NpcInfo(this, player));
@@ -1953,12 +1954,12 @@ public class L2Npc extends L2Character
 	/**
 	 * Gets point in range between radiusMin and radiusMax from this NPC
 	 * @param radiusMin miminal range from NPC (not closer than)
-	 * @param radiusMax maximal range from NPC (not further than)	 
-	 * @return Location in given range from this NPC 
+	 * @param radiusMax maximal range from NPC (not further than)
+	 * @return Location in given range from this NPC
 	 */
 	public Location getPointInRange(int radiusMin, int radiusMax)
 	{
-		if((radiusMax == 0) || (radiusMax < radiusMin))
+		if ((radiusMax == 0) || (radiusMax < radiusMin))
 		{
 			return new Location(getX(), getY(), getZ());
 		}
@@ -1966,7 +1967,7 @@ public class L2Npc extends L2Character
 		final int radius = Rnd.get(radiusMin, radiusMax);
 		final double angle = Rnd.nextDouble() * 2 * Math.PI;
 		
-		return new Location((int) (getX() + radius * Math.cos(angle)), (int) (getY() + radius * Math.sin(angle)), getZ());
+		return new Location((int) (getX() + (radius * Math.cos(angle))), (int) (getY() + (radius * Math.sin(angle))), getZ());
 	}
 	
 	@Override

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java

@@ -29,6 +29,7 @@ import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.ShotType;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
@@ -285,9 +286,9 @@ public abstract class L2Summon extends L2Playable
 	}
 	
 	@Override
-	public final int getTeam()
+	public final Team getTeam()
 	{
-		return getOwner() != null ? getOwner().getTeam() : 0;
+		return getOwner() != null ? getOwner().getTeam() : Team.NONE;
 	}
 	
 	public final L2PcInstance getOwner()

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

@@ -96,6 +96,7 @@ import com.l2jserver.gameserver.enums.PcRace;
 import com.l2jserver.gameserver.enums.QuestEventType;
 import com.l2jserver.gameserver.enums.Sex;
 import com.l2jserver.gameserver.enums.ShotType;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
 import com.l2jserver.gameserver.idfactory.IdFactory;
@@ -10291,7 +10292,7 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	@Override
-	public void setTeam(int team)
+	public void setTeam(Team team)
 	{
 		super.setTeam(team);
 		broadcastUserInfo();

+ 4 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/BlockCheckerEngine.java

@@ -31,6 +31,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.NpcTable;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.HandysBlockCheckerManager;
 import com.l2jserver.gameserver.model.ArenaParticipantsHolder;
 import com.l2jserver.gameserver.model.L2Spawn;
@@ -379,12 +380,12 @@ public final class BlockCheckerEngine
 				if (isRed)
 				{
 					_redTeamPoints.put(player, 0);
-					player.setTeam(2);
+					player.setTeam(Team.RED);
 				}
 				else
 				{
 					_blueTeamPoints.put(player, 0);
-					player.setTeam(1);
+					player.setTeam(Team.BLUE);
 				}
 				player.stopAllEffects();
 				
@@ -745,7 +746,7 @@ public final class BlockCheckerEngine
 				
 				player.stopAllEffects();
 				// Remove team aura
-				player.setTeam(0);
+				player.setTeam(Team.NONE);
 				// Set default arena
 				player.setBlockCheckerArena(DEFAULT_ARENA);
 				// Remove the event items

+ 9 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Duel.java

@@ -28,6 +28,7 @@ import javolution.util.FastList;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.enums.DuelResult;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.DuelManager;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -373,7 +374,7 @@ public class Duel
 			{
 				temp.cancelActiveTrade();
 				temp.setIsInDuel(_duelId);
-				temp.setTeam(1);
+				temp.setTeam(Team.BLUE);
 				temp.broadcastUserInfo();
 				broadcastToTeam2(new ExDuelUpdateUserInfo(temp));
 			}
@@ -381,7 +382,7 @@ public class Duel
 			{
 				temp.cancelActiveTrade();
 				temp.setIsInDuel(_duelId);
-				temp.setTeam(2);
+				temp.setTeam(Team.RED);
 				temp.broadcastUserInfo();
 				broadcastToTeam1(new ExDuelUpdateUserInfo(temp));
 			}
@@ -399,9 +400,9 @@ public class Duel
 		{
 			// set isInDuel() state
 			_playerA.setIsInDuel(_duelId);
-			_playerA.setTeam(1);
+			_playerA.setTeam(Team.BLUE);
 			_playerB.setIsInDuel(_duelId);
-			_playerB.setTeam(2);
+			_playerB.setTeam(Team.RED);
 			
 			// Send duel Start packets
 			ExDuelReady ready = new ExDuelReady(0);
@@ -463,23 +464,23 @@ public class Duel
 			for (L2PcInstance temp : _playerA.getParty().getMembers())
 			{
 				temp.setIsInDuel(0);
-				temp.setTeam(0);
+				temp.setTeam(Team.NONE);
 				temp.broadcastUserInfo();
 			}
 			for (L2PcInstance temp : _playerB.getParty().getMembers())
 			{
 				temp.setIsInDuel(0);
-				temp.setTeam(0);
+				temp.setTeam(Team.NONE);
 				temp.broadcastUserInfo();
 			}
 		}
 		else
 		{
 			_playerA.setIsInDuel(0);
-			_playerA.setTeam(0);
+			_playerA.setTeam(Team.NONE);
 			_playerA.broadcastUserInfo();
 			_playerB.setIsInDuel(0);
-			_playerB.setTeam(0);
+			_playerB.setTeam(Team.NONE);
 			_playerB.broadcastUserInfo();
 		}
 		

+ 16 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/TvTEventTeleporter.java

@@ -20,6 +20,7 @@ package com.l2jserver.gameserver.model.entity;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.util.Rnd;
@@ -74,7 +75,7 @@ public class TvTEventTeleporter implements Runnable
 			summon.unSummon(_playerInstance);
 		}
 		
-		if ((Config.TVT_EVENT_EFFECTS_REMOVAL == 0) || ((Config.TVT_EVENT_EFFECTS_REMOVAL == 1) && ((_playerInstance.getTeam() == 0) || (_playerInstance.isInDuel() && (_playerInstance.getDuelState() != Duel.DUELSTATE_INTERRUPTED)))))
+		if ((Config.TVT_EVENT_EFFECTS_REMOVAL == 0) || ((Config.TVT_EVENT_EFFECTS_REMOVAL == 1) && ((_playerInstance.getTeam() == Team.NONE) || (_playerInstance.isInDuel() && (_playerInstance.getDuelState() != Duel.DUELSTATE_INTERRUPTED)))))
 		{
 			_playerInstance.stopAllEffectsExceptThoseThatLastThroughDeath();
 		}
@@ -107,11 +108,23 @@ public class TvTEventTeleporter implements Runnable
 		
 		if (TvTEvent.isStarted() && !_adminRemove)
 		{
-			_playerInstance.setTeam(TvTEvent.getParticipantTeamId(_playerInstance.getObjectId()) + 1);
+			int teamId = TvTEvent.getParticipantTeamId(_playerInstance.getObjectId()) + 1;
+			switch (teamId)
+			{
+				case 0:
+					_playerInstance.setTeam(Team.NONE);
+					break;
+				case 1:
+					_playerInstance.setTeam(Team.BLUE);
+					break;
+				case 2:
+					_playerInstance.setTeam(Team.RED);
+					break;
+			}
 		}
 		else
 		{
-			_playerInstance.setTeam(0);
+			_playerInstance.setTeam(Team.NONE);
 		}
 		
 		_playerInstance.setCurrentCp(_playerInstance.getMaxCp());

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/AbstractNpcInfo.java

@@ -189,7 +189,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(_allyCrest); // all crest
 			
 			writeC(_npc.isFlying() ? 2 : 0); // C2
-			writeC(_npc.getTeam()); // team color 0=none, 1 = blue, 2 = red
+			writeC(_npc.getTeam().getId());
 			
 			writeF(_collisionRadius);
 			writeF(_collisionHeight);
@@ -276,7 +276,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(0000); // C2
 			writeC(0000); // C2
 			
-			writeC(_trap.getTeam()); // team color 0=none, 1 = blue, 2 = red
+			writeC(_trap.getTeam().getId());
 			
 			writeF(_collisionRadius);
 			writeF(_collisionHeight);
@@ -417,7 +417,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(0x00); // C2
 			writeC(0x00); // C2
 			
-			writeC(_summon.getTeam()); // team color 0=none, 1 = blue, 2 = red
+			writeC(_summon.getTeam().getId());
 			
 			writeF(_collisionRadius);
 			writeF(_collisionHeight);

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java

@@ -180,7 +180,7 @@ public class CharInfo extends L2GameServerPacket
 			writeD(_activeChar.getAllyCrestId()); // all crest
 			
 			writeC(_activeChar.isFlying() ? 2 : 0); // is Flying
-			writeC(_activeChar.getTeam()); // C3 team circle 1-blue, 2-red
+			writeC(_activeChar.getTeam().getId());
 			
 			writeF(template.getfCollisionRadius());
 			writeF(template.getfCollisionHeight());
@@ -294,7 +294,7 @@ public class CharInfo extends L2GameServerPacket
 			writeD(0x00); // ?
 			writeC(_activeChar.isMounted() ? 0 : _activeChar.getEnchantEffect());
 			
-			writeC(_activeChar.getTeam()); // team circle around feet 1= Blue, 2 = red
+			writeC(_activeChar.getTeam().getId());
 			
 			writeD(_activeChar.getClanCrestLargeId());
 			writeC(_activeChar.isNoble() ? 1 : 0); // Symbol on char menu ctrl+I

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/PetInfo.java

@@ -164,7 +164,7 @@ public class PetInfo extends L2GameServerPacket
 		
 		// Following all added in C4.
 		writeH(0); // ??
-		writeC(_summon.getTeam()); // team aura (1 = blue, 2 = red)
+		writeC(_summon.getTeam().getId());
 		writeD(_summon.getSoulShotsPerHit()); // How many soulshots this servitor uses per hit
 		writeD(_summon.getSpiritShotsPerHit()); // How many spiritshots this servitor uses per hit
 		

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java

@@ -224,7 +224,7 @@ public final class UserInfo extends L2GameServerPacket
 		writeD((int) _activeChar.getCurrentCp());
 		writeC(_activeChar.isMounted() || (_airShipHelm != 0) ? 0 : _activeChar.getEnchantEffect());
 		
-		writeC(_activeChar.getTeam()); // team circle around feet 1= Blue, 2 = red
+		writeC(_activeChar.getTeam().getId());
 		
 		writeD(_activeChar.getClanCrestLargeId());
 		writeC(_activeChar.isNoble() ? 1 : 0); // 0x01: symbol on char menu ctrl+I