Guest User

Untitled

a guest
Nov 24th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.43 KB | None | 0 0
  1. package drake.aepvp.l2event;
  2.  
  3. import java.util.Map;
  4. import java.util.concurrent.ConcurrentHashMap;
  5. import java.util.function.Consumer;
  6.  
  7. import drake.aepvp.authentication.Passport;
  8. import drake.aepvp.drivers.PlayerDriver;
  9. import drake.aepvp.instance.world.AbstractWorld;
  10. import drake.aepvp.instance.world.StaticWorld;
  11. import drake.aepvp.model.enums.PlayerAction;
  12. import drake.aepvp.model.enums.PlayerRelation;
  13. import drake.aepvp.model.enums.WorldTrigger;
  14. import drake.aepvp.model.interfaces.IConditional;
  15. import drake.aepvp.model.template.world.WorldTemplate;
  16. import l2.ae.pvp.gameserver.model.L2Object;
  17. import l2.ae.pvp.gameserver.model.actor.L2Character;
  18. import l2.ae.pvp.gameserver.model.actor.L2Playable;
  19. import l2.ae.pvp.gameserver.model.actor.instance.L2PcInstance;
  20.  
  21. public class EventWorld<E extends WorldTemplate> extends AbstractWorld<E>
  22. {
  23.     protected final ConcurrentHashMap<Passport, PlayerDriver> _playerDrivers = new ConcurrentHashMap<>();
  24.    
  25.     @Override
  26.     public void worldInit()
  27.     {
  28.         super.worldInit();
  29.     }
  30.    
  31.     public EventWorld(E template)
  32.     {
  33.         super(template);
  34.     }
  35.    
  36.     public void forEachParticipant(final Consumer<L2PcInstance> consumer)
  37.     {
  38.         for (Map.Entry<Passport, PlayerDriver> playerData : _playerDrivers.entrySet())
  39.         {
  40.             final L2PcInstance player = playerData.getKey().getPlayer();
  41.             if (playerData.getValue() != null && player.isOnline())
  42.                 consumer.accept(player);
  43.         }
  44.     }
  45.    
  46.     public void forEachParticipant(final Consumer<L2PcInstance> consumer, final IConditional<L2PcInstance> cond)
  47.     {
  48.         for (Map.Entry<Passport, PlayerDriver> playerData : _playerDrivers.entrySet())
  49.         {
  50.             final L2PcInstance player = playerData.getKey().getPlayer();
  51.             if (playerData.getValue() != null && player.isOnline() && cond.isValid(player))
  52.                 consumer.accept(player);
  53.         }
  54.     }
  55.    
  56.     public void register(L2PcInstance player)
  57.     {
  58.         final int playersTotal = _playerDrivers.size();
  59.         if (_template.getMaxPlayers() <= playersTotal)
  60.             player.sendMessage(_template.getName() + " is already full!");
  61.         else
  62.         {
  63.             final PlayerDriver playerDriver = new PlayerDriver(player);
  64.             playerDriver.setRegistrationPosition(playersTotal + 1);
  65.             if (playersTotal < 10)
  66.                 player.sendMessage("You are one of the first 10 registers! You may get a bonus...");
  67.             _playerDrivers.put(player.getPassport(), new PlayerDriver(player));
  68.         }
  69.     }
  70.    
  71.     public void unregist(L2PcInstance player)
  72.     {
  73.         _playerDrivers.remove(player.getPassport());
  74.     }
  75.    
  76.     public boolean isRegistered(L2PcInstance player)
  77.     {
  78.         return _playerDrivers.contains(player.getPassport());
  79.     }
  80.    
  81.     protected PlayerDriver getPlayerDriver(final L2Object obj)
  82.     {
  83.         if (obj instanceof L2Playable)
  84.             return _playerDrivers.get(obj.getPassport());
  85.         return null;
  86.     }
  87.    
  88.     protected PlayerDriver getPlayerDriver(final Passport passport)
  89.     {
  90.         return _playerDrivers.get(passport);
  91.     }
  92.  
  93.     public PlayerDriver playerEject(L2PcInstance player)
  94.     {
  95.         player.setInstanceWorld(StaticWorld.REAL);
  96.         player.teleToLocation(_template.getLeaveLoc(), 50);
  97.         return _playerDrivers.remove(player.getPassport());
  98.     }
  99.    
  100.     public PlayerDriver playerInject(L2PcInstance player)
  101.     {
  102.         final Passport playerPassport = player.getPassport();
  103.         PlayerDriver playerDriver = getPlayerDriver(playerPassport);
  104.         if (playerDriver == null)
  105.             _playerDrivers.put(playerPassport, playerDriver = new PlayerDriver(player));
  106.         return playerDriver;
  107.     }
  108.    
  109.     public PlayerRelation getPlayerRelation(final L2Object obj0, final L2Object obj1)
  110.     {
  111.         return PlayerRelation.NONE;
  112.     }
  113.    
  114.     public PlayerRelation getPlayerRelation(final PlayerDriver driver0, final PlayerDriver driver1)
  115.     {
  116.         return PlayerRelation.NONE;
  117.     }
  118.    
  119.     /*
  120.      *  public boolean handleDamage(final L2Character damager, final L2Character victim, final int damage)
  121.     {
  122.         final L2PcInstance damagerPlayer = damager.getActingPlayer();
  123.         final L2PcInstance victimPlayer = victim.getActingPlayer();
  124.         if (damagerPlayer == null || victimPlayer == null)
  125.             return false;
  126.         final PlayerRelation teamRelation = getPlayerRelation(damagerPlayer, victimPlayer);
  127.         if (teamRelation == PlayerRelation.ENEMY)
  128.         {   final PlayerDriver damagerDriver = getPlayerDriver(damagerPlayer), victimDriver = getPlayerDriver(victimPlayer);
  129.             if (damagerDriver != null && victimDriver != null)
  130.             {   damagerDriver.increaseDamageDealt(damage);
  131.                 victimDriver.increaseDamageTaken(damage);
  132.             }
  133.         }
  134.         return false;
  135.     }
  136.      */
  137.    
  138.     @Override
  139.     public boolean processAction(PlayerAction action, L2Character activeChar, L2Character targetChar, int value)
  140.     {
  141.         final PlayerDriver charDriver = getPlayerDriver(activeChar);
  142.         final PlayerDriver targDriver = getPlayerDriver(targetChar);
  143.         final PlayerRelation relation = getPlayerRelation(charDriver, targDriver);
  144.         switch (action)
  145.         {
  146.             case DAMAGE_DEALT:
  147.                 if (relation.isAllied())
  148.                     return false;
  149.                 charDriver.increaseDamageDealt(value);
  150.                 targDriver.increaseDamageTaken(value);
  151.                 return true;
  152.             case HEALING_DONE:
  153.                 if (!relation.isAllied())
  154.                     return false;
  155.                 charDriver.increaseHealingDone(value);
  156.                 return true;
  157.             case REVIVES_MADE:
  158.                 if (!relation.isAllied())
  159.                     return false;
  160.                 charDriver.increaseRevivesDone(value);
  161.                 return true;
  162.         }
  163.         return false;
  164.     }
  165.    
  166.     @Override
  167.     public boolean processTrigger(L2Character activeChar, WorldTrigger eventTrigger)
  168.     {
  169.         switch (eventTrigger)
  170.         {
  171.             case ANTIBOT:
  172.             {
  173.                
  174.             }
  175.             default:
  176.                 super.processTrigger(activeChar, eventTrigger);
  177.         }
  178.         return false;
  179.     }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment