Proper clan level check for ClanMaster.

This commit is contained in:
MobiusDevelopment
2020-01-25 12:18:45 +00:00
parent 07ba96cc0e
commit 42e7b2382c

View File

@@ -21,6 +21,7 @@ import java.util.Map;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.clan.ClanMember; import org.l2jmobius.gameserver.model.clan.ClanMember;
import org.l2jmobius.gameserver.model.events.EventType; import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType; import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
@@ -32,6 +33,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange; import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.Skill;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
@@ -114,19 +116,21 @@ public class ClanMaster extends AbstractNpcAI
final PlayerInstance player = event.getPlayer(); final PlayerInstance player = event.getPlayer();
if (player.isClanLeader() || (player.getPledgeType() == 100)) if (player.isClanLeader() || (player.getPledgeType() == 100))
{ {
final Skill advent = getAdventSkill(player.getClan());
player.getClan().getMembers().forEach(member -> player.getClan().getMembers().forEach(member ->
{ {
if (member.isOnline()) if (member.isOnline())
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance()); advent.applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
} }
}); });
} }
else if (player.getClan() != null) else if (player.getClan() != null)
{ {
final Skill advent = getAdventSkill(player.getClan());
if (player.getClan().getLeader().isOnline()) if (player.getClan().getLeader().isOnline())
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
} }
else else
{ {
@@ -134,7 +138,7 @@ public class ClanMaster extends AbstractNpcAI
{ {
if (member.getPledgeType() == 100) if (member.getPledgeType() == 100)
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
break; break;
} }
} }
@@ -160,17 +164,15 @@ public class ClanMaster extends AbstractNpcAI
} }
if (removing) if (removing)
{ {
final Skill advent = getAdventSkill(player.getClan());
player.getEffectList().stopSkillEffects(true, advent);
player.getClan().getMembers().forEach(member -> player.getClan().getMembers().forEach(member ->
{ {
if (member.isOnline()) if (member.isOnline())
{ {
member.getPlayerInstance().getEffectList().stopSkillEffects(true, ADVENTS[member.getClan().getLevel() - 1].getSkill()); member.getPlayerInstance().getEffectList().stopSkillEffects(true, advent);
} }
}); });
if (player.getClan() != null)
{
player.getEffectList().stopSkillEffects(true, ADVENTS[player.getClan().getLevel() - 1].getSkill());
}
} }
} }
} }
@@ -182,9 +184,10 @@ public class ClanMaster extends AbstractNpcAI
final PlayerInstance player = event.getPlayer(); final PlayerInstance player = event.getPlayer();
if (player.isClanLeader() || (player.getClan() != null)) if (player.isClanLeader() || (player.getClan() != null))
{ {
final Skill advent = getAdventSkill(player.getClan());
if (player.getClan().getLeader().isOnline()) if (player.getClan().getLeader().isOnline())
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
} }
else else
{ {
@@ -192,7 +195,7 @@ public class ClanMaster extends AbstractNpcAI
{ {
if (member.getPledgeType() == 100) if (member.getPledgeType() == 100)
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
break; break;
} }
} }
@@ -205,9 +208,10 @@ public class ClanMaster extends AbstractNpcAI
public void onPlayerClanJoin(OnPlayerClanJoin event) public void onPlayerClanJoin(OnPlayerClanJoin event)
{ {
final PlayerInstance player = event.getClanMember().getPlayerInstance(); final PlayerInstance player = event.getClanMember().getPlayerInstance();
final Skill advent = getAdventSkill(player.getClan());
if (player.getClan().getLeader().isOnline()) if (player.getClan().getLeader().isOnline())
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
} }
else else
{ {
@@ -215,7 +219,7 @@ public class ClanMaster extends AbstractNpcAI
{ {
if (member.getPledgeType() == 100) if (member.getPledgeType() == 100)
{ {
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player); advent.applyEffects(player, player);
break; break;
} }
} }
@@ -226,7 +230,12 @@ public class ClanMaster extends AbstractNpcAI
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS) @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerClanLeft(OnPlayerClanLeft event) public void onPlayerClanLeft(OnPlayerClanLeft event)
{ {
event.getClanMember().getPlayerInstance().getEffectList().stopSkillEffects(true, ADVENTS[event.getClan().getLevel() - 1].getSkill()); event.getClanMember().getPlayerInstance().getEffectList().stopSkillEffects(true, getAdventSkill(event.getClan()));
}
private Skill getAdventSkill(Clan clan)
{
return ADVENTS[Math.max(Math.min(clan.getLevel() - 1, ADVENTS.length - 1), 0)].getSkill();
} }
public static void main(String[] args) public static void main(String[] args)