Added Econ.hasAtLeast(EconomyParticipator ep, double delta, String toDoThis) method to check if an account has at least a specified amount of money in it. Also added related FCommand.canAffordCommand(double cost, String toDoThis).
New setting "radiusClaimFailureLimit" (default 9). If claims are unsuccessful that many times in a row during a radius claim, the task will cancel out. There is no longer a limit to the specified radius since the process should no longer cause major server stress, and due to the process canceling out after several failures as just described.
Added some new methods to FLocation to quickly convert between block/chunk/region positions, and rewrote the FLocation hashCode() method to make it faster.
Changes:
----------
* changed internal storage of faction from String Id to Faction for LandClaimEvent and LandUnclaimEvent
* added getFactionId(), getFactionTag(), getPlayer() to LandClaimEvent
* added getFactionId(), getFactionTag(), getFPlayer(), getPlayer() to LandUnclaimEvent
* removed LandUnclaimEvent from unclaimAll() in Board.java
* created LandUnclaimAllEvent (uncancellable) and hooked into cmdUnclaimall
Notes:
--------
* LandUnclaimAllEvent currently only returns calling faction and fplayer information. Location data is unavailable as it is determined in Board.java's unclaimAll(). Realistically this should be enough information for anyone hooking this event to determine what is being altered.
On branch CustomFactionEvents
modified: src/com/massivecraft/factions/Board.java
modified: src/com/massivecraft/factions/FPlayer.java
modified: src/com/massivecraft/factions/cmd/CmdUnclaim.java
modified: src/com/massivecraft/factions/cmd/CmdUnclaimall.java
modified: src/com/massivecraft/factions/event/LandClaimEvent.java
new file: src/com/massivecraft/factions/event/LandUnclaimAllEvent.java
modified: src/com/massivecraft/factions/event/LandUnclaimEvent.java
Examples:
/f config factionFlagDefaults firespread false - set default "FIRESPREAD" faction flag to false
/f config factionFlagDefaults monsters true - set default "MONSTERS" faction flag to true
/f config factionPermDefaults build ally - for default "BUILD" faction permission, add/remove permission for allies
/f config factionPermDefaults withdraw member - for default "WITHDRAW" faction permission, add/remove permission for regular faction members
Patrick's Custom Event System Changes:
----------------------------------------
* FPlayerLeaveEvent now fires for all faction players in cmdDisband()
* FPlayerLeaveEvent removed from cmdJoin()
* FPlayerJoinEvent now only fires when the faction is different in cmdLeade
* Added FactionRenameEvent, firing on cmdTag()
* Added FactionRelationEvent, firing on FRelationCommand extensions
* Fixed FPlayerJoinEvent to fire after tag is set in cmdCreate()
* Added getFactionId() to FactionCreateEvent
TODO:
-------
* cmdLeader() might need a FPlayerLeaveEvent for the same reason it needs
a FPlayerJoinEvent?
On branch CustomFactionEvents
modified: src/com/massivecraft/factions/cmd/CmdCreate.java
modified: src/com/massivecraft/factions/cmd/CmdDisband.java
modified: src/com/massivecraft/factions/cmd/CmdJoin.java
modified: src/com/massivecraft/factions/cmd/CmdKick.java
modified: src/com/massivecraft/factions/cmd/CmdLeader.java
modified: src/com/massivecraft/factions/cmd/CmdTag.java
modified: src/com/massivecraft/factions/cmd/FRelationCommand.java
modified: src/com/massivecraft/factions/event/FPlayerLeaveEvent.java
modified: src/com/massivecraft/factions/event/FactionCreateEvent.java
new file: src/com/massivecraft/factions/event/FactionRelationEvent.java
new file: src/com/massivecraft/factions/event/FactionRenameEvent.java
modified: src/com/massivecraft/factions/event/LandClaimEvent.java
Note that the player cannot currently already be in another faction; if they are, you'll need to /f kick them first. Also note that if the faction isn't open (with no invitation required), the player isn't invited, and you don't have the factions.join.any permission or have admin bypass mode on, the attempt will also fail.
Also, added new log method which accepts arguments (like the msg method).
New permission factions.powerboost which is required to use the above command. This permission is added to the factions.kit.mod permission kit.
example usage:
/f powerboost p Player1 1.5 (give player "Player1" a bonus of 1.5 power)
/f powerboost faction SomeFaction -6 (give faction "SomeFaction" a penalty of -6 power)
Also, a minor fix for the help page regarding faction banks being shown if "bankEnabled" setting was enabled but "econEnabled" setting was false (economy as a whole disabled).
Also, a couple more minor bugfixes are included for /f home payment giving the wrong message, player/faction descriptions being wrong for console messages, and potential NPE in new faction leader promotion routine if faction was permanent with no current leader.
New permissions:
factions.leader.any - allows use of /f leader on any player in any faction
factions officer.any - allows use of /f officer on any player in any faction
factions.join.any - allows player to join any faction, bypassing invitation process for closed factions (the same as players with /f bypass enabled can do)
Vault: http://dev.bukkit.org/server-mods/vault/
Note: for proper faction bank support, if you're using iCo5 or EssentialsEco, I recommend waiting for Vault 1.2.5 to be released which addresses faction account creation issues related to those.