When a faction leader is kicked from his faction for whatever reason (not logging in for too long, a server admin running the /f kick command on him, the player being banned from server), another player will now be promoted to faction leader in his place. If the faction has at least one officer, one of them will be chosen. Otherwise, a normal member will be promoted. If the faction leader was the last/only member, the faction will of course be disbanded.

Also, players being kicked due to inactivity is now logged.
This commit is contained in:
Brettflan
2011-12-18 07:50:41 -06:00
parent bbc7c48408
commit 6ea54cb7ac
5 changed files with 65 additions and 17 deletions

@ -8,6 +8,7 @@ import com.massivecraft.factions.P;
import com.massivecraft.factions.struct.FFlag;
import com.massivecraft.factions.struct.FPerm;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Rel;
public class CmdKick extends FCommand
{
@ -62,24 +63,14 @@ public class CmdKick extends FCommand
fme.msg("<i>You kicked %s<i> from the faction %s<i>!", you.describeTo(fme), yourFaction.describeTo(fme));
}
if (Conf.logFactionKick)
P.p.log((senderIsConsole ? "A console command" : fme.getName())+" kicked "+you.getName()+" from the faction: "+yourFaction.getTag());
if (you.getRole() == Rel.LEADER)
yourFaction.promoteNewLeader();
yourFaction.deinvite(you);
you.resetFactionData();
if (Conf.logFactionKick)
P.p.log(fme.getName()+" kicked "+you.getName()+" from the faction: "+yourFaction.getTag());
if (yourFaction.getFPlayers().isEmpty() && !yourFaction.getFlag(FFlag.PERMANENT))
{
// Remove this faction
for (FPlayer fplayer : FPlayers.i.getOnline())
{
fplayer.msg("The faction %s<i> was disbanded.", yourFaction.getTag(fplayer));
}
yourFaction.detach();
if (Conf.logFactionDisband)
P.p.log("The faction "+yourFaction.getTag()+" ("+yourFaction.getId()+") was disbanded since the last player was kicked by "+(senderIsConsole ? "console command" : fme.getName())+".");
}
}
}