Apply Clan Advent for elite clan members.

This commit is contained in:
MobiusDevelopment 2019-10-31 10:03:20 +00:00
parent aea88003f3
commit f3c2689d58
2 changed files with 130 additions and 26 deletions

View File

@ -21,6 +21,7 @@ import java.util.Map;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.ClanMember;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
@ -95,7 +96,7 @@ public class ClanMaster extends AbstractNpcAI
public void onPlayerLogin(OnPlayerLogin event)
{
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader())
if (player.isClanLeader() || (player.getPledgeType() == 100))
{
player.getClan().getMembers().forEach(member ->
{
@ -105,9 +106,23 @@ public class ClanMaster extends AbstractNpcAI
}
});
}
else if ((player.getClan() != null) && player.getClan().getLeader().isOnline())
else if (player.getClan() != null)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
if (player.getClan().getLeader().isOnline())
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
}
@ -118,17 +133,29 @@ public class ClanMaster extends AbstractNpcAI
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader())
{
player.getClan().getMembers().forEach(member ->
boolean removing = true;
for (ClanMember member : player.getClan().getMembers())
{
if (member.isOnline())
if (member.getPledgeType() == 100)
{
member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
removing = false;
break;
}
});
}
if (player.getClan() != null)
{
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
}
if (removing)
{
player.getClan().getMembers().forEach(member ->
{
if (member.isOnline())
{
member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getSkill());
}
});
if (player.getClan() != null)
{
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getSkill());
}
}
}
}
@ -137,9 +164,23 @@ public class ClanMaster extends AbstractNpcAI
public void onProfessionChange(OnPlayerProfessionChange event)
{
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader() || ((player.getClan() != null) && player.getClan().getLeader().isOnline()))
if (player.isClanLeader() || (player.getClan() != null))
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
if (player.getClan().getLeader().isOnline())
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
}
@ -152,6 +193,17 @@ public class ClanMaster extends AbstractNpcAI
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
@RegisterEvent(EventType.ON_PLAYER_CLAN_LEFT)

View File

@ -21,6 +21,7 @@ import java.util.Map;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.ClanMember;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
@ -95,7 +96,7 @@ public class ClanMaster extends AbstractNpcAI
public void onPlayerLogin(OnPlayerLogin event)
{
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader())
if (player.isClanLeader() || (player.getPledgeType() == 100))
{
player.getClan().getMembers().forEach(member ->
{
@ -105,9 +106,23 @@ public class ClanMaster extends AbstractNpcAI
}
});
}
else if ((player.getClan() != null) && player.getClan().getLeader().isOnline())
else if (player.getClan() != null)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
if (player.getClan().getLeader().isOnline())
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
}
@ -118,17 +133,29 @@ public class ClanMaster extends AbstractNpcAI
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader())
{
player.getClan().getMembers().forEach(member ->
boolean removing = true;
for (ClanMember member : player.getClan().getMembers())
{
if (member.isOnline())
if (member.getPledgeType() == 100)
{
member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
removing = false;
break;
}
});
}
if (player.getClan() != null)
{
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
}
if (removing)
{
player.getClan().getMembers().forEach(member ->
{
if (member.isOnline())
{
member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getSkill());
}
});
if (player.getClan() != null)
{
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getSkill());
}
}
}
}
@ -137,9 +164,23 @@ public class ClanMaster extends AbstractNpcAI
public void onProfessionChange(OnPlayerProfessionChange event)
{
final PlayerInstance player = event.getPlayer();
if (player.isClanLeader() || ((player.getClan() != null) && player.getClan().getLeader().isOnline()))
if (player.isClanLeader() || (player.getClan() != null))
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
if (player.getClan().getLeader().isOnline())
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
}
@ -152,6 +193,17 @@ public class ClanMaster extends AbstractNpcAI
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
}
else
{
for (ClanMember member : player.getClan().getMembers())
{
if (member.getPledgeType() == 100)
{
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
break;
}
}
}
}
@RegisterEvent(EventType.ON_PLAYER_CLAN_LEFT)