Advertisement
Guest User

ClanMaster

a guest
Sep 25th, 2019
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.12 KB | None | 0 0
  1. /*
  2.  * This file is part of the L2J Mobius project.
  3.  *
  4.  * This program is free software: you can redistribute it and/or modify
  5.  * it under the terms of the GNU General Public License as published by
  6.  * the Free Software Foundation, either version 3 of the License, or
  7.  * (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12.  * General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16.  */
  17. package village_master.ClanMaster;
  18.  
  19. import java.util.HashMap;
  20. import java.util.Map;
  21.  
  22. import org.l2jmobius.gameserver.model.actor.Npc;
  23. import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
  24. import org.l2jmobius.gameserver.model.events.EventType;
  25. import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
  26. import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
  27. import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
  28. import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanJoin;
  29. import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanLeft;
  30. import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
  31. import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout;
  32. import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange;
  33. import org.l2jmobius.gameserver.model.skills.CommonSkill;
  34.  
  35. import ai.AbstractNpcAI;
  36.  
  37. /**
  38.  * @author UnAfraid
  39.  */
  40. public final class ClanMaster extends AbstractNpcAI
  41. {
  42.     // @formatter:off
  43.     private static final int[] NPCS =
  44.     {
  45.         30026,30031,30037,30066,30070,30109,30115,30120,30154,30174,
  46.         30175,30176,30187,30191,30195,30288,30289,30290,30297,30358,
  47.         30373,30462,30474,30498,30499,30500,30503,30504,30505,30508,
  48.         30511,30512,30513,30520,30525,30565,30594,30595,30676,30677,
  49.         30681,30685,30687,30689,30694,30699,30704,30845,30847,30849,
  50.         30854,30857,30862,30865,30894,30897,30900,30905,30910,30913,
  51.         31269,31272,31276,31279,31285,31288,31314,31317,31321,31324,
  52.         31326,31328,31331,31334,31336,31755,31958,31961,31965,31968,
  53.         31974,31977,31996,32092,32093,32094,32095,32096,32097,32098,
  54.         32145,32146,32147,32150,32153,32154,32157,32158,32160,32171,
  55.         32193,32196,32199,32202,32205,32206,32209,32210,32213,32214,
  56.         32217,32218,32221,32222,32225,32226,32229,32230,32233,32234
  57.     };
  58.     // @formatter:on
  59.     private static final Map<String, String> LEADER_REQUIRED = new HashMap<>();
  60.     static
  61.     {
  62.         LEADER_REQUIRED.put("9000-03.htm", "9000-03-no.htm");
  63.         LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm");
  64.         LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm");
  65.         LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm");
  66.     }
  67.    
  68.     private ClanMaster()
  69.     {
  70.         addStartNpc(NPCS);
  71.         addTalkId(NPCS);
  72.     }
  73.    
  74.     @Override
  75.     public String onAdvEvent(String event, Npc npc, PlayerInstance player)
  76.     {
  77.         if (LEADER_REQUIRED.containsKey(event))
  78.         {
  79.             if (!player.isClanLeader())
  80.             {
  81.                 return LEADER_REQUIRED.get(event);
  82.             }
  83.         }
  84.         return event;
  85.     }
  86.    
  87.     @Override
  88.     public String onTalk(Npc npc, PlayerInstance talker)
  89.     {
  90.         return "9000-01.htm";
  91.     }
  92.    
  93.     @RegisterEvent(EventType.ON_PLAYER_LOGIN)
  94.     @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
  95.     public void onPlayerLogin(OnPlayerLogin event)
  96.     {
  97.         final PlayerInstance player = event.getPlayer();
  98.         if (player.isClanLeader() || (player.getPledgeType() == 100))
  99.         {
  100.             player.getClan().getMembers().forEach(member ->
  101.             {
  102.                 if (member.isOnline())
  103.                 {
  104.                     switch (player.getClan().getLevel())
  105.                     {
  106.                         case 1:
  107.                             CommonSkill.CLAN_ADVENT1.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  108.                             break;
  109.                         case 2:
  110.                             CommonSkill.CLAN_ADVENT2.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  111.                             break;
  112.                         case 3:
  113.                             CommonSkill.CLAN_ADVENT3.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  114.                             break;
  115.                         case 4:
  116.                             CommonSkill.CLAN_ADVENT4.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  117.                             break;
  118.                         case 5:
  119.                             CommonSkill.CLAN_ADVENT5.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  120.                             break;
  121.                         case 6:
  122.                             CommonSkill.CLAN_ADVENT6.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  123.                             break;
  124.                         case 7:
  125.                             CommonSkill.CLAN_ADVENT7.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  126.                             break;
  127.                         case 8:
  128.                             CommonSkill.CLAN_ADVENT8.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  129.                             break;
  130.                         case 9:
  131.                             CommonSkill.CLAN_ADVENT9.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  132.                             break;
  133.                         case 10:
  134.                             CommonSkill.CLAN_ADVENT10.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  135.                             break;
  136.                         case 11:
  137.                             CommonSkill.CLAN_ADVENT11.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  138.                             break;
  139.                         case 12:
  140.                             CommonSkill.CLAN_ADVENT12.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  141.                             break;
  142.                         case 13:
  143.                             CommonSkill.CLAN_ADVENT13.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  144.                             break;
  145.                         case 14:
  146.                             CommonSkill.CLAN_ADVENT14.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  147.                             break;
  148.                         case 15:
  149.                             CommonSkill.CLAN_ADVENT15.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
  150.                             break;
  151.                     }
  152.                 }
  153.             });
  154.         }
  155.         else if ((player.getClan() != null) && player.getClan().getLeader().isOnline())
  156.         {
  157.             switch (player.getClan().getLevel())
  158.             {
  159.                 case 1:
  160.                     CommonSkill.CLAN_ADVENT1.getSkill().applyEffects(player, player);
  161.                     break;
  162.                 case 2:
  163.                     CommonSkill.CLAN_ADVENT2.getSkill().applyEffects(player, player);
  164.                     break;
  165.                 case 3:
  166.                     CommonSkill.CLAN_ADVENT3.getSkill().applyEffects(player, player);
  167.                     break;
  168.                 case 4:
  169.                     CommonSkill.CLAN_ADVENT4.getSkill().applyEffects(player, player);
  170.                     break;
  171.                 case 5:
  172.                     CommonSkill.CLAN_ADVENT5.getSkill().applyEffects(player, player);
  173.                     break;
  174.                 case 6:
  175.                     CommonSkill.CLAN_ADVENT6.getSkill().applyEffects(player, player);
  176.                     break;
  177.                 case 7:
  178.                     CommonSkill.CLAN_ADVENT7.getSkill().applyEffects(player, player);
  179.                     break;
  180.                 case 8:
  181.                     CommonSkill.CLAN_ADVENT8.getSkill().applyEffects(player, player);
  182.                     break;
  183.                 case 9:
  184.                     CommonSkill.CLAN_ADVENT9.getSkill().applyEffects(player, player);
  185.                     break;
  186.                 case 10:
  187.                     CommonSkill.CLAN_ADVENT10.getSkill().applyEffects(player, player);
  188.                     break;
  189.                 case 11:
  190.                     CommonSkill.CLAN_ADVENT11.getSkill().applyEffects(player, player);
  191.                     break;
  192.                 case 12:
  193.                     CommonSkill.CLAN_ADVENT12.getSkill().applyEffects(player, player);
  194.                     break;
  195.                 case 13:
  196.                     CommonSkill.CLAN_ADVENT13.getSkill().applyEffects(player, player);
  197.                     break;
  198.                 case 14:
  199.                     CommonSkill.CLAN_ADVENT14.getSkill().applyEffects(player, player);
  200.                     break;
  201.                 case 15:
  202.                     CommonSkill.CLAN_ADVENT15.getSkill().applyEffects(player, player);
  203.                     break;
  204.             }
  205.         }
  206.     }
  207.    
  208.     @RegisterEvent(EventType.ON_PLAYER_LOGOUT)
  209.     @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
  210.     public void onPlayerLogout(OnPlayerLogout event)
  211.     {
  212.         final PlayerInstance player = event.getPlayer();
  213.         if (player.isClanLeader())
  214.         {
  215.             player.getClan().getMembers().forEach(member ->
  216.             {
  217.                 if (member.isOnline() && (member.getPledgeType() != 100))
  218.                 {
  219.                     member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT1.getId());
  220.                 }
  221.             });
  222.         }
  223.         if (player.getClan() != null)
  224.         {
  225.             player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT1.getId());
  226.         }
  227.     }
  228.    
  229.     @RegisterEvent(EventType.ON_PLAYER_PROFESSION_CHANGE)
  230.     @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
  231.     public void onProfessionChange(OnPlayerProfessionChange event)
  232.     {
  233.         final PlayerInstance player = event.getPlayer();
  234.         if (player.isClanLeader() || (player.getPledgeType() == 100) || ((player.getClan() != null) && player.getClan().getLeader().isOnline()))
  235.         {
  236.             switch (player.getClan().getLevel())
  237.             {
  238.                 case 1:
  239.                     CommonSkill.CLAN_ADVENT1.getSkill().applyEffects(player, player);
  240.                     break;
  241.                 case 2:
  242.                     CommonSkill.CLAN_ADVENT2.getSkill().applyEffects(player, player);
  243.                     break;
  244.                 case 3:
  245.                     CommonSkill.CLAN_ADVENT3.getSkill().applyEffects(player, player);
  246.                     break;
  247.                 case 4:
  248.                     CommonSkill.CLAN_ADVENT4.getSkill().applyEffects(player, player);
  249.                     break;
  250.                 case 5:
  251.                     CommonSkill.CLAN_ADVENT5.getSkill().applyEffects(player, player);
  252.                     break;
  253.                 case 6:
  254.                     CommonSkill.CLAN_ADVENT6.getSkill().applyEffects(player, player);
  255.                     break;
  256.                 case 7:
  257.                     CommonSkill.CLAN_ADVENT7.getSkill().applyEffects(player, player);
  258.                     break;
  259.                 case 8:
  260.                     CommonSkill.CLAN_ADVENT8.getSkill().applyEffects(player, player);
  261.                     break;
  262.                 case 9:
  263.                     CommonSkill.CLAN_ADVENT9.getSkill().applyEffects(player, player);
  264.                     break;
  265.                 case 10:
  266.                     CommonSkill.CLAN_ADVENT10.getSkill().applyEffects(player, player);
  267.                     break;
  268.                 case 11:
  269.                     CommonSkill.CLAN_ADVENT11.getSkill().applyEffects(player, player);
  270.                     break;
  271.                 case 12:
  272.                     CommonSkill.CLAN_ADVENT12.getSkill().applyEffects(player, player);
  273.                     break;
  274.                 case 13:
  275.                     CommonSkill.CLAN_ADVENT13.getSkill().applyEffects(player, player);
  276.                     break;
  277.                 case 14:
  278.                     CommonSkill.CLAN_ADVENT14.getSkill().applyEffects(player, player);
  279.                     break;
  280.                 case 15:
  281.                     CommonSkill.CLAN_ADVENT15.getSkill().applyEffects(player, player);
  282.                     break;
  283.             }
  284.         }
  285.     }
  286.    
  287.     @RegisterEvent(EventType.ON_PLAYER_CLAN_JOIN)
  288.     @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
  289.     public void onPlayerClanJoin(OnPlayerClanJoin event)
  290.     {
  291.         final PlayerInstance player = event.getClanMember().getPlayerInstance();
  292.         if (player.getClan().getLeader().isOnline())
  293.         {
  294.             switch (player.getClan().getLevel())
  295.             {
  296.                 case 1:
  297.                     CommonSkill.CLAN_ADVENT1.getSkill().applyEffects(player, player);
  298.                     break;
  299.                 case 2:
  300.                     CommonSkill.CLAN_ADVENT2.getSkill().applyEffects(player, player);
  301.                     break;
  302.                 case 3:
  303.                     CommonSkill.CLAN_ADVENT3.getSkill().applyEffects(player, player);
  304.                     break;
  305.                 case 4:
  306.                     CommonSkill.CLAN_ADVENT4.getSkill().applyEffects(player, player);
  307.                     break;
  308.                 case 5:
  309.                     CommonSkill.CLAN_ADVENT5.getSkill().applyEffects(player, player);
  310.                     break;
  311.                 case 6:
  312.                     CommonSkill.CLAN_ADVENT6.getSkill().applyEffects(player, player);
  313.                     break;
  314.                 case 7:
  315.                     CommonSkill.CLAN_ADVENT7.getSkill().applyEffects(player, player);
  316.                     break;
  317.                 case 8:
  318.                     CommonSkill.CLAN_ADVENT8.getSkill().applyEffects(player, player);
  319.                     break;
  320.                 case 9:
  321.                     CommonSkill.CLAN_ADVENT9.getSkill().applyEffects(player, player);
  322.                     break;
  323.                 case 10:
  324.                     CommonSkill.CLAN_ADVENT10.getSkill().applyEffects(player, player);
  325.                     break;
  326.                 case 11:
  327.                     CommonSkill.CLAN_ADVENT11.getSkill().applyEffects(player, player);
  328.                     break;
  329.                 case 12:
  330.                     CommonSkill.CLAN_ADVENT12.getSkill().applyEffects(player, player);
  331.                     break;
  332.                 case 13:
  333.                     CommonSkill.CLAN_ADVENT13.getSkill().applyEffects(player, player);
  334.                     break;
  335.                 case 14:
  336.                     CommonSkill.CLAN_ADVENT14.getSkill().applyEffects(player, player);
  337.                     break;
  338.                 case 15:
  339.                     CommonSkill.CLAN_ADVENT15.getSkill().applyEffects(player, player);
  340.                     break;
  341.             }
  342.         }
  343.     }
  344.    
  345.     @RegisterEvent(EventType.ON_PLAYER_CLAN_LEFT)
  346.     @RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
  347.     public void onPlayerClanLeft(OnPlayerClanLeft event)
  348.     {
  349.         event.getClanMember().getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT1.getId());
  350.     }
  351.    
  352.     public static void main(String[] args)
  353.     {
  354.         new ClanMaster();
  355.     }
  356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement