Search in sources :

Example 1 with ConquerClaim

use of me.andrew28.addons.conquer.api.ConquerClaim in project Conquer by xXAndrew28Xx.

the class EffChangeClaimOwnership method execute.

@Override
protected void execute(Event e) {
    Object[] claimObjects = this.claims.getArray(e);
    if (claimObjects == null) {
        return;
    }
    List<ConquerClaim> claims = new ArrayList<>();
    for (Object claimObject : claimObjects) {
        if (claimObject instanceof ConquerClaim) {
            claims.add((ConquerClaim) claimObject);
        } else if (claimObject instanceof Location) {
            claims.add(Conquer.getInstance().getFactions().getClaim((Location) claimObject));
        }
    }
    if (claiming) {
        if (forFactions) {
            ConquerFaction faction = (ConquerFaction) this.type.getSingle(e);
            if (faction == null) {
                return;
            }
            claims.forEach(faction::claim);
        } else {
            ClaimType type = (ClaimType) this.type.getSingle(e);
            if (type == null) {
                return;
            }
            claims.forEach(claim -> claim.setTo(type));
        }
    } else {
        claims.forEach(claim -> claim.setTo(ClaimType.WILDERNESS));
    }
}
Also used : ConquerFaction(me.andrew28.addons.conquer.api.ConquerFaction) ArrayList(java.util.ArrayList) ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim) Location(org.bukkit.Location) ClaimType(me.andrew28.addons.conquer.api.ClaimType)

Example 2 with ConquerClaim

use of me.andrew28.addons.conquer.api.ConquerClaim in project Conquer by xXAndrew28Xx.

the class ExprTypeOfClaim method change.

@Override
public void change(Event e, Object[] delta, Changer.ChangeMode mode) {
    ConquerClaim[] claims = getExpr().getArray(e);
    if (claims == null) {
        return;
    }
    ClaimType type = ClaimType.WILDERNESS;
    if (mode == Changer.ChangeMode.SET) {
        if (delta == null || delta.length == 0) {
            return;
        }
        type = (ClaimType) delta[0];
        if (type == null) {
            type = ClaimType.WILDERNESS;
        }
    }
    for (ConquerClaim claim : claims) {
        if (claim == null) {
            continue;
        }
        claim.setTo(type);
    }
}
Also used : ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim) ClaimType(me.andrew28.addons.conquer.api.ClaimType)

Example 3 with ConquerClaim

use of me.andrew28.addons.conquer.api.ConquerClaim in project Conquer by xXAndrew28Xx.

the class MSEventForwarder method onClaimChange.

@EventHandler
public void onClaimChange(EventFactionsChunksChange event) {
    ConquerFaction faction = MSFaction.get(plugin, event.getNewFaction());
    ConquerPlayer player = MSPlayer.get(plugin, event.getMPlayer());
    Set<PS> chunks = event.getChunks();
    Map<PS, EventFactionsChunkChangeType> chunkTypeMap = event.getChunkType();
    // Check if it's an unclaim all
    if (chunks.size() == faction.getClaims().length && chunkTypeMap.values().stream().allMatch(type -> type == EventFactionsChunkChangeType.SELL)) {
        ConquerUnclaimAllEvent forwardEvent = new ConquerUnclaimAllEvent(faction, player);
        callEvent(forwardEvent);
        if (forwardEvent.isCancelled()) {
            event.setCancelled(true);
        }
    }
    for (PS chunk : chunks) {
        EventFactionsChunkChangeType type = chunkTypeMap.get(chunk);
        ConquerClaim claim = MSClaim.get(plugin, chunk);
        Event forwardEvent;
        switch(type) {
            case NONE:
                continue;
            case BUY:
                forwardEvent = new ConquerLandClaimEvent(claim, true, faction, player);
                break;
            case CONQUER:
            case PILLAGE:
                forwardEvent = new ConquerLandClaimEvent(claim, false, faction, player);
                break;
            default:
                return;
        }
        callEvent(forwardEvent);
        if (((Cancellable) forwardEvent).isCancelled()) {
            event.setCancelled(true);
            return;
        }
    }
}
Also used : EventForwarder(me.andrew28.addons.conquer.api.EventForwarder) Cancellable(org.bukkit.event.Cancellable) ConquerUnclaimAllEvent(me.andrew28.addons.conquer.api.events.ConquerUnclaimAllEvent) EventFactionsCreate(com.massivecraft.factions.event.EventFactionsCreate) EventFactionsRelationChange(com.massivecraft.factions.event.EventFactionsRelationChange) Event(org.bukkit.event.Event) ConquerFactionRelationEvent(me.andrew28.addons.conquer.api.events.ConquerFactionRelationEvent) EventHandler(org.bukkit.event.EventHandler) EventFactionsDisband(com.massivecraft.factions.event.EventFactionsDisband) ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim) Map(java.util.Map) EventFactionsMembershipChange(com.massivecraft.factions.event.EventFactionsMembershipChange) ConquerFactionLeaveEvent(me.andrew28.addons.conquer.api.events.ConquerFactionLeaveEvent) ConquerFaction(me.andrew28.addons.conquer.api.ConquerFaction) ConquerPowerLossEvent(me.andrew28.addons.conquer.api.events.ConquerPowerLossEvent) EventFactionsChunkChangeType(com.massivecraft.factions.event.EventFactionsChunkChangeType) ConquerFactionDisbandEvent(me.andrew28.addons.conquer.api.events.ConquerFactionDisbandEvent) Relation(me.andrew28.addons.conquer.api.Relation) PS(com.massivecraft.massivecore.ps.PS) ConquerFactionRelationWishEvent(me.andrew28.addons.conquer.api.events.ConquerFactionRelationWishEvent) ConquerLandClaimEvent(me.andrew28.addons.conquer.api.events.ConquerLandClaimEvent) EventFactionsPowerChange(com.massivecraft.factions.event.EventFactionsPowerChange) Set(java.util.Set) ConquerFactionJoinEvent(me.andrew28.addons.conquer.api.events.ConquerFactionJoinEvent) EventFactionsChunksChange(com.massivecraft.factions.event.EventFactionsChunksChange) ConquerPlayer(me.andrew28.addons.conquer.api.ConquerPlayer) ConquerFactionCreateEvent(me.andrew28.addons.conquer.api.events.ConquerFactionCreateEvent) PS(com.massivecraft.massivecore.ps.PS) ConquerFaction(me.andrew28.addons.conquer.api.ConquerFaction) Cancellable(org.bukkit.event.Cancellable) ConquerUnclaimAllEvent(me.andrew28.addons.conquer.api.events.ConquerUnclaimAllEvent) Event(org.bukkit.event.Event) ConquerFactionRelationEvent(me.andrew28.addons.conquer.api.events.ConquerFactionRelationEvent) ConquerFactionLeaveEvent(me.andrew28.addons.conquer.api.events.ConquerFactionLeaveEvent) ConquerPowerLossEvent(me.andrew28.addons.conquer.api.events.ConquerPowerLossEvent) ConquerFactionDisbandEvent(me.andrew28.addons.conquer.api.events.ConquerFactionDisbandEvent) ConquerFactionRelationWishEvent(me.andrew28.addons.conquer.api.events.ConquerFactionRelationWishEvent) ConquerLandClaimEvent(me.andrew28.addons.conquer.api.events.ConquerLandClaimEvent) ConquerFactionJoinEvent(me.andrew28.addons.conquer.api.events.ConquerFactionJoinEvent) ConquerFactionCreateEvent(me.andrew28.addons.conquer.api.events.ConquerFactionCreateEvent) ConquerUnclaimAllEvent(me.andrew28.addons.conquer.api.events.ConquerUnclaimAllEvent) ConquerLandClaimEvent(me.andrew28.addons.conquer.api.events.ConquerLandClaimEvent) ConquerPlayer(me.andrew28.addons.conquer.api.ConquerPlayer) ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim) EventFactionsChunkChangeType(com.massivecraft.factions.event.EventFactionsChunkChangeType) EventHandler(org.bukkit.event.EventHandler)

