2011-10-09 21:57:43 +02:00
package com.massivecraft.factions.cmd ;
2011-10-09 20:10:19 +02:00
2013-04-24 11:16:37 +02:00
import java.util.Set ;
2013-04-09 13:00:09 +02:00
import com.massivecraft.factions.Factions ;
2013-04-09 12:56:29 +02:00
import com.massivecraft.factions.Perm ;
2013-04-16 12:04:12 +02:00
import com.massivecraft.factions.Rel ;
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast ;
2013-04-24 11:16:37 +02:00
import com.massivecraft.factions.entity.BoardColl ;
2013-04-22 12:26:13 +02:00
import com.massivecraft.factions.entity.BoardColls ;
2013-04-24 11:16:37 +02:00
import com.massivecraft.factions.entity.Faction ;
import com.massivecraft.factions.entity.FactionColls ;
2013-04-22 10:05:03 +02:00
import com.massivecraft.factions.entity.MConf ;
2013-04-24 11:16:37 +02:00
import com.massivecraft.factions.event.FactionsEventChunkChange ;
2013-04-16 10:11:59 +02:00
import com.massivecraft.mcore.cmd.req.ReqHasPerm ;
2013-04-24 11:16:37 +02:00
import com.massivecraft.mcore.ps.PS ;
2011-10-09 20:10:19 +02:00
2013-04-10 13:12:22 +02:00
public class CmdFactionsUnclaimall extends FCommand
2011-10-09 20:10:19 +02:00
{
2013-04-10 13:12:22 +02:00
public CmdFactionsUnclaimall ( )
2011-10-09 20:10:19 +02:00
{
2013-04-16 10:11:59 +02:00
this . addAliases ( " unclaimall " , " declaimall " ) ;
2011-10-09 20:10:19 +02:00
2013-04-16 10:11:59 +02:00
this . addRequirements ( ReqHasPerm . get ( Perm . UNCLAIM_ALL . node ) ) ;
2013-04-16 12:04:12 +02:00
this . addRequirements ( ReqRoleIsAtLeast . get ( Rel . OFFICER ) ) ;
2011-10-09 20:10:19 +02:00
}
@Override
public void perform ( )
{
2013-04-24 11:16:37 +02:00
// Args
Faction faction = myFaction ;
Faction newFaction = FactionColls . get ( ) . get ( faction ) . getNone ( ) ;
// Apply
BoardColl boardColl = BoardColls . get ( ) . get ( faction ) ;
Set < PS > chunks = boardColl . getChunks ( faction ) ;
int countTotal = chunks . size ( ) ;
int countSuccess = 0 ;
int countFail = 0 ;
for ( PS chunk : chunks )
2011-10-12 18:48:47 +02:00
{
2013-04-24 11:16:37 +02:00
FactionsEventChunkChange event = new FactionsEventChunkChange ( sender , chunk , newFaction ) ;
event . run ( ) ;
if ( event . isCancelled ( ) )
2011-10-23 17:04:36 +02:00
{
2013-04-24 11:16:37 +02:00
countFail + + ;
2011-10-23 17:04:36 +02:00
}
else
{
2013-04-24 11:16:37 +02:00
countSuccess + + ;
boardColl . setFactionAt ( chunk , newFaction ) ;
2011-10-23 17:04:36 +02:00
}
2011-10-12 18:48:47 +02:00
}
2013-04-19 12:44:28 +02:00
// Inform
2013-04-24 11:16:37 +02:00
myFaction . msg ( " %s<i> unclaimed <h>5 <i> of your <h>200 <i>faction land. You now have <h>23 <i>land left. " , fme . describeTo ( myFaction , true ) , countSuccess , countTotal , countFail ) ;
Additional logging, with new conf.json settings to enable/disable logging of specific events:
"logFactionCreate": true, - log faction creation
"logFactionDisband": true, - log factions being disbanded, by command or by circumstance
"logFactionJoin": true, - log player joining a faction
"logFactionKick": true, - log player being kicked from a faction
"logFactionLeave": true, - log player leaving a faction
"logLandClaims": true, - log land being claimed (including safe zone and war zone)
"logLandUnclaims": true, - log land being unclaimed (including safe zone and war zone)
"logMoneyTransactions": true, - log money being deposited, withdrawn, and otherwise transferred in relation to faction banks
Also a fix for a potential NPE from players logging out and Spout appearance handler referencing them afterwards
2011-10-23 19:50:02 +02:00
2013-04-24 11:16:37 +02:00
// Log
2013-04-22 10:05:03 +02:00
if ( MConf . get ( ) . logLandUnclaims )
2013-04-11 11:11:31 +02:00
{
2013-04-09 13:12:13 +02:00
Factions . get ( ) . log ( fme . getName ( ) + " unclaimed everything for the faction: " + myFaction . getTag ( ) ) ;
2013-04-11 11:11:31 +02:00
}
2011-10-09 20:10:19 +02:00
}
}