Package com.massivecraft.factions.entity

Examples of com.massivecraft.factions.entity.UPlayer


    if (amount == null) return;
   
    Faction from = this.arg(1, ARFaction.get(sender), usenderFaction);
    if (from == null) return;
   
    UPlayer to = usender;
   
    boolean success = Econ.transferMoney(usender, from, to, amount);

    if (success && MConf.get().logMoneyTransactions)
    {
View Full Code Here


 
  @Override
  public void perform()
  {
    // Args
    UPlayer you = this.arg(0, ARUPlayer.getStartAny(sender));
    if (you == null) return;
   
    String newTitle = this.argConcatFrom(1, ARString.get(), "");
    if (newTitle == null) return;
   
    newTitle = Txt.parse(newTitle);
    if (!Perm.TITLE_COLOR.has(sender, false))
    {
      newTitle = ChatColor.stripColor(newTitle);
    }
   
    // Verify
    if ( ! canIAdministerYou(usender, you)) return;

    // Event
    FactionsEventTitleChange event = new FactionsEventTitleChange(sender, you, newTitle);
    event.run();
    if (event.isCancelled()) return;
    newTitle = event.getNewTitle();

    // Apply
    you.setTitle(newTitle);
   
    // Inform
    usenderFaction.msg("%s<i> changed a title: %s", usender.describeTo(usenderFaction, true), you.describeTo(usenderFaction, true));
  }
View Full Code Here

   
    // Check Disabled
    if (UConf.isDisabled(player)) return;
   
    // ... gather info on the player and the move ...
    UPlayer uplayer = UPlayerColls.get().get(event.getTo()).get(player);
   
    PS chunkFrom = PS.valueOf(event.getFrom()).getChunk(true);
    PS chunkTo = PS.valueOf(event.getTo()).getChunk(true);
   
    Faction factionFrom = BoardColls.get().getFactionAt(chunkFrom);
View Full Code Here

    Player player = event.getEntity();
   
    // Check Disabled
    if (UConf.isDisabled(player)) return;
   
    UPlayer uplayer = UPlayer.get(player);
   
    // ... and powerloss can happen here ...
    Faction faction = BoardColls.get().getFactionAt(PS.valueOf(player));
   
    if (!faction.getFlag(FFlag.POWERLOSS))
    {
      uplayer.msg("<i>You didn't lose any power since the territory you died in works that way.");
      return;
    }
   
    if (MConf.get().worldsNoPowerLoss.contains(player.getWorld().getName()))
    {
      uplayer.msg("<i>You didn't lose any power due to the world you died in.");
      return;
    }
   
    // ... alter the power ...
    double newPower = uplayer.getPower() + uplayer.getPowerPerDeath();
   
    FactionsEventPowerChange powerChangeEvent = new FactionsEventPowerChange(null, uplayer, PowerChangeReason.DEATH, newPower);
    powerChangeEvent.run();
    if (powerChangeEvent.isCancelled()) return;
    newPower = powerChangeEvent.getNewPower();
   
    uplayer.setPower(newPower);
   
    // ... and inform the player.
    // TODO: A progress bar here would be epic :)
    uplayer.msg("<i>Your power is now <h>%.2f / %.2f", newPower, uplayer.getPowerMax());
  }