Example 4 with ConquerClaim

use of me.andrew28.addons.conquer.api.ConquerClaim in project Conquer by xXAndrew28Xx.

the class ExprClaimsOfFaction method get.

@Override
protected ConquerClaim[] get(Event e) {
    List<ConquerClaim> claims = new ArrayList<>();
    ConquerFaction[] factions = this.factions.getArray(e);
    for (ConquerFaction faction : factions) {
        if (faction == null) {
            continue;
        }
        claims.addAll(Arrays.asList(faction.getClaims()));
    }
    return claims.toArray(new ConquerClaim[claims.size()]);
}
Also used : ConquerFaction(me.andrew28.addons.conquer.api.ConquerFaction) ArrayList(java.util.ArrayList) ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim)

Example 5 with ConquerClaim

use of me.andrew28.addons.conquer.api.ConquerClaim in project Conquer by xXAndrew28Xx.

the class ExprFactionAtLocClaim method get.

@Override
protected ConquerFaction[] get(Event e) {
    Set<ConquerFaction> factions = new HashSet<>();
    FactionResolver factionResolver = Conquer.getInstance().getFactions().getFactionResolver();
    Object[] claimObjects = this.targets.getArray(e);
    if (claimObjects == null) {
        return null;
    }
    for (Object claimObject : claimObjects) {
        if (claimObject instanceof ConquerClaim) {
            factions.add(factionResolver.getByClaim((ConquerClaim) claimObject));
        } else if (claimObject instanceof Location) {
            factions.add(factionResolver.getAtLocation((Location) claimObject));
        }
    }
    return factions.toArray(new ConquerFaction[factions.size()]);
}
Also used : FactionResolver(me.andrew28.addons.conquer.api.FactionResolver) ConquerFaction(me.andrew28.addons.conquer.api.ConquerFaction) ConquerClaim(me.andrew28.addons.conquer.api.ConquerClaim) HashSet(java.util.HashSet) Location(org.bukkit.Location)

Aggregations

ConquerClaim (me.andrew28.addons.conquer.api.ConquerClaim)6 ConquerFaction (me.andrew28.addons.conquer.api.ConquerFaction)5 Location (org.bukkit.Location)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 ClaimType (me.andrew28.addons.conquer.api.ClaimType)2 ConquerPlayer (me.andrew28.addons.conquer.api.ConquerPlayer)2 ConquerLandClaimEvent (me.andrew28.addons.conquer.api.events.ConquerLandClaimEvent)2 EventHandler (org.bukkit.event.EventHandler)2 EventFactionsChunkChangeType (com.massivecraft.factions.event.EventFactionsChunkChangeType)1 EventFactionsChunksChange (com.massivecraft.factions.event.EventFactionsChunksChange)1 EventFactionsCreate (com.massivecraft.factions.event.EventFactionsCreate)1 EventFactionsDisband (com.massivecraft.factions.event.EventFactionsDisband)1 EventFactionsMembershipChange (com.massivecraft.factions.event.EventFactionsMembershipChange)1 EventFactionsPowerChange (com.massivecraft.factions.event.EventFactionsPowerChange)1 EventFactionsRelationChange (com.massivecraft.factions.event.EventFactionsRelationChange)1 PS (com.massivecraft.massivecore.ps.PS)1 HashSet (java.util.HashSet)1 Set (java.util.Set)1 EventForwarder (me.andrew28.addons.conquer.api.EventForwarder)1