diff --git a/plugin.yml b/plugin.yml index 88055dcf..adca604f 100644 --- a/plugin.yml +++ b/plugin.yml @@ -89,7 +89,7 @@ permissions: factions.chat: description: change chat mode factions.claim: - description: claim the land where you are standing + description: claim land where you are standing factions.config: description: change a conf.json setting factions.create: diff --git a/src/com/massivecraft/factions/Conf.java b/src/com/massivecraft/factions/Conf.java index a5bd3dcf..691d6ce1 100644 --- a/src/com/massivecraft/factions/Conf.java +++ b/src/com/massivecraft/factions/Conf.java @@ -80,6 +80,16 @@ public class Conf public static double autoLeaveAfterDaysOfInactivity = 10.0; public static boolean worldGuardChecking = false; + + // server logging options + public static boolean logFactionCreate = true; + public static boolean logFactionDisband = true; + public static boolean logFactionJoin = true; + public static boolean logFactionKick = true; + public static boolean logFactionLeave = true; + public static boolean logLandClaims = true; + public static boolean logLandUnclaims = true; + public static boolean logMoneyTransactions = true; public static boolean homesEnabled = true; public static boolean homesMustBeInClaimedTerritory = true; diff --git a/src/com/massivecraft/factions/FPlayer.java b/src/com/massivecraft/factions/FPlayer.java index 40cd1e42..78a63abe 100644 --- a/src/com/massivecraft/factions/FPlayer.java +++ b/src/com/massivecraft/factions/FPlayer.java @@ -611,6 +611,9 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator { fplayer.msg("%s left %s.", this.describeTo(fplayer, true), myFaction.describeTo(fplayer)); } + + if (Conf.logFactionLeave) + P.p.log(this.getName()+" left the faction: "+myFaction.getTag()); } this.resetFactionData(); @@ -624,6 +627,8 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator } myFaction.detach(); + if (Conf.logFactionDisband) + P.p.log("The faction "+myFaction.getTag()+" ("+myFaction.getId()+") was disbanded due to the last player ("+this.getName()+") leaving."); } } @@ -772,6 +777,10 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator Board.setFactionAt(forFaction, flocation); SpoutFeatures.updateTerritoryDisplayLoc(flocation); + + if (Conf.logLandClaims) + P.p.log(this.getName()+" claimed land at ("+flocation.getCoordString()+") for the faction: "+forFaction.getTag()); + return true; } diff --git a/src/com/massivecraft/factions/cmd/CmdCreate.java b/src/com/massivecraft/factions/cmd/CmdCreate.java index 71752590..36ebfbdb 100644 --- a/src/com/massivecraft/factions/cmd/CmdCreate.java +++ b/src/com/massivecraft/factions/cmd/CmdCreate.java @@ -7,6 +7,7 @@ import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Rel; @@ -75,6 +76,9 @@ public class CmdCreate extends FCommand } msg("You should now: %s", p.cmdBase.cmdDescription.getUseageTemplate()); + + if (Conf.logFactionCreate) + P.p.log(fme.getName()+" created a new faction: "+tag); } } diff --git a/src/com/massivecraft/factions/cmd/CmdDisband.java b/src/com/massivecraft/factions/cmd/CmdDisband.java index 3ee18644..693851fe 100644 --- a/src/com/massivecraft/factions/cmd/CmdDisband.java +++ b/src/com/massivecraft/factions/cmd/CmdDisband.java @@ -1,5 +1,6 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; @@ -69,7 +70,8 @@ public class CmdDisband extends FCommand fplayer.msg("%s disbanded the faction %s.", who, faction.getTag(fplayer)); } } - P.p.log("The faction "+faction.getTag()+" ("+faction.getId()+") was disbanded by "+(senderIsConsole ? "console command" : fme.getName())+"."); + if (Conf.logFactionDisband) + P.p.log("The faction "+faction.getTag()+" ("+faction.getId()+") was disbanded by "+(senderIsConsole ? "console command" : fme.getName())+"."); if (Econ.shouldBeUsed()) { @@ -87,7 +89,7 @@ public class CmdDisband extends FCommand } faction.detach(); - + SpoutFeatures.updateAppearances(); } } diff --git a/src/com/massivecraft/factions/cmd/CmdHelp.java b/src/com/massivecraft/factions/cmd/CmdHelp.java index 3d50a115..40b1eaa2 100644 --- a/src/com/massivecraft/factions/cmd/CmdHelp.java +++ b/src/com/massivecraft/factions/cmd/CmdHelp.java @@ -160,9 +160,13 @@ public class CmdHelp extends FCommand pageLines = new ArrayList(); pageLines.add("Finally some commands for the server admins:"); pageLines.add( p.cmdBase.cmdBypass.getUseageTemplate(true) ); + pageLines.add(p.txt.parse("/f claim safezone claim land for the Safe Zone")); + pageLines.add(p.txt.parse("/f claim warzone claim land for the War Zone")); + pageLines.add(p.txt.parse("/f autoclaim [safezone|warzone] take a guess")); pageLines.add( p.cmdBase.cmdSafeunclaimall.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdWarunclaimall.getUseageTemplate(true) ); pageLines.add(p.txt.parse("Note: " + p.cmdBase.cmdUnclaim.getUseageTemplate(false) + P.p.txt.parse("") + " works on safe/war zones as well.")); + pageLines.add( p.cmdBase.cmdPeaceful.getUseageTemplate(true) ); helpPages.add(pageLines); pageLines = new ArrayList(); diff --git a/src/com/massivecraft/factions/cmd/CmdJoin.java b/src/com/massivecraft/factions/cmd/CmdJoin.java index 5ec7bea6..3df0b4c2 100644 --- a/src/com/massivecraft/factions/cmd/CmdJoin.java +++ b/src/com/massivecraft/factions/cmd/CmdJoin.java @@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; public class CmdJoin extends FCommand @@ -69,5 +70,8 @@ public class CmdJoin extends FCommand fme.resetFactionData(); fme.setFaction(faction); faction.deinvite(fme); + + if (Conf.logFactionJoin) + P.p.log(fme.getName()+" joined the faction: "+faction.getTag()); } } diff --git a/src/com/massivecraft/factions/cmd/CmdKick.java b/src/com/massivecraft/factions/cmd/CmdKick.java index e00b2e21..477732f6 100644 --- a/src/com/massivecraft/factions/cmd/CmdKick.java +++ b/src/com/massivecraft/factions/cmd/CmdKick.java @@ -4,6 +4,7 @@ import com.massivecraft.factions.Conf; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayers; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.FactionFlag; import com.massivecraft.factions.struct.Permission; @@ -78,6 +79,9 @@ public class CmdKick extends FCommand 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(FactionFlag.PERMANENT)) { // Remove this faction @@ -86,6 +90,9 @@ public class CmdKick extends FCommand fplayer.msg("The faction %s 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())+"."); } } diff --git a/src/com/massivecraft/factions/cmd/CmdMoneyDeposit.java b/src/com/massivecraft/factions/cmd/CmdMoneyDeposit.java index 91b1104e..da5d007d 100644 --- a/src/com/massivecraft/factions/cmd/CmdMoneyDeposit.java +++ b/src/com/massivecraft/factions/cmd/CmdMoneyDeposit.java @@ -1,9 +1,13 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.Faction; +import com.massivecraft.factions.Conf; +import com.massivecraft.factions.P; +import com.massivecraft.factions.iface.EconomyParticipator; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import org.bukkit.ChatColor; + public class CmdMoneyDeposit extends FCommand { @@ -30,9 +34,12 @@ public class CmdMoneyDeposit extends FCommand public void perform() { double amount = this.argAsDouble(0, 0d); - Faction faction = this.argAsFaction(1, myFaction); + EconomyParticipator faction = this.argAsFaction(1, myFaction); if (faction == null) return; Econ.transferMoney(fme, fme, faction, amount); + + if (Conf.logMoneyTransactions) + P.p.log(ChatColor.stripColor(P.p.txt.parse("%s deposited %s from the faction bank: %s", fme.getName(), Econ.moneyString(amount), faction.describeTo(null)))); } } diff --git a/src/com/massivecraft/factions/cmd/CmdMoneyTransferFf.java b/src/com/massivecraft/factions/cmd/CmdMoneyTransferFf.java index 3b497398..87f8d9ac 100644 --- a/src/com/massivecraft/factions/cmd/CmdMoneyTransferFf.java +++ b/src/com/massivecraft/factions/cmd/CmdMoneyTransferFf.java @@ -1,9 +1,13 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.iface.EconomyParticipator; +import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import org.bukkit.ChatColor; + public class CmdMoneyTransferFf extends FCommand { @@ -36,5 +40,8 @@ public class CmdMoneyTransferFf extends FCommand if (to == null) return; Econ.transferMoney(fme, from, to, amount); + + if (Conf.logMoneyTransactions) + P.p.log(ChatColor.stripColor(P.p.txt.parse("%s transferred %s from the faction \"%s\" to the faction \"%s\"", fme.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } diff --git a/src/com/massivecraft/factions/cmd/CmdMoneyTransferFp.java b/src/com/massivecraft/factions/cmd/CmdMoneyTransferFp.java index 677e4dbb..05d3dd01 100644 --- a/src/com/massivecraft/factions/cmd/CmdMoneyTransferFp.java +++ b/src/com/massivecraft/factions/cmd/CmdMoneyTransferFp.java @@ -1,9 +1,13 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.iface.EconomyParticipator; +import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import org.bukkit.ChatColor; + public class CmdMoneyTransferFp extends FCommand { @@ -36,5 +40,8 @@ public class CmdMoneyTransferFp extends FCommand if (to == null) return; Econ.transferMoney(fme, from, to, amount); + + if (Conf.logMoneyTransactions) + P.p.log(ChatColor.stripColor(P.p.txt.parse("%s transferred %s from the faction \"%s\" to the player \"%s\"", fme.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } diff --git a/src/com/massivecraft/factions/cmd/CmdMoneyTransferPf.java b/src/com/massivecraft/factions/cmd/CmdMoneyTransferPf.java index 0bf4817b..6c50eb95 100644 --- a/src/com/massivecraft/factions/cmd/CmdMoneyTransferPf.java +++ b/src/com/massivecraft/factions/cmd/CmdMoneyTransferPf.java @@ -1,9 +1,13 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.iface.EconomyParticipator; +import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import org.bukkit.ChatColor; + public class CmdMoneyTransferPf extends FCommand { @@ -36,5 +40,8 @@ public class CmdMoneyTransferPf extends FCommand if (to == null) return; Econ.transferMoney(fme, from, to, amount); + + if (Conf.logMoneyTransactions) + P.p.log(ChatColor.stripColor(P.p.txt.parse("%s transferred %s from the player \"%s\" to the faction \"%s\"", fme.getName(), Econ.moneyString(amount), from.describeTo(null), to.describeTo(null)))); } } diff --git a/src/com/massivecraft/factions/cmd/CmdMoneyWithdraw.java b/src/com/massivecraft/factions/cmd/CmdMoneyWithdraw.java index 3579875d..445e6fa3 100644 --- a/src/com/massivecraft/factions/cmd/CmdMoneyWithdraw.java +++ b/src/com/massivecraft/factions/cmd/CmdMoneyWithdraw.java @@ -1,9 +1,14 @@ package com.massivecraft.factions.cmd; -import com.massivecraft.factions.Faction; +import com.massivecraft.factions.Conf; +import com.massivecraft.factions.iface.EconomyParticipator; +import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; +import org.bukkit.ChatColor; + + public class CmdMoneyWithdraw extends FCommand { public CmdMoneyWithdraw() @@ -27,8 +32,11 @@ public class CmdMoneyWithdraw extends FCommand public void perform() { double amount = this.argAsDouble(0, 0d); - Faction faction = this.argAsFaction(1, myFaction); + EconomyParticipator faction = this.argAsFaction(1, myFaction); if (faction == null) return; Econ.transferMoney(fme, faction, fme, amount); + + if (Conf.logMoneyTransactions) + P.p.log(ChatColor.stripColor(P.p.txt.parse("%s withdrew %s from the faction bank: %s", fme.getName(), Econ.moneyString(amount), faction.describeTo(null)))); } } diff --git a/src/com/massivecraft/factions/cmd/CmdSafeunclaimall.java b/src/com/massivecraft/factions/cmd/CmdSafeunclaimall.java index 2075700c..9f1b8992 100644 --- a/src/com/massivecraft/factions/cmd/CmdSafeunclaimall.java +++ b/src/com/massivecraft/factions/cmd/CmdSafeunclaimall.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Board; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; public class CmdSafeunclaimall extends FCommand @@ -31,6 +33,9 @@ public class CmdSafeunclaimall extends FCommand { Board.unclaimAll(Factions.i.getSafeZone().getId()); msg("You unclaimed ALL safe zone land."); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed all safe zones."); } } diff --git a/src/com/massivecraft/factions/cmd/CmdUnclaim.java b/src/com/massivecraft/factions/cmd/CmdUnclaim.java index c04a161e..110d87e0 100644 --- a/src/com/massivecraft/factions/cmd/CmdUnclaim.java +++ b/src/com/massivecraft/factions/cmd/CmdUnclaim.java @@ -6,6 +6,7 @@ import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.integration.SpoutFeatures; import com.massivecraft.factions.FLocation; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Rel; @@ -41,6 +42,9 @@ public class CmdUnclaim extends FCommand Board.removeAt(flocation); SpoutFeatures.updateTerritoryDisplayLoc(flocation); msg("Safe zone was unclaimed."); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed land at ("+flocation.getCoordString()+") from the faction: "+otherFaction.getTag()); } else { @@ -55,6 +59,9 @@ public class CmdUnclaim extends FCommand Board.removeAt(flocation); SpoutFeatures.updateTerritoryDisplayLoc(flocation); msg("War zone was unclaimed."); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed land at ("+flocation.getCoordString()+") from the faction: "+otherFaction.getTag()); } else { @@ -70,6 +77,10 @@ public class CmdUnclaim extends FCommand otherFaction.msg("%s unclaimed some of your land.", fme.describeTo(otherFaction, true)); msg("You unclaimed this land."); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed land at ("+flocation.getCoordString()+") from the faction: "+otherFaction.getTag()); + return; } @@ -154,6 +165,9 @@ public class CmdUnclaim extends FCommand Board.removeAt(flocation); SpoutFeatures.updateTerritoryDisplayLoc(flocation); myFaction.msg("%s unclaimed some land.", fme.describeTo(myFaction, true)); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed land at ("+flocation.getCoordString()+") from the faction: "+otherFaction.getTag()); } } diff --git a/src/com/massivecraft/factions/cmd/CmdUnclaimall.java b/src/com/massivecraft/factions/cmd/CmdUnclaimall.java index 74fbfa88..49d2ea6f 100644 --- a/src/com/massivecraft/factions/cmd/CmdUnclaimall.java +++ b/src/com/massivecraft/factions/cmd/CmdUnclaimall.java @@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Board; import com.massivecraft.factions.Conf; +import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.integration.SpoutFeatures; import com.massivecraft.factions.struct.Permission; @@ -44,6 +45,9 @@ public class CmdUnclaimall extends FCommand Board.unclaimAll(myFaction.getId()); myFaction.msg("%s unclaimed ALL of your faction's land.", fme.describeTo(myFaction, true)); SpoutFeatures.updateTerritoryDisplayLoc(null); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed everything for the faction: "+myFaction.getTag()); } } diff --git a/src/com/massivecraft/factions/cmd/CmdWarunclaimall.java b/src/com/massivecraft/factions/cmd/CmdWarunclaimall.java index f5dd33de..f80690ef 100644 --- a/src/com/massivecraft/factions/cmd/CmdWarunclaimall.java +++ b/src/com/massivecraft/factions/cmd/CmdWarunclaimall.java @@ -1,7 +1,9 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Board; +import com.massivecraft.factions.Conf; import com.massivecraft.factions.Factions; +import com.massivecraft.factions.P; import com.massivecraft.factions.struct.Permission; public class CmdWarunclaimall extends FCommand @@ -31,6 +33,9 @@ public class CmdWarunclaimall extends FCommand { Board.unclaimAll(Factions.i.getWarZone().getId()); msg("You unclaimed ALL war zone land."); + + if (Conf.logLandUnclaims) + P.p.log(fme.getName()+" unclaimed all war zones."); } } diff --git a/src/com/massivecraft/factions/integration/SpoutFeatures.java b/src/com/massivecraft/factions/integration/SpoutFeatures.java index fbe60209..607e9a29 100644 --- a/src/com/massivecraft/factions/integration/SpoutFeatures.java +++ b/src/com/massivecraft/factions/integration/SpoutFeatures.java @@ -220,6 +220,9 @@ public class SpoutFeatures SpoutPlayer sPlayer = SpoutManager.getPlayer(viewer.getPlayer()); Player pViewed = viewed.getPlayer(); + if (pViewed == null || viewer.getPlayer() == null) + return; + String viewedTitle = viewed.getTitle(); Rel viewedRole = viewed.getRole();