No compiletime errors anymore, how kewl. Let's test.
This commit is contained in:
parent
97a2ed1fd8
commit
4b9bdf0d94
14
plugin.yml
14
plugin.yml
@ -44,13 +44,13 @@ permissions:
|
||||
factions.list: {description: see a list of the factions}
|
||||
factions.lock: {description: lock all write stuff}
|
||||
factions.map: {description: show the territory map, and set optional auto update}
|
||||
factions.money.balance: {description: show your factions current money balance}
|
||||
factions.money.balance.any: {description: show money balance for factions other than your own}
|
||||
factions.money.deposit: {description: deposit money into a faction bank}
|
||||
factions.money.f2f: {description: transfer money from faction to faction}
|
||||
factions.money.f2p: {description: transfer money from faction to player}
|
||||
factions.money.p2f: {description: transfer money from player to faction}
|
||||
factions.money.withdraw: {description: withdraw money from your faction bank}
|
||||
factions.money.balance: {description: show money balance for a faction}
|
||||
factions.money.balance.any: {description: show money balance for another faction}
|
||||
factions.money.deposit: {description: deposit money to faction bank}
|
||||
factions.money.f2f: {description: transfer f --> f}
|
||||
factions.money.f2p: {description: transfer f --> p}
|
||||
factions.money.p2f: {description: transfer p --> f}
|
||||
factions.money.withdraw: {description: withdraw money from faction bank}
|
||||
factions.officer: {description: give or revoke officer rights}
|
||||
factions.officer.any: {description: give or revoke officer rights for any player in any faction}
|
||||
factions.open: {description: switch if invitation is required to join}
|
||||
|
49
src/com/massivecraft/factions/FactionListComparator.java
Normal file
49
src/com/massivecraft/factions/FactionListComparator.java
Normal file
@ -0,0 +1,49 @@
|
||||
package com.massivecraft.factions;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import com.massivecraft.mcore.util.MUtil;
|
||||
|
||||
public class FactionListComparator implements Comparator<Faction>
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static FactionListComparator i = new FactionListComparator();
|
||||
public static FactionListComparator get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE: COMPARATOR
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public int compare(Faction f1, Faction f2)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
// Null --> Low
|
||||
if (f1 == null && f2 == null) ret = 0;
|
||||
if (f1 == null) ret = -1;
|
||||
if (f2 == null) ret = +1;
|
||||
if (ret != 0) return ret;
|
||||
|
||||
// None --> High
|
||||
if (f1.isNone() && f2.isNone()) ret = 0;
|
||||
if (f1.isNone()) ret = +1;
|
||||
if (f2.isNone()) ret = -1;
|
||||
if (ret != 0) return ret;
|
||||
|
||||
// Players Online --> High
|
||||
ret = f1.getFPlayersWhereOnline(true).size() - f2.getFPlayersWhereOnline(true).size();
|
||||
if (ret != 0) return ret;
|
||||
|
||||
// Players Total --> High
|
||||
ret = f1.getFPlayers().size() - f2.getFPlayers().size();
|
||||
if (ret != 0) return ret;
|
||||
|
||||
// Tie by Id
|
||||
return MUtil.compare(f1.getId(), f2.getId());
|
||||
}
|
||||
|
||||
}
|
@ -3,9 +3,7 @@ package com.massivecraft.factions.cmd;
|
||||
import java.util.Collections;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.mcore.cmd.HelpCommand;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
public class CmdFactions extends FCommand
|
||||
{
|
||||
@ -57,8 +55,8 @@ public class CmdFactions extends FCommand
|
||||
// TODO: When is this required? Should this be added to MCore?
|
||||
this.aliases.removeAll(Collections.singletonList(null));
|
||||
|
||||
this.setHelpShort("The faction base command");
|
||||
this.helpLong.add(Txt.parse("<i>This command contains all faction stuff."));
|
||||
this.setDesc("The faction base command");
|
||||
this.setHelp("This command contains all faction stuff.");
|
||||
|
||||
this.addSubCommand(HelpCommand.get());
|
||||
this.addSubCommand(this.cmdFactionsList);
|
||||
|
@ -6,6 +6,8 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.TerritoryAccess;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
import com.massivecraft.mcore.ps.PS;
|
||||
@ -21,9 +23,9 @@ public class CmdFactionsAccess extends FCommand
|
||||
this.addOptionalArg("view|p|player|f|faction", "view");
|
||||
this.addOptionalArg("name", "you");
|
||||
|
||||
this.setHelpShort("view or grant access for the claimed territory you are in");
|
||||
this.setDesc("view or grant access for the claimed territory you are in");
|
||||
|
||||
// TODO: Missing permission node here!
|
||||
// TODO: Missing permission node here!?
|
||||
this.addRequirements(ReqIsPlayer.get());
|
||||
}
|
||||
|
||||
@ -71,14 +73,14 @@ public class CmdFactionsAccess extends FCommand
|
||||
|
||||
if (doPlayer)
|
||||
{
|
||||
FPlayer targetPlayer = this.argAsBestFPlayerMatch(1, fme);
|
||||
FPlayer targetPlayer = this.arg(1, ARFPlayer.getStartAny(), fme);
|
||||
if (targetPlayer == null) return;
|
||||
added = territory.toggleFPlayer(targetPlayer);
|
||||
target = "Player \""+targetPlayer.getName()+"\"";
|
||||
}
|
||||
else
|
||||
{
|
||||
Faction targetFaction = this.argAsFaction(1, myFaction);
|
||||
Faction targetFaction = this.arg(1, ARFaction.get(), myFaction);
|
||||
if (targetFaction == null) return;
|
||||
added = territory.toggleFaction(targetFaction);
|
||||
target = "Faction \""+targetFaction.getTag()+"\"";
|
||||
|
@ -3,7 +3,9 @@ package com.massivecraft.factions.cmd;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsDeinvite extends FCommand
|
||||
@ -16,11 +18,7 @@ public class CmdFactionsDeinvite extends FCommand
|
||||
this.addRequiredArg("player");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.DEINVITE.node));
|
||||
|
||||
// TODO: Base on faction permissions instead?
|
||||
senderMustBeMember = false;
|
||||
senderMustBeOfficer = true;
|
||||
senderMustBeLeader = false;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,6 +4,8 @@ import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
@ -17,8 +19,7 @@ public class CmdFactionsDescription extends FCommand
|
||||
this.setErrorOnToManyArgs(false);
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.DESCRIPTION.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,6 +16,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.integration.EssentialsFeatures;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
@ -31,8 +32,7 @@ public class CmdFactionsHome extends FCommand
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.HOME.node));
|
||||
this.addRequirements(ReqIsPlayer.get());
|
||||
|
||||
senderMustBeMember = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.RECRUIT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,11 +3,11 @@ package com.massivecraft.factions.cmd;
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FPerm;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
|
||||
@ -21,8 +21,7 @@ public class CmdFactionsInvite extends FCommand
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.INVITE.node));
|
||||
this.addRequirements(ReqIsPlayer.get());
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -47,7 +47,7 @@ public class CmdFactionsLeader extends FCommand
|
||||
// Follow the standard rules
|
||||
if (fme.getRole() != Rel.LEADER || targetFaction != myFaction)
|
||||
{
|
||||
sender.sendMessage(Txt.parse("<b>You must be leader of the faction to %s.", this.getHelpShort()));
|
||||
sender.sendMessage(Txt.parse("<b>You must be leader of the faction to %s.", this.getDesc()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
public class CmdFactionsLeave extends FCommand {
|
||||
@ -10,8 +12,7 @@ public class CmdFactionsLeave extends FCommand {
|
||||
this.addAliases("leave");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.LEAVE.node));
|
||||
|
||||
senderMustBeMember = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.RECRUIT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,13 +1,14 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.FactionListComparator;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.mcore.cmd.arg.ARInteger;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
@ -27,78 +28,30 @@ public class CmdFactionsList extends FCommand
|
||||
@Override
|
||||
public void perform()
|
||||
{
|
||||
Integer pageHumanBased = this.arg(0, ARInteger.get(), 1);
|
||||
if (pageHumanBased == null) return;
|
||||
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if ( ! payForCommand(ConfServer.econCostList, "to list the factions", "for listing the factions")) return;
|
||||
|
||||
ArrayList<Faction> factionList = new ArrayList<Faction>(FactionColl.get().getAll());
|
||||
|
||||
factionList.remove(FactionColl.get().getNone());
|
||||
// TODO: Add flag SECRET To factions instead.
|
||||
//factionList.remove(Factions.i.getSafeZone());
|
||||
//factionList.remove(Factions.i.getWarZone());
|
||||
// Create Messages
|
||||
List<String> lines = new ArrayList<String>();
|
||||
|
||||
// Sort by total followers first
|
||||
Collections.sort(factionList, new Comparator<Faction>(){
|
||||
@Override
|
||||
public int compare(Faction f1, Faction f2) {
|
||||
int f1Size = f1.getFPlayers().size();
|
||||
int f2Size = f2.getFPlayers().size();
|
||||
if (f1Size < f2Size)
|
||||
return 1;
|
||||
else if (f1Size > f2Size)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
// Then sort by how many members are online now
|
||||
Collections.sort(factionList, new Comparator<Faction>(){
|
||||
@Override
|
||||
public int compare(Faction f1, Faction f2) {
|
||||
int f1Size = f1.getFPlayersWhereOnline(true).size();
|
||||
int f2Size = f2.getFPlayersWhereOnline(true).size();
|
||||
if (f1Size < f2Size)
|
||||
return 1;
|
||||
else if (f1Size > f2Size)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
ArrayList<String> lines = new ArrayList<String>();
|
||||
|
||||
/* // this code was really slow on large servers, getting full info for every faction and then only showing 9 of them; rewritten below
|
||||
lines.add(Txt.parse("<i>Factionless<i> %d online", Factions.i.getNone().getFPlayersWhereOnline(true).size()));
|
||||
for (Faction faction : factionList)
|
||||
{
|
||||
lines.add(Txt.parse("%s<i> %d/%d online, %d/%d/%d",
|
||||
faction.getTag(fme),
|
||||
faction.getFPlayersWhereOnline(true).size(),
|
||||
faction.getFPlayers().size(),
|
||||
faction.getLandRounded(),
|
||||
faction.getPowerRounded(),
|
||||
faction.getPowerMaxRounded())
|
||||
);
|
||||
}
|
||||
|
||||
sendMessage(Txt.getPage(lines, this.argAsInt(0, 1), "Faction List"));
|
||||
*/
|
||||
|
||||
factionList.add(0, FactionColl.get().getNone());
|
||||
ArrayList<Faction> factionList = new ArrayList<Faction>(FactionColl.get().getAll(null, FactionListComparator.get()));
|
||||
|
||||
final int pageheight = 9;
|
||||
int pagenumber = this.argAsInt(0, 1);
|
||||
|
||||
int pagecount = (factionList.size() / pageheight) + 1;
|
||||
if (pagenumber > pagecount)
|
||||
pagenumber = pagecount;
|
||||
else if (pagenumber < 1)
|
||||
pagenumber = 1;
|
||||
int start = (pagenumber - 1) * pageheight;
|
||||
if (pageHumanBased > pagecount)
|
||||
pageHumanBased = pagecount;
|
||||
else if (pageHumanBased < 1)
|
||||
pageHumanBased = 1;
|
||||
int start = (pageHumanBased - 1) * pageheight;
|
||||
int end = start + pageheight;
|
||||
if (end > factionList.size())
|
||||
end = factionList.size();
|
||||
|
||||
lines.add(Txt.titleize("Faction List "+pagenumber+"/"+pagecount));
|
||||
lines.add(Txt.titleize("Faction List "+pageHumanBased+"/"+pagecount));
|
||||
|
||||
for (Faction faction : factionList.subList(start, end))
|
||||
{
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.mcore.cmd.HelpCommand;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
public class CmdFactionsMoney extends FCommand
|
||||
{
|
||||
@ -17,15 +16,10 @@ public class CmdFactionsMoney extends FCommand
|
||||
{
|
||||
this.addAliases("money");
|
||||
|
||||
this.isMoneyCommand = true;
|
||||
this.setDesc("faction money commands");
|
||||
this.setHelp("The faction money commands.");
|
||||
|
||||
senderMustBePlayer = false;
|
||||
senderMustBeMember = false;
|
||||
senderMustBeOfficer = false;
|
||||
senderMustBeLeader = false;
|
||||
|
||||
this.setHelpShort("faction money commands");
|
||||
this.helpLong.add(Txt.parse("<i>The faction money commands."));
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
|
||||
this.addSubCommand(this.cmdMoneyBalance);
|
||||
this.addSubCommand(this.cmdMoneyDeposit);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
@ -15,8 +16,7 @@ public class CmdFactionsMoneyBalance extends FCommand
|
||||
this.addOptionalArg("faction", "you");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_BALANCE.node));
|
||||
|
||||
this.setHelpShort("show faction balance");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,7 +5,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
@ -25,8 +25,7 @@ public class CmdFactionsMoneyDeposit extends FCommand
|
||||
this.addOptionalArg("faction", "you");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_DEPOSIT.node));
|
||||
|
||||
this.setHelpShort("deposit money");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,7 +4,7 @@ import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
|
||||
@ -25,8 +25,7 @@ public class CmdFactionsMoneyTransferFf extends FCommand
|
||||
this.addRequiredArg("faction");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2F.node));
|
||||
|
||||
this.setHelpShort("transfer f -> f");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,7 +6,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
|
||||
@ -27,8 +27,7 @@ public class CmdFactionsMoneyTransferFp extends FCommand
|
||||
this.addRequiredArg("player");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2P.node));
|
||||
|
||||
this.setHelpShort("transfer f -> p");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,7 +6,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
|
||||
@ -27,8 +27,7 @@ public class CmdFactionsMoneyTransferPf extends FCommand
|
||||
this.addRequiredArg("faction");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_P2F.node));
|
||||
|
||||
this.setHelpShort("transfer p -> f");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,7 +4,7 @@ import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
|
||||
@ -24,8 +24,7 @@ public class CmdFactionsMoneyWithdraw extends FCommand
|
||||
this.addOptionalArg("faction", "you");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.MONEY_WITHDRAW.node));
|
||||
|
||||
this.setHelpShort("withdraw money");
|
||||
this.addRequirements(ReqBankCommandsEnabled.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,6 +4,8 @@ import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.mcore.cmd.arg.ARBoolean;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
|
||||
@ -16,8 +18,7 @@ public class CmdFactionsOpen extends FCommand
|
||||
this.addOptionalArg("yes/no", "toggle");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.OPEN.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,10 +8,10 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFaction;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionRelationEvent;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
|
||||
|
||||
public abstract class CmdFactionsRelationAbstract extends FCommand
|
||||
{
|
||||
@ -22,8 +22,7 @@ public abstract class CmdFactionsRelationAbstract extends FCommand
|
||||
this.addAliases("faction");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.RELATION.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,8 @@ import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.FactionRenameEvent;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.factions.util.MiscUtil;
|
||||
@ -23,8 +25,7 @@ public class CmdFactionsTag extends FCommand
|
||||
this.addRequiredArg("new tag");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.TAG.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,11 +3,12 @@ package com.massivecraft.factions.cmd;
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
import com.massivecraft.mcore.cmd.arg.ARString;
|
||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
public class CmdFactionsTitle extends FCommand
|
||||
{
|
||||
@ -19,8 +20,7 @@ public class CmdFactionsTitle extends FCommand
|
||||
this.addOptionalArg("title", "");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.TITLE.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,6 +6,8 @@ import com.massivecraft.factions.BoardColl;
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Perm;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
|
||||
import com.massivecraft.factions.event.LandUnclaimAllEvent;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
@ -18,8 +20,7 @@ public class CmdFactionsUnclaimall extends FCommand
|
||||
this.addAliases("unclaimall", "declaimall");
|
||||
|
||||
this.addRequirements(ReqHasPerm.get(Perm.UNCLAIM_ALL.node));
|
||||
|
||||
senderMustBeOfficer = true;
|
||||
this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,383 +0,0 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.FFlag;
|
||||
import com.massivecraft.factions.FPerm;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayerColl;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.FactionColl;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.Rel;
|
||||
import com.massivecraft.factions.zcore.MCommand;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
|
||||
public abstract class FCommandOld extends MCommand<Factions>
|
||||
{
|
||||
public FPlayer fme;
|
||||
public Faction myFaction;
|
||||
|
||||
// TODO: All these are "command reqs"
|
||||
public boolean senderMustBeMember;
|
||||
public boolean senderMustBeOfficer;
|
||||
public boolean senderMustBeLeader;
|
||||
|
||||
public boolean isMoneyCommand;
|
||||
|
||||
public FCommandOld()
|
||||
{
|
||||
super(Factions.get());
|
||||
|
||||
// The money commands must be disabled if money should not be used.
|
||||
isMoneyCommand = false;
|
||||
|
||||
senderMustBeMember = false;
|
||||
senderMustBeOfficer = false;
|
||||
senderMustBeLeader = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, List<String> args, List<MCommand<?>> commandChain)
|
||||
{
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
this.fme = FPlayerColl.get().get(sender);
|
||||
this.myFaction = this.fme.getFaction();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.fme = null;
|
||||
this.myFaction = null;
|
||||
}
|
||||
super.execute(sender, args, commandChain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled()
|
||||
{
|
||||
if (this.isMoneyCommand && ! ConfServer.econEnabled)
|
||||
{
|
||||
msg("<b>Faction economy features are disabled on this server.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.isMoneyCommand && ! ConfServer.bankEnabled)
|
||||
{
|
||||
msg("<b>The faction bank system is disabled on this server.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validSenderType(CommandSender sender, boolean informSenderIfNot)
|
||||
{
|
||||
boolean superValid = super.validSenderType(sender, informSenderIfNot);
|
||||
if ( ! superValid) return false;
|
||||
|
||||
if ( ! (this.senderMustBeMember || this.senderMustBeOfficer || this.senderMustBeLeader)) return true;
|
||||
|
||||
if ( ! (sender instanceof Player)) return false;
|
||||
|
||||
FPlayer fplayer = FPlayerColl.get().get((Player)sender);
|
||||
|
||||
if ( ! fplayer.hasFaction())
|
||||
{
|
||||
sender.sendMessage(Txt.parse("<b>You are not member of any faction."));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.senderMustBeOfficer && ! fplayer.getRole().isAtLeast(Rel.OFFICER))
|
||||
{
|
||||
sender.sendMessage(Txt.parse("<b>Only faction moderators can %s.", this.getHelpShort()));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.senderMustBeLeader && ! fplayer.getRole().isAtLeast(Rel.LEADER))
|
||||
{
|
||||
sender.sendMessage(Txt.parse("<b>Only faction admins can %s.", this.getHelpShort()));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Assertions
|
||||
// -------------------------------------------- //
|
||||
|
||||
// These are not used. Remove in the future if no need for them arises.
|
||||
|
||||
/*
|
||||
public boolean assertHasFaction()
|
||||
{
|
||||
if (me == null) return true;
|
||||
|
||||
if ( ! fme.hasFaction())
|
||||
{
|
||||
sendMessage("You are not member of any faction.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean assertMinRole(Rel role)
|
||||
{
|
||||
if (me == null) return true;
|
||||
|
||||
if (fme.getRole().isLessThan(role))
|
||||
{
|
||||
msg("<b>You <h>must be "+role+"<b> to "+this.getHelpShort()+".");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}*/
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Argument Readers
|
||||
// -------------------------------------------- //
|
||||
|
||||
// TODO: Convert these arg-readers to MCore ArgReaders.
|
||||
|
||||
// FPLAYER ======================
|
||||
public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg)
|
||||
{
|
||||
FPlayer ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
FPlayer fplayer = FPlayerColl.get().get(name);
|
||||
if (fplayer != null)
|
||||
{
|
||||
ret = fplayer;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>No player \"<p>%s<b>\" could be found.", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg)
|
||||
{
|
||||
return this.strAsFPlayer(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx, FPlayer def)
|
||||
{
|
||||
return this.argAsFPlayer(idx, def, true);
|
||||
}
|
||||
public FPlayer argAsFPlayer(int idx)
|
||||
{
|
||||
return this.argAsFPlayer(idx, null);
|
||||
}
|
||||
|
||||
// BEST FPLAYER MATCH ======================
|
||||
public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg)
|
||||
{
|
||||
FPlayer ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
// TODO: Easy fix for now
|
||||
//FPlayer fplayer = FPlayerColl.get().getBestIdMatch(name);
|
||||
FPlayer fplayer = FPlayerColl.get().getId2entity().get(name);
|
||||
if (fplayer != null)
|
||||
{
|
||||
ret = fplayer;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>No player match found for \"<p>%s<b>\".", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg)
|
||||
{
|
||||
return this.strAsBestFPlayerMatch(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def)
|
||||
{
|
||||
return this.argAsBestFPlayerMatch(idx, def, true);
|
||||
}
|
||||
public FPlayer argAsBestFPlayerMatch(int idx)
|
||||
{
|
||||
return this.argAsBestFPlayerMatch(idx, null);
|
||||
}
|
||||
|
||||
// FACTION ======================
|
||||
public Faction strAsFaction(String name, Faction def, boolean msg)
|
||||
{
|
||||
Faction ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
Faction faction = null;
|
||||
|
||||
// First we try an exact match
|
||||
if (faction == null)
|
||||
{
|
||||
faction = FactionColl.get().getByTag(name);
|
||||
}
|
||||
|
||||
// Next we match faction tags
|
||||
if (faction == null)
|
||||
{
|
||||
faction = FactionColl.get().getBestTagMatch(name);
|
||||
}
|
||||
|
||||
// Next we match player names
|
||||
if (faction == null)
|
||||
{
|
||||
// TODO: Easy fix for now
|
||||
//FPlayer fplayer = FPlayerColl.get().getBestIdMatch(name);
|
||||
FPlayer fplayer = FPlayerColl.get().getId2entity().get(name);
|
||||
|
||||
if (fplayer != null)
|
||||
{
|
||||
faction = fplayer.getFaction();
|
||||
}
|
||||
}
|
||||
|
||||
if (faction != null)
|
||||
{
|
||||
ret = faction;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>The faction or player \"<p>%s<b>\" could not be found.", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public Faction argAsFaction(int idx, Faction def, boolean msg)
|
||||
{
|
||||
return this.strAsFaction(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public Faction argAsFaction(int idx, Faction def)
|
||||
{
|
||||
return this.argAsFaction(idx, def, true);
|
||||
}
|
||||
public Faction argAsFaction(int idx)
|
||||
{
|
||||
return this.argAsFaction(idx, null);
|
||||
}
|
||||
|
||||
// FACTION FLAG ======================
|
||||
public FFlag strAsFactionFlag(String name, FFlag def, boolean msg)
|
||||
{
|
||||
FFlag ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
FFlag flag = FFlag.parse(name);
|
||||
if (flag != null)
|
||||
{
|
||||
ret = flag;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>The faction-flag \"<p>%s<b>\" could not be found.", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public FFlag argAsFactionFlag(int idx, FFlag def, boolean msg)
|
||||
{
|
||||
return this.strAsFactionFlag(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public FFlag argAsFactionFlag(int idx, FFlag def)
|
||||
{
|
||||
return this.argAsFactionFlag(idx, def, true);
|
||||
}
|
||||
public FFlag argAsFactionFlag(int idx)
|
||||
{
|
||||
return this.argAsFactionFlag(idx, null);
|
||||
}
|
||||
|
||||
// FACTION PERM ======================
|
||||
public FPerm strAsFactionPerm(String name, FPerm def, boolean msg)
|
||||
{
|
||||
FPerm ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
FPerm perm = FPerm.parse(name);
|
||||
if (perm != null)
|
||||
{
|
||||
ret = perm;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>The faction-perm \"<p>%s<b>\" could not be found.", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public FPerm argAsFactionPerm(int idx, FPerm def, boolean msg)
|
||||
{
|
||||
return this.strAsFactionPerm(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public FPerm argAsFactionPerm(int idx, FPerm def)
|
||||
{
|
||||
return this.argAsFactionPerm(idx, def, true);
|
||||
}
|
||||
public FPerm argAsFactionPerm(int idx)
|
||||
{
|
||||
return this.argAsFactionPerm(idx, null);
|
||||
}
|
||||
|
||||
// FACTION REL ======================
|
||||
public Rel strAsRel(String name, Rel def, boolean msg)
|
||||
{
|
||||
Rel ret = def;
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
Rel perm = Rel.parse(name);
|
||||
if (perm != null)
|
||||
{
|
||||
ret = perm;
|
||||
}
|
||||
}
|
||||
|
||||
if (msg && ret == null)
|
||||
{
|
||||
this.msg("<b>The role \"<p>%s<b>\" could not be found.", name);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
public Rel argAsRel(int idx, Rel def, boolean msg)
|
||||
{
|
||||
return this.strAsRel(this.argAsString(idx), def, msg);
|
||||
}
|
||||
public Rel argAsRel(int idx, Rel def)
|
||||
{
|
||||
return this.argAsRel(idx, def, true);
|
||||
}
|
||||
public Rel argAsRel(int idx)
|
||||
{
|
||||
return this.argAsRel(idx, null);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.massivecraft.factions.cmd.req;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.massivecraft.factions.ConfServer;
|
||||
import com.massivecraft.mcore.cmd.MCommand;
|
||||
import com.massivecraft.mcore.cmd.req.ReqAbstract;
|
||||
import com.massivecraft.mcore.util.Txt;
|
||||
|
||||
public class ReqBankCommandsEnabled extends ReqAbstract
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static ReqBankCommandsEnabled i = new ReqBankCommandsEnabled();
|
||||
public static ReqBankCommandsEnabled get() { return i; }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// OVERRIDE
|
||||
// -------------------------------------------- //
|
||||
|
||||
@Override
|
||||
public boolean apply(CommandSender sender, MCommand command)
|
||||
{
|
||||
return ConfServer.econEnabled && ConfServer.bankEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createErrorMessage(CommandSender sender, MCommand command)
|
||||
{
|
||||
if (!ConfServer.bankEnabled)
|
||||
{
|
||||
return Txt.parse("<b>The Factions bank system is disabled on this server.");
|
||||
}
|
||||
|
||||
return Txt.parse("<b>The Factions economy features are disabled on this server.");
|
||||
}
|
||||
|
||||
}
|
@ -40,7 +40,7 @@ public class ReqRoleIsAtLeast extends ReqAbstract
|
||||
@Override
|
||||
public String createErrorMessage(CommandSender sender, MCommand command)
|
||||
{
|
||||
return Txt.parse("<b>You must be <h>%s <b>or higher to do this.", Txt.getNicedEnum(this.rel));
|
||||
return Txt.parse("<b>You must be <h>%s <b>or higher to "+(command == null ? "do that" : command.getDesc())+".", Txt.getNicedEnum(this.rel));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user