View Full Code Here

 
    // If the defender is a player ...
    Entity edefender = event.getEntity();
    if (!(edefender instanceof Player)) return true;
    Player defender = (Player)edefender;
    UPlayer fdefender = UPlayer.get(edefender);
   
    // Check Disabled
    if (UConf.isDisabled(defender)) return true;
   
    // ... and the attacker is someone else ...
    Entity eattacker = event.getDamager();
    if (eattacker instanceof Projectile)
    {
      eattacker = ((Projectile)eattacker).getShooter();
    }
    if (eattacker.equals(edefender)) return true;
   
    // ... gather defender PS and faction information ...
    PS defenderPs = PS.valueOf(defender);
    Faction defenderPsFaction = BoardColls.get().getFactionAt(defenderPs);
   
    // ... PVP flag may cause a damage block ...
    if (defenderPsFaction.getFlag(FFlag.PVP) == false)
    {
      if (eattacker instanceof Player)
      {
        if (notify)
        {
          UPlayer attacker = UPlayer.get(eattacker);
          attacker.msg("<i>PVP is disabled in %s.", defenderPsFaction.describeTo(attacker));
        }
        return false;
      }
      return defenderPsFaction.getFlag(FFlag.MONSTERS);
    }

    // ... and if the attacker is a player ...
    if (!(eattacker instanceof Player)) return true;
    Player attacker = (Player)eattacker;
    UPlayer fattacker = UPlayer.get(attacker);
   
    // ... does this player bypass all protection? ...
    if (MConf.get().playersWhoBypassAllProtection.contains(attacker.getName())) return true;

    // ... gather attacker PS and faction information ...
    PS attackerPs = PS.valueOf(attacker);
    Faction attackerPsFaction = BoardColls.get().getFactionAt(attackerPs);

    // ... PVP flag may cause a damage block ...
    // (just checking the defender as above isn't enough. What about the attacker? It could be in a no-pvp area)
    // NOTE: This check is probably not that important but we could keep it anyways.
    if (attackerPsFaction.getFlag(FFlag.PVP) == false)
    {
      if (notify) fattacker.msg("<i>PVP is disabled in %s.", attackerPsFaction.describeTo(fattacker));
      return false;
    }

    // ... are PVP rules completely ignored in this world? ...
    if (MConf.get().worldsIgnorePvP.contains(defenderPs.getWorld())) return true;

    Faction defendFaction = fdefender.getFaction();
    Faction attackFaction = fattacker.getFaction();
    UConf uconf = UConf.get(attackFaction);

    if (attackFaction.isNone() && uconf.disablePVPForFactionlessPlayers)
    {
      if (notify) fattacker.msg("<i>You can't hurt other players until you join a faction.");
      return false;
    }
    else if (defendFaction.isNone())
    {
      if (defenderPsFaction == attackFaction && uconf.enablePVPAgainstFactionlessInAttackersLand)
      {
        // Allow PVP vs. Factionless in attacker's faction territory
        return true;
      }
      else if (uconf.disablePVPForFactionlessPlayers)
      {
        if (notify) fattacker.msg("<i>You can't hurt players who are not currently in a faction.");
        return false;
      }
    }

    Rel relation = defendFaction.getRelationTo(attackFaction);

    // Check the relation
    if (fdefender.hasFaction() && relation.isFriend() && defenderPsFaction.getFlag(FFlag.FRIENDLYFIRE) == false)
    {
      if (notify) fattacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
      return false;
    }

    // You can not hurt neutrals in their own territory.
    boolean ownTerritory = fdefender.isInOwnTerritory();
    if (fdefender.hasFaction() && ownTerritory && relation == Rel.NEUTRAL)
    {
      if (notify)
      {
        fattacker.msg("<i>You can't hurt %s<i> in their own territory unless you declare them as an enemy.", fdefender.describeTo(fattacker));
        fdefender.msg("%s<i> tried to hurt you.", fattacker.describeTo(fdefender, true));
      }
      return false;
    }

    // Damage will be dealt. However check if the damage should be reduced.
View Full Code Here

    if (!MConf.get().removePlayerDataWhenBanned) return;
   
    // ... get rid of their stored info.
    for (UPlayerColl coll : UPlayerColls.get().getColls())
    {
      UPlayer uplayer = coll.get(player, false);
      if (uplayer == null) continue;
     
      if (uplayer.getRole() == Rel.LEADER)
      {
        uplayer.getFaction().promoteNewLeader();
      }
      uplayer.leave();
      uplayer.detach();
    }
  }
View Full Code Here

    Player player = event.getPlayer();
   
    // Check Disabled
    if (UConf.isDisabled(player)) return;
   
    UPlayer uplayer = UPlayer.get(player);
   
    // ... and the player does not have adminmode ...
    if (uplayer.isUsingAdminMode()) return;
   
    // ... clean up the command ...
    String command = event.getMessage();
    command = Txt.removeLeadingCommandDust(command);
    command = command.toLowerCase();
    command = command.trim();
   
    // ... the command may be denied for members of permanent factions ...
    if (uplayer.hasFaction() && uplayer.getFaction().getFlag(FFlag.PERMANENT) && containsCommand(command, UConf.get(player).denyCommandsPermanentFactionMember))
    {
      uplayer.msg("<b>You can't use \"<h>/%s<b>\" as member of a permanent faction.", command);
      event.setCancelled(true);
      return;
    }
   
    // ... if there is a faction at the players location ...
    PS ps = PS.valueOf(player).getChunk(true);
    Faction factionAtPs = BoardColls.get().getFactionAt(ps);
    if (factionAtPs.isNone()) return;
   
    // ... the command may be denied in the territory of this relation type ...
    Rel rel = factionAtPs.getRelationTo(uplayer);
   
    List<String> deniedCommands = UConf.get(player).denyCommandsTerritoryRelation.get(rel);
    if (deniedCommands == null) return;
    if (!containsCommand(command, deniedCommands)) return;
   
    uplayer.msg("<b>You can't use \"<h>/%s<b>\" in %s territory.", Txt.getNicedEnum(rel), command);
    event.setCancelled(true);
  }
View Full Code Here

  public static boolean canPlayerBuildAt(Player player, PS ps, boolean verboose)
  {
    String name = player.getName();
    if (MConf.get().playersWhoBypassAllProtection.contains(name)) return true;

    UPlayer uplayer = UPlayer.get(player);
    if (uplayer.isUsingAdminMode()) return true;

    if (!FPerm.BUILD.has(uplayer, ps, false) && FPerm.PAINBUILD.has(uplayer, ps, false))
    {
      if (verboose)
      {
        Faction hostFaction = BoardColls.get().getFactionAt(ps);
        uplayer.msg("<b>It is painful to build in the territory of %s<b>.", hostFaction.describeTo(uplayer));
        player.damage(UConf.get(player).actionDeniedPainAmount);
      }
      return true;
    }
   
View Full Code Here

  {
    // Args
    Faction faction = this.arg(0, ARFaction.get(sender));
    if (faction == null) return;

    UPlayer uplayer = this.arg(1, ARUPlayer.getStartAny(sender), usender);
    if (uplayer == null) return;
    Faction uplayerFaction = uplayer.getFaction();
   
    boolean samePlayer = uplayer == usender;
   
    // Validate
    if (!samePlayer  && ! Perm.JOIN_OTHERS.has(sender, false))
    {
      msg("<b>You do not have permission to move other players into a faction.");
      return;
    }

    if (faction == uplayerFaction)
    {
      msg("<i>%s <i>%s already a member of %s<i>.", uplayer.describeTo(usender, true), (samePlayer ? "are" : "is"), faction.getName(usender));
      return;
    }

    if (UConf.get(faction).factionMemberLimit > 0 && faction.getUPlayers().size() >= UConf.get(faction).factionMemberLimit)
    {
      msg(" <b>!<white> The faction %s is at the limit of %d members, so %s cannot currently join.", faction.getName(usender), UConf.get(faction).factionMemberLimit, uplayer.describeTo(usender, false));
      return;
    }

    if (uplayerFaction.isNormal())
    {
      msg("<b>%s must leave %s current faction first.", uplayer.describeTo(usender, true), (samePlayer ? "your" : "their"));
      return;
    }

    if (!UConf.get(faction).canLeaveWithNegativePower && uplayer.getPower() < 0)
    {
      msg("<b>%s cannot join a faction with a negative power level.", uplayer.describeTo(usender, true));
      return;
    }

    if( ! (faction.isOpen() || faction.isInvited(uplayer) || usender.isUsingAdminMode() || Perm.JOIN_ANY.has(sender, false)))
    {
      msg("<i>This faction requires invitation.");
      if (samePlayer)
      {
        faction.msg("%s<i> tried to join your faction.", uplayer.describeTo(faction, true));
      }
      return;
    }

    // Event
    FactionsEventMembershipChange membershipChangeEvent = new FactionsEventMembershipChange(sender, usender, faction, MembershipChangeReason.JOIN);
    membershipChangeEvent.run();
    if (membershipChangeEvent.isCancelled()) return;
   
    // Inform
    if (!samePlayer)
    {
      uplayer.msg("<i>%s <i>moved you into the faction %s<i>.", usender.describeTo(uplayer, true), faction.getName(uplayer));
    }
    faction.msg("<i>%s <i>joined <lime>your faction<i>.", uplayer.describeTo(faction, true));
    usender.msg("<i>%s <i>successfully joined %s<i>.", uplayer.describeTo(usender, true), faction.getName(usender));
   
    // Apply
    uplayer.resetFactionData();
    uplayer.setFaction(faction);
     
    faction.setInvited(uplayer, false);

    // Derplog
    if (MConf.get().logFactionJoin)
    {
      if (samePlayer)
      {
        Factions.get().log(Txt.parse("%s joined the faction %s.", uplayer.getName(), faction.getName()));
      }
      else
      {
        Factions.get().log(Txt.parse("%s moved the player %s into the faction %s.", usender.getName(), uplayer.getName(), faction.getName()));
      }
    }
  }
View Full Code Here

    if (!Const.MATERIALS_EDIT_TOOLS.contains(material)) return true;
   
    String name = player.getName();
    if (MConf.get().playersWhoBypassAllProtection.contains(name)) return true;

    UPlayer uplayer = UPlayer.get(player);
    if (uplayer.isUsingAdminMode()) return true;
   
    return FPerm.BUILD.has(uplayer, ps, !justCheck);
  }
View Full Code Here

TOP

Related Classes of com.massivecraft.factions.entity.UPlayer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.